UNPKG

@realsee/five

Version:

Realsee Renderer SDK

159 lines (152 loc) • 26.8 kB
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>features/view-layer | 如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">features/view-layer</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="viewlayer-视图层" class="tsd-anchor-link">ViewLayer (视图层)<a href="#viewlayer-视图层" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1> <ul> <li><strong>Summary</strong>: ViewLayer 是 Model 的组成部分,负责管理具体的 3D 资源(如 Mesh 或 PointCloud),支持独立的渲染配置和可见性控制。</li> <li><strong>Schema</strong>: 继承自 <code>Tile3D</code>,由 <code>Model</code> 统一管理。</li> <li><strong>Concepts</strong>: Layer Fallback, 3DTile Integration, Parameter Inheritance.</li> <li><strong>Examples</strong>: 可见性控制、参数配置、事件监听。</li> </ul> <h2 id="schema" class="tsd-anchor-link">Schema<a href="#schema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2> <blockquote> <p><strong>Definition</strong>: <a href="../../five/model/view-layer.d.ts">ViewLayer</a>, <a href="../../five/model/view-layer.d.ts">ViewLayerInit</a></p> </blockquote> <p>ViewLayer 是一个具体的渲染图层,它对应一个具体的 3D 数据源(通常是一个 <code>.gltf</code> / <code>.b3dm</code> / <code>.pnts</code> 等 Tileset 入口)。</p> <pre><code class="typescript"><span class="hl-8">// 简化定义</span><br/><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">ViewLayer</span><span class="hl-1"> </span><span class="hl-3">extends</span><span class="hl-1"> </span><span class="hl-7">Tile3D</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 图层名称 (如 &#39;mesh&#39;, &#39;point_cloud&#39;) */</span><br/><span class="hl-1"> </span><span class="hl-6">name</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 图层类型 */</span><br/><span class="hl-1"> </span><span class="hl-6">type</span><span class="hl-1">: </span><span class="hl-9">&quot;point_cloud&quot;</span><span class="hl-1"> | </span><span class="hl-9">&quot;mesh&quot;</span><span class="hl-1"> | </span><span class="hl-9">&quot;gaussian_splatting&quot;</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 独立的参数配置对象 */</span><br/><span class="hl-1"> </span><span class="hl-6">parameter</span><span class="hl-1">: </span><span class="hl-7">Parameter</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 是否可见 */</span><br/><span class="hl-1"> </span><span class="hl-6">visible</span><span class="hl-1">: </span><span class="hl-7">boolean</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 对应的 Tileset URL */</span><br/><span class="hl-1"> </span><span class="hl-6">tilesetUrl</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1">}</span> </code><button type="button">Copy</button></pre> <h2 id="concepts" class="tsd-anchor-link">Concepts<a href="#concepts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2> <h3 id="1-viewlayer-vs-workmodel" class="tsd-anchor-link">1. ViewLayer vs Work.Model<a href="#1-viewlayer-vs-workmodel" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p><code>ViewLayer</code> 的生成逻辑严格依赖于 <code>Work</code> 数据中的定义,但也包含了向后兼容的 Fallback 机制。</p> <h4 id="数据来源-data-source" class="tsd-anchor-link">数据来源 (Data Source)<a href="#数据来源-data-source" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4> <ol> <li> <p><strong>优先使用 <code>work.model.layers</code></strong>: 这是标准的定义方式。<code>work.model.layers</code> 是一个数组,每个元素显式定义了一个 Layer 的 <code>name</code>, <code>type</code>, <code>tileset</code> (URL) 等信息。 Five 会遍历这个数组,为每一项创建一个 <code>ViewLayer</code> 实例。</p> </li> <li> <p><strong>Fallback to <code>work.model.file</code></strong>: 如果 <code>work.model.layers</code> 中没有定义 <code>mesh</code> 类型的层,且 <code>work.model.file</code> 存在(旧版数据字段),Five 会自动创建一个 <strong>虚拟的 Mesh Layer</strong>。</p> <ul> <li><strong>Name</strong>: 默认为 <code>model</code> (或其他内部标识)。</li> <li><strong>Type</strong>: <code>mesh</code>。</li> <li><strong>URL</strong>: 指向 <code>work.model.file</code>。</li> <li><strong>UpAxis</strong>: 根据文件后缀自动推断 (如 <code>.obj</code> 可能需要特殊处理)。</li> </ul> </li> </ol> <blockquote> <p><strong>总结</strong>: <code>ViewLayer</code> 是 <code>work.model</code> 数据的运行时表现。<code>layers</code> 字段提供了精细的控制,而 <code>file</code> 字段提供了旧数据的兼容支持。</p> </blockquote> <h3 id="2-viewlayer-vs-3dtile" class="tsd-anchor-link">2. ViewLayer vs 3DTile<a href="#2-viewlayer-vs-3dtile" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p><code>ViewLayer</code> 本质上是一个 <strong>3DTile</strong> 加载器实例(继承自 <code>Tile3D</code>)。</p> <ul> <li><strong>加载机制</strong>: 每个 ViewLayer 独立维护一个 3DTiles 的遍历器 (Traverser) 和调度器 (Scheduler)。这意味着 Mesh 层、PointCloud 层和 GaussianSplatting 层是独立加载、独立计算 LOD (Level of Detail) 的。</li> <li><strong>空间变换</strong>: ViewLayer 负责处理数据的坐标系转换 (如 ECEF 转 ENU,Y-Up 转 Z-Up),确保不同格式的数据在 Five 场景中正确对齐。</li> </ul> <h3 id="3-viewlayer-model-modelscene-parameter" class="tsd-anchor-link">3. ViewLayer, Model, ModelScene &amp; Parameter<a href="#3-viewlayer-model-modelscene-parameter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>这是 Five 渲染架构的核心层级关系,<code>Parameter</code> 在其中起到了“胶水”的作用。</p> <h4 id="层级关系-hierarchy" class="tsd-anchor-link">层级关系 (Hierarchy)<a href="#层级关系-hierarchy" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4> <pre><code class="mermaid"><span class="hl-1">graph TD</span><br/><span class="hl-1"> Scene[ModelScene] --&gt;|包含| Model[Model]</span><br/><span class="hl-1"> Model --&gt;|包含| LayerA[ViewLayer (Mesh)]</span><br/><span class="hl-1"> Model --&gt;|包含| LayerB[ViewLayer (PointCloud)]</span> </code><button type="button">Copy</button></pre> <h4 id="parameter-的作用-inheritance" class="tsd-anchor-link">Parameter 的作用 (Inheritance)<a href="#parameter-的作用-inheritance" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4> <p><code>Parameter</code> 系统贯穿了上述三层,实现了**“配置继承与覆盖”**。</p> <ol> <li><strong>ModelScene (全局配置)</strong>: <ul> <li>持有 <code>five.modelScene.parameter</code>。</li> <li>定义了场景级的默认值(如:默认显存上限 <code>512MB</code>)。</li> </ul> </li> <li><strong>Model (模型级配置)</strong>: <ul> <li>持有 <code>model.parameter</code>。</li> <li>可以覆盖全局配置(如:特定模型需要 <code>1024MB</code> 显存)。</li> </ul> </li> <li><strong>ViewLayer (图层级配置)</strong>: <ul> <li>持有 <code>viewLayer.parameter</code>。</li> <li><strong>最具体的控制点</strong>。它在计算最终值时,会依次继承 <code>Model</code> 和 <code>ModelScene</code> 的配置。</li> </ul> </li> </ol> <p><strong>示例场景</strong>:</p> <ul> <li>如果你想让<strong>整个场景</strong>变暗,设置 <code>modelScene.parameter.set('opacity', 0.5)</code>。</li> <li>如果你只想让<strong>点云层</strong>变暗,保留模型层亮度,设置 <code>pointCloudLayer.parameter.set('opacity', 0.5)</code>。</li> </ul> <h3 id="4-visibility-control-可见性控制" class="tsd-anchor-link">4. Visibility Control (可见性控制)<a href="#4-visibility-control-可见性控制" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>默认情况下,Five <strong>不会</strong>加载所有图层,而是根据优先级<strong>仅加载一个</strong>图层,以节省资源。 优先级顺序:<code>mesh</code> &gt; <code>point_cloud</code> &gt; 其他类型。</p> <p><strong>可见性与内存管理 (Visibility &amp; Memory)</strong>:</p> <ul> <li><strong>显示 (Show)</strong>: 当图层设置为可见 (<code>visible = true</code>) 时,Five 会开始加载该图层的资源。</li> <li><strong>隐藏 (Hide)</strong>: 当图层设置为隐藏 (<code>visible = false</code>) 时,Five 会<strong>释放该图层占用的所有内存资源</strong> (Geometry, Texture 等)。这意味着“隐藏”等同于“卸载”。</li> </ul> <p>Five 提供了两种层级的可见性控制方式:</p> <ol> <li> <p><strong>初始化配置 (Load Options)</strong>: 在 <code>five.load</code> 时,通过 <code>model[&quot;3d-tiles&quot;].showLayers</code> 参数指定初始显示的图层。</p> <ul> <li><code>true</code> (默认): 使用上述的默认优先级策略(仅加载一个最佳图层)。</li> <li><code>string[]</code>: 仅显示名称在数组中的图层(例如 <code>['mesh', 'point_cloud']</code> 可以强制同时显示模型和点云)。</li> </ul> </li> <li> <p><strong>运行时控制 (Runtime Control)</strong>: 加载完成后,可以直接修改 <code>viewLayer.visible</code> 属性来切换可见性。</p> </li> </ol> <h2 id="configuration" class="tsd-anchor-link">Configuration<a href="#configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2> <p>ViewLayer 的配置主要通过其 <code>parameter</code> 属性进行。</p> <h3 id="common-configuration" class="tsd-anchor-link">Common Configuration<a href="#common-configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <table> <thead> <tr> <th style="text-align:left">Parameter</th> <th style="text-align:left">Type</th> <th style="text-align:left">Description</th> </tr> </thead> <tbody> <tr> <td style="text-align:left"><code>visible</code></td> <td style="text-align:left"><code>boolean</code></td> <td style="text-align:left">控制图层的可见性 (也可直接修改 <code>viewLayer.visible</code>)。</td> </tr> <tr> <td style="text-align:left"><code>opacity</code></td> <td style="text-align:left"><code>number</code></td> <td style="text-align:left">图层透明度 (0.0 - 1.0)。</td> </tr> <tr> <td style="text-align:left"><code>pointSize</code></td> <td style="text-align:left"><code>number</code></td> <td style="text-align:left">(仅点云) 点的大小。</td> </tr> </tbody> </table> <blockquote> <p>更多配置项请参考 <a href="features_parameter.html">Parameter</a> 和 <a href="features_3dtile.html">3DTile Params</a>。</p> </blockquote> <h2 id="examples" class="tsd-anchor-link">Examples<a href="#examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2> <h3 id="1-访问-viewlayer" class="tsd-anchor-link">1. 访问 ViewLayer<a href="#1-访问-viewlayer" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <pre><code class="typescript"><span class="hl-8">// 获取当前模型</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">model</span><span class="hl-1"> = </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">model</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// 遍历所有图层</span><br/><span class="hl-6">model</span><span class="hl-1">.</span><span class="hl-6">viewLayers</span><span class="hl-1">.</span><span class="hl-5">forEach</span><span class="hl-1">(</span><span class="hl-6">layer</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">`Layer Name: </span><span class="hl-3">${</span><span class="hl-6">layer</span><span class="hl-12">.</span><span class="hl-6">name</span><span class="hl-3">}</span><span class="hl-9">, Type: </span><span class="hl-3">${</span><span class="hl-6">layer</span><span class="hl-12">.</span><span class="hl-6">type</span><span class="hl-3">}</span><span class="hl-9">`</span><span class="hl-1">);</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-8">// 查找特定的图层 (例如点云层)</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">pointCloudLayer</span><span class="hl-1"> = </span><span class="hl-6">model</span><span class="hl-1">.</span><span class="hl-6">viewLayers</span><span class="hl-1">.</span><span class="hl-5">find</span><span class="hl-1">(</span><span class="hl-6">layer</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">layer</span><span class="hl-1">.</span><span class="hl-6">type</span><span class="hl-1"> === </span><span class="hl-9">&#39;point_cloud&#39;</span><span class="hl-1">);</span> </code><button type="button">Copy</button></pre> <h3 id="2-独立控制图层可见性" class="tsd-anchor-link">2. 独立控制图层可见性<a href="#2-独立控制图层可见性" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <pre><code class="typescript"><span class="hl-8">// 方式 A: 运行时控制</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">meshLayer</span><span class="hl-1"> = </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">model</span><span class="hl-1">.</span><span class="hl-6">viewLayers</span><span class="hl-1">.</span><span class="hl-5">find</span><span class="hl-1">(</span><span class="hl-6">layer</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">layer</span><span class="hl-1">.</span><span class="hl-6">type</span><span class="hl-1"> === </span><span class="hl-9">&#39;mesh&#39;</span><span class="hl-1">);</span><br/><br/><span class="hl-10">if</span><span class="hl-1"> (</span><span class="hl-6">meshLayer</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-8">// 隐藏模型层,只看点云</span><br/><span class="hl-1"> </span><span class="hl-6">meshLayer</span><span class="hl-1">.</span><span class="hl-6">visible</span><span class="hl-1"> = </span><span class="hl-3">false</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">// 或者通过 parameter 设置</span><br/><span class="hl-1"> </span><span class="hl-8">// meshLayer.parameter.set(&#39;visible&#39;, false);</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">// 方式 B: 加载时控制 (初始化时仅显示 mesh)</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">load</span><span class="hl-1">(</span><span class="hl-6">work</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-6">model:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-9">&quot;3d-tiles&quot;</span><span class="hl-6">:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">showLayers:</span><span class="hl-1"> [</span><span class="hl-9">&#39;mesh&#39;</span><span class="hl-1">] </span><span class="hl-8">// 仅显示 mesh 层,隐藏 point_cloud 等其他层</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">});</span> </code><button type="button">Copy</button></pre> <h3 id="3-修改特定图层的渲染参数" class="tsd-anchor-link">3. 修改特定图层的渲染参数<a href="#3-修改特定图层的渲染参数" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <pre><code class="typescript"><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">pointCloudLayer</span><span class="hl-1"> = </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">model</span><span class="hl-1">.</span><span class="hl-6">viewLayers</span><span class="hl-1">.</span><span class="hl-5">find</span><span class="hl-1">(</span><span class="hl-6">layer</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">layer</span><span class="hl-1">.</span><span class="hl-6">type</span><span class="hl-1"> === </span><span class="hl-9">&#39;point_cloud&#39;</span><span class="hl-1">);</span><br/><br/><span class="hl-10">if</span><span class="hl-1"> (</span><span class="hl-6">pointCloudLayer</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-8">// 仅修改点云层的点大小,不影响其他模型</span><br/><span class="hl-1"> </span><span class="hl-6">pointCloudLayer</span><span class="hl-1">.</span><span class="hl-6">parameter</span><span class="hl-1">.</span><span class="hl-5">set</span><span class="hl-1">(</span><span class="hl-9">&#39;pointSize&#39;</span><span class="hl-1">, </span><span class="hl-11">2.0</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-8">// 仅修改点云层的最大显存占用</span><br/><span class="hl-1"> </span><span class="hl-6">pointCloudLayer</span><span class="hl-1">.</span><span class="hl-6">parameter</span><span class="hl-1">.</span><span class="hl-5">set</span><span class="hl-1">(</span><span class="hl-9">&#39;maxMemoryUsage&#39;</span><span class="hl-1">, </span><span class="hl-11">128</span><span class="hl-1">);</span><br/><span class="hl-1">}</span> </code><button type="button">Copy</button></pre> <h2 id="related" class="tsd-anchor-link">Related<a href="#related" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2> <ul> <li><a href="features_model.html">Model</a>: ViewLayer 的父级容器。</li> <li><a href="features_work.html">Work</a>: 定义 ViewLayer 数据结构的数据源。</li> <li><a href="features_parameter.html">Parameter</a>: 控制 ViewLayer 渲染表现的配置系统。</li> <li><a href="features_3dtile.html">3DTile</a>: ViewLayer 的底层技术实现。</li> </ul> <hr> <pre><code class="yaml"><span class="hl-0">tags</span><span class="hl-1">: [</span><span class="hl-2">图层</span><span class="hl-1">, </span><span class="hl-2">视图层</span><span class="hl-1">, </span><span class="hl-2">可见性</span><span class="hl-1">, </span><span class="hl-2">显隐控制</span><span class="hl-1">, </span><span class="hl-2">图层切换</span><span class="hl-1">, </span><span class="hl-2">分层渲染</span><span class="hl-1">, </span><span class="hl-2">viewlayer</span><span class="hl-1">, </span><span class="hl-2">model</span><span class="hl-1">, </span><span class="hl-2">3dtile</span><span class="hl-1">, </span><span class="hl-2">parameter</span><span class="hl-1">, </span><span class="hl-2">layer</span><span class="hl-1">, </span><span class="hl-2">mesh</span><span class="hl-1">, </span><span class="hl-2">point-cloud</span><span class="hl-1">, </span><span class="hl-2">gaussian-splatting</span><span class="hl-1">]</span> </code><button type="button">Copy</button></pre> </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#viewlayer-视图层"><span>View<wbr/>Layer (视图层)</span></a><ul><li><a href="#schema"><span>Schema</span></a></li><li><a href="#concepts"><span>Concepts</span></a></li><li><ul><li><a href="#1-viewlayer-vs-workmodel"><span>1. <wbr/>View<wbr/>Layer vs <wbr/>Work.<wbr/>Model</span></a></li><li><ul><li><a href="#数据来源-data-source"><span>数据来源 (<wbr/>Data <wbr/>Source)</span></a></li></ul></li><li><a href="#2-viewlayer-vs-3dtile"><span>2. <wbr/>View<wbr/>Layer vs 3<wbr/>D<wbr/>Tile</span></a></li><li><a href="#3-viewlayer-model-modelscene-parameter"><span>3. <wbr/>View<wbr/>Layer, <wbr/>Model, <wbr/>Model<wbr/>Scene &amp; <wbr/>Parameter</span></a></li><li><ul><li><a href="#层级关系-hierarchy"><span>层级关系 (<wbr/>Hierarchy)</span></a></li><li><a href="#parameter-的作用-inheritance"><span>Parameter 的作用 (<wbr/>Inheritance)</span></a></li></ul></li><li><a href="#4-visibility-control-可见性控制"><span>4. <wbr/>Visibility <wbr/>Control (可见性控制)</span></a></li></ul></li><li><a href="#configuration"><span>Configuration</span></a></li><li><ul><li><a href="#common-configuration"><span>Common <wbr/>Configuration</span></a></li></ul></li><li><a href="#examples"><span>Examples</span></a></li><li><ul><li><a href="#1-访问-viewlayer"><span>1. 访问 <wbr/>View<wbr/>Layer</span></a></li><li><a href="#2-独立控制图层可见性"><span>2. 独立控制图层可见性</span></a></li><li><a href="#3-修改特定图层的渲染参数"><span>3. 修改特定图层的渲染参数</span></a></li></ul></li><li><a href="#related"><span>Related</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>