Я использую буферы визуализации до сих пор при использовании теста глубины с пользовательскими FBOs. Теперь мне нужно заменить текстуры глубины (так как мне нужно прочитать ее в шейдере). Я рассматриваю разные источники, такие как here, и вижу, что GL_FLOAT используется как тип данных. В other используются примеры GL_UNSIGNED_BYTE и иногда даже GL_INT. Также внутренний формат может быть GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32.Оптимизационные настройки для прикрепления текстуры глубины FBO
У меня вопрос, какой вариант лучше всего с точки зрения производительности и качества? Я уверен, что с компонентом глубины 32 бит глубина теста должна быть более точной, но как насчет типа данных? Какой из них обычно следует использовать?
Традиционно несколько лет назад можно было использовать 24-битную глубину (с трафаретом или без него), или 16 бит на некоторых дешевых карточках. 32-битная целая глубина никогда не поддерживалась должным образом. В настоящее время я просто перейду с плавающей точкой, это более или менее универсально поддерживается, быстро и не полно с искаженным [quirks] (http://www.sjbaker.org/steve/omniv/love_your_z_buffer.html), как целое вещество , – Damon