Javascript 从性能角度来看,调用bufferData是否比UniformMatrix x3fv更糟糕?
在WebGL中绘制矩形时,有两种主要方法:Javascript 从性能角度来看,调用bufferData是否比UniformMatrix x3fv更糟糕?,javascript,performance,webgl,Javascript,Performance,Webgl,在WebGL中绘制矩形时,有两种主要方法: 创建一个单位四边形,将其上传到GPU一次,然后在绘图时,传入一个与单位四边形相乘的变换矩阵。这涉及使用转换矩阵调用uniformMatrix3fv 只需创建组成四边形的两个三角形的所有点的数组(在世界坐标中),然后在绘制时使用bufferData将其上载到着色器 这两种解决方案在性能方面与我听起来非常相似,因为它们似乎都只是将大约40个字节从CPU传递到GPU,但随后我阅读了Mozilla文章的这一部分: 避免在生产中阻塞API调用(例如getEr
uniformMatrix3fv
bufferData
将其上载到着色器
bufferData
,而没有提到uniformMatrix3fv
。这是否意味着从性能角度来看,前者更糟糕?我需要在我的draw
函数中调用其中一个函数,这两个函数可以共同产生相同的输出。我认为这两种方法之间并没有太大区别,但这似乎意味着bufferData
比uniformMatrix3fv
糟糕得多,因为前者需要调用getError
,这会导致同步往返暂停
我读对了吗?如果是这样的话,人们是否更愿意使用uniformMatrix3fv
而不是bufferData
来渲染四边形呢?我在前面的一个问题上给出的方法也适用于这里。由于多种原因,制服可以更快地通过缓冲区进行同步,无论哪种方式,您都很少希望为每个四边形发出单独的绘制调用,但最重要的是,您不希望过早地进行优化。