HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 24 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- OpenGL (https://hlfx.ru/forum/forumdisplay.php?forumid=7)
-- Написание рендерера (https://hlfx.ru/forum/showthread.php?threadid=4772)


Отправлено KiQ 27-05-2016 в 19:44:

Написание рендерера

В общем писал я писал свой 2D движок, пока он не стал выдавать 60 fps на простейших сценах. Посмотрел на всякие 1500 fps у волатил и ксашей и что-то мне взгрустнулось. Собственно, хотелось бы в этой теме пообсуждать различные подходы к рендерингу, как в 2D, так и в 3D (так как параллельно сейчас практикую рендеринг smd с дальнейшим переходом на свой формат, компилируемый из smd. Хочу сделать движок для квестов в стиле Сиберии). Собственно, есть немало вопросов. В качестве системы освещения однозначно буду использовать deffered shading. В качестве способа рендеринга - glDrawArrays, скорее всего. Вроде как VBO не слишком сложный, но до этого не получалось его корректно вписать в архитектуру. Теперь несколько вопросов:
1. При использовании всего одного FBO с выводом его на экран fps просаживается на 15-20 пунктов, чем при непосредственном выводе, даже на небольшом разрешении. Нормально-ли это? И кто как борется с тем, что координаты в FBO не подчиняются заданной матрице проекции? В частности, если для контекста я инвертирую ось Y, то в созданных FBO она все равно будет направлена снизу вверх.
2. Прозрачность и deffered shading. Везде говорится о том, что выводить прозрачные объекты надо уже после рендеринга всей сцены. Но что тогда получается, что окна будут светиться в темноте, как в хл? Как этого избежать.
3. Обязательно-ли использовать MRT при deffered shading? Насколько это быстрее нескольких проходов с рендерингом в разные FBO (или один с несколькими attachment).

Пока что все вопросы, но их было немало, надо только вспомнить и сформулировать

__________________
-Brain is dead-


Отправлено XaeroX 28-05-2016 в 08:22:

Я не работаю с deferred shading, использую только forward rendering. Но выскажу некоторые соображения.

Цитата:
KiQ писал:
Посмотрел на всякие 1500 fps у волатил и ксашей и что-то мне взгрустнулось.

В волатиле фпс не может подняться выше 1000 by design - там миллисекундный (мультимедийный) таймер. В ксаше - микросекундный, как в первом Quake.
Цитата:
KiQ писал:
В качестве системы освещения однозначно буду использовать deffered shading.

Не совсем понятен выбор для квестового движка. Ты же понимаешь, что системные требования к видеокарте в таком разе будут очень велики, и на каком-нибудь стареньком ноуте уже запросто не запустишь? Не проще ли воспользоваться старыми добрыми лайтмапами, которые вообще бесплатны на этапе рендеринга?
Цитата:
KiQ писал:
В качестве способа рендеринга - glDrawArrays, скорее всего.

Ты, конечно же, хотел сказать - glDrawElements.
Цитата:
KiQ писал:
координаты в FBO не подчиняются заданной матрице проекции

Быть того не может. Координаты проекции определяются матрицей проекции, отсебятины в конвейере никакой нет.
Цитата:
KiQ писал:
Но что тогда получается, что окна будут светиться в темноте, как в хл? Как этого избежать.

Вычислять DS отдельно для каждого окна.
Может быть, сработает какой-нибудь метод order independent transparency, но я не копался. Знаю только, что прозрачность в DS - тот ещё геморрой.
Цитата:
KiQ писал:
Насколько это быстрее нескольких проходов с рендерингом в разные FBO

Зависит от того, как именно выполняются проходы.
Подозреваю, что быстрее при любом раскладе, а вот насколько - надо смотреть.


Отправлено Government-Man 28-05-2016 в 18:28:

Цитата:
XaeroX писал:
Не совсем понятен выбор для квестового движка.


Аналогично. Имхо использование деффереда оправдано только для сцен с большим количеством перекрывающихся объектов и сложными шейдерами с кучей источников освещения. Если же у тебя графон будет "как в сайберии" то производительность только упадет - гы-буфер уж очень жруч до памяти. Добавь еще сюда проблемы с прозрачностью и необходимость встраивания шейдеров материалов в существующие проходы рендеринга.

Добавлено 28-05-2016 в 13:28:

А ну и мсаа не будет работать.


Отправлено Дядя Миша 28-05-2016 в 19:03:

Цитата:
KiQ писал:
В качестве системы освещения однозначно буду использовать deffered shading

Прогрессивное человечество уже перешло на Tiled Shading
Цитата:
KiQ писал:
При использовании всего одного FBO с выводом его на экран fps просаживается на 15-20 пунктов, чем при непосредственном выводе, даже на небольшом разрешении.

Ну ты из FBO берёшь текстуру, а потом рисуешь её на весь экран. Это требует какого-то времени.

Цитата:
KiQ писал:
Но что тогда получается, что окна будут светиться в темноте, как в хл? Как этого избежать.

Ну например сделать как в параное-2.

Цитата:
XaeroX писал:
Не проще ли воспользоваться старыми добрыми лайтмапами, которые вообще бесплатны на этапе рендеринга?

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

ЗЫ. За дефферед такую тему скажу. Отложенное освещение - это попытка переложить с больной головы на здоровую. Левел-дизайнеру предоставляется возможность самому налепить сколько угодно лампочек, чтобы освещение уровня его устроило. Никакой физической корректностью там и не пахнет.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ncuxonaT 28-05-2016 в 19:13:

Цитата:
Дядя Миша писал:
Потому что когда мы начинаем совмещать лайтмапы и динамические источники, то сложность рендерера по совокупности выходит сложнее и тормознее, нежели чистая динамика к примеру.

Какие будут ваши доказательства?


Отправлено Дядя Миша 28-05-2016 в 19:18:

ncuxonaT клянусь небесным котэ!

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 28-05-2016 в 19:37:

Дядя Миша и всё-таки непонятно, откуда такой вывод. Поясни, пожалуйста.

Добавлено 29-05-2016 в 01:37:

Government-Man msaa работать будет, но через хак и потребует gl4/dx11.


Отправлено Дядя Миша 28-05-2016 в 19:57:

XaeroX тебе непонятно почему освещение по двум технологиям сложнее чем по одной? Или непонятно что нарисовать лайтмапу + динамические источники тормознее чем просто динамические источники?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 28-05-2016 в 19:58:

Дядя Миша первое. Какие там технологии в наложении лайтмапы?


Отправлено Дядя Миша 28-05-2016 в 20:05:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Government-Man 28-05-2016 в 21:42:

Цитата:
Дядя Миша писал:
Потому что когда мы начинаем совмещать лайтмапы и динамические источники, то сложность рендерера по совокупности выходит сложнее и тормознее, нежели чистая динамика к примеру.


Объясни пожалуйста, как 10 сложных вычислений могут выполняться быстрее, чем 2 сложных и 8 простых? Как вариант - 2 сложных и 1 простое. С тем, что смешанный рендер сложнее, я согласен, но эффективность-то при чем?

Цитата:
Дядя Миша писал:
Никакой физической корректностью там и не пахнет.


Как порядок отрисовки сцены влияет на физическую корректность?

Цитата:
XaeroX писал:
msaa работать будет, но через хак и потребует gl4/dx11


А... ну я тоже чота такое слышал.
А с производительностью там как будет?


Отправлено Дядя Миша 28-05-2016 в 21:59:

Цитата:
Government-Man писал:
Объясни пожалуйста, как 10 сложных вычислений могут выполняться быстрее, чем 2 сложных и 8 простых?

Сперва ты мне объясни откуда взял цифры 10 сложных, 8 простых и 2 сложных. И что по твоему сложные вычисления, а что простые.
И как ты полагаешь что дороже - фетчинг в лайтмапу или расчёт затухания направленного источнега. А если у нас три лайтмапы, по типу как в хл2.
Цитата:
Government-Man писал:
Как порядок отрисовки сцены влияет на физическую корректность?

А где я говорил, что порядок отрисовки сцены влияет на физическую корректность? Это ты сам себе придумал и теперь пытаешься мне приписать.
Отложенное освещение даёт ровно один бонус нам - множество дешевых источников в кадре. Эти источники левел-дизайнер расставляет так, чтобы было похоже на освещение с переотражениями. О какой физической корректности подобного освещения может идти речь?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Government-Man 28-05-2016 в 22:07:

Цитата:
Дядя Миша писал:
расчёт затухания направленного источнега


Так мы о тенях вроде нет?
Как ты думаешь, что быстрее - чтение лайтмапы или отрисовка динамической тени?

Цитата:
Дядя Миша писал:
О какой физической корректности подобного освещения может идти речь?


А как растишка влияет на рост?


Отправлено Дядя Миша 28-05-2016 в 22:15:

Цитата:
Government-Man писал:
Так мы о тенях вроде нет?

Не. Мы про освещение.
Цитата:
Government-Man писал:
чтение лайтмапы или отрисовка динамической тени?

Отрисовка или создание? И отрисовка с каким фильтром? И каково разрешение шадовмапы? Или ты живёшь догмами "A быстрее B" ?

Цитата:
Government-Man писал:
А как растишка влияет на рост?

Не все ёгурты одинаково полезны

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 29-05-2016 в 05:38:

Цитата:
Дядя Миша писал:
ну нам как минимум надо чтобы динамический источник визуально не отличался от статического и модели нормально осветить, по лайтпробам, кубемапам.

Так бы и говорил, что высказался об архитектурных проблемах ксаша. А то прозвучало-то в общем.
Цитата:
Government-Man писал:
А с производительностью там как будет?

Полагаю, ощутимо медленнее. Говорю же - хак.

Цитата:
Дядя Миша писал:
Или ты живёшь догмами "A быстрее B" ?

Цитата:
Дядя Миша писал:
когда мы начинаем совмещать лайтмапы и динамические источники, то сложность рендерера по совокупности выходит сложнее и тормознее, нежели чистая динамика

Вот зачем ты приписываешь собственное догматическое мышление другим?


Временная зона GMT. Текущее время 20:58. Страницы (2): [1] 2 »
Показать все 24 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024