将数据发送到每个索引的着色器(不是每个顶点)

时间:2017-08-29 10:08:38

标签: indexing three.js webgl fragment-shader

我有一些节点和边具有相同的位置属性。 我想在click事件中更改边缘的颜色,并使用float vertex属性在片段着色器中进行检查激活,如果是1,我会将该片段着色为红色。 但是我有一个问题,想象一个三角形,当我选择它的两个边时,所有三个顶点的活动属性变为一个,此时第三个边将变为红色,因为它的两个顶点都是活动的。

所以我想要一种方法来设置每个索引的属性,然后我可以独立地将它们用于任何边缘。可能吗?如何?

编辑

我的输入是这样的:

pos : [x0,y0,z0 , x1,y1,z1 , x2,y2,z2] // should use with indexing
index for pos : [0,2 , 1,2 , 0,1]
active [0,1,1,0,1,0] // should not use with indexing

通过提供这些输入,我想要一些像这样的输出

pos : [x0,y0,z0 , x2,y2,z2 , x1,y1,z1 , x2,y2,z2 , x0,y0,z0 , x1,y1,z1]
active : [0,1,1,0,1,0]

提前致谢

1 个答案:

答案 0 :(得分:0)

这是不可能的 - 顶点在着色时没有连接信息。