Добрый день.
Давно не занимался графикой, от этого такие вопросы
Есть несколько элементов (спрайты расположены на разной высоте Z)
При отрисовке на часть полупрозрачных объектов накладывается фон, но есть и объекты которые отображаются корректно. (Возможно из-а порядка рендера)
См. скриншот. Одна машинка загораживает другую

GLES20.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
//включаем тест глубины
GLES20.glEnable(GLES20.GL_DEPTH_TEST);
//включаем отсечение невидимых граней
GLES20.glEnable(GLES20.GL_CULL_FACE);
//включаем альфатест
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
//GLES20.glBlendFunc(GLES20.GL_DST_ALPHA, GLES20.GL_ONE_MINUS_DST_ALPHA);
//включаем сглаживание текстур, это пригодитс¤ в будущем
GLES20.glHint(GLES20.GL_GENERATE_MIPMAP_HINT, GLES20.GL_NICEST);//очищаем кадр
GLES20.glClearColor(0.07f, 0.8f, 1.0f, 1.0f);
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);В чем может быть проблема?
P.s. OpenGL ES 2.0
А в текстуре машинок есть альфа-канал?
Используя альфа-тест вместо блендинга.
Aldaron
Не сильно понял суть, но вангую, что проблема в порядке рендера.
Рисуй спрайты начиная с самого дальнего и заканчивая самым ближним.
Ось Z, кстати, не нужна. По крайней мере передавать в шейдер ее не обязательно.
Спрайты и так придется сортировать по удалению, а вместо того, что бы прибавлять Z компоненту, можно просто отключить тест глубины.
Big V
> Не сильно понял суть, но вангую, что проблема в порядке рендера.
> Рисуй спрайты начиная с самого дальнего и заканчивая самым ближним.
Поддерживаю.
1. Порядок отрисовки спрайтов
2. Тест глубины должен быть отключен.
1. А автоматически z-тестом это дело не исправить?
2. Альфа канал есть
Aldaron
> 1. А автоматически z-тестом это дело не исправить?
Нет. Читай принцип работы графического конвейера.
Aldaron
> А автоматически z-тестом это дело не исправить?
поверь, проще обычным qsort'ом сортировать по дистанции)))
можно конечно включить GL_ALPHATEST, но будет видно резкие края
Тема в архиве.