reactjs - 如何将材料分配给 GLTF react-three-fiber
问题描述
我已经设法将一个 gltf 对象加载到我的 react-three-fiber 场景中。现在我想将材料附加到我的模型上。是否可以在此模型上使用标准材料?这是我尝试过的:
const Shape = (props) => { const gltf = useLoader(GLTFLoader, GLTFfe)
const material = new THREE.MeshStandardMaterial({
color: 0xff0000,
transparent: false, opacity: 0.5
});
const object = new THREE.Mesh(gltf, material)
return <primitive object={object.scene} position={[0, 0, 0]} />
}
解决方案
是否可以在此模型上使用标准材料?
MeshStandardMaterial
是加载对象时的默认材质GLTFLoader
。您可能不必创建新材料,只需修改现有材料即可。
由于 glTF 资产始终由对象层次结构组成,因此您需要这样做:
gltf.scene.traverse( function( object ) {
if ( object.isMesh ) {
object.material.color.set( 0xff0000 );
object.material.transparent = true;
object.material.opacity = 0.5;
}
} );
推荐阅读
- kubernetes - Kubernetes(Minikube):客户端和服务器之间的链接
- wordpress - 如何通过单点登录将 Alfresco 与 Wordpress 集成?
- node.js - 无法使用单个 HTTP 帖子保存到多个集合
- django - 对于混合大小写的应用程序名称,Django 中不存在关系“”
- python - matplotlib - 分散和绘图看起来很奇怪
- python - 如何提示返回调用它的派生类实例的基类函数?
- c# - 使单击的按钮重定向到特定页面
- r - 包设计:如何防止 R 不必要地加载 sp 包?
- token - 使用 usb uuid 作为集中式 2FA 服务器的令牌
- reactjs - 如何使用 gl-react-native 实现这种效果?