【发布时间】:2011-09-15 04:00:41
【问题描述】:
所以基本上我正在尝试制作一个模型加载器,它将接收 wavefont obj 文件并在 webgl 中渲染它们。最终我希望能够旋转、平移和缩放这些对象。
我已经完成了所有界面的设置,并且运行良好。但是我在渲染时遇到了问题。
我已经获取了一个 obj 文件,并检查了所有数组的元素数量是否正确,我什至使用 chromes webgl 调试插件进行了检查,结果显示数组匹配(甚至元素值匹配)。
顶点数:10932 指数数量:18960
无论如何当我运行 gl.drawElements(gl.TRIANGLES, numItems, gl.UNSIGNED_SHORT, 0); 我没有收到 chrome 错误,但在 webgl 插件调试中我得到“INVALID_OPERATION”,没有其他信息。
我发现通过将 numItems(通常是索引数 / 18960)更改为低得多的数字,它会呈现一个茶壶(有点错误)。由于某种原因,幸运数字是 11034,如果我超过这个,它不会渲染,如果我低于它会渲染我稍微错误的茶壶。我需要这个数字才能真正成为索引的全部数量,因为显然我无法对数字进行硬编码。
所以对于我的完整调试代码,我对为什么会发生这种情况感到非常困惑: http://webdesignscript.net/assignment/graphics_a3/
渲染部分代码: http://webdesignscript.net/assignment/graphics_a3/scripts/webglengine.js
已加载的茶壶模型: http://webdesignscript.net/assignment/graphics_a3/models/teapot.obj
干杯,乔什
【问题讨论】:
标签: google-chrome 3d render webgl