OpenGL Трафарет и глубина
Не получается правильно сделать Depth:
// Пишем сразу в трафарет и в ColorBuffer и в Depth
Gl.Enable(EnableCap.DepthTest);
Gl.Enable(EnableCap.StencilTest);
Gl.StencilMask(0xff);
Gl.ClearStencil(0);
Gl.Clear((uint)(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit | ClearBufferMask.StencilBufferBit));
// Всегда писать 1, когда дорога рисуется
Gl.StencilFunc(StencilFunction.Always, 1, 0xff);
// пишем все биты reference
Gl.StencilMask(0xff);
// stencil fail; stencil pass, depth fail; stencil pass, depth pass
Gl.StencilOp(StencilOp.Keep, StencilOp.Keep, StencilOp.Replace);
road.Draw(); //нарисовать дорогу
// теперь, трафарет дороги в единицах, остальное 0ли в буфере трафарета
//все что не единица - не проходит тест, и не рисуется;
Gl.StencilFunc(StencilFunction.Notequal, 1, 0xff);
// больше не пишем в буфер трафарета
Gl.StencilMask(0x00);
//непонятно нужно, нет; Если не пишем в буфер трафарета, по идее не нужно...
Gl.StencilOp(StencilOp.Keep, StencilOp.Keep, StencilOp.Keep);
// нарисовать землю
EndlessTerrain.DrawVisibleChunks();
Буфер трафарета создаю, при создании Окна.
Идея в том, чтобы нарисовать дорогу, и потом ничего не рисовать поверх. Иначе земля вылезает над дорогой.