0

TWGL公司,为什么我必须首先将缓冲区信息传递给设置缓冲区和属性然后再传给drawBufferInfo(提取缓冲信息)? 我对WebGL很陌生,只是试图理解管道,为什么这两个调用是分开的,在哪种情况下,我会先设置缓冲区信息,然后在绘制之前做其他事情,或者根本不绘制它,或者绘制不同的缓冲区信息?

1答案1

重置为默认值
2

为什么是这两个单独的调用,在哪种情况下,我会首先设置缓冲区信息,然后在绘制之前执行其他操作,或者根本不绘制它,或者绘制不同的缓冲区信息?

最常见的原因是画出许多相同的东西。

twgl.setBuffersAndAttributes(gl,someProgramInfo,some BufferInfo);//由投影或视图等所有实例共享的制服twgl.setUniforms(…);对于每个实例//独特的制服,例如材质、纹理或世界矩阵twgl.setUniforms(…);twgl.drawBufferInfo(…);

twgl.drawBufferInfo唯一能做的就是调用gl.draw阵列gl.draw元素它需要的唯一信息是

  1. 绘制计算为要处理的顶点数
  2. 数据是否被索引(换句话说,它应该调用gl.drawArrays还是gl.draw Elements
  3. 如果是指数,是什么类型的指数,未指定的字节未指定_暂停,或未指定_INT

它的唯一目的是使您不必更改代码gl.draw阵列gl.draw元素如果将数据从非索引更改为索引,则反之亦然

0

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问自己的问题.