Three.js權威指南

喬斯·德克森 葉偉民

相關主題

商品描述

Three.js已成為創建令人驚嘆的3D WebGL內容的行業標準。在本書中,你將學習Three.js的所有功能,瞭解如何將其與最新的物理引擎集成。你還將掌握直接在瀏覽器中創建身臨其境的3D場景並製作動畫的技巧,充分挖掘WebGL和現代瀏覽器的潛力。 本書首先介紹Three.js中使用的基本概念和構建模塊,通過大量示例和代碼幫助你詳細探索這些基本主題。你將學習如何使用紋理和材質創建逼真的3D物體,以及如何從外部資源加載現有模型。接下來,你將瞭解如何使用Three.js內置的相機控件控制相機,這將使你能夠在創建的3D場景中飛行或行走。然後將介紹如何使用HTML5視頻和畫布元素作為三維對象的材質,為模型製作動畫。在瞭解如何為場景添加重力和碰撞檢測等物理特性之前,你將學習如何使用變形目標和基於骨骼的動畫。最後,你將掌握如何將Blender與Three.js相結合,並創建VR和AR場景。 本書結束時,你將掌握使用Three.js創建三維動畫圖形的技巧。

作者簡介

葉偉民 PDF4AI.cn(國內)和PDF4Al.com(國外)創始人 PDF4AI使用了本書第2、3、4、7章的技術 致力於將高價值數據處理成AI可以精確處理的格式 主要服務於投資銀行(基金、私募、量化投資)、翻譯、外貿、醫療行業 《精通Neo4j》作者之一 《金融中的人工智能》《Python可解釋AI(XAI)實戰》等多本AI圖書譯者(或譯者之一)

目錄大綱

前言
關於作者
關於審校者
第一部分 搭建開發環境和運行Three.js
第1章 使用Three.js創建你的第一個3D場景
1.1 技術要求
1.2 測試和實驗示例
1.3 探索Three.js應用程序的HTML結構
1.4 渲染和查看3D對象
1.4.1 設置場景
1.4.2 添加光源
1.4.3 添加網格
1.4.4 添加動畫循環
1.4.5 使用lil-gui來控制屬性,從而使實驗更容易
1.5 輔助工具
1.6 本章小結
第2章 Three.js應用程序的基本組件
2.1 創建場景
2.2 幾何體和網格的關系
2.2.1 幾何體的屬性和函數
2.2.2 網格的函數和屬性
2.3 針對不同的場景使用不同的相機
2.3.1 正交相機與透視相機
2.3.2 確定相機需要看向的位置
2.3.3 調試相機的視角
2.4 本章小結
第3章 在Three.js中使用光源
3.1 Three.js提供了哪些類型的光源
3.2 如何使用基本光源
3.2.1 THREE.AmbientLight
3.2.2 THREE.SpotLight
3.2.3 THREE.PointLight
3.2.4 THREE.DirectionalLight
3.2.5 使用THREE.Color對象
3.3 特殊光源
3.3.1 THREE.HemisphereLight
3.3.2 THREE.RectAreaLight
3.3.3 THREE.LightProbe
3.3.4 THREE.LensFlare
3.4 本章小結
第二部分 Three.js核心組件
第4章 使用Three.js材質
4.1 常見的材質屬性
4.1.1 基本屬性
4.1.2 混合屬性
4.1.3 高級屬性
4.2 從簡單材質開始
4.2.1 THREE.MeshBasicMaterial
4.2.2 THREE.MeshDepthMaterial
4.2.3 組合材質
4.2.4 THREE.MeshNormalMaterial
4.2.5 為單個網格對象指定多個材質
4.3 高級材質
4.3.1 THREE.MeshLambertMaterial
4.3.2 THREE.MeshPhongMaterial
4.3.3 THREE.MeshToonMaterial
4.3.4 THREE.MeshStandardMaterial
4.3.5 THREE.MeshPhysicalMaterial
4.3.6 THREE.ShadowMaterial
4.3.7 使用自定義著色器與THREE.ShaderMaterial
4.3.8 使用CustomShaderMaterial自定義現有著色器
4.4 線形幾何體可以使用的材質
4.4.1 THREE.LineBasicMaterial
4.4.2 THREE.LineDashedMaterial
4.5 本章小結
第5章 基本幾何體
5.1 2D幾何體
5.1.1 THREE.PlaneGeometry
5.1.2 THREE.CircleGeometry
5.1.3 THREE.RingGeometry
5.1.4 THREE.ShapeGeometry
5.2 3D幾何體
5.2.1 THREE.BoxGeometry
5.2.2 THREE.SphereGeometry
5.2.3 THREE.CylinderGeometry
5.2.4 THREE.ConeGeometry
5.2.5 THREE.TorusGeometry
5.2.6 THREE.TorusKnotGeometry
5.2.7 THREE.PolyhedronGeometry
5.2.8 THREE.IcosahedronGeometry
5.2.9 THREE.TetrahedronGeometry
5.2.10 THREE.OctahedronGeometry
5.2.11 THREE.Dodecahedron-Geometry
5.3 本章小結
第6章 高級幾何體
6.1 學習高級幾何體
6.1.1 THREE.ConvexGeometry
6.1.2 THREE.LatheGeometry
6.1.3 BoxLineGeometry
6.1.4 THREE.RoundedBox-Geometry
6.1.5 TeapotGeometry
6.2 通過2D形狀創建3D幾何體
6.2.1 THREE.ExtrudeGeometry
6.2.2 THREE.TubeGeometry
6.2.3 從SVG圖像中拉伸3D形狀
6.2.4 THREE.ParametricGeometry
6.3 用於調試的幾何體
6.3.1 THREE.EdgesGeometry
6.3.2 THREE.WireFrameGeometry
6.4 創建一個3D文字網格
6.4.1 渲染文本
6.4.2 添加自定義字體
6.4.3 使用Troika庫創建文本
6.5 本章小結
第7章 點和精靈
7.1 理解點和精靈
7.2 使用紋理樣式化粒子
7.2.1 使用HTML canvas繪制圖像
7.2.2 使用紋理來設置粒子的樣式
7.3 使用精靈貼圖
7.4 從現有幾何體創建THREE.Points
7.5 本章小結
第三部分 創建覆雜的幾何體、動畫和紋理
第8章 創建和加載覆雜的網格和幾何體
8.1 幾何體分組和合並
8.1.1 對象分組
8.1.2 合並幾何體
8.2 從外部資源加載幾何體
8.3 從3D文件格式導入
8.3.1 OBJ和MTL格式
8.3.2 加載glTF模型
8.3.3 展示完整的樂高模型
8.3.4 加載基於voxel的模型
8.3.5 從PDB渲染蛋白質
8.3.6 從PLY模型加載點雲
8.3.7 其他加載器
8.4 本章小結
第9章 動畫和移動相機
9.1 基本動畫
9.1.1 簡單動畫
9.1.2 選擇和移動對