В OpenGL мы можем отключить тест глубины и обновлять текстуру глубины (текстура глубины привязывается к GL_DEPTH_ATTACHMENT
FBO с помощью glFramebufferTexture2D
) следующими способами:
glDisable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glDisable(GL_DEPTH_TEST)
означает, что все фрагменты будут "всегда проходить", поэтому я установил MTLCompareFunctionAlways
в depthCompareFunction
из MTLDepthStencilDescriptor
.
glDepthMask(GL_TRUE)
означает, что текстура глубины будет обновлена со значением глубины фрагментов, каким бы оно ни былоранее имел.В металле я установил true
на depthWriteEnabled
из MTLDepthStencilDescriptor
.
К сожалению, окончательный результат рендеринга неверен.Это я правильно понимаю?Если да, то как правильно установить его в металле.