Вступ

Цей туторіал містить тільки відео. Він не вводить ніяких нових методик/синтаксису OpenGL, але показує, як використовувати методи, які Ви вже знаєте, що б побудувати високоякісні тіні.

Цей туторіал пояснює, як побудувати простий світ в Blender та запекти світлові карти, так що ви зможете використовувати їх в Вашій програмі.

Ніяких особливих знань про Blender не потрібно. Я все поясню в процесі.

Примітка про світлові карти

Світлові карти запікаються. Раз і назавжди. Це значить, що вони повністю нерухомі, Ви не можете перемістити світло в процессі роботи програми. Чи навіть видалити.

Це все ще може бути корисним для сонячного світла, чи сцен в приміщенні, де неможливо розбити лампочки. Mirror Edge, випущений в 2009 році, активно використовував їх, для сцен в приміщенні та назовні.

Що ще цікаво, що їх легко налаштувати і вони мають чудову швидкість малювання.

Відео

Це відео в форматі 1024x768p, використовуйте режим HD…

Додаток

Коли ви малюєте це в OpenGL, ви можете помітити деякі дефекти (ось вони тут перебільшені трішки):

Це пов’язано з міпмаппінгом, який поєднує текселі, які видно на відстані. Чорні пікселі з текстури фону змішуються з хорошими частинами світлової карти. Що б уникнути цього, є декілька способів:

  • Ви можете попросити Blender згенерувати поля навколо меж UV карти. Це параметр “margin” (поля) в секції “bake”. Для отримання гарного результату, спробуйте виставити воля до 20 текселів.
  • Ви можете використовувати «упередження bias» для текстури:
color = texture( myTextureSampler, UV, -2.0 ).rgb;

-2 - це упередження. Можливо, Вам буде потрібно поекспериментувати з цим значенням. На зображенні вище значення було +2, що значить, що OpenGL буде обирати дві міпмапи вище тої, яка повинна була братись (це в 16 разів менше, звідси і проблеми)

  • Ви можете заповнювати фон чорним кольором в кроці післяобробки. Я напишу про це пізніше.