Webgl 用两个不同的 vbo 绘制两个不同的几何形状
Webgl drawing two different geometries with two different vbo
>假设你有一个vbo数组。您首先创建,绑定和填充,然后与其他创建,绑定和填充。
在绘制时,您可以重新绑定它们并定义 gl 必须如何使用属性点提取数据。
如果我用所有几何形状填充一个缓冲区,我的代码工作正常,但现在我想为每个几何体尝试单独的缓冲区。
根据我所读到的内容,最后,当所有状态机都设置好时,你只能调用一次drawArrays(例如在draw循环中(。
问题是每个vbo都有不同数量的顶点,所以我对什么参数感到困惑在绘制阵列处传递:
gl.drawArrays(gl.TRIANGLES, 0, THIS PARAMETER SHOULD TAKE CARE OF THE NUMBER OF VERTICES);
我尝试将每个缓冲区的顶点计数相加,但这给了我一个超出范围的索引错误。但是我如何处理每个 vbo 都有不同数量的顶点而我们必须在绘制循环中只使用(或至少我认为是这样(一个绘制调用的事实?
编辑:我已经设法让它为每个vbo调用绘图数组。我仍然不确定这是否是最佳解决方案。
您应该为执行的每组绑定调用 drawArray(每个几何体一次(。
更优化的解决方案是使用 VertexArrayObject,然后收集以下绑定:
对于每个网格,您可以像这样绑定:
vao = gl.createVertexArray();
gl.bindVertexArray(vao);
//gl.bindAttribute calls
gl.bindVertexArray(null);
然后,在为每个网格绘制时,您可以执行以下操作:
gl.bindVertexArray(mesh.vao);
gl.drawArrays(gl.TRIANGLES, 0, mesh.pointCount);
gl.bindVertexArray(null);
相关文章:
- JQuery合并了keyup和focusout两个函数
- 如何使用 node.js 比较两个 json 数组
- 为复选框javascript指定两个值
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 单击时切换两个图像
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 基于两个条件退出While循环
- 如何在这里将两个值最低的数字相加
- 组合两个javascript函数
- 如何使用offer/answer交换来自两个对等连接的流
- jsf中两个字符串的颜色代码差异
- 加载两个具有相同父密钥名称的json文件
- 在Qualtrics中,介绍如何动态连接两个滑块
- 访问$.ajax()函数中的两个不同数组
- 如何在three.js上添加两个向量
- 是否可以在单个html文件中添加两个谷歌地图API(绘图和几何)
- Webgl 用两个不同的 vbo 绘制两个不同的几何形状
- Highstock.js:无法创建具有两个堆积柱形图的多窗格图表,一个是“正常”,另一个是“百分比”
- 如何使用three.js链接两个几何对象
- 如何将两个指令结合使用-angular translate&角截形