如何为每个WebGL三角形设置单独的颜色
How to set individual color to every WebGL triangle?
我有一个片段着色器:
uniform vec4 zz_color;
void main(void) {
gl_FragColor = zz_color;
}
我在JS代码中设置了这个颜色:
ccc = gl.getUniformLocation(this.program, "zz_color"); // 1 time
gl.uniform4f(ccc, r, g, b, 1); // on animation frame
但我用100000个三角形画了50000个矩形:
gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.my_vertices_data);
gl.drawArrays(gl.TRIANGLES, 0, 6 * number_of_vertices);
并且希望每个都有单独的颜色。
我的问题是:片段着色器如何(可以吗?)获得当前片段的某种索引(着色器在NOW上工作),以便能够从某个数组中拾取颜色(该数组将为每个片段包含一种颜色)?
(100000个碎片(三角形)内存太多,着色器代码中无法有数组,但100个碎片呢?)
向GPU发送一个附加属性,即三角形的颜色。顶点着色器然后将其发送到片段着色器作为变化。Webgl不允许在片段着色器中进行动态索引。
相关文章:
- 谷歌图表堆叠柱状图.如何设置每个单独堆叠项目(数据系列)的样式
- 使用highcharts为条形图中的每个条形设置单独的颜色
- 为什么动画设置加载在TweenMax中的两个单独的对象文字中
- 根据Angular中的单独变量设置下拉默认值
- 通过单独的js文件设置HTML值
- 单独设置 D3 中的多个轴的格式
- 使用 addEventListener 在 JavaScript 中设置单独的函数参数以具有唯一的 ID
- 如何设置图像数组并单独循环浏览它们
- $parent变量在ng-include上从单独的控制器设置时已损坏
- 将数组的最后一个元素设置为单独的String,然后删除所述元素
- Gmaps Api 3为阵列中的标记设置单独的图标
- 如何为每个WebGL三角形设置单独的颜色
- 颜色选择器在JQuery中分别设置单独的属性
- 如何设置内容和左菜单的单独滚动
- 我正在尝试为一组地址设置不同的标记.我想要一个单独的信息窗口.我没有得到信息窗口
- 如何根据鼠标点击单独的图片库设置jCarousel的起始图片
- 根据单独数组中的值设置数组的值[Angular,forEach]
- express应用程序设置存储在单独的文件中
- 在一个单独的文件中,在任何React组件中设置setState
- 如何在使用Object.create时设置单独的私有变量