ПрограммированиеФорумГрафика

Объёмный свет / объёмный туман (решено) (3 стр)

Страницы: 1 2 3 4 58 Следующая »
#30
13:54, 2 янв 2024

romanshuvalov
> Получится примерно так:
Какой-то странный конус. Почему у него по периметру плотность выше, чем посередине? Ты уверен, что интеграл берётся без ошибок?

Ну а так да, для нормальной работы алгоритма надо, что у самого фога изначально были достаточно плавные границы, лучи от лазеров и прожекторы в снегу, разумеется, таким способом не нарисуются. Из скринов в №0, мне кажется, там свечения достаточно плавные, кроме, может, разве что фонаря на третьем изображении (свечение на проводах выглядит скорее как эффект частиц, хотя по неподвижному скрину точно не скажешь).

Короче, ты спросил про объёмный туман подешевле — я ответил. В играх на UE1 повертексный туман работал — так что с самой по себе техникой всё в порядке. Если она у тебя не работает, то это уже конкретно твоя ситуация: либо просто неправильно реализовал, либо неподходящие начальные условия — слишком густой и резкий туман на недостаточно тесселированной геометрии — но это уже, сам понимаешь, такой трейдофф между физической точностью и фреймрейтом. Это равносильно как предъявлять, например, чтобы скринспейс- и кубомап-отражения работали как честный ртх.

#31
14:11, 2 янв 2024

Имбирная Ведьмочка
> Какой-то странный конус. Почему у него по периметру плотность выше, чем
> посередине? Ты уверен, что интеграл берётся без ошибок?
Я просто нарисовал картинку в блендере.

Имбирная Ведьмочка
> Короче, ты спросил про объёмный туман подешевле — я ответил. В играх на UE1 повертексный туман работал — так что с самой по себе техникой всё в порядке.
Ок. Но мне с дешевизной хотелось бы еще без сильной просадки в качестве.

Я, кстати, почти решил проблему пересекающихся (вернее, визуально накладывающихся друг на друга) объёмов через

glBlendEquation(GL_MAX);

Некоторые артефакты есть, но надо проверять на реальной сцене, а не на искусственном тестовом массиве источников света.

И осталось решить вопрос с размытием краёв у фигур (первый пост на этой странице).

#32
15:38, 2 янв 2024

> Как покрасивей и подешевле нарисовать объект с размытыми краями?
С этим вроде разобрался, простое и рабочее решение:

Изображение удалено

Наложение нескольких таких объёмов даёт артефакты по краям. Как решить не знаю, скорее всего никак (без увеличения количества текстур).

#33
22:47, 2 янв 2024

romanshuvalov
По первому вопросу - рисуешь все источники света в альфаканал бэкбуфера, потом построцессом блуришь и накладываешь на остальной бэкбуфер. Это ЧБ, для цветного уже альфаканалом не обойдёшься, придётся второй RGB буфер делать.

#34
0:43, 3 янв 2024

Mikle
> потом построцессом блуришь
Нельзя, дорого.

Как блюрить без постпроцесса я уже сообразил, последняя картинка.

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

#35
11:58, 5 янв 2024

romanshuvalov

Что за проект над которым работаешь?

#36
13:16, 5 янв 2024

romanshuvalov
> Не на телефоне, на VR-устройстве с Qualcomm Snapdragon XR2 и разрешением
> 1440х1560 в каждый глаз.

Quick sanity check: Есть ли игры для квеста с такими эффектами? Есть ли постмортем разборы этих игр на gdcvault или в других подобных местах?

#37
14:25, 5 янв 2024

Vitorio
> Что за проект над которым работаешь?
Кое-что для виара.

GLoom
> Есть ли игры для квеста с такими эффектами?
Я, кажется, не видел ни одну. Но справедливости ради я мало играл в нативные квестовые игры, в основном на ПК.

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

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

с 1:30, внимание на прожекторы. И чуть дальше на 1:55.
А на 5:33 тот самый объёмный свет, создающий атмосферу, которого на квесте 2 не сделали.

Причём я считаю, что почти весь графон из правой половины видоса (PSVR2) спокойно можно сделать на квесте 2, если приложить немножко усилий.

Кстати, вопросы из нулевого поста можно считать решёнными, сегодня всё допроверяю и покажу, что получилось. Вкратце: большое количество фигур объёмного света сделать без артефактов не удалось, вместо этого совместил первые 2 варианта, теперь вместо тяжелого шейдера, умеющего только в кружки (1-й вариант) мы имеем маленький вспомогательный фреймбуфер и более легковесный шейдер, умеющий 4 любых фигуры (по одной на каждый канал RGBA-текстуры). Причём на месте фигур могут быть, например, анимированные спрайты или вообще все что угодно.

#38
16:53, 5 янв 2024

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

Если много источников освещения, то постпроцесс выигрывает за счет константного времени.
Еще формат RGBA8 использует хардварное сжатие, что увеличивает производительность.

upd: нашел результаты на G52 MP2
Экран: 2200х1360
Трафик: чтение 525Мб/с, запись 438Мб/с
Блур: 2.5мс

#39
2:29, 6 янв 2024

/A\
> Блур: 2.5мс
Это слишком дофига, в виаре минимум 90 фпс, это менее 11 мс на кадр, а с запасом получается и того меньше. Ну и в моём случае постпроцесс сильно невыгодный, источников мало, в кадре вряд ли будут больше четырёх одновременно.

Кроме того, постпроцесс не сделает вот так:

Изображение

Будет просто конусообразная фигура с некрасиво размытыми краями.

#40
10:31, 13 янв 2024

Будет просто конусообразная фигура с некрасиво размытыми краями.

Смотря что за пп. Облака в пп делал через SDF - вполне мягенько. С конусами там тоже проблем, вроде, нет. Но задавать сцену сложно. Там набор параметрических фигур

#41
11:43, 13 янв 2024

romanshuvalov
Советую покурить вольюм Фог в крайзисе

#42
16:10, 13 янв 2024

Grobozavr
> Смотря что за пп.
Посмотри на картинку двумя постами выше, такой "конус" невозможно размыть так красиво на постпроцессе. Уже решил, что задавать буду параметрически, кое-чего даже посчитал, будет что показать - покажу.

innuendo
> Советую покурить вольюм Фог в крайзисе
Вижу туториалы, как его включить в редакторе движка, пока не вижу подробностей реализации. Но он там слишком красивый и замороченный, вряд ли подойдет для моей задачи.

#43
17:12, 13 янв 2024

romanshuvalov
Посмотри шейдера

#44
18:35, 13 янв 2024

romanshuvalov
Так его и не надо размывать. Он считается как полупрозрачный обьём сразу. Правда не уверен, что это подходит для мобилок, однако конкретно с качеством там проблем точно нет никаких. Собственно можно сделать физически корректно.

Страницы: 1 2 3 4 58 Следующая »
ПрограммированиеФорумГрафика

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