Size: a a a

pro.graphon (and gamedev)

2021 April 20

k

koren in pro.graphon (and gamedev)
Да
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Тогда тут есть несколько вариантов
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Можно зачитать глубину из текстуры по gl_FragCoord.xy/screenSize, и по этой глубине "продлить" вектор quadFragmentPos - eyePos. Но тут есть кое-какая хитрость с dot product, вроде бы. Тут уже сам выведи, исходя из этой идеи
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Проще тупо взять саму gl_FragCoord.xy, глубину из текстуры по gl_FragCoord.xy/screenSize, и применить все трансформации, которые делаешь ты в вершинном шейдере, и которые потом делает растеризатор в видяхе, но наоборот
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
А именно:
P в world space <- gl_Position в clip space <- normalized device coordinate space <- gl_FragCoord.xy и глубина из текстуры в glViewport/glDepthRange space
источник

AM

Aleksey Muravev in pro.graphon (and gamedev)
Смотри, готовый вариант
https://m.habr.com/ru/company/mailru/blog/248873/
источник

k

koren in pro.graphon (and gamedev)
Т.е. восстановление линейной глубины приходит к 2-м шагам (на CPU и GPU)?
источник

k

koren in pro.graphon (and gamedev)
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Да
источник

k

koren in pro.graphon (and gamedev)
Кажись я понял, но мне нужна помощь. Как мне забиндить буфер глубины, который рендербуфер, как текстуру, чтобы считать её?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Сделать его не рендербуфером, а полноценной текстурой
источник

k

koren in pro.graphon (and gamedev)
А как же тогда мне записывать в неё? Или огл сам это сможет?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Через glFramebufferTexture2D вместо glFramebufferRenderbuffer
источник

k

koren in pro.graphon (and gamedev)
Всё ещё не понимаю как
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Так же, как и когда сначала рисуешь в цветовой буфер, а потом читаешь его в шейдере постпроцессинга
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Только attachment будет не color, а depth_stencil
источник

k

koren in pro.graphon (and gamedev)
Не пойму
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
К аттачменту фреймбуфера можно биндить либо рендербуфер, либо текстуру
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
DEPTH_ATTACHMENT крепи
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Как крепишь другие текстуры
источник