27 февр. 2010 г.

Молния (теория)

В общем загорелся желанием сделать молнию, но тут у меня вопросов не возникло:
- либо делаем через биллборд, который бы появлялся в рандомном месте нашего скайдома;
- либо генерировать молнию на самой полусфере через шейдер;

Но при молнии обычно освещается и небо, и земля, и облака, и другие объекты, и как тут быть? Вносить "прибамбасы" в каждый шейдер для какой то молнии? Не вариант. И тогда мне подсказали про ПОСТ ПРОЦЕССИНГ(post-processing).

Вообще то я не любитель заумных фраз, но суть этого процесса лежит в следующем:
Вывод всей сцены в текстуру, ну и дальше использование этой текстуры для различных эффектов. В моем случае что-то вроде увеличение яркости с добавлением белизны к сцене (мол молния громыхает и на миллисекунды освещает все объекты).

Так же с помощью post-processing'a делаются многие эффект, как например:

SSAO
Screen Space Ambient Occlusion (сокращённо SSAO; англ. преграждение окружающего света в экранном пространстве) — программная техника (методика) в трёхмерной компьютерной графике, которая является приближенной имитацией глобального освещения и представляет собой изменённый и усовершенствованный вариант методики Ambient occlusion. Алгоритм SSAO работает в режиме реального времени и имитирует рассеянное непрямое освещение и соответствующее затенение в трёхмерном виртуальном пространстве.


HDR
High Dynamic Range Rendering, часто сокращается до High Dynamic Range — графический эффект, применяемый в играх для наиболее выразительного рендеринга изображения при контрастном освещении сцены.


BLOOM
Bloom (англ. — свечение, произносится как блюм) — постэффект в трёхмерной графике, который используется в компьютерных и видео играх и других 3D-приложениях. Эффект используется геймдизайнерами для создания эффекта размытости света на ярких гранях сцены, эмулируя передержку камерой при съёмке, а также для добавления большей кинематографичности изображению.


BLUR
Motion blur (произносится моушн блюр) — размытие изображения при воспроизведении сцен движения или быстро движущихся объектов.


GLOW
Glow (с англ. — «отблеск», часто также употребляется «хром») — визуальный световой эффект в трёхмерной или растровой графике.
В трёхмерной графике, эффект заключается в том, что у ярких областей объекта наблюдается свечение (отблеск), из-за чего создаётся впечатление что на поверхности объекта видны солнечные блики.



и многие другие...

26 февр. 2010 г.

Звезды

Мучился долго в реализации звезд, были проблемы с текстурой.
В общем то получилось довольно симпатично, меня пока устраивает и так.

Нажмите на картинку, чтобы её увеличить
В противном случае, звезд вы не увидете

25 февр. 2010 г.

Примитивы

Построение любой сцены в Direct3D, будь это обычная плоская кривая, например, график функции одной переменной, или сложная трехмерная композиция, происходит с помощью простейших геометрических примитивов, таких как точка, отрезок прямой и треугольник. Элементарным строительным материалом для перечисленных примитивов является вершина. Именно набором вершин задается тот или иной примитив.

Вот так, например, у меня рисуется ландшафт:



Как видно, он состоит из квадратов, которые в свою очередь из треугольников.

А вот полусфера (вид изнутри):

24 февр. 2010 г.

Scattering (Tomoyuki Nishita)

Atmospheric Scattering by Tomoyuki Nishita

Tomoyuki Nishita, профессора Токийского университета, Япония.
Вместе со своими коллегами профессор Нишита разработал множество алгоритмов, относящихся к real-time и non-real-time графике. Объём работ и затронутых проблем очень велик.

Вот так теперь у меня выглядят рассвет и закат, благодаря его алгоритмам.




Если сравнить с моим предыдущим результатом, то тут солнце считается через шейдер, а до этого у меня был биллборд.

Биллборд - прямоугольник, лицевая сторона которого всегда ориентирована на камеру, т.е. перпендикулярна вектору взгляда.

7 февр. 2010 г.

Scattering (Perez)

Реализовал своё первое атмосферное рассеяние по Перезу (аtmospheric scattering). Оно является одним из самых простых в реализации.
Пока что без самого солнца, но при изменении вектора освещения, довольно не плохие результаты.
Несколько скриншотов: