Войти
Unreal EngineФорумПрограммирование

Кто-нибудь расковырял рендеринг в ue4?

Страницы: 1 2 3 Следующая »
#0
8:34, 1 сен. 2017

Хотелось бы услышать мнения в целом, а также сколько времени ушло на изучение, что показалось сложным и что не понравилось.


#1
10:02, 1 сен. 2017

bormaley666
> Хотелось бы услышать мнения в целом

В целом всё очень, очень и очень сложно. Мутный замут. Одна только синхронизация с рендер потоком чего стоит. CE на порядок проще :)

facepalm | Кто-нибудь расковырял рендеринг в ue4?
#2
10:53, 1 сен. 2017

Вопрос про исходный код или про сам движок ?

#3
11:41, 1 сен. 2017

или про шейдеры?

#4
12:00, 1 сен. 2017

исходники и шейдеры

#5
12:05, 1 сен. 2017

https://docs.unrealengine.com/latest/INT/Engine/Rendering/Overview/
https://docs.unrealengine.com/latest/INT/Programming/Rendering/Sh… rDevelopment/

Если по движку, то :

1) Очень классная система работы с материалами. можно всё Полная поддержка Substance ( бесплатный плагин )
2) Обалденный модуль ситем частиц. ( GPU и PhysX частицы взаимодействующие с объектами на сцене в реальном ремени )
3) Как ни странно, рендер не тормозит и всё это ворочает достаточно шустро.
4) Куча плюшек в виде Volumetric Light и всяких Fog эффектов и т.д.
5) VR поддержка.


bormaley666

С исходниками сложно. Нужно понимать как в принципе этот движок всё ворочает на уровне блок-схемы. Там сложно понять...

#6
12:17, 1 сен. 2017

Я шейдеры к себе портировал. (Частично, схему упаковки в GBuffer)

#7
13:00, 1 сен. 2017

bykabak
> Если по движку, то :
6) Что-то внедрить самому - хрен тебе с горчицей

#8
13:08, 1 сен. 2017

innuendo,
Уровень нужно повышать, чтобы внедрить что-то самому.

У меня нет времени и желания изучать чужой код. ( там сложная концепция самого движка  )  Рендер там Deferred Shading такой же как и у всех.

Как делаются многие вещи на DX11 я понял, и что-то реализовал. Пока мотивации двигаться дальше нет. :)

Хотелось бы взлануть на концепцию их движкка в виде блок-схемы :)  Чтобы понять, что откуда работает, и как взаимодействует.

#9
13:57, 1 сен. 2017

bykabak
> в виде блок-схемы
Visual Studio умеет в UML Class Diagram вроде))

#10
14:03, 1 сен. 2017

Жаль что они не заточили движок при компиляции под DX11 для использования DirectXMath.
Фактически SIMD не используются.  Всёдля кросплатформенноти идёт во float

#11
14:20, 1 сен. 2017

bykabak
> Нужно понимать как в принципе этот движок всё ворочает на уровне блок-схемы.
Не поможет. Он так прописан, что легко отделимых "алмазиков" ты в нем практически не найдешь. Код очень зависим и скопипастить зачастую можно лишь большие куски и не без геммора. И все оно в ужасном кодестайле, да и по форме так и просит "перепиши меня". В общем, для прототипирования не пригоден, проще писать с нуля.

bykabak
> Очень классная система работы с материалами. можно всё
Далеко не все. Хотя относительно других распиаренных двигов не плохо.
> Полная поддержка Substance
Ты ее ковырял? Там просто итоговые текстуры цепляются, что нафиг не нужно.
> 3) Как ни странно, рендер не тормозит и всё это ворочает достаточно шустро.
А это от бубна зависит. Летает на миллионах поликов, но тормозит из-за примитивных вещей.

innuendo
> 6) Что-то внедрить самому - хрен тебе с горчицей
Что внедрить? Куда? Стороннюю либу в проект на UE, или из UE в свой двиг?

#12
14:25, 1 сен. 2017

DanielSky
> Что внедрить? Куда?

свой шейдер или технику в UE4

#13
14:33, 1 сен. 2017

DanielSky
Я не видел исходников CryEngine собранного только для PC.
Отделять что-либо из движка UE4 нет необходимости. Если понимать как устроена та или иная технология. Её просто нужно реализовывать в своём движке.

Далеко не все. Хотя относительно других распиаренных двигов не плохо.

Чего нет ?
Ты ее ковырял? Там просто итоговые текстуры цепляются, что нафиг не нужно.

Я её ковырял. И там можно реализовать любой материал - с любыми качествами.
+ Показать
+ Показать
#14
15:49, 1 сен. 2017

Вкратце отвечу на некоторые свои же вопросы.
В основном копал в сторону рендеринга, иногда поглядывая на сопутствующие вещи.

Что не понравилось:
- сложный, трудночитаемый код
Местами можно было бы сделать проще. Например в Doom3 очень простой и лаконичный код.
- чрезмерное увлечение макросами
- встроенная система мета-данных
Перед компиляцией работает утилита UnrealHeaderTool.exe, проходит по исходникам, генерит свой код, подставляет заголовки и т.п. Вещь может и полезная, но Intellisense из-за чего сильно путается, что-то не видит,  тупит и т.д.
- шейдеры написаны на HLSL. Для GL код конвертируется HLSL=>GL


Что понравилось:
- Куча алгоритмов, техник, решений, подходов собранных в одном месте.
- кроссплатформенный код
Можно сильно прокачаться в этом направлении.

Может еще потом добавлю.

Страницы: 1 2 3 Следующая »
Unreal EngineФорумПрограммирование

Тема в архиве.