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

Как починить нормали? (2 стр)

Страницы: 1 2 3 Следующая »
#15
18:25, 2 ноя 2018

IBets
Получается что у тебя по 4 бита на две составляющие нормалей и по 4 бита на roughness / metallic. А не мало ли?
Для нормалей 8 бит это жесть.

#16
18:32, 2 ноя 2018

vindast
Ну это хитрый фильтр. Разница между R16G6 не большая. Здесь проблема антиалиасинга возникает

+ Показать
#17
18:34, 2 ноя 2018

IBets
Ну тут до да. Но вот попробуешь прикрутить sslr, и там уже будет заметно нормалям точности не хватает.

#18
18:36, 2 ноя 2018

vindast
Ну посмотрим как прикручу, что будет

#19
11:20, 3 ноя 2018

IBets
> 24 - Depth
Буфер глубины отдельный же rt?

#20
14:36, 3 ноя 2018

vindast
Ты о чем. Я сделал так на Dx9

DX::ThrowIfFailed(pDevice->CreateTexture(desc.Width, desc.Height, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, m_pBufferColor.GetAddressOf(), nullptr));
DX::ThrowIfFailed(pDevice->CreateTexture(desc.Width, desc.Height, 1, D3DUSAGE_DEPTHSTENCIL, D3DFORMAT(MAKEFOURCC('I', 'N', 'T', 'Z')),  D3DPOOL_DEFAULT, m_pBufferDepth.GetAddressOf(), nullptr));

...........................

DX::ThrowIfFailed(m_pDevice->Clear(0, nullptr, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(255, 255, 255), 0.0f, 0));
DX::ThrowIfFailed(m_pDevice->SetRenderTarget(0, this->GetRTVColor().Get()));
DX::ThrowIfFailed(m_pDevice->SetDepthStencilSurface(this->GetDSVDepth().Get()));
#21
17:45, 3 ноя 2018

IBets
Блен, в opengl глубина отдельный буфер.

DX::ThrowIfFailed(m_pDevice->SetDepthStencilSurface(this->GetDSVDepth().Get())) 

Вроде  это установка буфера глубины.

#22
18:03, 3 ноя 2018

vindast
Ну да, это хак на DX9. Кто не шарит делает отдельным RenderTarget-ом. На DX11 это уже не хак. На GL кодил  более чем год назад и когда был большим нубом чем сейчас, поэтому не знаю как там обстоят дела

#23
19:26, 3 ноя 2018

vindast
в GL можно заморочиться тоже, писать глубину самостоятельно.

#24
21:22, 3 ноя 2018

g-cont
> в GL можно заморочиться тоже, писать глубину самостоятельно.
Да тогда получается что буфер глубины будет дублироваться.
Или что?

#25
21:26, 3 ноя 2018

vindast
Ну я не верю что в GL нет установки буфера глубины, как бы люди тени пилили? Установил буфер глубины, буфер кадра отредерил весь мир. Вот тебе и G-Buffer

#26
21:56, 3 ноя 2018

vindast
> Да тогда получается что буфер глубины будет дублироваться.
отключи запись в него и не будет

#27
22:43, 3 ноя 2018

g-cont
А как тогда тест глубины проводить? )

#28
11:35, 4 ноя 2018

vindast
вручную сравнивать в шейдере.

#29
11:48, 4 ноя 2018

g-cont
> вручную сравнивать в шейдере.
В dx можно одновременно читать и писать в текстуру? Или у тебя есть второй буфер глубины?

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

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