{ "id": "fisheye-equirectangular-mirror", "name": "Fisheye Equirectangular Mirror", "description": "Unwraps a single width-filled 16:9 fisheye lens into a 360x180 equirectangular map by mirroring the rear hemisphere into the same fisheye source.", "category": "Projection", "entryPoint": "shadeVideo", "parameters": [ { "id": "lensFovDegrees", "label": "Lens FOV", "type": "float", "default": 190, "min": 1, "max": 220, "step": 0.1, "description": "Actual fisheye lens field of view in degrees." }, { "id": "center", "label": "Optical Center", "type": "vec2", "default": [ 0.5, 0.5 ], "min": [ 0, 0 ], "max": [ 1, 1 ], "step": [ 0.001, 0.001 ], "description": "Normalized position in the frame, where 0.5, 0.5 is center." }, { "id": "radius", "label": "Fisheye Radius", "type": "vec2", "default": [ 0.5, 0.8889 ], "min": [ 0.001, 0.001 ], "max": [ 2, 2 ], "step": [ 0.001, 0.001 ], "description": "Normalized fisheye radius; adjust X/Y when the image is cropped or squeezed." }, { "id": "yawDegrees", "label": "Yaw", "type": "float", "default": 0, "min": -180, "max": 180, "step": 0.1, "description": "Rotates the virtual view horizontally." }, { "id": "pitchDegrees", "label": "Pitch", "type": "float", "default": 0, "min": -120, "max": 120, "step": 0.1, "description": "Rotates the virtual view vertically." }, { "id": "rollDegrees", "label": "Roll", "type": "float", "default": 0, "min": -180, "max": 180, "step": 0.1, "description": "Live roll rotation around the viewing axis." }, { "id": "fisheyeModel", "label": "Fisheye Model", "type": "enum", "default": "equidistant", "options": [ { "value": "equidistant", "label": "Equidistant" }, { "value": "equisolid", "label": "Equisolid" }, { "value": "stereographic", "label": "Stereographic" }, { "value": "orthographic", "label": "Orthographic" } ], "description": "Projection model used by the physical fisheye lens." }, { "id": "edgeFill", "label": "Edge Fill", "type": "float", "default": 0.06, "min": 0, "max": 0.3, "step": 0.001, "description": "Extends edge samples outward to cover small missing areas." }, { "id": "edgeBlur", "label": "Edge Blur", "type": "float", "default": 0.018, "min": 0, "max": 0.12, "step": 0.001, "description": "Softens the dilated edge fill." }, { "id": "outsideColor", "label": "Outside Color", "type": "color", "default": [ 0, 0, 0, 1 ], "description": "Color used where the remapped image samples outside the source frame." } ] }