Javascript 如何创建自定义的3.0网格标准材质?
我希望创建一个与MeshStandardMaterial相同的具有三个.js的材质。 我之所以想这样做,是因为我需要它的所有特性,除了对GLSL代码的一些小更改 我尝试使用ShaderMaterial重新创建MeshStandardMaterialJavascript 如何创建自定义的3.0网格标准材质?,javascript,three.js,Javascript,Three.js,我希望创建一个与MeshStandardMaterial相同的具有三个.js的材质。 我之所以想这样做,是因为我需要它的所有特性,除了对GLSL代码的一些小更改 我尝试使用ShaderMaterial重新创建MeshStandardMaterial WAFFLE.StandardMaterial = function( parameters ) { parameters.uniforms = THREE.UniformsUtils.merge( [ THREE.UniformsLib.
WAFFLE.StandardMaterial = function( parameters ) {
parameters.uniforms = THREE.UniformsUtils.merge( [
THREE.UniformsLib.common,
THREE.UniformsLib.aomap,
THREE.UniformsLib.lightmap,
THREE.UniformsLib.emissivemap,
THREE.UniformsLib.bumpmap,
THREE.UniformsLib.normalmap,
THREE.UniformsLib.displacementmap,
THREE.UniformsLib.roughnessmap,
THREE.UniformsLib.metalnessmap,
THREE.UniformsLib.fog,
THREE.UniformsLib.lights,
{
emissive: { value: new THREE.Color( 0x000000 ) },
roughness: { value: 0.5 },
metalness: { value: 0 },
envMapIntensity: { value: 1 } // temporary
}
] );
parameters.vertexShader = THREE.ShaderChunk.meshphysical_vert;
parameters.fragmentShader = THREE.ShaderChunk.meshphysical_frag;
THREE.ShaderMaterial.call( this, parameters );
}
WAFFLE.StandardMaterial.prototype = Object.create( THREE.ShaderMaterial.prototype );
WAFFLE.StandardMaterial.prototype.constructor = WAFFLE.StandardMaterial;
到目前为止我还没有成功
如何重新创建MeshStandardMaterial?您可以按照WestLangley的建议进行,但我认为这将改变MeshStandardMaterial的att实例