我正在尝试通过相机的深度(Z)对一些四边形进行排序,但是当相机改变它的方向(Y 轴 - 左右)和位置时(相机基本上像 DOOM 一样处理 - 这是一个没有旋转的 FPS X 轴(上下))
我该怎么做呢?我需要一个“Z”值的最终结果来进行排序。IE “如果 myZVal 小于 HisZVal 比我更接近。”
这是我迄今为止的尝试:虽然我可以检查我的相机和四边形之间的半径长度并且通过它来软化,但它似乎没有工作,并且当我看不同的角度时进一步思考会搞砸。
public static Vector<Quad> SortByZ(Vector<Quad> vec, Vector3f pos, Vector3f forward){
Vector<Quad> sorted = new Vector<Quad>();
for(int i = 0; i < vec.size(); i++){
Quad e = vec.get(i);
e.myDepth = new Vector3f(0,0,0);
Vector3f ray = new Vector3f(0,0,0);
Vector3f.sub(pos, e.center, ray);
e.myDepth.z = ray.lengthSquared();
}
}