PageSourceSearch

https://docs-vrgeo-version3.netlify.app/assets/js/925545d4.713da901.js

js docs-vrgeo-version3.netlify.app collected 2026-10-03 10:41:31 UTC 47,492 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkvrgs_docs_v_3_1=globalThis.webpackChunkvrgs_docs_v_3_1||[]).push([[13969],{76334(e,s,r){r.r(s),r.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>a,frontMatter:()=>d,metadata:()=>n,toc:()=>h});const n=JSON.parse('{"id":"general/viewing-collaboration/display-properties","title":"3D View Display Options","description":"Reference for every setting in the VRGS 3D view Display Options panel \u2014 scene & environment, lighting & shadows, sky & atmosphere, post-processing effects, geometry & LOD, navigation, cameras & annotations, VR/XR, Cesium 3D Tiles and multi-projector calibration.","source":"@site/versioned_docs/version-3.4/general/viewing-collaboration/display_props.md","sourceDirName":"general/viewing-collaboration","slug":"/general/viewing-collaboration/display-properties","permalink":"/docs/general/viewing-collaboration/display-properties","draft":false,"unlisted":false,"editUrl":"https://github.com/vrgeoscience/vrgs_docs_v3/tree/master/versioned_docs/version-3.4/general/viewing-collaboration/display_props.md","tags":[],"version":"3.4","sidebarPosition":1,"frontMatter":{"id":"display-properties","title":"3D View Display Options","sidebar_label":"Display Options","description":"Reference for every setting in the VRGS 3D view Display Options panel \u2014 scene & environment, lighting & shadows, sky & atmosphere, post-processing effects, geometry & LOD, navigation, cameras & annotations, VR/XR, Cesium 3D Tiles and multi-projector calibration.","keywords":["display options","view properties","lighting","shadows","ray tracing","sky","clouds","bloom","eye-dome lighting","curvature","slope aspect","Cesium","VR","Vulkan"],"sidebar_position":1},"sidebar":"docs","previous":{"title":"Import & Export","permalink":"/docs/general/data-exchange/import-export"},"next":{"title":"Figures and Images","permalink":"/docs/general/viewing-collaboration/figures-and-images"}}');var t=r(74848),i=r(28453);const d={id:"display-properties",title:"3D View Display Options",sidebar_label:"Display Options",description:"Reference for every setting in the VRGS 3D view Display Options panel \u2014 scene & environment, lighting & shadows, sky & atmosphere, post-processing effects, geometry & LOD, navigation, cameras & annotations, VR/XR, Cesium 3D Tiles and multi-projector calibration.",keywords:["display options","view properties","lighting","shadows","ray tracing","sky","clouds","bloom","eye-dome lighting","curvature","slope aspect","Cesium","VR","Vulkan"],sidebar_position:1},l=void 0,o={},h=[{value:"Scene & Environment",id:"scene--environment",level:2},{value:"Base Plane",id:"base-plane",level:3},{value:"Map Grid",id:"map-grid",level:3},{value:"Lighting & Shadows",id:"lighting--shadows",level:2},{value:"Time of Day Sun",id:"time-of-day-sun",level:3},{value:"Ambient Occlusion (RTX)",id:"ambient-occlusion-rtx",level:3},{value:"Sky & Atmosphere",id:"sky--atmosphere",level:2},{value:"Procedural Clouds",id:"procedural-clouds",level:3},{value:"Planetary Space",id:"planetary-space",level:3},{value:"Post-Processing Effects",id:"post-processing-effects",level:2},{value:"Bloom (Glow)",id:"bloom-glow",level:3},{value:"Eye-Dome Lighting",id:"eye-dome-lighting",level:3},{value:"Structural Shading",id:"structural-shading",level:3},{value:"Orthographic Grid Overlay",id:"orthographic-grid-overlay",level:3},{value:"Geometry & LOD",id:"geometry--lod",level:2},{value:"Navigation & Interaction",id:"navigation--interaction",level:2},{value:"Auto Spin",id:"auto-spin",level:3},{value:"Interpretation Line",id:"interpretation-line",level:3},{value:"Cameras & Annotations",id:"cameras--annotations",level:2},{value:"Billboards (Text Labels)",id:"billboards-text-labels",level:3},{value:"VR / XR",id:"vr--xr",level:2},{value:"Laser Pointer",id:"laser-pointer",level:3},{value:"Cesium 3D Tiles",id:"cesium-3d-tiles",level:2},{value:"Quality",id:"quality",level:3},{value:"Streaming & Preload",id:"streaming--preload",level:3},{value:"Memory & Performance",id:"memory--performance",level:3},{value:"Projection / MPCDI",id:"projection--mpcdi",level:2},{value:"Direction",id:"direction",level:3},{value:"Frustum Half-Angles",id:"frustum-half-angles",level:3},{value:"Bounding Box",id:"bounding-box",level:2}];function c(e){const s={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.strong,{children:"Display Options"})," panel collects the per\u2011project settings that control how the ",(0,t.jsx)(s.strong,{children:"3D model view"})," is drawn \u2014 the background and overlays, lighting and shadows, the procedural sky, full\u2011screen effects, navigation feel, cameras and annotations, VR, and 3D\u2011tile streaming."]}),"\n",(0,t.jsxs)(s.p,{children:["These are ",(0,t.jsx)(s.em,{children:"view\u2011wide"})," options: they apply to the whole scene, not to one selected object. (Per\u2011object appearance \u2014 a single mesh, point cloud or polyline \u2014 is edited from that object's own entry in the project tree.)"]}),"\n",(0,t.jsxs)(s.p,{children:["Open it by making a ",(0,t.jsx)(s.strong,{children:"3D model view"})," the active window \u2014 its settings appear in the ",(0,t.jsx)(s.strong,{children:"Properties"})," pane. Settings are arranged into collapsible groups (and sub\u2011groups); expand a group to see its options, and hover any row for a tooltip. Every change applies to the live view immediately."]}),"\n",(0,t.jsx)(s.admonition,{title:"Renderer differences",type:"note",children:(0,t.jsxs)(s.p,{children:["A number of effects \u2014 ray\u2011traced shadows and ambient occlusion, the time\u2011of\u2011day sun, bloom, eye\u2011dome lighting, curvature / slope shading, and annotation\u2011asset opacity \u2014 are part of the ",(0,t.jsx)(s.strong,{children:"Vulkan"})," renderer. Switch the renderer in ",(0,t.jsx)(s.a,{href:"/docs/general/setup-system/project-properties#advanced--diagnostics",children:"Project Properties \u2192 Use Vulkan Renderer"}),". Ray\u2011traced features additionally need a ",(0,t.jsx)(s.strong,{children:"ray\u2011tracing\u2011capable GPU"}),"; rows that need one are greyed out otherwise."]})}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"scene--environment",children:"Scene & Environment"}),"\n",(0,t.jsx)(s.p,{children:"The view background and general on\u2011screen overlays."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Backgroun
1d Colour"})}),(0,t.jsxs)(s.td,{children:["Solid background colour of the 3D view. Used when the procedural sky (",(0,t.jsx)(s.em,{children:"Sky & Atmosphere"}),") is off."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show Performance HUD"})}),(0,t.jsx)(s.td,{children:"Overlay an on\u2011screen heads\u2011up display of frame rate (FPS) and CPU/GPU timing. Diagnostic; leave off for normal use."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show Scene Bounding Box"})}),(0,t.jsxs)(s.td,{children:["Draw a wireframe box around the combined extent of all visible scene data. Good for judging overall model size and position. ",(0,t.jsxs)(s.em,{children:["(Distinct from the ",(0,t.jsx)(s.strong,{children:"Bounding Box"})," group at the foot of the panel, which shows the editable min/max coordinates.)"]})]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Point Antialiasing"})}),(0,t.jsx)(s.td,{children:"Render point\u2011cloud points as smooth round dots instead of hard squares. Softer look; minor cost on dense clouds."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Line Antialiasing"})}),(0,t.jsx)(s.td,{children:"Smooth the edges of polylines and wireframe lines to reduce jaggedness."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"North Arrow Style"})}),(0,t.jsxs)(s.td,{children:["On\u2011screen orientation indicator: ",(0,t.jsx)(s.code,{children:"North Arrow"})," (compass needle), ",(0,t.jsx)(s.code,{children:"ArtificialHorizon"})," (aircraft\u2011style attitude disc) or ",(0,t.jsx)(s.code,{children:"Shuttle"})," (3D orientation cube)."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Rotation Glyph Scale"})}),(0,t.jsx)(s.td,{children:"On\u2011screen size of the rotation\u2011centre widget shown while orbiting. Cosmetic only."})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"base-plane",children:"Base Plane"}),"\n",(0,t.jsx)(s.p,{children:"A reference ground plane drawn under the scene for scale and orientation."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Z Mode"})}),(0,t.jsxs)(s.td,{children:["Vertical placement of the plane: ",(0,t.jsx)(s.code,{children:"ModelFloor"})," (base of the model bounding box), ",(0,t.jsx)(s.code,{children:"ProjectDatum"})," (the project's Z datum, e.g. sea level) or ",(0,t.jsx)(s.code,{children:"Custom"})," (the fixed height in ",(0,t.jsx)(s.em,{children:"Custom Z"}),")."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Custom Z"})}),(0,t.jsxs)(s.td,{children:["Fixed world height (project Z units) for the plane when ",(0,t.jsx)(s.em,{children:"Z Mode = Custom"}),". Ignored in the other modes."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Major / Minor Lines"})}),(0,t.jsx)(s.td,{children:"Draw a thicker, brighter line every tenth minor line so scale is easier to read."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Distance Fade"})}),(0,t.jsx)(s.td,{children:"Fade the plane's grid lines out with distance so they don't clutter the far field."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show World Axes"})}),(0,t.jsx)(s.td,{children:"Draw the world X axis (red) and Y axis (green) through the origin on the plane."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Fade Distance"})}),(0,t.jsxs)(s.td,{children:["Radius (world units) over which lines fade when ",(0,t.jsx)(s.em,{children:"Distance Fade"})," is on. ",(0,t.jsx)(s.code,{children:"0"})," = choose automatically from scene size."]})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"map-grid",children:"Map Grid"}),"\n",(0,t.jsx)(s.p,{children:"A georeferenced grid drawn at the project's map limits."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"X Contour Interval"})}),(0,t.jsx)(s.td,{children:"Spacing between grid lines along the X (easting) axis, in project ground units."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Y Contour Interval"})}),(0,t.jsx)(s.td,{children:"Spacing between grid lines along the Y (northing) axis, in project ground units."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"X Grid Colour"})}),(0,t.jsx)(s.td,{children:"Colour of the grid lines running along the X (easting) axis."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Y Grid Colour"})}),(0,t.jsx)(s.td,{children:"Colour of the grid lines running along the Y (northing) axis."})]})]})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"lighting--shadows",children:"Lighting & Shadows"}),"\n",(0,t.jsx)(s.p,{children:"The main directional light, an optional camera headlight, and shadows."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show Light Indicator"})}),(0,t.jsx)(s.td,{children:"Draw a small marker showing the main light's position/direction."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show Lighting & Pointer Viz"})}),(0,t.jsx)(s.td,{children:"Visualise the light direction and the laser/pointer ray as on\u2011screen guides. Diagnostic aid."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Light Azimuth"})}),(0,t.jsxs)(s.td,{children:["Compass bearing of the main light, degrees (0\u2013360; 0 = North, 90 = East). Ignored while ",(0,t.jsx)(s.em,{children:"Time\u2011of\u2011Day Sun"})," is enabled."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Light Elevation"})}),(0,t.jsxs)(s.td,{children:["Height of the light above the horizon, degrees (0 = horizon, 90 = overhead). Ignored while ",(0,t.jsx)(s.em,{children:"Time\u2011of\u2011Day Sun"})," is enabled."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Use Headlight"})}),(0,t.jsx)(s.td,{children:"Attach the light to the camera so the scene is always lit from the viewer's position (like a head torch), instead of from the fixed Azimuth/Elevation."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Headlight Brightness"})}),(0,t.jsxs)(s.td,{children:["Intensity of the camera headlight, 0\u2013100. Only used when ",(0,t.jsx)(s.em,{children:"Use Headlight"})," is on."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Enable Shadows"})}),(0,t.jsxs)(s.td,{children:["Cast real\u2011time sun shadows from meshes and models. Shadows are ",(0,t.jsx)(s.strong,{children:"ray\u2011traced on the GPU"})," \u2014 this needs the Vulkan view on a ray\u2011tracing\u2011capable GPU (no effect otherwise). There is a performance cost while enabled."]})]})]})]}),"\n",(0,t.jsx)(s.admonition,{title:"One shadow toggle",type:"note",children:(0,t.jsxs)(s.p,{children:['There is no separate "ray\u2011traced shadows" option. The legacy shadow\u2011map technique was removed, so ',(0,t.jsx)(s.strong,{children:"Enable Shadows"})," ",(0,t.jsx)(s.em,{children:"is"})," ray\u2011traced shadows on a capable GPU. On a GPU without ray\u2011tracing support the toggle simply has no visible effect."]})}),"\n",(0,t.jsx)(s.h3,{id:"time-of-day-sun",children:"Time of Day Sun"}),"\n",(0,t.jsxs)(s.p,{children:["Drive the sun automatically from a clock instead of the manual Azimuth/Elevation. While enabled this ",(0,t.jsx)(s.strong,{children:"overrides"})," the manual light direction. ",(0,t.jsx)(s.em,{children:"(Vulkan view.)"})]}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Enable Time\u2011of\u2011Day Sun"})}),(0,t.jsx)(s.td,{children:"Drive the sun from a time\u2011of\u2011day clock (overrides the manual Light Azimuth/Elevation)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Time (hours 0\u201324)"})}),(0,t.jsx)(s.td,{children:"Time of day in hours. Scrub to move the sun; noon = overhead."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Animate Sun"})}),(0,t.jsx)(s.td,{children:"Sweep the time forward continuously (sunrise to sunset) on the render timer."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Animation Speed (h/s)"})}),(0,t.jsxs)(s.td,{children:["Simulated hours advanced per real second while animating (",(0,t.jsx)(s.code,{children:"1.0"})," = a 24 h day in 24 s)."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Use Solar Position (date + location)"})}),(0,t.jsxs)(s.td,{children:["Use the real sun position computed from the date and geographic location instead of a procedural sweep. ",(0,t.jsx)(s.em,{children:"Timezone is estimated from longitude and ignores daylight saving."})]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Use Project Location"})}),(0,t.jsx)(s.td,{children:"Derive latitude/longitude from the project coordinate system. Off = use the manual values below."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Year / Month / Day"})}),(0,t.jsxs)(s.td,{children:["Date used for the real solar position (when ",(0,t.jsx)(s.em,{children:"Use Solar Position"})," is on)."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Latitude (deg)"})}),(0,t.jsxs)(s.td,{children:["Manual latitude (+N / \u2212S), used when ",(0,t.jsx)(s.em,{children:"Use Project Location"})," is off."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Longitude (deg)"})}),(0,t.jsxs)(s.td,{children:["Manual longitude (+E / \u2212W), used when ",(0,t.jsx)(s.em,{children:"Use Project Location"})," is off."]})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"ambient-occlusion-rtx",children:"Ambient Occlusion (RTX)"}),"\n",(0,t.jsxs)(s.p,{children:["Hardware ray\u2011traced ambient occlusion. ",(0,t.jsx)(s.em,{children:"(Vulkan view, ray\u2011tracing\u2011capable GPU only \u2014 greyed out otherwise.)"})]}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Enable Ambient Occlusion"})}),(0,t.jsx)(s.td,{children:"Darken crevices, contacts and concave areas with short hardware\u2011traced rays for added depth. Independent of shadows."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"AO Radius"})}),(0,t.jsx)(s.td,{children:"How far (world units) a surface looks for nearby geometry. Larger = broader, softer shading."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"AO Intensity"})}),(0,t.jsx)(s.td,{children:"Strength of the AO darkening (0 = off, 1 = full)."})]})]})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"sky--atmosphere",children:"Sky & Atmosphere"}),"\n",(0,t.jsx)(s.p,{children:"A computed sky that replaces the flat background colour."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show Procedural Sky"})}),(0,t.jsxs)(s.td,{children:["Replace the flat ",(0,t.jsx)(s.em,{children:"Backgroun
1d Colour"})," with a computed sky (atmosphere + sun + clouds, or a starfield)."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Sky Mode"})}),(0,t.jsxs)(s.td,{children:[(0,t.jsx)(s.code,{children:"Earth Atmosphere"})," (blue sky with sun, scattering and optional clouds) or ",(0,t.jsx)(s.code,{children:"Planetary Space"})," (black sky with stars and the Milky Way)."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Sun Intensity"})}),(0,t.jsxs)(s.td,{children:["Overall brightness of the sun and sky in ",(0,t.jsx)(s.em,{children:"Earth Atmosphere"})," mode. Low = dawn/dusk, high = bright midday."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Turbidity (Haze)"})}),(0,t.jsxs)(s.td,{children:["Amount of atmospheric haze / aerosol scattering in ",(0,t.jsx)(s.em,{children:"Earth Atmosphere"})," mode. Higher = hazier, warmer sky and softer sun."]})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"procedural-clouds",children:"Procedural Clouds"}),"\n",(0,t.jsxs)(s.p,{children:["Animated clouds for the ",(0,t.jsx)(s.em,{children:"Earth Atmosphere"})," sky."]}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Enable Clouds"})}),(0,t.jsx)(s.td,{children:"Draw animated procedural clouds."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Coverage"})}),(0,t.jsx)(s.td,{children:"Fraction of sky covered (0 = clear, 1 = fully overcast)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Density"})}),(0,t.jsx)(s.td,{children:"Cloud opacity / thickness (0 = wispy and transparent, 1 = solid)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Pattern Scale (m)"})}),(0,t.jsx)(s.td,{children:"Size of the cloud pattern in metres (\u22481000\u201310000). Larger = broader cloud shapes."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Wind Speed (m/s)"})}),(0,t.jsx)(s.td,{children:"How fast clouds drift (\u22480\u201320 m/s)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Wind Direction"})}),(0,t.jsx)(s.td,{children:"Compass bearing the clouds drift toward (0\u2013360; 0 = North, 90 = East)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Altitude"})}),(0,t.jsx)(s.td,{children:"Apparent height of the cloud layer (0 = near the horizon, 1 = overhead/zenith)."})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"planetary-space",children:"Planetary Space"}),"\n",(0,t.jsxs)(s.p,{children:["Star field for the ",(0,t.jsx)(s.em,{children:"Planetary Space"})," sky."]}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Star Density"})}),(0,t.jsx)(s.td,{children:"How many stars fill the sky (0 = none, 1 = densely packed)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Star Brightness"})}),(0,t.jsx)(s.td,{children:"Brightness multiplier applied to the stars."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Star Seed"})}),(0,t.jsx)(s.td,{children:"Random seed for the star pattern. Change it for a different but repeatable layout."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Milky Way Band"})}),(0,t.jsx)(s.td,{children:"Add a faint galactic band across the sky."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Exposure"})}),(0,t.jsx)(s.td,{children:"Overall brightness / exposure of the space sky."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Backgroun
1d Level"})}),(0,t.jsx)(s.td,{children:"Black level of the empty sky between stars (0 = pure black)."})]})]})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"post-processing-effects",children:"Post-Processing Effects"}),"\n",(0,t.jsxs)(s.p,{children:["Full\u2011screen effects applied after the scene is drawn. Each effect is a sub\u2011group. ",(0,t.jsx)(s.em,{children:"(Vulkan view.)"})]}),"\n",(0,t.jsx)(s.h3,{id:"bloom-glow",children:"Bloom (Glow)"}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Enable Bloom"})}),(0,t.jsx)(s.td,{children:"Add a soft glow that bleeds out from the brightest parts of the image. Cosmetic."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Intensity"})}),(0,t.jsx)(s.td,{children:"How strongly the glow is blended over the image."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Threshold"})}),(0,t.jsx)(s.td,{children:"Brightness (luminance, 0\u20131) a pixel must exceed before it glows. Higher = only the brightest highlights bloom."})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"eye-dome-lighting",children:"Eye-Dome Lighting"}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Enable Eye\u2011Dome Lighting"})}),(0,t.jsx)(s.td,{children:"Darken depth edges so point\u2011cloud and mesh structure reads clearly without per\u2011vertex shading. Especially useful for un\u2011coloured point clouds."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Strength"})}),(0,t.jsx)(s.td,{children:"How dark the edge shading is. Higher = stronger, higher\u2011contrast outlines."})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"structural-shading",children:"Structural Shading"}),"\n",(0,t.jsx)(s.p,{children:"Attribute\u2011free shading that reveals geological structure on bare geometry \u2014 works even on tiled models with no per\u2011vertex attributes."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Enable Curvature Shading"})}),(0,t.jsxs)(s.td,{children:["Shade by curvature from scene depth: concave creases darken, convex ridges brighten, making folds and faults stand out. ",(0,t.jsx)(s.strong,{children:"Overrides Eye\u2011Dome Lighting"})," while on."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Curvature Strength"})}),(0,t.jsx)(s.td,{children:"Intensity of the curvature shading. Higher = more pronounced relief."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show Slope / Aspect (Dip)"})}),(0,t.jsxs)(s.td,{children:["Colour surfaces by orientation: hue = dip\u2011direction (compass aspect), saturation = dip angle (flat = pale, vertical = vivid). Works on SLPK/tiled models. ",(0,t.jsx)(s.strong,{children:"Overrides texture/attribute/lit colour"})," while on."]})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"orthographic-grid-overlay",children:"Orthogra
1phic Grid Overlay"}),"\n",(0,t.jsxs)(s.p,{children:["An adaptive measurement grid, drawn only in ",(0,t.jsx)(s.strong,{children:"orthographic"})," (non\u2011perspective) projection."]}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Enable Grid Overlay"})}),(0,t.jsx)(s.td,{children:"Draw the adaptive grid while in orthographic view. Spacing adjusts automatically with zoom. No effect in perspective view."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Opacity"})}),(0,t.jsx)(s.td,{children:"Opacity of the grid lines, 0.0 (invisible) \u2013 1.0 (solid)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Detail Levels"})}),(0,t.jsx)(s.td,{children:"Number of nested grid scales drawn at once (3\u20136). More levels show finer subdivisions as you zoom in."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Line Width"})}),(0,t.jsx)(s.td,{children:"Thickness of the grid lines in pixels (0.5\u20135.0)."})]})]})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"geometry--lod",children:"Geometry & LOD"}),"\n",(0,t.jsx)(s.p,{children:"Scene\u2011wide geometry display."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Vertical Scale"})}),(0,t.jsx)(s.td,{children:"Vertical exaggeration of the whole scene (1.0 = true scale, 2.0 = heights doubled). Emphasises subtle topography but distorts true geometry."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Camera Zoom %"})}),(0,t.jsx)(s.td,{children:"Camera field\u2011of\u2011view / zoom as a percentage (0\u2013200). Lower zooms in (narrower FOV), higher zooms out."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Full\u2011Resolution Tiles While Interpreting"})}),(0,t.jsx)(s.td,{children:"Force tiled models to their highest detail while interpreting on them, instead of the usual view\u2011dependent LOD. More accurate picking; uses more memory and can slow very large models."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Geobody & Zone Infill"})}),(0,t.jsx)(s.td,{children:"Render solid filled volumes for geobodies and zones instead of just their boundary surfaces."})]})]})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"navigation--interaction",children:"Navigation & Interaction"}),"\n",(0,t.jsx)(s.p,{children:"How the mouse drives the camera, plus interpretation feedback."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Mouse Profile"})}),(0,t.jsxs)(s.td,{children:["Mouse button / orbit\u2011pan\u2011zoom mapping preset: ",(0,t.jsx)(s.code,{children:"VRGS Current"}),", ",(0,t.jsx)(s.code,{children:"VRGS Expert"})," (enables camera roll), ",(0,t.jsx)(s.code,{children:"Pix4D"}),", ",(0,t.jsx)(s.code,{children:"Blender"}),", ",(0,t.jsx)(s.code,{children:"CloudCompare"})," or ",(0,t.jsx)(s.code,{children:"Metashape"}),"."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show Segmentation Points"})}),(0,t.jsx)(s.td,{children:"Show the 3D marker labels placed by the image\u2011segmentation (SAM) tools."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show GNSS Data"})}),(0,t.jsxs)(s.td,{children:["Draw the live GNSS position block over the 3D view \u2014 solution type, corrections, latitude/longitude, project coordinates and the receiver's accuracy estimate. Only appears while a receiver is connected. See ",(0,t.jsx)(s.a,{href:"/docs/general/setup-system/gnss-field-navigation",children:"GNSS Field Navigation"}),"."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show Satellite Data"})}),(0,t.jsx)(s.td,{children:"Add the per-satellite list (PRN, elevation, azimuth, SNR, and whether it is used in the fix) to that block. It is long \u2014 leave it off unless you are diagnosing reception."})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"auto-spin",children:"Auto Spin"}),"\n",(0,t.jsx)(s.p,{children:"Flick\u2011to\u2011spin momentum after a rotate drag."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Enable Auto Spin"})}),(0,t.jsx)(s.td,{children:"After a mouse\u2011drag rotate, keep spinning with momentum and gradually slow to a stop."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Decay Rate"})}),(0,t.jsx)(s.td,{children:"How quickly spin momentum bleeds off. Higher = stops sooner."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Stop Threshold"})}),(0,t.jsx)(s.td,{children:"Minimum angular velocity below which the spin is treated as stopped."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Flick Sensitivity"})}),(0,t.jsx)(s.td,{children:"Multiplier from mouse flick speed to spin speed. Higher = a small flick spins faster."})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"interpretation-line",children:"Interpretation Line"}),"\n",(0,t.jsx)(s.p,{children:"Appearance of the line drawn while interpreting."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Auto Translate"})}),(0,t.jsx)(s.td,{children:"Automatically pan the camera to follow the most recent interpretation segment as you draw."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Auto Scale Width"})}),(0,t.jsx)(s.td,{children:"Automatically match the drawn width to local point spacing so the line stays visible at any scale."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Line Colour"})}),(0,t.jsx)(s.td,{children:"Colour of the interpretation line."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Line Width"})}),(0,t.jsxs)(s.td,{children:["Base drawn width in world units (used when ",(0,t.jsx)(s.em,{children:"Auto Scale Width"})," is off)."]})]})]})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"cameras--annotations",children:"Cameras & Annotations"}),"\n",(0,t.jsx)(s.p,{children:"Viewpoint glyphs, annotation\u2011asset opacity, and the text labels (billboards)."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Show Viewpoint Cameras"})}),(0,t.jsx)(s.td,{children:"Show camera/viewpoint glyphs for the other panes when in split or multi\u2011view mode."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Viewpoint Glyph Size"})}),(0,t.jsx)(s.td,{children:"On\u2011screen size of those glyphs, in world units."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Annotation Asset Opacity"})}),(0,t.jsxs)(s.td,{children:["See\u2011through level for annotation assets (scale bars, waypoints, sample markers): 0 = invisible, 1 = fully opaque. Interactive gizmos stay opaque. ",(0,t.jsx)(s.em,{children:"(Vulkan view.)"})]})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"billboards-text-labels",children:"Billboards (Text Labels)"}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Fixed Screen Size"})}),(0,t.jsx)(s.td,{children:"Keep label text a constant size on screen (pixels) regardless of zoom. Off = sized in world metres and shrinks with distance."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Text Size"})}),(0,t.jsxs)(s.td,{children:["Size of label text: world metres when ",(0,t.jsx)(s.em,{children:"Fixed Screen Size"})," is off, screen pixels when it is on."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Solid Backgroun
1d"})}),(0,t.jsx)(s.td,{children:"Draw an opaque panel behind label text for readability. Off = transparent (text only)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Background Colour"})}),(0,t.jsxs)(s.td,{children:["Fill colour of the label background panel (used when ",(0,t.jsx)(s.em,{children:"Solid Background"})," is on)."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Text Colour"})}),(0,t.jsx)(s.td,{children:"Colour of the label text."})]})]})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"vr--xr",children:"VR / XR"}),"\n",(0,t.jsxs)(s.p,{children:["Settings for viewing and moving through the scene in a VR headset. ",(0,t.jsx)(s.em,{children:"(Requires the Vulkan renderer.)"})]}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Mirror VR to Screen"})}),(0,t.jsx)(s.td,{children:"Duplicate the headset view onto the desktop window so onlookers can follow along. Small performance cost."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Hand Controller Model"})}),(0,t.jsxs)(s.td,{children:["3D model drawn for the controllers \u2014 match your headset: ",(0,t.jsx)(s.code,{children:"Oculus Touch"})," or ",(0,t.jsx)(s.code,{children:"HTC Vive"}),"."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Menu Colour Scheme"})}),(0,t.jsxs)(s.td,{children:["Colour theme for the in\u2011VR menus and dialogs: ",(0,t.jsx)(s.code,{children:"Default"}),", ",(0,t.jsx)(s.code,{children:"Earthy Warm"}),", ",(0,t.jsx)(s.code,{children:"Mineral Cool"})," or ",(0,t.jsx)(s.code,{children:"Terra Cotta"}),"."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Movement Speed"})}),(0,t.jsx)(s.td,{children:"Base free\u2011fly locomotion speed (typical 0.001\u20130.1)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Rotation Speed"})}),(0,t.jsx)(s.td,{children:"Yaw / turn speed when turning in VR (typical 0.1\u20135.0)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Speed Boost Multiplier"})}),(0,t.jsx)(s.td,{children:"Extra speed factor while the controller's speed\u2011boost grip is held (typical 1.0\u201310.0)."})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"laser-pointer",children:"Laser Pointer"}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Falloff Exponent"})}),(0,t.jsx)(s.td,{children:"How sharply the laser\u2011pointer highlight fades from its centre. Higher = tighter, more focused spot."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Cutoff"})}),(0,t.jsx)(s.td,{children:"Intensity threshold below which the highlight is clipped to nothing."})]})]})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"cesium-3d-tiles",children:"Cesium 3D Tiles"}),"\n",(0,t.jsxs)(s.p,{children:["Streaming controls for ",(0,t.jsx)(s.strong,{children:"Cesium 3D Tiles"})," datasets, grouped by intent. These trade image quality against bandwidth, memory and responsiveness."]}),"\n",(0,t.jsx)(s.h3,{id:"quality",children:"Quality"}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsx)(s.tbody,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Quality (Screen\u2011Space Error)"})}),(0,t.jsx)(s.td,{children:"Maximum on\u2011screen error, in pixels, before a tile refines to higher detail (2\u201332). Lower = sharper but loads more tiles and uses more memory/bandwidth; higher = coarser but lighter."})]})})]}),"\n",(0,t.jsx)(s.h3,{id:"streaming--preload",children:"Streaming & Preload"}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Max Concurrent Downloads"})}),(0,t.jsx)(s.td,{children:"Maximum tiles downloading at once (10\u2013100). Higher fills detail faster but can saturate a slow connection."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Loading Descendant Limit"})}),(0,t.jsxs)(s.td,{children:["How many levels of higher\u2011detail child tiles may load at once (1\u2013100). Lower shows ",(0,t.jsx)(s.em,{children:"something"})," for the current view first; higher loads deeper detail sooner."]})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Preload Ancestors"})}),(0,t.jsx)(s.td,{children:"Keep lower\u2011detail parent tiles ready so zooming out stays smooth."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Preload Siblings"})}),(0,t.jsx)(s.td,{children:"Preload tiles next to the current view so panning stays smooth."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Prevent Holes"})}),(0,t.jsx)(s.td,{children:"Always keep a low\u2011resolution tile visible while its high\u2011resolution replacement loads, so no ga
1ps appear (may look blurry briefly)."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Fog Culling"})}),(0,t.jsx)(s.td,{children:"Skip refining distant, fogged tiles to higher detail so nearby tiles load first."})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"memory--performance",children:"Memory & Performance"}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Max Cache (MB)"})}),(0,t.jsx)(s.td,{children:"Memory budget for cached tiles (128\u20132048 MB). Larger avoids re\u2011downloading recently seen tiles, at the cost of RAM."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Frame Budget (ms)"})}),(0,t.jsx)(s.td,{children:"Maximum time per frame spent preparing newly downloaded tiles on the main thread (0 = unlimited, otherwise 1\u201320 ms). Lower keeps the view responsive while tiles stream; higher loads them in faster."})]})]})]}),"\n",(0,t.jsx)(s.admonition,{title:"Tuning Cesium",type:"tip",children:(0,t.jsxs)(s.p,{children:["For the ",(0,t.jsx)(s.strong,{children:"sharpest"})," result on a fast machine and connection, lower ",(0,t.jsx)(s.em,{children:"Quality (Screen\u2011Space Error)"})," and raise ",(0,t.jsx)(s.em,{children:"Max Cache"})," and ",(0,t.jsx)(s.em,{children:"Max Concurrent Downloads"}),". For the ",(0,t.jsx)(s.strong,{children:"smoothest"})," experience on a slow link, raise the ",(0,t.jsx)(s.em,{children:"Screen\u2011Space Error"})," and enable the ",(0,t.jsx)(s.em,{children:"Preload"})," / ",(0,t.jsx)(s.em,{children:"Prevent Holes"})," options."]})}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"projection--mpcdi",children:"Projection / MPCDI"}),"\n",(0,t.jsxs)(s.p,{children:["Advanced multi\u2011projector frustum calibration for powerwalls and immersive projection rigs. ",(0,t.jsx)(s.strong,{children:"Leave MPCDI off for a standard desktop view."})]}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsx)(s.tbody,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Use MPCDI Frustum"})}),(0,t.jsx)(s.td,{children:"Override the normal camera with an MPCDI multi\u2011projector frustum calibration."})]})})]}),"\n",(0,t.jsx)(s.h3,{id:"direction",children:"Direction"}),"\n",(0,t.jsx)(s.p,{children:"Projector orientation, in degrees."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Pitch"})}),(0,t.jsx)(s.td,{children:"Tilt up/down."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Roll"})}),(0,t.jsx)(s.td,{children:"Rotation about the view axis."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Yaw"})}),(0,t.jsx)(s.td,{children:"Turn left/right."})]})]})]}),"\n",(0,t.jsx)(s.h3,{id:"frustum-half-angles",children:"Frustum Half-Angles"}),"\n",(0,t.jsx)(s.p,{children:"Half\u2011angle from the view axis to each edge of the projector frustum, in degrees."}),"\n",(0,t.jsxs)(s.table,{children:[(0,t.jsx)(s.thead,{children:(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.th,{children:"Setting"}),(0,t.jsx)(s.th,{children:"What it does"})]})}),(0,t.jsxs)(s.tbody,{children:[(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Left"})}),(0,t.jsx)(s.td,{children:"To the left edge of the frustum."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Right"})}),(0,t.jsx)(s.td,{children:"To the right edge of the frustum."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Upper"})}),(0,t.jsx)(s.td,{children:"To the top edge of the frustum."})]}),(0,t.jsxs)(s.tr,{children:[(0,t.jsx)(s.td,{children:(0,t.jsx)(s.strong,{children:"Lower"})}),(0,t.jsx)(s.td,{children:"To the bottom edge of the frustum."})]})]})]}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.h2,{id:"bounding-box",children:"Bounding Box"}),"\n",(0,t.jsxs)(s.p,{children:["At the foot of the panel, the ",(0,t.jsx)(s.strong,{children:"Bounding Box"})," group shows the scene's extents as editable ",(0,t.jsx)(s.strong,{children:"min/max"})," coordinates (X, Y, Z). Unlike ",(0,t.jsx)(s.em,{children:"Show Scene Bounding Box"}
1)," (a display toggle in ",(0,t.jsx)(s.em,{children:"Scene & Environment"}),"), these are the underlying numeric limits of the map area."]})]})}function a(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},28453(e,s,r){r.d(s,{R:()=>d,x:()=>l});var n=r(96540);const t={},i=n.createContext(t);function d(e){const s=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.