пятница, 22 ноября 2013 г.

Angie Engine Tech Demo: Point Light Soft Shadows


Тени от точечных источников света. Для каждого такого источника сцена рендерится в кубическую карту (cubemap), при этом рендерится только глубина. Далее путем сравнения глубины фрагментов с глубиной в полученной в cubemap-е строится черно-белое изображение тени. Данное изображение размывается ping-pong фильтром для получения мягкой тени. Далее полученные две текстуры смешиваются друг с другом по расстоянию от фрагмента до источника света.

понедельник, 4 ноября 2013 г.

Lost Lands Tech Demo: Rendering passes, SSAO, Eye adaptation

Не знаю, что написать, поэтому прикреплю только видео некоторого прогресса в моем движке)

Screen Space Ambient Occlusion


Rendering passes


Eye adaptation


пятница, 1 ноября 2013 г.

Lost Lands Tech Demo: Glass, Light Volumes

В данной демонстрации использованы 2 техники: deferred для непрозрачных объектов и forward для стекла. Стеклянный куб на видео рисуется в два прохода (лицевая и нелицевая грань). Все точечные источники освещения имеют свой радиус действия, т.о. рисуются только те источники, которые в данный момент попадают в пирамиду видимости (проверка попадания сферы). Каждый точечный источник освещения рисуется в виде AABB. Для большей оптимизации отрисовки прозрачных объектов планируется реализовать проверку пересечения объемов освещения с объемом прозрачного объекта.
Параметры прозрачных объектов (материал,свет,бамп и т.п) ничем не отличаются от непрозрачных объектов за исключением того, что они имеют параметр "прозрачность", принимающий значение от 0 до 1. Возможно в последующем будет иметь смысл дать возможность задавать прозрачность объекта попиксельно, т.е. в альфа канале текстуры.



Немного о свете и материале
Я выложил несколько демонстраций, но так и не сказал, какими атрибутами обладают источники света и материал. Чтобы исправить данный недостаток я решил привести их в данном посте.

Итак, точечный источник освещения (Point Light Source):
vec3 position
rgb ambient
rgb diffuse
rgb specular
vec3 attenuation
float radius
Помимо стандартного параметра затухания (attenuation) введен дополнительный параметр - радиус действия источника. Радиус действия источника - это то расстояние, за пределами которого вклад действия источника в освещение сцены равен нулю.

Направленный источник освещения (Directed Light Source):
vec3 position
rgb ambient
rgb diffuse
rgb specular
Направленный источник освещения отличается от точечного отсутствием затухания и радиуса действия. Свет от него также распространяется во все стороны.

Прожектор (Spot Light Source):
vec3 position
rgb ambient
rgb diffuse
rgb specular
vec3 attenuation
float radius
float exponent
vec2 direction (третья компонента получается из условия нормировки)
float сutoff

Материал:
rgb emission
rgb ambient
rgb diffuse
rgb specular
float shininess
Здесь все стандартно. Возможно, немного избыточно.

понедельник, 21 октября 2013 г.

Deferred shading, Per pixel lighting, Bump

Прогресс не стоит на месте и после долгих раздумий было решено использовать Deferred shading :)
В качестве примера представлен точечный источник света и попиксельное освещение с использованием карты нормалей.

Часть 1


Часть 2


Часть 3 - Несколько источников света



Пример эффекта, полученного только путем настройки параметров источника света и материала на том же шейдере.


суббота, 19 октября 2013 г.

Geometry + Point Light + HDR

В качестве меша геометрии для демонстрации был использован уровень из Quake3.
Освещение реализовано, через forward rendering


вторник, 10 сентября 2013 г.

Первая демонстрация

Первая демонстрация технических возможностей игры включает в себя:
- классическая консоль, свойственная для шутеров;
- клиент-серверная архитектура, возможность удаленного коннекта, либо к localhost;
- управление игроком (пока только движения, прыжок, приседание);
- виртуальная текстура (мегатекстура) - аналог технологии, используемой в игре Rage от id Software;
- скелетная анимация с использованием инстансинга, OpenCL и моделей из игры Doom3;
- ...и,на самом деле, много чего еще в коде, но невидимое на видео :)


Кстати, если кому интересно, есть статья для gamedev.ru о мегатекстуре, написанная мной :) Ниже ссылка и видео ролик к статье.


Статья: http://www.gamedev.ru/code/articles/Virtual_textures

Lost Lands Первое сообщение

Данный блог - это ничто иное, как лог процесса разработки игры Lost Lands и движка для нее. Здесь я постараюсь выкладывать различные демонстрации возможностей движка, этапы создания, скриншоты, видеозаписи.
Возможно, также будут описаны используемые технологии в виде отдельных статей, но это, разумеется, при наличии свободного времени.
Разработчик пока только один, поэтому, кому интересно, присоединяйтесь.

Жанр игры классический 3D-шутер, возможно, с элементами РПГ.
Стилистика: киберпанк/постапокалипсис.

Из технических особенностей: будут задействованы VulkanAPI, OpenGL, OpenAL.
Операционная система: Windows, Linux, Android
Консоли: возможно, в будущем XBOX
Видеокарты: рендер в большей степени ориентирован на линейку NVidia, но поддержка ATI и других видеокарт тоже не исключается.