Я довольно новичок в Shader Development и в настоящее время работаю над SCNProgram, чтобы заменить рендеринг геометрии плоскости.
В программах вершинного шейдера я хотел бы получить доступ к позиции (или, в основном, к позиции привязки) ) точка узла / me sh как координата пространства клипа. Есть ли простой способ сделать это sh, возможно, через поставляемый Node Buffer? Я вроде как:
xCoordinate = scn_node.modelViewProjectionTransform[3].x / povZPosition
yCoordinate = scn_node.modelViewProjectionTransform[3].y / povZPosition
Позиция zv вводится извне через специальный буфер. Это ломается, хотя, когда POV смотрит на сцену под углом.
Я подумал, что, возможно, я мог бы просто самостоятельно рассчитать положение узла с помощью:
renderer.projectPoint(markerNode.presentation.worldPosition)
и затем передать это через мой шейдер через »program.handleBinding (ofBufferNamed:…« в каждом кадре. Я надеюсь, что есть лучший способ.
При копании в Google эквивалент Unity, вероятно, будет: https://docs.unity3d.com/Packages/com.unity.shadergraph@6.9 / manual /Screen-Position-Node.html
Буду очень благодарен за любые подсказки. Прилагается небольшая визуализация.