Я пытаюсь реализовать метод старой школы, в котором визуализированное фоновое изображение И предустановленная информация о глубине используются для перекрытия других объектов в сцене.
Так, например, если у вас есть изображение комнатыс некоторыми проводами, свисающими с потолка на переднем плане, им присваивается небольшое значение глубины в карте глубины, и при правильной визуализации персонаж может идти «позади» проводов, но перед другими объектами в комнате.
До сих пор я пытался создать текстуру глубины, используя:
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, Image.GetWidth(), Image.GetHeight(), 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, pixels);
Затем просто связал ее с квадом и отрендерил ее по экрану, но она не записывает глубинузначения из текстуры.
Я также пробовал:
glDrawPixels(Image.GetWidth(), Image.GetHeight(), GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, pixels);
Но это замедляет мою частоту кадров примерно до 0,25 кадров в секунду ...
Я знаю, что вы можете сделать это в пиксельном шейдере, установив gl_fragDepth на значение из текстуры, но я хотел знать, смогу ли я добиться этого с аппаратным обеспечением без пиксельного шейдера?