Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js着色器材质不';t显示粒子_Javascript_Three.js_Shader - Fatal编程技术网

Javascript Three.js着色器材质不';t显示粒子

Javascript Three.js着色器材质不';t显示粒子,javascript,three.js,shader,Javascript,Three.js,Shader,我有一个非常基本的场景,包括一个立方体形状的粒子网格。你可以在这里找到它: 我的问题是,如果使用着色器材质,则无法显示粒子。以下是我的(非常简单)着色器代码: <script type = 'x-shader/x-vertex' id = 'vertexShader'> void main() { gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0); } </script>

我有一个非常基本的场景,包括一个立方体形状的粒子网格。你可以在这里找到它:

我的问题是,如果使用着色器材质,则无法显示粒子。以下是我的(非常简单)着色器代码:

<script type = 'x-shader/x-vertex' id = 'vertexShader'>
void main() {
    gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0);
}
</script>

<script type = 'x-shader-x-fragment' id = 'fragmentShader'>
void main() {
    gl_FragColor = vec4( 1.0, 0.0, 1.0, 1.0 );
}
</script>
我注意到,如果我注释掉“材质”行,材质将默认为“PointsMaterial”,粒子将显示。此外,粒子的颜色也会受到着色器代码的影响,即使我觉得我还没有将它们链接在一起


如何使用着色器材质显示粒子?

您需要在顶点着色器中设置
gl\u PointSize

<script type = 'x-shader/x-vertex' id = 'vertexShader'>
void main() {
    vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 ); 
    gl_PointSize = 1.0 * ( 300.0 / -mvPosition.z ); 
    gl_Position = projectionMatrix * mvPosition;
}
</script>

void main(){
vec4 mvPosition=modelViewMatrix*vec4(位置,1.0);
gl_PointSize=1.0*(300.0/-mvPosition.z);
gl_位置=投影矩阵*mvPosition;
}
<script type = 'x-shader/x-vertex' id = 'vertexShader'>
void main() {
    vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 ); 
    gl_PointSize = 1.0 * ( 300.0 / -mvPosition.z ); 
    gl_Position = projectionMatrix * mvPosition;
}
</script>