Я пытаюсь отобразить полупрозрачный объект внутри скайбокса. Однако в моей текущей реализации текстуры смешиваются с цветом фона вместо скайбокса (если на пути нет другого объекта).
Вот некоторые вехи в моей реализации, которыми, как мне кажется, было бы полезно поделиться:
в этом:
[...]
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
[...]
оказывать:
[...]
[render scene]
[...]
glUseProgram(program_skybox);
glDepthFunc(GL_LEQUAL);
glDepthMask(GL_FALSE);
[bind view & projection matrices]
[draw skybox]
glDepthMask(GL_TRUE);
glDepthFunc(GL_LESS);
Что мне нужно изменить, чтобы мой скайбокс смешался? Я полагаю, проблема в буфере глубины?
GL_CULL_FACE
работает как надо), то все задние грани имеют противоположную намотку всем передним граням. Так что не надо их сортировать просто рендерить по намотке. из-за этого вы просто z-сортируете объекты вместо всех граней ... Я избегаю даже этого, поскольку мои прозрачные объекты не пересекаются и концентричны ... так что один находится внутри другого. - person Spektre   schedule 26.04.2020Zouch
, ссылка nVidia подробно рассматривает эту проблему. - person Spektre   schedule 26.04.2020