WebGL纹理部分渲染

时间:2014-02-15 16:55:35

标签: javascript html5-canvas webgl

我正面临非常模糊的问题。

我正在将.obj 3d模型加载到我正在处理的WebGL应用程序中。我正在使用自定义函数解析它们。我知道它工作正常。因为我得到了这个:

Wood textured cube

当然,纹理被拉得太大了。但这就是UV映射的方式。

但是,当我加载鹅模型时,我得到的是:

Goose no texture

无纹理的鹅。我使用相同的纹理。

Weirder仍然是纹理仅在眼睛周围呈现的事实。如果我不绘制线框,我得到这个:

Goose eyes

我圈出的两个微小规格是眼睛。

为了确保它不是这个模型,我尝试了另一个:

Partially texture axe

我不知道为什么它不会在其他地方呈现纹理。

这是我尝试过的:

  • 重新计算法线并再次从Blender导出。同样的结果。
  • 在Photoshop中加载模型并正确预览。意思模型很好。
  • 检查我的.obj文件解析为WebGL的可用格式。此外,由于立方体正确加载,我认为不是那样。
  • 尝试关闭MipMapping,禁用CULL_FACE并更改绕线顺序。没有区别。
  • 使用不同的纹理图像。纹理图像都是NPOT。尝试非NPOT。什么都没有改变,除了不同的图像,小眼睛的纹素或斧头上的碎片改变为纹理。
  • 检查UV映射,看起来都很好。没有负值或超出范围值。

我完全没有想法。如果有人有类似的经历,我会很感激指出下一步要去哪里。

我通常不喜欢在不发布代码的情况下提问,但代码非常复杂,因为我使用sweet.js来自定义javascript语法。让我知道是否有人想查看代码,我可以尝试清理一些代码并上传到某处。

1 个答案:

答案 0 :(得分:4)

从你的图像中我想知道你是不是画了一个恒定数量的多边形,或者画面开始然后由于一些错误而在路上默默地失败了。这就是为什么我问所绘制的多边形是否是第一个模型 因此,似乎确实存在绘制多边形数量的硬编码限制 很高兴你找到了它!