Three.js - 使用 material 加载不需要光源的模型

Three.js - Load a model with material that doesn't require a light source to be seen

我目前正在使用 Three.js、版本 71。我首先使用搅拌机创建我的模型,然后将它们导出为 JSON 文件。然后我使用 THREE.JSONLoader 使用以下命令将模型加载到我的场景中:

this.jsonLoader.load(pathToModelFile, function(geometry, materials) {
  //...
});

materials 列表仅包含索引 0 处的 THREE.MeshPhongMaterial。此 material 似乎需要光源(如 THREE.SpotLight 例如)在我的场景中。不然我的模型就黑了。

我基本上只想能够加载我的模型,而不需要使用光源才能看到它们。因此,我有以下问题,回答其中任何一个都可以解决我的问题:

  1. THREE.MeshPhongMaterial 中是否有一些标志或 属性 我可以更改它以使我的模型在没有光源的情况下也能看到?
  2. 如果数字 1 不可能,有没有办法使用 THREE.JSONLoader 给我另一种 material需要光源吗?比如像THREE.MeshBasicMaterial?
  3. 是否有某种方法可以从已经具有所需 flags/properties 集(如果可能)的搅拌机中导出我的模型?

听起来我遇到了这个人在下面提到的问题 link,但他从未收到答复:Switch lighting of THREE.MeshPhongMaterial on / off dynamically

1 不知道,认为不是

2 是

var jsonLoader = new THREE.JSONLoader();
jsonLoader.load(model, addthree1ToScene);

function addthree1ToScene( geometry, materials ) 
  {


  material = new THREE.MeshBasicMaterial(blahblah);


  three1 = new THREE.Mesh( geometry, material );
  scene.add( three1 );
  console.log(three1);

 }

3 是的,在 Blender 中您可以在导出前在网格上设置 material 类型,或者您可以在导出文件中编辑 material 变量

编辑: 或者最愚蠢的方式,可以通过讨论这个答案来编辑 Material expoted Json 文件。