Skip to content

Inspection

Marko Koljancic edited this page May 28, 2026 · 3 revisions

Home

Inspection

Everything you do to look at the model once it is loaded - the shading representation, the inspection-mode shader output, UV Map mode, material overrides, lighting and IBL, post-processing, display overlays, mesh visibility, and the camera. For the GUI chrome (menu bar, panels, dock, layouts, preferences), see Interface.

View modes and inspection modes

These two settings compose: pick a view mode (the surface representation) and an inspection mode (the shader output) independently, per pane.

View modes - W cycles Shaded → Shaded+Wire → Wireframe; S forces Shaded; X toggles Ghosted:

Mode What renders
Shaded Full PBR, no wireframe.
Shaded+Wire PBR with an edge wireframe overlay.
Wireframe Edges only.
Ghosted Semi-transparent shaded - good for spotting overlapping geometry. (W toggles its wireframe while Ghosted is active.)

Inspection modes - number keys 1-7:

Key Mode Purpose
1 Shaded Default PBR (Cook-Torrance metallic-roughness).
2 Material ID A flat, deterministic per-material colour - see at a glance which material each face uses.
3 UV Map Switches the pane into 2D UV-space view, and back. This is a pane mode, not a shader mode - it sits alongside the inspection set.
4 Texel Density A heat map (blue = low, green = on-target, red = high) for spotting uneven texture resolution.
5 Depth Linearized depth - white near, black far.
6 Overdraw A per-pixel draw-count heat map - finds geometry layered on top of itself.
7 AO Preview Shows the raw SSAO buffer directly, bypassing tone mapping.

Texel Density's "on-target" green point is the display.texel_density_target value in config.toml (default 1.0) - there is no in-app control for it.

Inspection modes side by side

View modes - Shaded / Shaded+Wire / Wireframe / Ghosted

Material overrides

A material override replaces every material on the model with one stylized look - useful for inspecting form without texture noise. Shift+M cycles the full set; M toggles between Textured and Clay Light.

Override What it does
Textured (default) The model's real materials.
Clay Light Directionless ambient from the IBL irradiance; no specular highlight.
Clay Dark Like Clay Light, darker.
Chrome IBL specular reflection only - no direct lights.
Silhouette Flat black.

Overrides are stylized, not physical. While one is active the sidebar's Material sliders are disabled.

Material Inspector

The Material Inspector (Window → Material Inspector) is a view-only panel for texture and PBR introspection. It has no keyboard shortcut by design - M and Shift+M are reserved for the override cycle - and selecting a material in it never changes what the viewport renders.

It is a master/detail panel. The master list shows each material with a base-colour swatch, name, and a texture-presence indicator; the detail pane shows:

  • The base colour swatch and hex value (Base color factor: #RRGGBB × Albedo when an albedo texture is bound, otherwise just the factor).
  • A scalar PBR grid - Metallic, Roughness, Alpha mode (Opaque / Mask with cutoff / Blend), and the Emissive factor when non-zero.
  • A row per bound texture role - Albedo, Normal, Metallic / Roughness, Occlusion, Emissive - each with a 128×128 thumbnail, dimensions, and filename (or (embedded)).
  • An Open externally button per texture, opening the source image in your OS's default viewer. Disabled for embedded glTF textures.

Thumbnails decode once per texture and cache until the model is swapped.

Lighting

Solarxy lights the scene with a 3-light rig (key / fill / rim) plus image-based lighting (IBL) for environment-driven ambient and specular.

Key Action
I Toggle IBL on / off (restores the last active mode).
Shift+I Cycle the IBL mode - Diffuse (irradiance only, fast) ↔ Full (irradiance + specular reflection).
Shift+L Lock lights - freeze the 3-light rig in world space relative to the model, rather than following the camera.
Ctrl/⌘+Shift+O Import an HDRI / EXR environment map.

Drop a .hdr or .exr onto the window to use it as the environment. Once an HDRI is loaded it becomes the scene's light source, and the HDRI Sky background renders it as a visible backdrop.

The Properties panel's HDRI section also exposes the IBL mode, an HDRI rotation slider, and a Clear HDRI button.

Post-processing

flowchart LR
    classDef stage fill:#1F2430,stroke:#5C6773,color:#CCCAC2
    classDef msaa fill:#1F2430,stroke:#FFC44C,color:#FFC44C
    classDef post fill:#1F2430,stroke:#78A0EE,color:#78A0EE
    classDef ui fill:#1F2430,stroke:#7FD962,color:#7FD962
    classDef gate fill:#33415E,stroke:#FFC44C,color:#FFC44C

    s1[1. Shadow pass]:::stage --> s2[2. GBuffer<br/>if SSAO on]:::stage
    s2 --> s3[3. Background]:::msaa
    s3 --> s4[4. Main pass<br/>PBR + Inspection]:::msaa
    s4 --> s5[5. Wireframe<br/>overlays]:::msaa
    s5 --> s6[6. Visualization<br/>overlays]:::msaa
    s6 --> R{MSAA resolve}:::gate
    R --> s7[7. SSAO]:::post
    R --> s8[8. Bloom]:::post
    s7 --> s9[9. Composite<br/>+ tone map]:::post
    s8 --> s9
    s9 --> s10[10. egui overlay<br/>+ review markers]:::ui
Loading

The Solarxy render pipeline. Inspection modes plug into stage 4 (Main pass). Post-processing reads the MSAA-resolved HDR target; review markers draw in the egui overlay after composite, so they never z-fight with bloom or SSAO.

Key Effect
Shift+D Bloom - an HDR threshold + blur pass.
Shift+O SSAO - screen-space ambient occlusion.
Shift+T Cycle tone mapping - None (clip) → Linear → Reinhard → ACES Filmic (the default).
E / Shift+E Raise / lower exposure.

Bloom, SSAO, tone mapping, and exposure also live in the sidebar's Post-Processing group. Disabling bloom and SSAO is the easiest performance win on integrated GPUs - see Troubleshooting → Performance tips.

Display overlays

Key Action
G Grid.
A Axis gizmo (world origin).
Shift+A Local axes - a per-mesh origin gizmo.
N Cycle normals display - Off / Face / Vertex / Face+Vertex.
U Cycle the UV overlay - Off / Gradient / Checker.
B Cycle the background - White, Gradient, Dark, Ayu Mirage, Black, plus HDRI Sky once an HDRI is loaded, and any custom backgrounds you've defined.
Shift+B Cycle bounds display - Off / Whole Model / Per Mesh.
Shift+W Cycle wireframe weight - Light / Medium / Bold.
Shift+V Toggle the validation overlay - colour-coded issues drawn on the mesh. See Validation Reference.

Normals overlay

Bounds display - whole model vs. per mesh

Define your own background colours and gradients in the Preferences modal's View tab - they then appear in the B cycle and the Background menu.

Mesh visibility

Individual meshes can be hidden to cut through a dense or layered model:

Action Effect
Shift+H Hide the mesh under the cursor
Alt+H Show all meshes again
/ Isolate the mesh under the cursor - hide every other mesh
Right-click a mesh Context menu: Frame / Hide / Hide Others / Show All

The Outliner panel lists every mesh and material with per-row visibility toggles and the same right-click actions; View → Show All Meshes (Alt+H) restores everything at once.

Camera and projection

The camera is mouse-driven: left drag orbits, middle drag (or Shift+left drag) pans, and the scroll wheel zooms.

Key Action
H Frame the model - reset the view to its bounding box.
T / F / L / R Top / Front / Left / Right preset view.
P Perspective projection.
O Orthographic projection (in a UV pane, O toggles UV-overlap detection instead).
V Toggle turntable auto-rotation.
Arrow keys Move the camera.

The camera auto-frames the model on load; press H any time to reset.

Perspective vs. orthographic projection

See also: Interface · Keyboard Shortcuts · Validation Reference · Review System · User Guide

Clone this wiki locally