Aframe A帧环境光不适用于gltf模型

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

我用glft尝试了一个简单的aframe演示

<!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中的金属因子会有帮助吗?谢谢你那会很有帮助的谢谢你那会很有帮助的