gpt4 book ai didi

opengl - 将 Wavefront .obj 的 vt 映射到 OpenGL 纹理坐标

转载 作者:行者123 更新时间:2023-12-04 22:38:33 25 4
gpt4 key购买 nike

一位艺术家 friend 给我发送了一个由 3DS Max 2009 导出的 .obj 文件,其中包含三个纹理坐标作为 vt 的参数。命令。根据 .obj 规范,这是正确的。但是,我不确定如何映射为常规 2D .jpg 纹理提供的 U-V-W 坐标。

这对我来说相对重要,因为我玩过 3DS Max,试图弄清楚如何强制它只导出 U-V 坐标,但似乎没有直接的方法。在这种情况下,这只是一个天空盒,但在其他情况下,它可能更复杂且无法手动修复。

谢谢!

最佳答案

文章中有一节What Is UVW Mapping?这说明:

You might question why you need a depth coordinate like W for a 2D plane. One reason is because it's sometimes useful to be able to flip the orientation of a map, relative to its geometry. To do this, you need the third coordinate. The W coordinate also has a meaning for 3-dimensional procedural materials.



在您的情况下,您可以简单地忽略 W 坐标,只读取以 vt 开头的行的前两个浮点数。 .这假设您不太担心 W 坐标占用的额外空间,因为 .obj 是一种效率很低的文件格式。

我个人不喜欢在 OpenGL 中使用 .obj ,因为它提供每个面而不是每个顶点的顶点法线。要正确照亮对象,您必须复制顶点或通过平均面中周围的顶点法线来计算法线。如果您想探索更有效的替代方案,请查看二进制格式,例如完整记录的 .md2 格式。如果您还没有使用 glDrawElements,也可以考虑使用它。

关于opengl - 将 Wavefront .obj 的 vt 映射到 OpenGL 纹理坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/922952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com