SCN Программа считывается из буфера глубины

Я изучаю некоторые расширенные возможности рендеринга в Scenekit, и для чего и можно использовать.

Я бы хотел реализовать многопроходный рендер вот так:

  1. Первый; рендеринг всей сцены с помощью встроенного шейдера PBR,
  2. Второй; рендеринг одного узла с 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 за второй проход.

Кто-нибудь знает, как это сделать? Документацию сложно собрать воедино и отладить проблемы.

0 ответов

Другие вопросы по тегам