С буфером трафарета в opengl-es для Android я просто пытаюсь замаскировать часть чертежа. Я думаю, что я правильно настроил его, но он не маскирует незашифрованные части. Ниже приводится извлечение кода для того, что я делаю.Получение буфера трафарета OpenGL-ES
gl.glEnable(GL10.GL_STENCIL_TEST);
gl.glClearStencil(0);
gl.glClear(GL10.GL_STENCIL_BUFFER_BIT);
gl.glColorMask(false, false, false, false);
gl.glDepthMask(false);
gl.glStencilFunc(GL10.GL_ALWAYS, 1, 1);
gl.glStencilOp(GL10.GL_REPLACE, GL10.GL_REPLACE, GL10.GL_REPLACE);
drawMask(); //I have confirmed this draws to the correct location by allowing colour to show. Trust that this draws the mask to the correct location.
gl.glColorMask(true, true, true, true);
gl.glDepthMask(true);
gl.glStencilFunc(GL10.GL_EQUAL, 1, 1);
gl.glStencilOp(GL10.GL_KEEP, GL10.GL_KEEP, GL10.GL_KEEP);
drawItems(); //Draw everything. Only items inside the masked area should be drawn. But everything is drawn with this code...
gl.glDisable(GL10.GL_STENCIL_TEST);
Любое пятно ничего плохого с этим? В основном это рисовать поле, например, на половине экрана (это работает, если у меня включен цвет), который устанавливает буфер трафарета в 1 для этой области. И в конце я рисую на весь экран. Я хочу, чтобы он рисовал только верхнюю половину, но он рисует все.
Заранее спасибо.
ли конфигурация контекста [есть трафарет буфера битов] (http://www.mail-archive.com/[email protected]/msg21180.html)? – genpfault
Это не так. Спасибо, я думал, что это необходимая функция. Кажется, что это не так. – Moncader