2015-04-16 1 views
0

Я в настоящее время использую Three.js, версия 71. Сначала я создаю свои модели с помощью блендера, а затем экспортирую их как файл JSON. Затем я использую THREE.JSONLoader для загрузки моделей в мою сцену, используя следующее:Three.js - Загрузите модель с материалом, для которого не требуется источник света.

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

Список материалов содержит только THREE.MeshPhongMaterial индекс 0. Этот материал кажется, требует источника света (например, THREE.SpotLight например), чтобы быть в моей сцене. В противном случае моя модель будет черной.

Я просто хочу иметь возможность загружать свои модели и не использовать источник света, чтобы их видеть. Таким образом, у меня есть следующие вопросы, и ответы на любой из них будет решить мою проблему:

  1. Есть ли флаг или недвижимость в THREE.MeshPhongMaterial Я мог бы изменить, что позволило бы моя модель будет рассматриваться без источник света?
  2. Если номер 1 невозможен, существует ли способ использования THREE.JSONLoader, чтобы дать мне другой вид материала, который не нуждается в источнике света? Например, как THREE.MeshBasicMaterial?
  3. Есть ли способ экспортировать мои модели из блендера, у которого уже есть необходимые флаги/свойства (если возможно)?

Похоже, у меня та же проблема, что этот парень упоминает в следующей ссылке, но он никогда не получил ответ: Switch lighting of THREE.MeshPhongMaterial on/off dynamically

ответ

0

-не знает, думает, не

-да

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 можно установить тип материала на сетке перед экспортом, или вы можете редактировать материальные переменные в экспортируемый файл

EDIT: Или самый глупый способ, можно редактировать материал в опубликованном Json File, обсуждая этот ответ.

+0

Для # 2, который удалит текстуру из модели. Есть ли способ конвертировать THREE.MeshPhongMaterial в THREE.MeshBasicMaterial или любые другие? Если нет, есть ли способ установить мою текстуру в THREE.MeshBasicMaterial или любые другие? –

+0

Я думаю, что невозможно преобразовать материалы, только для замены. Вы можете определенно установить материал в файле JSON, в блендере это в материальных пропорциях в разделе THREE ... – Martin

+0

Можно ли сделать снимок экрана из этих опций и поставить их под ответ 3 в своем посте? К сожалению, я не могу найти эти параметры в любом из разделов THREE в блендере (тот, который находится внизу справа при редактировании вашей модели, и тот, который находится слева, когда вы собираетесь экспортировать свой файл JSON). –