当前位置: 首页 > Web前端 > JavaScript

右手坐标系转左手坐标系有两种方法

时间:2023-03-26 20:48:47 JavaScript

:(1)z轴为负,然后渲染的时候把backsideblanking改成逆时针!(2)相机使用右手坐标,以一本书为例。将书竖立,正面对着自己,然后约定,在左手坐标系中,相机在原点,看向正Z轴,而右手坐标系中,相机恰恰相反,正在查看原点的负Z轴。然后,在右手坐标系下,前面的Z值比后面的Z值大,但是现在要转换到左手坐标系,要看到同样的图片,就必须使用Z值的正面比背面小。如果Z值只是负数,就意味着把正反面的所有像素点均等替换,变成了镜面效果,显然是错误的。X也应为负数。这样,front左边的顶点在back的右边,(好像是front放在了后面,但是因为在左手坐标系中,Z值是先看到的,所以还是会看到一本正立的书)简而言之,右手坐标系是从Z值最大到最小Z值看,而左手坐标系则相反,是从Z值最小到Z值最大的Z值,也就是你看到的图片就是书的背面,是镜像。因此,顶点的X和Z值应该是负数。结语:承前文,实践出真知,第一种方法不可行。只转换x轴,会有对错的uv贴图,所以总结了三种方案。1.使用右手坐标系scene.useRightHandedSystem右手坐标系2.转换模型。Flipthemodelcoordinatesinblender,即在导出前翻转模型的坐标。备注:Blender、C4D、Maya软件导出的模型均为右手坐标系;Unity和U4D导出的模型,除非特别翻转坐标,否则都是左手坐标系。3、导入模型时,翻转模型的顶点坐标,因为还没有找到好的解决办法。