Three.js 在哪里设置材质的默认着色器?

Aet*_*lus 2 javascript shader three.js

我试图在创建 Three.js 材质后追踪片段和顶点着色器的确切设置位置,但运气不佳。使用粒子系统材质,我有

material = new THREE.ParticleSystemMaterial();
console.log(material);
Run Code Online (Sandbox Code Playgroud)

查看 Firefox 中的开发者控制台,我可以看到fragmentShader两者vertexShader都设置为默认值:

浏览器控制台中的对象属性

但是,我很好奇这些值从哪里来。从ParticleSystemMaterial.jsMaterial.js的源代码中追溯,我没有看到任何明确说明这些着色器设置位置的内容。我假设它们在某个时候从ShaderLib.js中提取,但是两个源代码中似乎都没有表明这一切已经完成。

有人对此有任何想法吗?

Wes*_*ley 5

的着色器ParticleSystemMaterial是,可以在源文件和THREE.ShaderLib[ 'particle_basic' ]中找到。ShaderLib.jsShaderChunk.js

材质到着色器的分配可以在WebGLRenderer.initMaterial()中的方法中找到WebGLRenderer.js

三.js。67号

注意:PaticleSystem正在重命名为PointCloud,并且在 r.68dev 中PaticleSystemMaterial正在重命名为PointCloudMaterial