Three.js學習筆記-三要素

Three.js 學習筆記-三要素

一、Three.js 簡介

(一)前世今生

Three.js 是一款運行在瀏覽器中的 3D 引擎,由 Ricardo Cabello(Mr.doob)在 2010 年 4 月于 GitHub 首次發布 。其起源可追溯到本世紀初,代碼最初用 ActionScript 編寫,2009 年移植到 JavaScript。隨著 WebGL 出現,Paul Brunt 增加渲染功能,使 Three.js 設計為將繪制代碼作為模塊。Ricardo Cabello 負責 API 設計、創建 CanvasRenderer、SVGRenderer 并整合各種貢獻。Branislav Ulicny 主要貢獻在材質、著色器和后處理方面,Joshua Koo 創建了第一個面向 3D 文本的 Three.js 樣本 。經過多年發展,Three.js 不斷完善,已成為 Web 端創建 3D 場景和動畫的重要工具,廣泛應用于網頁游戲、3D 產品展示、虛擬場景構建等領域 。

(二)作用

Three.js 基于原生 WebGL 封裝,極大簡化了在瀏覽器中創建和顯示 3D 內容的過程。它提供了豐富的功能和接口,開發者無需深入掌握復雜的 WebGL 底層知識,就能輕松創建出精美的 3D 場景,包括各種幾何形狀、材質、光照效果、動畫等,從而為網頁帶來更加生動、沉浸式的用戶體驗 。

二、Three.js 三要素

(一)相機(Camera)

相機決定了我們以何種視角觀察 3D 場景,就如同現實生活中我們用眼睛看世界,眼睛的位置和觀察方向決定了我們看到的畫面。在 Three.js 中有多種相機類型,常用的是透視投影相機(PerspectiveCamera)和正投影相機(OrthographicCamera) 。

  1. 透視投影相機(PerspectiveCamera)
  • 原理:模擬人眼觀察世界的方式,遵循近大遠小的規律。例如,當我們看一條筆直的公路,遠處的部分看起來會比近處的窄,這就是透視效果。

  • 參數

    • fov(視場角):相機視錐體垂直方向視野角度,好比我們人眼能看到的垂直范圍,值越大,看到的范圍越廣,近大遠小效果越明顯。例如設置為 75 度,就確定了相機的視野范圍。

    • aspect(寬高比):視錐體寬度和高度的比值,一般設置為渲染區域(如 canvas 畫布)的寬高比。比如畫布寬度為 800px,高度為 600px,寬高比就是 800/600 = 4/3 。

    • near(近裁面):相機視錐體近截面相對相機的距離,可理解為人眼能看清的最近距離,距離相機小于這個值的物體不會被渲染。

    • far(遠裁面):相機視錐體遠截面相對相機的距離,即人眼能看到的最遠距離,距離相機大于這個值的物體也不

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86214.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86214.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86214.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動力電池點焊機:驅動電池焊接高效與可靠的核心力量|比斯特自動化

在新能源汽車與儲能設備需求激增的背景下,動力電池的制造工藝直接影響產品性能與安全性。作為電芯與極耳連接的核心設備,點焊機如何平衡效率、精度與可靠性,成為電池企業關注的重點。 動力電池點焊機的核心功能是確保電芯與極耳的穩固連接。…

OpenCV CUDA模塊圖像處理------創建一個模板匹配(Template Matching)對象函數createTemplateMatching()

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 創建一個用于在 GPU 上執行模板匹配的 TemplateMatching 對象。 該函數返回一個指向 TemplateMatching 的智能指針(Ptr)…

natapp 內網穿透失敗

連不上網絡錯誤調試排查詳解 - NATAPP-內網穿透 基于ngrok的國內高速內網映射工具 如何將DNS服務器修改為114.114.114.114_百度知道 連不上/錯誤信息等問題解決匯總 - NATAPP-內網穿透 基于ngrok的國內高速內網映射工具 nslookup auth.natapp.cnping auth.natapp.cn

游戲(game)

題目描述 小明最近迷上了一款游戲,并且很想成為這款游戲的高手,這款游戲需要用 資源來買裝備。他剛開始的資源價值為0,于是他每天都會做日常任務來獲得價值為1的資源。 這款游戲中有每日商店,小明已經提前知道了接下來n天會出現的裝備&#x…

C# 類和繼承(抽象類)

抽象類 抽象類是指設計為被繼承的類。抽象類只能被用作其他類的基類。 不能創建抽象類的實例。抽象類使用abstract修飾符聲明。 抽象類可以包含抽象成員或普通的非抽象成員。抽象類的成員可以是抽象成員和普通帶 實現的成員的任意組合。抽象類自己可以派生自另一個抽象類。例…

關于臟讀,幻讀,可重復讀的學習

mysql 可以查詢當前事務隔離級別 默認是RR repeatable-read 如果要測臟讀 要配成未提交讀 RU 讀到了未提交的數據。 3.演示不可重復讀 要改成提交讀 RC 這個是指事務還未結束,其他事務修改了值。導致我兩次讀的不一樣。 4.RR–可以解決不可重復讀 小總結&…

華為云Astro中服務編排、自定義模型,頁面表格之間有什么關系?如何連接起來?如何操作?

目錄 一、核心關系解析 二、連接方式與操作步驟 (一)服務編排與自定義模型的連接 (二)自定義模型與頁面表格的連接 (三)服務編排與頁面表格的連接 三、操作示例:構建數據處理閉環 場景:用戶在頁面表格中修改設備信息,觸發服務編排校驗數據并更新數據庫。 四、…

Docker鏡像無法拉取問題解決辦法

最近再學習RabbitMQ,需要從Docker鏡像中拉取rabbitMQ,但是下拉失敗 總的來說就是無法和docker鏡像遠程倉庫建立連接 我又去嘗試ping docker.io發現根本沒有反應,還是無法連接找了許多辦法還是沒有辦法解決,最后才發現是鏡像問題&a…

向 AI Search 邁進,騰訊云 ES 自研 v-pack 向量增強插件揭秘

作者:來自騰訊云劉忠奇 2025 年 1 月,騰訊云 ES 團隊上線了 Elasticsearch 8.16.1 AI 搜索增強版,此發布版本重點提升了向量搜索、混合搜索的能力,為 RAG 類的 AI Search 場景保駕護航。除了緊跟 ES 官方在向量搜索上的大幅優化動…

electron-vite串口通信

一、構建項目后,安裝“串口通信庫” npm install serialport二、設置 npm install --save-dev electron-rebuild ./node_modules/.bin/electron-rebuild 注意:如果執行報錯以下問題 1、未配置python變量 2、沒有Microsoft Visual Studio BuildTools 3…

Cisco IOS XE WLC 任意文件上傳漏洞復現(CVE-2025-20188)

免責申明: 本文所描述的漏洞及其復現步驟僅供網絡安全研究與教育目的使用。任何人不得將本文提供的信息用于非法目的或未經授權的系統測試。作者不對任何由于使用本文信息而導致的直接或間接損害承擔責任。如涉及侵權,請及時與我們聯系,我們將盡快處理并刪除相關內容。 前…

從 iPhone 備份照片: 保存iPhone圖片的5種方法

隨著智能手機越來越融入我們的生活,我們的照片已成為我們設備上最有價值的數據形式之一。然而,iPhone內部存儲空間仍然有限,因此我們需要將iPhone中的照片備份到另一個地方,以釋放空間并確保珍貴的圖像記憶的安全。閱讀本指南&…

Ubuntu崩潰修復方案

當Ubuntu系統崩潰時,可依據崩潰類型(啟動失敗、運行時崩潰、完全無響應)選擇以下修復方案。以下方法綜合了官方推薦和社區實踐,按操作風險由低到高排序: 一、恢復模式(Recovery Mode) 適用場景??:系統啟動卡頓、登錄后黑屏、軟件包損壞等。 ??操作步驟??: ?…

免費批量文件重命名工具

免費批量文件重命名工具 🌐 網站: 免費批量文件重命名工具 📌 工具簡介 一款功能強大的批量文件重命名工具,支持多種重命名方式,操作簡單,完全免費! 🚀 主要功能 功能描述自定義重命名直接輸…

VR博物館推動現代數字化科技博物館

VR博物館:推動現代數字化科博館新篇章 隨著科技的飛速發展,虛擬現實(Virtual Reality, VR)技術已經逐漸滲透到我們生活的方方面面,其中,VR博物館作為現代數字化科博館的重要形式之一,以獨特的優…

COMSOL與MATLAB聯合仿真人工智能的電學層析成像系統

關鍵詞:MATLAB,電學層析成像,人工智能,圖像重建,深度學習 一、引言 基于人工智能的電學層析成像系統是一種創新的檢測技術,結合了電學層析成像技術與人工智能算法的優勢。電學層析成像技術,簡…

【Latex】Windows/Ubuntu 繪制 eps 矢量圖通用方法(drawio),支持插入 Latex 數學公式

一直感覺 Visio 或者 PPT 中 Mathtype 對 latex 公式渲染效果不好,且在 Ubuntu 下的支持不好,最近重新調研發現一個好用的工具 drawio。 在線使用 https://app.diagrams.net/?srcabout 也有桌面版的應用,Windows 就下載 exe 安裝器&#x…

selenium自動化測試學習心得1

1. 關于測試用例的順序 首先在你測試的主類上面寫TestMethodOrder(MethodOrderer.OrderAnnotation.class) 然后在測試用例上面, 寫Order(),里面的數字越小,測試的優先級越大 2. 關于getText()和getAttribute("innerText") getText() 是 Selenium 方法,…

Spring AI 結合DeepSeek使用教程

Spring AI 結合DeepSeek使用教程 一、環境搭建與項目初始化 創建Spring Boot項目 使用IDEA或Spring Initializr創建項目,選擇JDK 17或更高版本(推薦21)。勾選依賴項:Spring Web、Lombok,Maven或Gradle作為構建工具。添…

Android 布局優化:掌握 <include> 與 <merge> 的實戰技巧

引言 在 Android 開發中&#xff0c;布局文件是 UI 設計的核心載體&#xff0c;但隨著項目復雜度增加&#xff0c;布局冗余、嵌套層級過深等問題會導致性能下降。本文將通過 代碼級實戰示例&#xff0c;詳細解析如何利用 <include> 和 <merge> 標簽優化布局&#…