2013-03-13 7 views
1

Итак, для моей местности у меня есть шейдер, чтобы смешивать несколько текстур вместе (например, трава, песок, камни). Все это работает хорошо, но единственная проблема заключается в том, что шейдер не совместим с движком освещения Three.js, все вершины просто ярко освещены. Я могу вручную подсчитать некоторое освещение, как солнце/луна, но было бы неплохо, если бы я мог просто использовать движок освещения Three.js с моим шейдером. Есть ли способ объединения, например. шейдер материала lambert (который использует освещение Three.js) с моим пользовательским шейдером?Ландшафтный шейдер, который поддерживает освещение по умолчанию

ответ

2

Что вы можете сделать, это установить ShaderMaterial.lights на true. Вам все равно придется самостоятельно выполнять расчеты освещения, но у вас будет доступ, через форму, к огню, который вы создаете.

См, например, http://mrdoob.github.com/three.js/examples/webgl_materials_normalmap.html

Пример Источник: https://github.com/mrdoob/three.js/blob/master/src/renderers/WebGLShaders.js

Three.js R.56

+0

Пожалуйста, помните, чтобы "принять" ответы, нажав на флажок. Спасибо. – WestLangley

Смежные вопросы