forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   [TrueHorror] - разработка (http://forum.boolean.name/showthread.php?t=17293)

Samodelkin 14.09.2014 19:30

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 286639)
да так, я не замечал каких то багов на спекуляре. а че вообще не так? как ты знаешь я в графонии не спец, так что поясни

Вот тут разница показана -- там это квантизацией называется.

mr.DIMAS 14.09.2014 19:44

Ответ: [TrueHorror] - разработка
 
А мне норм, я не кукурузис делаю.

Mr_F_ 14.09.2014 19:49

Ответ: [TrueHorror] - разработка
 
Цитата:

Суть best-fit normals в том что они все возможные значения умещающиеся в объем куба распределили по площади сферы и записали в кубмэпу?
суть в том, что одни лишь нормализованные значения при сувании в 3 байта не охватывают весь спектр возможных комбинаций, и они хитро денормализуют в разной степени нормали (ну да, типа как в кубе), чтобы занять всю точность.
вместо кубмапы 2д текстурой можно обходиться, т.к. кубмапа там имеет повторы/симметрию.

Цитата:

а че вообще не так?
мелкие узкие блики попробуй на шарик накинуть

Samodelkin 14.09.2014 20:41

Ответ: [TrueHorror] - разработка
 
Ок.
Короче, чтобы было ещё понятнее, если ещё кто-то будет читать данный тред:
RGB - это 3 канала по 8 бит.
8 бит могут принимать 256 различных значений.
3 канала по 8 бит это 256х256х256=16777216 различных комбинаций.
Нормализованная нормаль - это 3d вектор длиной 1.0f.
Если принять во внимание всё множество положений такого вектора в пространстве, получится сфера с радиусом 1.0f.
Если такую сферу вставить в куб такого же размера, например из вокселей, которых 256х256х256 в кубе, и превратить абстрактную сферу в дискретную сферу из вокселей, то мы обнаружим что используется ~289880 вокселей, что составляет всего 1.73% от всех возможных значений.
И в общем все эти техники упаковки нормалей сделаны для того чтобы по максимуму использовать все возможные значения умещающихся в 24 бита.

Mr_F_ 14.09.2014 20:50

Ответ: [TrueHorror] - разработка
 
ну не все, стереографик и прочее что у Араса на страничке они вообще про впихивание аж в 2 байта, ну а про бестфит всё правильно сказал.

Samodelkin 15.09.2014 23:54

Ответ: [TrueHorror] - разработка
 
А в каком пространстве лучше сохранять нормали в G-Buffer и в каком дальше считать, например SSAO?
В доках Crytek в world space делают, а в других примерах через view space.
Или тут больше от упаковки зависит, а дальше уже переводить для расчёта как удобней?

//=============================

D3DXCreateEffectFromFile создаёт буфер только в случае ошибки, а иногда там и предупреждения есть, которые в случае отсутствия ошибок не выводятся. Можно буфер другим способом получить?

Mr_F_ 16.09.2014 00:11

Ответ: [TrueHorror] - разработка
 
я делаю в ворлдспейс и бестфита на него хватает, но по идее вью спейс должен лучше точность распределять вроде.

Samodelkin 16.09.2014 18:13

Ответ: [TrueHorror] - разработка
 
Вложений: 1
Прошлый вариант SSAO оказался не очень удачный - чтобы обходиться одним буфером глубины требуется ставить пару костылей, связанных с самозатенением поверхности. Возможно если еще поиграть с настройками, можно сделать что-то более менее вменяемое.
С другой стороны, раз сейчас всюду стали использовать G-Buffer и там обычно всегда есть нормали, то можно их использовать и для SSAO.

Поэтому я добавил G-Buffer.
Пока использую обычные regular normals в world space, которые помещаются в A2R10G10B10, на самом деле для SSAO этого достаточно, но мне понравился способ упаковки best fit normals и думаю затем его сделать и использовать A8R8G8B8, где альфа уже будет свободна для чего-нибудь другого, тем более что в составе полноценного рендера нормали пригодятся для тех же бликов и отражений, где точность более критична.
Еще, как выше указал Mr_F_, надо попробовать посчитать во view space и сравнить оба варианта.
Для глубины сейчас используется R32F.

На скрине видно ещё не сглаженный SSAO. Сейчас я переписал ранее написанные в RenderMonkey шейдеры в эффект и собрал приложение на котором можно будет это тестить.

Вложение 20902

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

Кстати, на скрине можно видеть 527 FPS, для 1080p вроде неплохо. Последующее сглаживание снизит этот показатель, но остаётся возможность оптимизации самого SSAO шейдера и G-Buffer'а, которые надеюсь смогут компенсировать потери на сглаживании.


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

mr.DIMAS 16.09.2014 20:45

Ответ: [TrueHorror] - разработка
 
Слух, поделишься шейдером? А то если я опять в графоний уйду то там и останусь на месяц другой.

По игре. На втором уровне в шахте сделал первую "головоломку" - придется самому собирать взрывное устройство чтобы взорвать стену. На третьем уровне нужно найти 3 предохранителя чтобы запитать всю электронику. В итоге инвентарь используется по полной. Также фонарик теперь разряжается( воу, воу я знаю что это банально ), а так как он работает от топливного элемента то заряжается либо спиртягой либо водкой :-D. Клюква во всей красе, но я не стал добавлять "банальные" батарейки ибо откуда им взяться в... ну спойлерить я не буду.

Сейчас много времени уходит на ̶у̶н̶и̶в̶е̶р̶ медию, модельки в основном( а к ним развертки, текстуры ) а так как опыта просто мало то пока сделал какой-то сраный стеллаж и коробку :-D.

Samodelkin 16.09.2014 21:14

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 286745)
Слух, поделишься шейдером? А то если я опять в графоний уйду то там и останусь на месяц другой.

Да. Надо только доделать и прокомментировать его.

tirarex 16.09.2014 21:17

Ответ: [TrueHorror] - разработка
 
Как и где (по каким туториалам) делал карту ? Нравится мне твой стиль если честно !

mr.DIMAS 16.09.2014 21:48

Ответ: [TrueHorror] - разработка
 
По мне так карты не айс. Делал по впечатлениям от фоток здесь и фоток заброшенных зданий. Из туторов прочел только тутор ARENSHI по моделированию ландшафта. Текстурировал вообще по тупому. Сначала по фейсам накладывал материалы и затем UVWMap -> Box и там изменял размеры бокса в итоге текстуры накладываются довольно прилично, главное сохранять этот модификатор в стеке и тогда текстуры всегда( ну почти ) будут хорошо ложиться.

Если кто подскажет метод текстурирования лучше то буду премного благодарен.

Samodelkin 17.09.2014 00:47

Ответ: [TrueHorror] - разработка
 
Вложений: 3
Когда делал размытие по глубине, абсолютно случайно получился мультяшный шейдер :)

Вложение 20903

Как уже можно догадаться по скрину, в размытии я просто тестирую разницу глубины (переведенную в world space, чтобы от положений zfar znear clip planes'ов результат не изменялся) и если глубина меньше порогового значения -- пиксели размываются.
Алгоритм взял из головы, опять же нужно посмотреть -- наверняка есть более быстрые варианты.

Вот что в итоге получилось. Также вокруг носика чайника уже нет белого ореола.

Вложение 20904Вложение 20905

Теперь нужно приводить коды в порядок.

ARA 17.09.2014 02:12

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 286749)
Если кто подскажет метод текстурирования лучше то буду премного благодарен.

Unwrap UVW -> Peel

mr.DIMAS 17.09.2014 19:20

Ответ: [TrueHorror] - разработка
 
2ARENSHI, у меня в максе( 2012 ) для меша уровня включен бэкфейскуллинг( Direct3D ), но когда вьюпорт передвигаешь( или любой объект ) то куллинг как бы исчезает и нелицевые грани черными становятся и непрозрачными, но все нормально когда вьюпорт не трогаешь. это баг или что? меня заебало это мельтяшение перед глазами. как это лечить?


Часовой пояс GMT +4, время: 02:59.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot