Я использую Warcraft/Age of Empires «Fog of War», написав класс Filter и соответствующее определение материала JME с помощью вершинного и фрагментарного шейдеров.JMonkey Filter Shader - получить World Position of Fragment
Я смог очень легко понять это, теперь я могу теперь затенять весь экран.
Но я снова застрял в вычислении, где данный фрагмент находится в мире.
Итак, как это можно сделать?
Зачем мне это нужно, в основном у меня есть текстура (32x32), чтобы затемнить мир в определенных местах на основе альфа-канала текстуры.
0,0 по текстуре будет соответствовать 0,0,0 в мире. С учетом «карты мира или местности» размером 100 100.
Фрагменты уже находятся в пространстве проекции, принимая в качестве позиции экрана ввода. Вы ищете World Space, который используется в процессе затенения с помощью Vertex Shader. Вам придется работать в обратном направлении через эти прогнозы, может быть намного проще работать с вашей оригинальной геометрией. Для получения дополнительной информации см .: http://wiki.jmonkeyengine.org/doku.php/jme3:advanced:jme3_shaders –