Three.js отключить освещение

Я хочу полностью отключить освещение в three.js и визуализировать 3D-объект. В настоящее время, поскольку освещение активно в той или иной форме, объект кажется полностью черным. В настоящее время в моей программе нет вызовов какого-либо освещения, и я не смог найти решение с помощью поиска.

Изменить: код

var white = 0xFFFFFF;

var facemat = new THREE.MeshBasicMaterial( { color: white, opacity: 1.0, shading: THREE.FlatShading } );

vrmlLoader.addEventListener('load', function ( event ) {
    var object = event.content;
    object.material = facemat;
    scene.add(object);
});

vrmlLoader.load("ship.wrl");

На мои вопросы по этому конкретному посту в основном ответили. Если я буду спрашивать больше, я буду вести этот пост не по теме.


person NAME__    schedule 13.05.2014    source источник
comment
Как вы представляете себе конечный результат?   -  person Nikola Dimitroff    schedule 14.05.2014
comment
@Nikola Dimitroff Полностью белая незатененная модель.   -  person NAME__    schedule 14.05.2014


Ответы (1)


Затенение/освещение позаботятся о том, чтобы нарисовать объект таким образом, чтобы вы могли ощутить его глубину. На вашем примере изображения затенение отключено - нет глубины, объект везде одинаков - вы не можете различить его части.

Теперь должно быть совершенно очевидно, что вы не можете рисовать без цвета — точно так же, как вы не можете рисовать на листе бумаги без карандаша или любого другого инструмента. То, что вы видите, это просто ваш объект, нарисованный черным цветом. То, что вы хотите увидеть, это ваш объект, нарисованный белым, что почти то же самое, но если вы сделаете это сейчас, вы ничего не увидите, так как ваш фон белый!

В любом случае, после этих разъяснений, вот инструкция:

  1. Измените цвет фона вашего средства визуализации на белый:

    renderer.setClearColor(0, 1)

  2. Измените цвет вашего объекта, изменив его материал:

    object.material = new THREE.MeshBasicMaterial(0xFFFFFF)

person Nikola Dimitroff    schedule 13.05.2014
comment
Я проверил ваши идеи, и они, кажется, указывают на то, что освещение каким-то образом включено в three.js. Хотя у меня установлен сплошной белый материал, а чистый цвет — черный, модель по-прежнему отображается сплошным черным цветом. - person NAME__; 14.05.2014
comment
Извините, что ввел вас в заблуждение, я считаю, что вы правы. Однако теперь вы можете вернуть свое освещение, так как THREE.MeshBasicMaterial обеспечивает желаемый эффект — он не будет отображать никаких линий, и вы не увидите восприятия глубины. Вы можете проверить это в редакторе three.js. Импортируйте меш из меню File, выберите его, затем на правой панели выберите Material -> MeshBasicMaterial. - person Nikola Dimitroff; 14.05.2014
comment
Как ни странно, в вашем редакторе three.js моя модель работает и рендерится нормально. Кажется, это просто не отображается в моем коде. Я опубликую сумму, с которой у меня возникли проблемы, в основном посте. Моя модель все еще отображается черным цветом. - person NAME__; 14.05.2014
comment
После загрузки модели у всех граней индекс материала равен 0? object.geometry.faces.forEach(function (face) { console.log(face.materialIndex) }) должен печатать миллион нулей и ничего больше. Если нет, вам нужно установить его вручную (face.materialIndex = 0;) - person Nikola Dimitroff; 14.05.2014