threejs中使用ShaderMaterial添加两步颜色点

Add two step colors to point using ShaderMaterial in threejs

我正在为 three.js 中的 shadermaterial 编写着色器。

我想为一个点添加颜色,使其边框为黑色,内部填充颜色应为原始顶点颜色(例如红色)。

这可以通过使用纹理来完成,但我不想使用纹理。 我应用了 gl_PointSize 来增加点数。

有什么办法吗??

试试这个 fiddle 中的方法:https://jsfiddle.net/f2Lommf5/14545/

想法是使用step()函数为每个点生成一个尖锐的矩形边框。您可以通过更改函数的第二个参数来更改边框的粗细。

vec2 c = abs( gl_PointCoord - vec2( 0.5 ) ) * 2.0; // move origin to center
float f = step( c.x, 0.6 ) * step( c.y, 0.6 );