用途:在 React Three Fiber(R3F)中为网格设置表面外观,包括颜色、纹理、反射、透明与自定义着色器效果。
主要能力:覆盖内置材质对比(MeshBasicMaterial、MeshStandardMaterial、MeshPhysicalMaterial、MeshLambertMaterial、MeshPhongMaterial、MeshToonMaterial、MeshNormalMaterial、MeshDepthMaterial),PBR 属性(metalness、roughness、normalMap、aoMap、displacementMap、emissive、envMap 等),Physical 的 clearcoat、transmission、ior、sheen、iridescence,Toon 的 gradientMap,以及所有材质的通用属性(transparent、opacity、alphaTest、side、depthTest、blending 等)。支持 ShaderMaterial 自定义 GLSL、RawShaderMaterial、uniforms 类型与动画、共享 uniforms、材质扩展与性能建议。
用法:内置材质以 JSX 形式写在 mesh 内,例如 <meshStandardMaterial color="hotpink" metalness={0.8} roughness={0.2} />;纹理用 @react-three/drei 的 useTexture 加载;自定义着色器写 vertexShader 与 fragmentShader,通过 ref 在 useFrame 中更新 uniforms,如 materialRef.current.uniforms.uTime.value = clock.elapsedTime;可用 shaderMaterial 与 extend 注册自定义材质。
适用场景:需要 UI 无光照材质、通用 PBR、玻璃与车漆、卡通描边、调试法线或深度,以及自定义动画/渐变/菲涅尔/溶解等着色器效果时。
限制:资料未提供安装命令、版本要求与收费信息,暂未提供。自定义着色器需自行处理 uniform 更新与性能开销;RawShaderMaterial 需手动声明所有 attribute 与 uniform。