Webgl2:如何在一个drawArrays调用中的一个缓冲区中设置不同的颜色

问题描述

我正在尝试使用webg2和javascript渲染100K到1M的矩形。为此,我要做一个一个缓冲区,并给一个 drawArray调用,它只带有一个RGBA颜色阵列。我将在下面附加我的drawSHape函数代码段。

// This function is used to draw any shape provided coordinates,colour and drawing mode.

const drawShape = (coords,color,drawingMode) => {
  let numberOfDies = 0;
  renderingdata = coords;
  numberOfDies = renderingdata.length / 12;
  console.log("DieWidth:",dieWidth,"DieHeight",dieHeight);
  console.log("Rendering Dies:",numberOfDies);

  // Step 3
  let data = new Float32Array(renderingdata);
  let buffer = utils.createAndBindBuffer(
    gl,gl.ARRAY_BUFFER,gl.STATIC_DRAW,data
  );

  // Step 4
  gl.useProgram(program);
  utils.linkGPUAndCPU(
    {
      program: program,buffer: buffer,dims: 2,gpuVariable: "position",},gl
  );

  let reticleColor = gl.getUniformLocation(program,"reticleColor");
  gl.uniform4fv(reticleColor,color);

  // Step 5
  gl.drawArrays(drawingMode,renderingdata.length / 2);
};

问题是我无法绘制100k到1M不同颜色的矩形。我应该如何以最优化的方式为矩形/目标设置/提供不同的颜色

作为参考,我附上了屏幕截图。

Rectangles in different colours

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...