UNPKG

@realsee/five

Version:

Realsee Renderer SDK

83 lines (77 loc) • 25.3 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/pano-uv | 如视 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/pano-uv</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="全景图-uv-与方向转换-panorama-uv-conversion" class="tsd-anchor-link">全景图 UV 与方向转换 (Panorama UV Conversion)<a href="#全景图-uv-与方向转换-panorama-uv-conversion" 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>: 提供了一组工具方法,用于在<strong>全景图 UV 坐标</strong> (Equirectangular UV / Cubemap UV) 与<strong>三维空间方向向量</strong> (Vector3) 之间进行转换。</li> <li><strong>Schema</strong>: 依赖 <code>WorkObserver</code> 实例,提供四个核心转换方法。</li> <li><strong>Concepts</strong>: Equirectangular Projection, Cubemap Projection, UV Origin, Coordinate Systems.</li> <li><strong>Configuration</strong>: <code>uvOrigin</code> (UV 原点设置).</li> <li><strong>Examples</strong>: 向量转全景 UV、UV 转向量、Cubemap 转换。</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/work/work.d.ts">WorkObserver</a></p> </blockquote> <p>这些方法挂载在 <code>WorkObserver</code> 实例上,依赖当前观察点 (Observer) 的位姿信息 (Position &amp; Quaternion) 以及 <code>work.transform</code> 进行计算。</p> <pre><code class="typescript"><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkObserver</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/**</span><br/><span class="hl-8"> * 将方向向量转化为全景图 uv</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">vector</span><span class="hl-8"> - 全局方向向量 (World Space)</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uvOrigin</span><span class="hl-8"> - UV 原点位置,默认为 &#39;top-left&#39;</span><br/><span class="hl-8"> */</span><br/><span class="hl-1"> </span><span class="hl-5">vectorToEquirectangularUv</span><span class="hl-1">(</span><span class="hl-6">vector</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/**</span><br/><span class="hl-8"> * 将全景图 uv 转化为方向向量</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uv</span><span class="hl-8"> - 全景图 UV 坐标 [0, 1]</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uvOrigin</span><span class="hl-8"> - UV 原点位置,默认为 &#39;top-left&#39;</span><br/><span class="hl-8"> */</span><br/><span class="hl-1"> </span><span class="hl-5">equirectangularUvToVector</span><span class="hl-1">(</span><span class="hl-6">uv</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/**</span><br/><span class="hl-8"> * 将方向向量转化为六视图 uv</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">vector</span><span class="hl-8"> - 全局方向向量 (World Space)</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uvOrigin</span><span class="hl-8"> - UV 原点位置,默认为 &#39;top-left&#39;</span><br/><span class="hl-8"> */</span><br/><span class="hl-1"> </span><span class="hl-5">vectorToCubemapUv</span><span class="hl-1">(</span><span class="hl-6">vector</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): [</span><span class="hl-13">cubeFace</span><span class="hl-1">: </span><span class="hl-7">CubeFace</span><span class="hl-1">, </span><span class="hl-13">cubemapUv</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">];</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/**</span><br/><span class="hl-8"> * 将六视图 uv 转化为方向向量</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">cubeFace</span><span class="hl-8"> - 立方体面 (&#39;up&#39; | &#39;down&#39; | &#39;left&#39; | &#39;right&#39; | &#39;front&#39; | &#39;back&#39;)</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uv</span><span class="hl-8"> - 该面上的 UV 坐标 [0, 1]</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uvOrigin</span><span class="hl-8"> - UV 原点位置,默认为 &#39;top-left&#39;</span><br/><span class="hl-8"> */</span><br/><span class="hl-1"> </span><span class="hl-5">cubemapUvToVector</span><span class="hl-1">(</span><span class="hl-6">cubeFace</span><span class="hl-1">: </span><span class="hl-7">CubeFace</span><span class="hl-1">, </span><span class="hl-6">uv</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-3">type</span><span class="hl-1"> </span><span class="hl-7">CubeFace</span><span class="hl-1"> = </span><span class="hl-9">&#39;up&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;down&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;right&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;front&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;back&#39;</span><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-坐标系转换-coordinate-transformation" class="tsd-anchor-link">1. 坐标系转换 (Coordinate Transformation)<a href="#1-坐标系转换-coordinate-transformation" 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>转换过程会自动处理以下坐标空间的变换:</p> <ol> <li><strong>World Space (世界坐标系)</strong>: <code>vector</code> 参数所处的坐标系。</li> <li><strong>Work Space (Work 坐标系)</strong>: 考虑 <code>work.transform</code> 带来的整体旋转。</li> <li><strong>Observer Space (观察者坐标系)</strong>: 考虑 <code>observer.quaternion</code> 带来的观察点旋转。</li> <li><strong>Panorama Space (全景图空间)</strong>: 最终映射到 2D 图片上的 UV 坐标。</li> </ol> <h3 id="2-投影方式-projection-types" class="tsd-anchor-link">2. 投影方式 (Projection Types)<a href="#2-投影方式-projection-types" 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> <ul> <li><strong>Equirectangular (等距柱状投影)</strong>: 将球体展开为 2:1 的矩形图片。常用于全景图预览。</li> <li><strong>Cubemap (立方体贴图)</strong>: 将球体投影到立方体的六个面上。常用于高清全景浏览。</li> </ul> <h3 id="3-uv-原点-uv-origin" class="tsd-anchor-link">3. UV 原点 (UV Origin)<a href="#3-uv-原点-uv-origin" 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> <ul> <li><strong>top-left (默认)</strong>: 原点 <code>(0, 0)</code> 在图片<strong>左上角</strong>。U 轴向右,V 轴向下。符合大多数 Web 图片处理习惯 (Canvas, DOM)。</li> <li><strong>bottom-left</strong>: 原点 <code>(0, 0)</code> 在图片<strong>左下角</strong>。U 轴向右,V 轴向上。符合 WebGL / OpenGL 纹理坐标习惯。</li> </ul> <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>所有方法均包含可选参数 <code>uvOrigin</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">Default</th> <th style="text-align:left">Description</th> </tr> </thead> <tbody> <tr> <td style="text-align:left"><code>uvOrigin</code></td> <td style="text-align:left"><code>'top-left' | 'bottom-left'</code></td> <td style="text-align:left"><code>'top-left'</code></td> <td style="text-align:left">指定 UV 坐标系的原点位置。</td> </tr> </tbody> </table> <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-点击全景图获取空间方向-click-to-vector" class="tsd-anchor-link">1. 点击全景图获取空间方向 (Click to Vector)<a href="#1-点击全景图获取空间方向-click-to-vector" 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>假设你有一个全景图的点击事件,获取到了点击位置的 UV:</p> <pre><code class="typescript"><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">observer</span><span class="hl-1"> = </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">work</span><span class="hl-1">.</span><span class="hl-6">observers</span><span class="hl-1">[</span><span class="hl-11">0</span><span class="hl-1">];</span><br/><span class="hl-8">// 假设这是用户点击全景图后归一化得到的 UV (0~1)</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">clickUv</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector2</span><span class="hl-1">(</span><span class="hl-11">0.5</span><span class="hl-1">, </span><span class="hl-11">0.5</span><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">direction</span><span class="hl-1"> = </span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-5">equirectangularUvToVector</span><span class="hl-1">(</span><span class="hl-6">clickUv</span><span class="hl-1">);</span><br/><br/><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">&#39;点击方向:&#39;</span><span class="hl-1">, </span><span class="hl-6">direction</span><span class="hl-1">);</span> </code><button type="button">Copy</button></pre> <h3 id="2-将空间点映射到全景图上-world-point-to-uv" class="tsd-anchor-link">2. 将空间点映射到全景图上 (World Point to UV)<a href="#2-将空间点映射到全景图上-world-point-to-uv" 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>假设场景中有一个 3D 物体,你想知道它在当前全景图上的位置(例如打标签):</p> <pre><code class="typescript"><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">observer</span><span class="hl-1"> = </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">work</span><span class="hl-1">.</span><span class="hl-6">observers</span><span class="hl-1">[</span><span class="hl-11">0</span><span class="hl-1">];</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">objectPosition</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">10</span><span class="hl-1">, </span><span class="hl-11">2</span><span class="hl-1">, </span><span class="hl-11">5</span><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">direction</span><span class="hl-1"> = </span><span class="hl-6">objectPosition</span><span class="hl-1">.</span><span class="hl-5">clone</span><span class="hl-1">().</span><span class="hl-5">sub</span><span class="hl-1">(</span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-6">position</span><span class="hl-1">).</span><span class="hl-5">normalize</span><span class="hl-1">();</span><br/><br/><span class="hl-8">// 获取全景图 UV</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">uv</span><span class="hl-1"> = </span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-5">vectorToEquirectangularUv</span><span class="hl-1">(</span><span class="hl-6">direction</span><span class="hl-1">);</span><br/><br/><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">`物体在全景图上的位置: u=</span><span class="hl-3">${</span><span class="hl-6">uv</span><span class="hl-12">.</span><span class="hl-6">x</span><span class="hl-3">}</span><span class="hl-9">, v=</span><span class="hl-3">${</span><span class="hl-6">uv</span><span class="hl-12">.</span><span class="hl-6">y</span><span class="hl-3">}</span><span class="hl-9">`</span><span class="hl-1">);</span> </code><button type="button">Copy</button></pre> <h3 id="3-处理-cubemap-坐标-cubemap-conversion" class="tsd-anchor-link">3. 处理 Cubemap 坐标 (Cubemap Conversion)<a href="#3-处理-cubemap-坐标-cubemap-conversion" 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>如果你使用的是六面体全景图资源:</p> <pre><code class="typescript"><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">observer</span><span class="hl-1"> = </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">work</span><span class="hl-1">.</span><span class="hl-6">observers</span><span class="hl-1">[</span><span class="hl-11">0</span><span class="hl-1">];</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">direction</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">, -</span><span class="hl-11">1</span><span class="hl-1">); </span><span class="hl-8">// 正前方</span><br/><br/><span class="hl-8">// 获取对应的面和 UV</span><br/><span class="hl-3">const</span><span class="hl-1"> [</span><span class="hl-4">face</span><span class="hl-1">, </span><span class="hl-4">uv</span><span class="hl-1">] = </span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-5">vectorToCubemapUv</span><span class="hl-1">(</span><span class="hl-6">direction</span><span class="hl-1">);</span><br/><br/><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">`正前方对应 Cubemap 的 </span><span class="hl-3">${</span><span class="hl-6">face</span><span class="hl-3">}</span><span class="hl-9"> 面,UV 为`</span><span class="hl-1">, </span><span class="hl-6">uv</span><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_work.html">Work</a>: 了解 WorkObserver 的数据结构。</li> <li><a href="features_coordinate-system.html">Coordinate System</a>: 了解 Five 的坐标系定义。</li> </ul> <hr> <pre><code class="yaml"><span class="hl-0">tags</span><span class="hl-1">: [</span><span class="hl-2">全景UV</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">work</span><span class="hl-1">, </span><span class="hl-2">observer</span><span class="hl-1">, </span><span class="hl-2">uv</span><span class="hl-1">, </span><span class="hl-2">projection</span><span class="hl-1">, </span><span class="hl-2">math</span><span class="hl-1">, </span><span class="hl-2">equirectangular</span><span class="hl-1">, </span><span class="hl-2">cubemap</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="#全景图-uv-与方向转换-panorama-uv-conversion"><span>全景图 <wbr/>UV 与方向转换 (<wbr/>Panorama <wbr/>UV <wbr/>Conversion)</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-坐标系转换-coordinate-transformation"><span>1. 坐标系转换 (<wbr/>Coordinate <wbr/>Transformation)</span></a></li><li><a href="#2-投影方式-projection-types"><span>2. 投影方式 (<wbr/>Projection <wbr/>Types)</span></a></li><li><a href="#3-uv-原点-uv-origin"><span>3. <wbr/>UV 原点 (<wbr/>UV <wbr/>Origin)</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-点击全景图获取空间方向-click-to-vector"><span>1. 点击全景图获取空间方向 (<wbr/>Click to <wbr/>Vector)</span></a></li><li><a href="#2-将空间点映射到全景图上-world-point-to-uv"><span>2. 将空间点映射到全景图上 (<wbr/>World <wbr/>Point to <wbr/>UV)</span></a></li><li><a href="#3-处理-cubemap-坐标-cubemap-conversion"><span>3. 处理 <wbr/>Cubemap 坐标 (<wbr/>Cubemap <wbr/>Conversion)</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>