Aframe A帧环境光不适用于gltf模型
我用glft尝试了一个简单的aframe演示Aframe A帧环境光不适用于gltf模型,aframe,Aframe,我用glft尝试了一个简单的aframe演示 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Test</title> <script src="../../../dist/aframe-master.js"></script> <script sr
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
<script src="../../../dist/aframe-master.js"></script>
<script src="js/aframe-extras.loaders.min.js"></script>
</head>
<body>
<a-scene >
<a-entity light="type: ambient; intensity: 0.2"></a-entity>
<a-entity
gltf-model="assets/cow02.glb"
scale="100 100 100"
rotation='0 0 0'
animation="property: rotation; to: 0 360 0; loop: true; dur: 20000"
position="-2 1 -5"
>
</a-entity>
</a-scene>
</body>
</html>
试验
现在的问题是这个氛围灯不工作,我的意思是添加这个灯后没有任何变化。我不确定如何决定使用什么材料,但似乎您的模型材料足够简单,可以解释为。根据文件-它不受任何灯光的影响
如果您设置金属度、粗糙度,添加法线贴图,加载程序可能会使用(或任何其他受照明影响的属性)
如果要使用three.js更改材质,可以编写如下组件:
// wait until the model is loaded
this.el.addEventListener("model-loaded", e => {
// grab the mesh
let model = this.el.getObject3D("mesh");
// find the node with the basic material
model.traverse(function(node) {
// ignore bones and other nodes without any material
if (!node.material) return;
// keep the reference to the old material - we want to dispose it later
var tmp = node.material
// substitute the material
node.material = new THREE.MeshStandardMaterial({
skinning: true, // the original material is using skinning
map: node.material.map // we want the original texture
});
// update and clean up
node.material.needsUpdate = true;
tmp.dispose()
}
})
查看。我不确定如何决定使用何种材质,但您的模型材质似乎足够简单,可以解释为一种。根据文件-它不受任何灯光的影响
如果您设置金属度、粗糙度,添加法线贴图,加载程序可能会使用(或任何其他受照明影响的属性)
如果要使用three.js更改材质,可以编写如下组件:
// wait until the model is loaded
this.el.addEventListener("model-loaded", e => {
// grab the mesh
let model = this.el.getObject3D("mesh");
// find the node with the basic material
model.traverse(function(node) {
// ignore bones and other nodes without any material
if (!node.material) return;
// keep the reference to the old material - we want to dispose it later
var tmp = node.material
// substitute the material
node.material = new THREE.MeshStandardMaterial({
skinning: true, // the original material is using skinning
map: node.material.map // we want the original texture
});
// update and clean up
node.material.needsUpdate = true;
tmp.dispose()
}
})
查看。查看,这也是一个小故障会有帮助:)首先谢谢,这是要比较的,我添加了一个平面,所以更改blender中的金属因子会有帮助吗?查看,这也是一个小故障会有帮助:)谢谢,首先这是要比较的,我添加了一个平面,所以更改blender中的金属因子会有帮助吗?谢谢你那会很有帮助的谢谢你那会很有帮助的