Какой эквивалент glStencilFunc в металле? - PullRequest
0 голосов
/ 03 ноября 2019

как перевести в металл эту инструкцию OpenGL:

glStencilFunc(Func, Ref, Mask);

1 Ответ

2 голосов
/ 04 ноября 2019

MTLStencilDescriptor объект, который определяет операции трафарета передней и задней стороны объекта глубины и состояния трафарета.

Тест трафарета представляет собой сравнение маскируемогоэталонное значение и замаскированное значение хранятся во вложении трафарета. (Значение маскируется путем выполнения над ним логической операции AND со значением readMask.) Объект MTLStencilDescriptor определяет способ обновления содержимого вложения трафарета на основе результатов теста трафарета и теста глубины.

Свойство stencilCompareFunction определяет тест трафарета. Свойства stencilFailureOperation, deepFailureOperation и deepStencilPassOperation указывают, что делать со значением трафарета, хранящимся во вложении трафарета, для трех разных результатов теста: если тест трафарета не пройден, если тест трафарета пройден и тест глубины не пройден, или если оба трафарета и глубинатесты пройдены, соответственно. writeMask определяет, какие биты трафарета могут быть изменены в результате операции трафарета.


Я вижу, где поместить значение Func и Mask с помощью MTLStencilDescriptor, но куда идти значениеREF?

setStencilReferenceValue устанавливает эталонное значение трафарета для тестов сравнения переднего и заднего трафаретов.

...