UnrealEngine. Секреты вау

ВНИМАНИЕ!!! Данный материал предоставлен исключительно в ознакомительных целях.

Ознакомление с реализацей демо Epic Citadel от Epic Games.

1. Солнце

Для реализации эффекта, использовалось 4 спрайта которые всегда повернуты лицом к камере, с текстурами:

Вот как они выглядят:

Стоит отметить, что шейдер выглядит весьма не оптимизированным и код вида:

mov vt0, va0
mov vt0, va1
mov vt0, va2
mov vt0, va3
mov vt0, va4

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

2. Огонь

Для реализации огня используется два эмиттера, две атласных текстуры:

На следующих картинках подсвечен эмиттер очага и дыма:

Довольно серьезная система частиц присутствует в UnrealEngine. На обработку вершинного шейдера одного дроукола системы частиц уходит 12% GPU, время выполнения – 29,9. В среднем это довольно неплохой результат. Еще стоит отметить производительность фрагментного шейдер системы частиц, в котором всего 16 AGAL инструкций.

3. Отражения

Для реализации отражения используется стандартная методика для Planar Reflections, где используется дублированная геометрия умноженная на Mirror Matrix.
Transform = WORLD MATRIX * MIRROR MATRIX * VIEW MATRIX * PROJECTION MATRIX
Реализация на DirectX9

4. Река

Река смотрится очень круто. В реализации очень проста. Используется два текстурных канала. Один статичный, другой анимированный по v.

5. Уровень
Ничего технически особенного Unreal пока не предоставили. Динамического освещения в демке нет. Используются light-map и призженный свет в текстуры, отсутствует альфа-тест.

Спасибо за внимание!

SergeyGonchar
flash-developer
Visit Gonchar Website.

7 Responses to “UnrealEngine. Секреты вау”

  1. Alchemist says:

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

  2. Gonchar says:

    in English, please. I can’t understand.

  3. 2morrowMan says:

    Та я даже на русском не могу понять что товарищ Alchemist здесь накалякал….

  4. Komizart says:

    Goncharишь чего захотел))

    А за статью спасибо, было интересно!

  5. Alchemist says:

    So much for Google Translate. 🙂 Sorry guys.

    All I wanted to mention was that this demo is novel not because of the rendering techniques used (though it is a pretty interactive especially for Flash), but because it was entirely published from UDK with no need to understand anything of Flash/Actionscript. The engine itself is the actual unmodified Unreal Engine 3 compiled with C++ (with an addition of a Stage3D renderer of course). For the most part the limitations of the rendering techniques used are not limitations of the engine but rather of Stage3D or AGAL.

    There is a bit more to the demo as well (GPU skinned skeletal animation of the flag, vertex animation of the trees, etc.). Overall I see no reason to criticize the experiment. The best is yet to come. 😉

  6. Gonchar says:

    Yes, I understand. But from developer side I want more from UDK. I don’t criticize, I just demand features, it’s mine and yours job – demand features.
    I specially didn’t mention “Skinned skeletal animation” in article because about 1-2 bones influence flag vertices. When it’s will be have 6+ influence bones(process on GPU) I will write separate post about this. Now, this is not up to much.
    Thx for comment!

  7. Alchemist says:

    You need to continue to demand more from the Flash platform than from UDK, IMHO.

Leave a Reply

×
%d bloggers like this: