2013-02-19 4 views
1

У меня есть небольшой блок-движок, похожий на очень раннюю версию Minecraft с использованием LWJGL. Теперь я хочу реализовать освещение. Я понимаю , как работает. Я просто смущен тем, как я должен делать освещение. Я должен изменить «яркость» текстуры, чтобы имитировать яркую местность? Я спрашиваю, как на самом деле изменить световое значение квадроцикла, может быть, есть некоторые уроки? Я хочу, чтобы он был блочным, без плавного освещения. Я понял, что блоки должны иметь световое значение, а для каждого блока рядом с ним вы уменьшаете значение этого света немного до его «черного».Рендеринг освещения

+0

До или после [Бета 1.8] (http://www.minecraftwiki.net/wiki/Light#Beta_1.8_-_1.3.2) освещения? – genpfault

+0

pre предпочтительно. В любом случае это хорошо, но –

ответ

0

(по крайней мере) два варианта, при условии фиксированной функции визуализации:

  1. Использование одной текстуры (. Ваши основные текстуры атлас, с присвоенным GL_MODULATE texenv в) и установить за вершину серо- чтобы затемнить текстуру пропорционально уровню освещенности. С GL_MODULATE текстуры RGB-каналов умножаются на RGB-каналы с вершинами цвета. Таким образом, полный цвет RGB (255,255,255) будет полностью освещен, RGB (0,0,0) будет чистым, а RGB (128,128,128) будет где-то посередине.

  2. Используйте две текстуры (внешний атлас и атлас световой карты) и мультитекстуры. Уровень освещенности задается для заданного лица, поставляя текстурные координаты, которые выбирают соответствующий квадрат световой карты. Если вы анимируете световую карту, вы можете получить дневной/ночной цикл «бесплатно» без необходимости перебирать весь том, фиксируя вершинные цвета, например, в # 1.

+0

Извините, что забыл упомянуть, что на самом деле я не использую текстуры. Я просто использую VBO, и я раскрашивал лица другим цветным массивом VBO. Есть ли способ изменить яркость цвета? –

+0

Просто умножьте цветные триплеты RGB на скаляр, аналогичный # 1. Например, RGB (255,0,0) * 0,5 = RGB (128,0,0), примерно в два раза ярче. – genpfault

+0

Это все, что я должен сделать? Почему люди говорят, что освещение смехотворно жестко? Я думаю, есть ли еще более «профессиональные» способы сделать это? –

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