Рендеринг объекта, который частично непрозрачен и частично полностью прозрачен.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Рендеринг объекта, который частично непрозрачен и частично полностью прозрачен.

Сообщение Anonymous »

У меня возникла проблема при попытке отрисовать прозрачный объект. У меня только одна сетка, поэтому один вызов отрисовки, и если объект немного сложный, например растение, я могу видеть сквозь объект, вы можете видеть, что мы видим листья на вершине большого объекта, но обычно они находятся сзади.
Код моей функции рисования:

Код: Выделить всё

glDepthFunc(GL_LESS);
glEnable(GL_CULL_FACE);
glFrontFace(GL_CCW);
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDepthMask(GL_FALSE);

glBindVertexArray(subMesh.VAO);
glDrawElements(GL_TRIANGLES, subMesh.index_count, GL_UNSIGNED_SHORT, 0);
Кто-нибудь знает, в чем проблема?
Мой движок поддерживает фиксированный конвейер и шейдеры, мне бы хотелось решение, которое работает с обоими методами.
Изображение

Если для glDepthMask установлено значение GL_TRUE
Изображение

Это рендеринг Я хочу
Изображение

Похоже, в Unity существует та же проблема, когда режим рендеринга установлен на Fade и Transparent, но у меня нет проблем, когда я устанавливаю его на < strong>Вырез. Может быть, решением будет создание системы вырезов?
Я пытался масштабировать объект, уменьшить дальнюю плоскость, поэтому не думаю, что это проблема с точностью глубины.
Я тоже пытался использовать glDepthFunc(GL_LEQUAL);.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ransparent
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»