{ "id": "video-plane-3d", "name": "Video Plane 3D", "description": "Places the video on a perspective 2D plane in 3D space with camera FOV, XYZ position, and pan/tilt/roll controls.", "category": "Projection", "entryPoint": "shadeVideo", "parameters": [ { "id": "fovDegrees", "label": "FOV", "type": "float", "default": 45, "min": 5, "max": 150, "step": 0.1, "description": "Virtual camera vertical field of view in degrees." }, { "id": "positionX", "label": "X", "type": "float", "default": 0, "min": -4, "max": 4, "step": 0.01, "description": "Horizontal plane position in world units." }, { "id": "positionY", "label": "Y", "type": "float", "default": 0, "min": -4, "max": 4, "step": 0.01, "description": "Vertical plane position in world units." }, { "id": "positionZ", "label": "Z", "type": "float", "default": 2.2, "min": 0.1, "max": 10, "step": 0.01, "description": "Depth of the plane in front of the virtual camera." }, { "id": "panDegrees", "label": "Pan", "type": "float", "default": 0, "min": -180, "max": 180, "step": 0.1, "description": "Rotates the plane left/right around its vertical axis." }, { "id": "tiltDegrees", "label": "Tilt", "type": "float", "default": 0, "min": -120, "max": 120, "step": 0.1, "description": "Rotates the plane up/down around its horizontal axis." }, { "id": "rollDegrees", "label": "Roll", "type": "float", "default": 0, "min": -180, "max": 180, "step": 0.1, "description": "Rotates the plane around its face normal." }, { "id": "planeScale", "label": "Plane Scale", "type": "float", "default": 1.4, "min": 0.05, "max": 6, "step": 0.01, "description": "Height of the video plane in world units; width follows the source aspect ratio." }, { "id": "edgeFeather", "label": "Edge Feather", "type": "float", "default": 1.5, "min": 0, "max": 24, "step": 0.1, "description": "Softens the plane edge in source pixels." }, { "id": "backgroundMix", "label": "Background Mix", "type": "float", "default": 0, "min": 0, "max": 1, "step": 0.01, "description": "Mixes the original video behind the projected plane." }, { "id": "outsideColor", "label": "Outside Color", "type": "color", "default": [ 0, 0, 0, 1 ], "description": "Color used where the camera ray misses the plane." } ] }