[]3d 设置相机正交投影,在使用3d转2d 坐标转换不成功

透视投影的转换正常,改成正交就不可以了,看了下代码,因为转换后的z值得问题,这个z的为什么要这样判断 z<0 || z>1
__proto.worldToViewportPoint=function(position,out){
Matrix4x4.multiply(this._projectionMatrix,this._viewMatrix,this._projectionViewMatrix);
this.viewport.project(position,this._projectionViewMatrix,out);
var outE=out.elements;
if (out.z < 0.0 || out.z > 1.0){
outE[0]=outE[1]=outE[2]=NaN;
}else {
outE[0]=outE[0] / Laya.stage.clientScaleX;
outE[1]=outE[1] / Laya.stage.clientScaleY;
}
}
已邀请:

LagField

赞同来自:

z<0 || z>1说明对象位置在摄像机视锥范围外面,这个时候摄像机应该看不到物体了

gveden

赞同来自:

这个地方3d转换2d坐标,转换后的坐标在2d里面显示的,2d并不需要关注z的大小吧,只要x y在显示范围内就可以了。
实在不太明白为什么这个地方要做这个z值判断。我把z判断去掉,看到的转换效果是对的

要回复问题请先

商务合作
商务合作