映射波前.OBJ的VT OpenGL的纹理坐标
题
一位艺术家朋友给我发了由3DS Max 2009的包含三个纹理坐标作为参数传递给vt
命令导出的obj文件。而且,根据.OBJ规范是正确的。不过,我不知道如何提供了一个普通的2D .jpg文件纹理U-V-W坐标映射。
这对我来说是比较重要的,因为我已经与3ds Max试图找出如何强制它仅导出U-V坐标发挥,但似乎没有straightfoward方式。在这种情况下,这仅仅是一个天空盒,但在其他情况下,它可能是这样的方式更加复杂,不要用手解决的。
谢谢!
解决方案
还有的文章中的一段什么是UVW贴图解释?
您可能会问,为什么你需要一个 深度坐标像W代表一个二维 平面。其中一个原因是因为它是 有时是有用的,以便能够翻转 的地图的方向,相对于 其几何形状。要做到这一点,你需要的 第三个坐标。在W坐标 还具有用于3维含义 程序材质。
在你的情况,你可以简单地忽略在W协调和只读与vt
开头的行的前两个浮动。这是假设你是不是协调,因为.OBJ颇为开始与低效的文件格式,通过在W采取的额外空间非常担心。
我个人不喜欢在OpenGL使用的obj,因为它提供每面,而不是每顶点顶点法线。光一个对象正确则必须重复顶点或通过在面对平均周围顶点的法线计算法线。如果你想探索更有效的替代品,来看看二进制格式,比如彻底的记录.md2格式。也可以考虑,如果你不利用它已经在使用glDrawElements。
其他提示
对不起,如果我误解你的问题。但是,你便无法简单地忽略第三个参数,W? 据我所知,w是刚刚在垂直于由U和V所描述的平面的平面上的坐标,所以很少需要简单的2D纹理映射。
希望这有助于。
不隶属于 StackOverflow