Перейти к содержанию
Deathman

NVidia Hashed Alpha Testing в S.T.A.L.K.E.R.

Рекомендуемые сообщения

 
В 28.12.2023 в 18:21, Deathman сказал:

А в чем разница в рамках хранения альфы собственно говоря между DXT5 и каким-нибудь другим DXT, кроме того что альфа не компрессируется, а интерполируется, и когда это альфа стала делиться на "стандарты"? 

Больше чем кажется. DXT1 (BC1) - В наше время сразу в помойку (тем более если используем шумы для альфатеста). Главная проблема в том, что цвет на прозрачных участках в этом случае всегда чёрный (что очень плохо, учитывая интерполяцию текстур - текстуры получают чёрную обводку в далеке). DXT3(BC2) - идеальный вариант для Aref текстур (так как хранит бинарную альфу очень точно, ибо использует просто округление до 4х байт(байт же? не суть). Это отлично подходит для ареф текстур, так как это даёт нам возможность контролировать цвет фона текстуры, и победить чёрные ареолы путём заливки фона (3D редакторы генерируют педдинги, так что там не надо с фоном даже заморачиваться). Ну и DXT5(BC3) - отлично подходит для Transparent геометрии, так как достаточно хорошо передаёт градиенты альфы.

Спойлер

image.png.5f0cbfbedd0325d9b843389462ede77e.png

В фотографии в спойлере показано то, как я делал заливку фона (тупо дублирование слоёв в паинт нете с размытием по Гаусу - работает нормально) но для пользователей фотошопа есть еще более простая штука - заливка с учётом содержимого.

Спойлер

image.png.6a7f6f0ba441a595e748e56138ff4070.png

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

  • Жму руку 1


image.png.489a34a67081676c25779ea216ba3788.png


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

> Два это то что я так-то и сам рад перейти с DX9 на DX11, но только это выше моих возможностей, сколько бы я не перечитывал руководства Microsoft по переводу DX9->DX10->DX11. Причем этот перевод рендера на новую версию DirectX мне дал бы просто огромный толчок к развитию, но увы я тоже не бог.

Ты имеешь ввиду перевод фич для xray или в принципе как оно работает ? Не совсем тебя понял


Дополнено 1 минуту спустя

Кстати, DX10 можешь смело скипать, чисто структурно от 11 ничем не отличается почти

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 минуты назад, Hozar_2002 сказал:

Больше чем кажется. DXT1 (BC1) - В наше время сразу в помойку (тем более если используем шумы для альфатеста). Главная проблема в том, что цвет на прозрачных участках в этом случае всегда чёрный (что очень плохо, учитывая интерполяцию текстур - текстуры получают чёрную обводку в далеке). DXT3(BC2) - идеальный вариант для Aref текстур (так как хранит бинарную альфу очень точно, ибо использует просто округление до 4х байт(байт же? не суть). Это отлично подходит для ареф текстур, так как это даёт нам возможность контролировать цвет фона текстуры, и победить чёрные ареолы путём заливки фона (3D редакторы генерируют педдинги, так что там не надо с фоном даже заморачиваться). Ну и DXT5(BC3) - отлично подходит для Transparent геометрии, так как достаточно хорошо передаёт градиенты альфы.

  Пример того, как я фейковал эти самые педдинги ручками для пыс текстуры (Скрыть контент)

image.png.5f0cbfbedd0325d9b843389462ede77e.png

В фотографии в спойлере показано то, как я делал заливку фона (тупо дублирование слоёв в паинт нете с размытием по Гаусу - работает нормально) но для пользователей фотошопа есть еще более простая штука - заливка с учётом содержимого.

  Заливка с учётом содержимого в ФШ (Скрыть контент)

image.png.6a7f6f0ba441a595e748e56138ff4070.png

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

Спасибо тебе за то что сказал как можно реализовать адекватный фон и подтвердил мои догадки на счёт различных DXT форматов.

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

И да, я не использую темпоральный шум


Дополнено 3 минуты спустя
7 минут назад, fubakabaka1 сказал:

> Два это то что я так-то и сам рад перейти с DX9 на DX11, но только это выше моих возможностей, сколько бы я не перечитывал руководства Microsoft по переводу DX9->DX10->DX11. Причем этот перевод рендера на новую версию DirectX мне дал бы просто огромный толчок к развитию, но увы я тоже не бог.

Ты имеешь ввиду перевод фич для xray или в принципе как оно работает ? Не совсем тебя понял


Дополнено 1 минуту спустя

Кстати, DX10 можешь смело скипать, чисто структурно от 11 ничем не отличается почти

0_o

Речь про замену DX9 на DX11 чтобы я мог перейти на новую шейдерную модель и добавлять намного больше действительно важных технологий как PCSS, FSR и так далее

https://learn.microsoft.com/ru-ru/windows/uwp/gaming/feature-mapping

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Только что, Deathman сказал:

единственное что я не могу понять это как работают вектора движения

Боюсь это не главная проблема в этом случае. Если вы используете DX9, то очень сильно ограничены в количестве констант в шейдрах, что почти полностью лишает возможности точно считать вектора движений для Skined геометрии, не прибегая к двум тоннам костылей и бубнов.

2 минуты назад, Deathman сказал:

И да, я не использую темпоральный шум

Статический шум хоть и меньше мерцает, но увы более заметный, как мне кажется. В теории условный FXAA относительно должен сглаживать этот шум, не идеально, но лучше чем ничего.

  • Жму руку 1


image.png.489a34a67081676c25779ea216ba3788.png


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 минуту назад, Hozar_2002 сказал:

Боюсь это не главная проблема в этом случае. Если вы используете DX9, то очень сильно ограничены в количестве констант в шейдрах, что почти полностью лишает возможности точно считать вектора движений для Skined геометрии, не прибегая к двум тоннам костылей и бубнов.

Статический шум хоть и меньше мерцает, но увы более заметный, как мне кажется. В теории условный FXAA относительно должен сглаживать этот шум, не идеально, но лучше чем ничего.

Ну типа если речь про hashed alpha test то я использую не только его сам по себе, а во первых перед ним сглаживаю текстуру при помощи FXAA, а во-вторых использую достаточно плотный шум сам по себе, который меньше одного пикселя текстуры. В итоге получается достаточно хороший результат как мне кажется, числа восьмого могу скинуть как буду снова за работой над проектом

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу