【问题标题】:Mapping Wavefront .obj texture vertex on OpenGL在 OpenGL 上映射 Wavefront .obj 纹理顶点
【发布时间】:2014-04-23 07:09:49
【问题描述】:

一位艺术家给了我所有的 3D 模型,让我导出为 .obj 和 .mtl,以便我可以使用 OpenGL 进行渲染。

但我无法弄清楚为什么纹理顶点大于 1 并且有时为负数。 看看这个例子:

(...)
vn -0.000717425 0.00106739 -0.00991695
vn 3.49779e-09 -5.22866e-09 -0.01
vn -0.00142294 0.00211706 -0.00966919
vn -0.00831486 -0.00555545 0
vt 5.82424 -20.091
vt 6.97527 -20.1873
vt 5.81848 -20.1618
vt -7.48189 8.29159
(...)

他向我发送了所有 TGA 格式的纹理,我正在正确加载它,但我无法将这些 vts 映射到正确的 OpenGL 纹理矢量。

【问题讨论】:

    标签: opengl texture-mapping .obj wavefront


    【解决方案1】:

    但我不明白为什么纹理顶点大于 1 有时为负数。

    [0..1] 范围之外的纹理坐标表示纹理重复。

    给定一维纹理ABCD

       -1    0    1    2
    ....|ABCD|ABCD|ABCD|....
    

    确保将GL_TEXTURE_WRAP_SGL_TEXTURE_WRAP_T 设置为GL_REPEAT

    【讨论】:

    • 我明白了。但是负数有意义吗?我设置了“GL_TEXTURE_WRAP_S”和“GL_TEXTURE_WRAP_T”,现在它适用于一些纹理,但不是全部。我想我现在需要弄清楚如何为负数设置另一个属性。
    • 负数只是在另一个方向换行。查看我的编辑。
    猜你喜欢
    • 2010-10-29
    • 2020-05-15
    • 2012-04-16
    • 1970-01-01
    • 2011-05-04
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    相关资源
    最近更新 更多