0

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

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

材质列表仅包含索引 0 处的THREE.MeshPhongMaterial。此材质似乎需要一个光源(例如THREE.SpotLight)才能在我的场景中。否则,我的模型将是黑色的。

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

  1. THREE.MeshPhongMaterial中是否有一些标志或属性可以更改以允许在没有光源的情况下看到我的模型?
  2. 如果数字 1 是不可能的,有没有办法使用THREE.JSONLoader给我一种不需要光源的不同材料?例如,像THREE.MeshBasicMaterial
  3. 有什么方法可以从已经设置了所需标志/属性的搅拌机中导出我的模型(如果可能的话)?

听起来我遇到了这个人在以下链接中提到的相同问题,但他从未收到答案:动态切换 THREE.MeshPhongMaterial 的照明

4

1 回答 1

0

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中你可以在导出之前在网格上设置材质类型,或者你可以在导出的文件中编辑材质变量

编辑:或者最愚蠢的方式,可以通过讨论这个答案来编辑导出的 Json 文件中的材料。

于 2015-04-16T12:09:46.177 回答