<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Three.js 的第一個工程-添加文本

      添加文本

      在Three.js應用中添加文本有3種方式:

      1.DOM+CSS

      添加HTML文本。這種方法是在 three.js 應用程序中添加文本最常見且性能最好的方法之一。

      工作原理:

      不在 3D WebGL 上下文中渲染文本,而是使用 CSS 定位(通常是 position: absolute)將標準 HTML 元素(如 <div><p><span>)放置在 three.js 畫布之上或旁邊。

      優點:

      性能: HTML 文本渲染由瀏覽器的優化布局引擎處理,而不是 GPU。這比在 WebGL 中渲染文本要快得多,資源消耗也更少,特別是對于大量文本或頻繁更新的情況。
      易于使用: 使用熟悉的 HTML 和 CSS 進行樣式設置(字體、顏色、陰影、響應式)、選擇和交互(點擊、懸停效果)。
      質量: 文本渲染清晰,使用標準抗鋸齒,在任何顯示器上看起來都很清晰。
      可訪問性: 可以使用標準網頁可訪問性實踐(ARIA 標簽、語義化 HTML)使其可訪問。

      缺點:

      不在 3D 空間中: 文本存在于 2D 瀏覽器層中,而不是場景中的真實 3D 對象。它不能位于 3D 對象后面,不能從 3D 對象投射/接收陰影,也不能原生地具有擠出或倒角等逼真的 3D 效果。
      圖層管理: 需要仔細管理 CSS z-index,以確保文本相對于 3D 畫布正確顯示。
      最適合: 用戶界面(UI)、HUD(平視顯示器)、標簽、說明、描述、菜單以及任何覆蓋在 3D 場景上的文本。

      具體操作:

      方法一.把文本內容和CSS裝飾都添加在HTML文件中:

      在HTML文件index.htmlbody中添加

      <body>
      ...
      <div id="info">This is a three.js application</div>
      ...
      </body>
      

      再在style中添加

      #info {
              position: absolute; /* 使用絕對定位使其浮動在其他內容之上 */
              top: 10px; /* 距離頂部 10px */
              left: 0; /* 距離左邊 0 */
              width: 100%; /* 寬度占滿整個視口 */
              text-align: center; /* 文本居中 */
              z-index: 1000; /* 確保在 canvas 之上 */
              color: white; /* 文本顏色,根據背景調整 */
              pointer-events: none; /* 可選:允許鼠標事件穿透,不影響與 3D 場景的交互 */
            }
            /* 確保 canvas 不覆蓋 #info */
            canvas {
              display: block;
            }
      
      方法二.在HTML中應用獨立的CSS裝飾文件

      在項目目錄中(與 index.html 相同的文件夾),創建一個名為 styles.css 的新文件。添加CSS 代碼:

      /* styles.css */
      /* 確保 html 和 body 占滿整個視口 */
      html, body { 
        margin: 0; 
        height: 100%;
        overflow: hidden; /* 可選:隱藏滾動條 */
      }
      
      /* 確保 canvas 占滿其父容器 (body) */
      canvas { 
        display: block;
      }
      
      /* 設置 #info 的樣式 */
      #info {
        position: absolute;
        top: 10px;
        width: 100%;
        text-align: center;
        z-index: 1000; /* 確保在 canvas 之上 */
        color: white; /* 根據背景顏色調整文字顏色 */
        /* background-color: rgba(0, 0, 0, 0.5); /* 可選:半透明背景提高可讀性 */
        /* padding: 5px; /* 可選:內邊距 */
        pointer-events: none; /* 可選:允許鼠標事件穿透文本,以便與3D場景交互 */
      }
      

      然后在index.html中,刪除原有的style標簽,添加link標簽

      <link rel="stylesheet" href="styles.css">
      

      添加完,保存,再次運行

      npx vite --host
      

      效果

      可以看到
      image

      2.THREE.TextGeometry

      工作原理: 使用 TextGeometry 類和字體文件(如 .json)為文本生成實際的 3D 網格幾何體,就像一個 3D 模型。

      優點:

      文本是真實的 3D 對象,可以被光照、產生陰影、被其他物體遮擋或遮擋其他物體,可以進行擠出、倒角等 3D 效果。

      缺點:

      性能: 性能開銷大(尤其長文本),需要加載字體文件(文件可能很大)。
      復雜性: 設置復雜,需要加載字體文件并設置幾何體和材質。與 CSS 相比,動態樣式更改的靈活性較差。
      質量: 渲染質量取決于網格分辨率和 WebGL;可能不如 DOM 文本清晰,尤其是在小尺寸時。

      適用場景:

      需要真實 3D 效果的文本,如建筑物上的立體招牌、帶深度的標題、需要物理交互的 3D 文字。

      3.Canvas 紋理 (Canvas Texture)

      工作原理:

      在一個 2D 元素上用 Canvas API 繪制文本,然后將這個 canvas 作為 THREE.CanvasTexture 應用到一個 3D 平面 (PlaneGeometry) 上。

      優點:

      文本清晰(2D Canvas 渲染),可以應用在任何 3D 表面,可以被 3D 物體遮擋(因為是 3D 面片),適合動態內容(如分數、計時器)。

      缺點:

      需要手動管理 canvas 的重繪來更新文本,性能開銷在于頻繁更新紋理。

      適用場景:

      3D 物體表面的動態標簽、記分牌、需要貼圖效果的 2D 文本。

      4. CSS2DRenderer / CSS3DRenderer

      工作原理:

      使用 three.js 的附加渲染器。將普通 HTML 元素作為文本容器,CSS2DRenderer 或 CSS3DRenderer 負責根據 3D 空間位置和相機視圖,通過 CSS transform 將這些 DOM 元素定位,使其看起來像是 3D 場景的一部分。

      優點:

      文本質量極高,樣式靈活(CSS),CSS2DRenderer 能實現文本與 3D 物體的正確遮擋,集成度高。

      缺點:

      實現復雜(需要額外的渲染循環),CSS3DRenderer 性能開銷大且與 WebGL 混合復雜。

      適用場景:

      CSS2DRenderer: 3D 空間中的動態標簽、名稱標簽(可被物體遮擋)。
      CSS3DRenderer: 需要真實 3D 透視的界面(如 3D 菜單、信息亭)。

      posted @ 2025-07-30 11:17  科里布  閱讀(61)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品第一页中文字幕| 中国老熟女重囗味hdxx| 久久精品国产亚洲精品色婷婷| 国产一精品一av一免费| 成人无码特黄特黄AV片在线| 旬邑县| 久久中文字幕av第二页| 无套内谢极品少妇视频| 欧美18videosex性欧美tube1080| 国产日韩综合av在线| 国产自拍一区二区三区在线| 国产成人午夜在线视频极速观看| 久久精品国产亚洲av麻豆不卡| 国内在线视频一区二区三区| 欧美成人精品手机在线| 国产不卡一区二区四区| 中文字幕自拍偷拍福利视频| 亚洲熟女精品一区二区| 建德市| 永久免费无码av在线网站| 国产成人免费高清激情视频 | 国产普通话对白刺激| 中文字幕亚洲综合小综合| 2021国产精品视频网站| 三原县| 国产 麻豆 日韩 欧美 久久| 亚洲日韩久热中文字幕| 巴彦县| 人妻无码| 国产精品成人一区二区三区| 成人免费亚洲av在线| 少妇尿尿一区二区在线免费| 亚洲国产成人无码av在线影院| 成人午夜伦理在线观看| 亚洲综合一区二区国产精品| 视频一区二区不中文字幕| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 国产福利酱国产一区二区| 成人亚洲国产精品一区不卡| 日日猛噜噜狠狠扒开双腿小说| 熟妇人妻中文a∨无码|