HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Написание рендерера
GLSL
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



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

В общем писал я писал свой 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-

Сообщить модератору | | IP: Записан
Сообщение: 155242

Старое сообщение 27-05-2016 19:44
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Я не работаю с 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

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

Сообщить модератору | | IP: Записан
Сообщение: 155247

Старое сообщение 28-05-2016 08:22
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


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


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

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

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

Сообщить модератору | | IP: Записан
Сообщение: 155249

Старое сообщение 28-05-2016 18:28
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
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'

Сообщить модератору | | IP: Записан
Сообщение: 155251

Старое сообщение 28-05-2016 19:03
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



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

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

Сообщить модератору | | IP: Записан
Сообщение: 155253

Старое сообщение 28-05-2016 19:13
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 155255

Старое сообщение 28-05-2016 19:18
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

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

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

Сообщить модератору | | IP: Записан
Сообщение: 155256

Старое сообщение 28-05-2016 19:37
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 155263

Старое сообщение 28-05-2016 19:57
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

Сообщить модератору | | IP: Записан
Сообщение: 155264

Старое сообщение 28-05-2016 19:58
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 155266

Старое сообщение 28-05-2016 20:05
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


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


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

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


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

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


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

Сообщить модератору | | IP: Записан
Сообщение: 155271

Старое сообщение 28-05-2016 21:42
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
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'

Сообщить модератору | | IP: Записан
Сообщение: 155272

Старое сообщение 28-05-2016 21:59
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


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


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

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


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

Сообщить модератору | | IP: Записан
Сообщение: 155273

Старое сообщение 28-05-2016 22:07
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
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'

Сообщить модератору | | IP: Записан
Сообщение: 155274

Старое сообщение 28-05-2016 22:15
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

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

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

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

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

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

Сообщить модератору | | IP: Записан
Сообщение: 155276

Старое сообщение 29-05-2016 05:38
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 20:48. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Написание рендерера
GLSL
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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