:Release Notes: - Agents files for opencode and claude - Skills for opencode and claude - 3d models with medical organs - Some textures :Detailed Notes: - :Testing Performed: - :QA Notes: - Looks like shit :) :Issues Addressed: TG-1
60 lines
3.2 KiB
Markdown
60 lines
3.2 KiB
Markdown
# Cinematic Laparoscope Camera (project-scoped)
|
||
|
||
Constrains camera work to the laparoscope viewpoint the scene is built around. The preserved stereo rig is **not** edited by this skill — it is the interop surface.
|
||
|
||
## When to use
|
||
Load before adjusting FOV, near/far clip, depth of field, exposure, or post-processing on any camera, or diagnosing "scene looks too far", "scene looks too bright", "black frame", or "vignette too strong".
|
||
|
||
## Camera inventory (do not rename)
|
||
|
||
- **Stereo rig** (from `MainScene`): preserved at its current path. Do not rename, move, or retarget. Interop surface for WebRTC and external automation.
|
||
- **Art-directed laparoscope camera**: under `SurgeryBenchmark/Shared`. If one is not present, the scene-director agent can add it as a bounded change.
|
||
|
||
## Laparoscope framing
|
||
|
||
- **FOV**: `fieldOfView` 35–55 for "looks like a scope"; 60–75 for "wide scope"; > 80 looks like a generic game camera.
|
||
- **Near clip**: 0.01–0.05 m. Far clip: 5–20 m (enough for a cavity).
|
||
- **Barrel optics**: `LensDistortion.intensity` 0.05–0.15 + `Vignette.intensity` 0.25–0.4, smoothness 0.3–0.5.
|
||
- **Highlights**: narrow `Bloom.intensity` 0.1–0.3, `threshold` > 1.0 (only catches the brightest specular hits).
|
||
- **Color grading**: `ColorAdjustments.contrast` +0.05 to +0.15, `postExposure` near 0, `Tonemapping` = Neutral or ACES.
|
||
|
||
## Depth of field
|
||
|
||
- Mode: `Gaussian` (not Bokeh — too heavy for real-time).
|
||
- `gaussianStart`: near the closest tissue you want sharp.
|
||
- `gaussianEnd`: just past the farthest tissue you want sharp.
|
||
- `gaussianMaxRadius`: 1.0–2.5 px for subtle; > 4 looks like a portrait lens.
|
||
- Pitfall: focus so close the near plane is inside the focus zone → "all-blur" frame. Verify by screenshot.
|
||
|
||
## Exposure and HDR
|
||
|
||
- `Camera.allowHDR` = true. The URP asset must have HDR enabled (default in URP 14).
|
||
- Use `ColorAdjustments.postExposure` (stops, ±1.0). If range > 1.0 needed, fix the lighting instead.
|
||
- "Too dark" laparoscope usually means: Volume profile missing `ColorAdjustments`, or post-processing is skipped because the URP asset has it disabled. Verify with `volume_get_info` before touching the camera.
|
||
|
||
## Adding a secondary / overview camera (bounded change)
|
||
|
||
1. Create as child of `SurgeryBenchmark/Shared/_Cameras`.
|
||
2. Name it `OverviewCamera_<Tag>` (e.g., `OverviewCamera_Cavity`).
|
||
3. `clearFlags = Solid Color` with neutral mid-grey, or `Skybox` if the cavity is enclosed.
|
||
4. Do **not** disable the stereo rig or any preserved camera.
|
||
|
||
## Composition rules
|
||
|
||
- Verify from at least two angles: scope (default) + 30–45° offset.
|
||
- A 30–45° offset shot catches stretching, lighting falloff, and proportion problems the scope view hides.
|
||
- For every verification pass: scope screenshot + offset screenshot.
|
||
|
||
## Common MCP calls
|
||
|
||
```
|
||
# Screenshot from the laparoscope
|
||
mcp__UnityMCP__manage_camera(action="screenshot", include_image=true, output_folder="Assets/Screenshots/LaparoscopicBenchmark")
|
||
|
||
# Set camera properties
|
||
mcp__UnityMCP__manage_camera(action="set_lens", target="<camera path>", search_method="by_path", field_of_view=45, near_clip_plane=0.02, far_clip_plane=10.0)
|
||
|
||
# Read camera properties
|
||
mcp__UnityMCP__manage_components(action="get_component", target="<camera path>", component_type="Camera")
|
||
```
|