2013-10-22 41 views
0

我已经编写了一个使用WebGL显示模型的程序。该程序从XML获取输入数据(-vertices,indices,color)并且工作得很好。但是,在绘制模型之前,需要花费一些时间(浏览器无响应)来加载顶点数据。一旦它获得了数据,就好像该模型在桌面应用程序中被操纵一样。如何在WebGL中流化顶点?

顶点数据发送到程序时,如何能够绘制模型(一步一步地)?这可以在顶点被馈送时缓慢地显示模型。为了方便起见,我有这样的程序,我没有使用索引数组。根据索引数据将顶点排列在顶点数组中。所以,我可以自动使用gl.drawArrays而不使用gl.drawElements(原因是 - 对于颜色)。

那么,最后是否有渐进渲染的方法?以便代码在顶点进入时对其进行流式处理?我看过 http://webgl-loader.googlecode.com/svn/trunk/samples/happy/happy.html中渐进渲染的例子,并在Three.js中读取类似的东西。我没有使用像Three.js这样的框架。

如果您有一个简单的渐进式渲染示例程序,这将有所帮助。

+0

嗨!最后,你是否也达成了解决方案?如果是这样,任何指针将不胜感激 –

回答

0

在将t传输到GPU之前,您可以使用JavaScript“onload”事件处理程序等待,直到您下载了所需的所有数据。我也可以建议使用XMLHttpRequest对象来异步加载来自网络的数据;也许这是一个更好的选择。

在开始时,当您还没有顶点数据时,您可以用一些“临时”数据(例如立方体)初始化缓冲区。而不是在数据加载机制的onload/oncomplete处理程序中替换它。

+0

感谢您的答复。我在我的代码中已经使用了XMLHttpRequest。它被写入一个函数,该函数接受一个输入参数,即文件名(基本上是url)。调用这个函数完全从xml加载数据,然后执行WebGL命令。它不会在每行之后刷新顶点。你有一个我可以参考的现有简单例子吗? – grajesh