SCN Программа считывается из буфера глубины
Я изучаю некоторые расширенные возможности рендеринга в Scenekit, и для чего и можно использовать.
Я бы хотел реализовать многопроходный рендер вот так:
- Первый; рендеринг всей сцены с помощью встроенного шейдера PBR,
- Второй; рендеринг одного узла с a, который обращается к выходным цветам и глубине с первого прохода.
Я знаю, что могу сделать что-то вроде следующего с помощью:
...
<key>passes</key>
<dict>
<key>pass_scene</key>
<dict>
<key>draw</key>
<string>DRAW_SCENE</string>
<key>excludeCategoryMask</key>
<string>The bit mask of the node to exclude</string>
<key>outputs</key>
<dict>
<key>color</key>
<string>COLOR</string>
<key>depth</key>
<string>DEPTH</string>
</dict>
</dict>
<key>pass_object</key>
<dict>
<key>draw</key>
<string>DRAW_SCENE</string>
<key>includeCategoryMask</key>
<string>The bit mask of the node to exclude</string>
<key>inputs</key>
<dict>
<key>color</key>
<string>COLOR</string>
<key>depth</key>
<string>DEPTH</string>
</dict>
<key>outputs</key>
<dict>
<key>color</key>
<string>COLOR</string>
</dict>
<key>metalVertexShader</key>
<string>myCustomVertShader</string>
<key>metalFragmentShader</key>
<string> myCustomFragShader </string>
</dict>
</dict>
<key>sequence</key>
<array>
<string>pass_scene</string>
<string>pass_object</string>
</array>
...
Но я хотел бы использовать для рендеринга объекта вместо указания
metalVertexShader
&
metalFragmentShader
в .
Я не могу понять, как пройти через буферы цвета и глубины с первого прохода
SCNTechnique
в
SCNProgram
за второй проход.
Кто-нибудь знает, как это сделать? Документацию сложно собрать воедино и отладить проблемы.