注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)Three.js權(quán)威指南:在網(wǎng)頁上創(chuàng)建3D圖形和動畫的方法與實(shí)踐(原書第4版)

Three.js權(quán)威指南:在網(wǎng)頁上創(chuàng)建3D圖形和動畫的方法與實(shí)踐(原書第4版)

Three.js權(quán)威指南:在網(wǎng)頁上創(chuàng)建3D圖形和動畫的方法與實(shí)踐(原書第4版)

定 價:¥129.00

作 者: [美]喬斯·德克森
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111771333 出版時間: 2025-02-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  Three.js在過去幾年中已經(jīng)成為創(chuàng)建令人驚嘆的3D WebGL內(nèi)容的標(biāo)準(zhǔn)方式。本書探討Three.js的所有特性,并提供額外的內(nèi)容,包括如何將Three.js與Blender、React、TypeScript以及最新的物理引擎進(jìn)行集成。本書共分為四個部分:第一部分介紹搭建開發(fā)環(huán)境和運(yùn)行Three.js;第二部分介紹Three.js的核心組件;第三部分介紹如何創(chuàng)建復(fù)雜的幾何體、動畫和紋理;第四部分介紹后期處理、物理模擬和音頻集成。本書專為JavaScript開發(fā)者編寫,旨在幫助他們掌握Three.js庫的用法。

作者簡介

  Jos Dirksen擁有近20年的軟件開發(fā)和架構(gòu)設(shè)計經(jīng)驗(yàn),涵蓋從后端開發(fā)(如Java、Kotlin和Scala)到前端開發(fā)(使用HTML5、CSS、JavaScript和TypeScript)的多種技術(shù)。除了熟練運(yùn)用這些技術(shù)外,Jos還經(jīng)常在技術(shù)會議上發(fā)表演講,并在博客上分享關(guān)于新技術(shù)和有趣技術(shù)的文章。他還喜歡嘗試新技術(shù),并探索如何利用它們來創(chuàng)建美觀的數(shù)據(jù)可視化。他目前是一名自由職業(yè)的全棧工程師,參與多個Scala和TypeScript項(xiàng)目。Jos曾在私營公司(如ING、ASML、Malmberg和Philips)和國營機(jī)構(gòu)(如美國國防部和阿姆斯特丹港)擔(dān)任過許多不同的角色。

圖書目錄

Contents 目  錄
前言
關(guān)于作者
關(guān)于審校者
第一部分 搭建開發(fā)環(huán)境和
運(yùn)行Three.js
第1章 使用Three.js創(chuàng)建你的
    第一個3D場景2
1.1 技術(shù)要求5
1.2 測試和實(shí)驗(yàn)示例9
1.3 探索Three.js應(yīng)用程序的
   HTML結(jié)構(gòu)11
1.4 渲染和查看3D對象13
1.4.1 設(shè)置場景14
1.4.2 添加光源16
1.4.3 添加網(wǎng)格17
1.4.4 添加動畫循環(huán)19
1.4.5 使用lil-gui來控制屬性,
   從而使實(shí)驗(yàn)更容易23
1.5 輔助工具25
1.6 本章小結(jié)26
第2章 Three.js應(yīng)用程序的基本組件28
2.1 創(chuàng)建場景28
2.2 幾何體和網(wǎng)格的關(guān)系38
2.2.1 幾何體的屬性和函數(shù)38
2.2.2 網(wǎng)格的函數(shù)和屬性44
2.3 針對不同的場景使用不同的相機(jī)47
2.3.1 正交相機(jī)與透視相機(jī)48
2.3.2 確定相機(jī)需要看向的位置53
2.3.3 調(diào)試相機(jī)的視角53
2.4 本章小結(jié)55
第3章 在Three.js中使用光源56
3.1 Three.js提供了哪些類型的光源57
3.2 如何使用基本光源57
3.2.1 THREE.AmbientLight58
3.2.2 THREE.SpotLight60
3.2.3 THREE.PointLight67
3.2.4 THREE.DirectionalLight70
3.2.5 使用THREE.Color對象72
3.3 特殊光源74
3.3.1 THREE.HemisphereLight74
3.3.2 THREE.RectAreaLight76
3.3.3 THREE.LightProbe77
3.3.4 THREE.LensFlare80
3.4 本章小結(jié)83
第二部分 Three.js核心組件
第4章 使用Three.js材質(zhì)86
4.1 常見的材質(zhì)屬性87
4.1.1 基本屬性87
4.1.2 混合屬性89
4.1.3 高級屬性89
4.2 從簡單材質(zhì)開始90
4.2.1 THREE.MeshBasicMaterial90
4.2.2 THREE.MeshDepthMaterial94
4.2.3 組合材質(zhì)95
4.2.4 THREE.MeshNormalMaterial95
4.2.5 為單個網(wǎng)格對象指定多個材質(zhì)98
4.3 高級材質(zhì)102
4.3.1 THREE.MeshLambertMaterial103
4.3.2 THREE.MeshPhongMaterial104
4.3.3 THREE.MeshToonMaterial106
4.3.4 THREE.MeshStandardMaterial106
4.3.5 THREE.MeshPhysicalMaterial108
4.3.6 THREE.ShadowMaterial109
4.3.7 使用自定義著色器與THREE.
   ShaderMaterial109
4.3.8 使用CustomShaderMaterial
   自定義現(xiàn)有著色器114
4.4 線形幾何體可以使用的材質(zhì)115
4.4.1 THREE.LineBasicMaterial115
4.4.2 THREE.LineDashedMaterial118
4.5 本章小結(jié)119
第5章 基本幾何體120
5.1 2D幾何體121
5.1.1 THREE.PlaneGeometry121
5.1.2 THREE.CircleGeometry123
5.1.3 THREE.RingGeometry125
5.1.4 THREE.ShapeGeometry126
5.2 3D幾何體131
5.2.1 THREE.BoxGeometry131
5.2.2 THREE.SphereGeometry132
5.2.3 THREE.CylinderGeometry134
5.2.4 THREE.ConeGeometry135
5.2.5 THREE.TorusGeometry136
5.2.6 THREE.TorusKnotGeometry137
5.2.7 THREE.PolyhedronGeometry140
5.2.8 THREE.IcosahedronGeometry142
5.2.9 THREE.TetrahedronGeometry142
5.2.10 THREE.OctahedronGeometry142
5.2.11 THREE.Dodecahedron-
    Geometry144
5.3 本章小結(jié)144
第6章 高級幾何體146
6.1 學(xué)習(xí)高級幾何體146
6.1.1 THREE.ConvexGeometry147
6.1.2 THREE.LatheGeometry148
6.1.3 BoxLineGeometry150
6.1.4 THREE.RoundedBox-
   Geometry151
6.1.5 TeapotGeometry152
6.2 通過2D形狀創(chuàng)建3D幾何體153
6.2.1 THREE.ExtrudeGeometry153
6.2.2 THREE.TubeGeometry155
6.2.3 從SVG圖像中拉伸3D形狀157
6.2.4 THREE.ParametricGeometry160
6.3 用于調(diào)試的幾何體163
6.3.1 THREE.EdgesGeometry163
6.3.2 THREE.WireFrameGeometry164
6.4 創(chuàng)建一個3D文字網(wǎng)格165
6.4.1 渲染文本165
6.4.2 添加自定義字體167
6.4.3 使用Troika庫創(chuàng)建文本168
6.5 本章小結(jié)169
第7章 點(diǎn)和精靈170
7.1 理解點(diǎn)和精靈171
7.2 使用紋理樣式化粒子175
7.2.1 使用HTML canvas繪制圖像175
7.2.2 使用紋理來設(shè)置粒子的樣式177
7.3 使用精靈貼圖183
7.4 從現(xiàn)有幾何體創(chuàng)建THREE.Points186
7.5 本章小結(jié)187
第三部分 創(chuàng)建復(fù)雜的幾何體、
動畫和紋理
第8章 創(chuàng)建和加載復(fù)雜的網(wǎng)格
    和幾何體190
8.1 幾何體分組和合并190
8.1.1 對象分組190
8.1.2 合并幾何體194
8.2 從外部資源加載幾何體196
8.3 從3D文件格式導(dǎo)入202
8.3.1 OBJ和MTL格式202
8.3.2 加載glTF模型206
8.3.3 展示完整的樂高模型207
8.3.4 加載基于voxel的模型208
8.3.5 從PDB渲染蛋白質(zhì)211
8.3.6 從PLY模型加載點(diǎn)云214
8.3.7 其他加載器215
8.4 本章小結(jié)216
第9章 動畫和移動相機(jī)217
9.1 基本動畫217
9.1.1 簡單動畫218
9.1.2 選擇和移動對象220
9.1.3 使用Tween.js來創(chuàng)建動畫224
9.2 通過相機(jī)實(shí)現(xiàn)動畫228
9.2.1 ArcballControls228
9.2.2 TrackBallControls230
9.2.3 FlyControls232
9.2.4 FirstPersonControls233
9.2.5 OrbitControls235
9.3 變形和蒙皮動畫236
9.3.1 使用變形目標(biāo)實(shí)現(xiàn)動畫236
9.3.2 使用變形目標(biāo)和混合器
    實(shí)現(xiàn)動畫238
9.3.3 使用蒙皮動畫實(shí)現(xiàn)動畫244
9.4 使用外部模型創(chuàng)建動畫247
9.4.1 使用gltfLoader247
9.4.2 使用fbxLoader可視化動作
    捕捉模型249
9.4.3 從Quake模型加載動畫251
9.4.4 從COLLADA模型加載動畫251
9.4.5 使用BVHLoader可視化骨骼253
9.5 本章小結(jié)254
第10章 加載和使用紋理255
10.1 在材質(zhì)中應(yīng)用紋理255
10.1.1 加載紋理并將其應(yīng)用于
    網(wǎng)格255
10.1.2 使用凹凸貼圖來為網(wǎng)格提供
    更多的細(xì)節(jié)259
10.1.3 使用法線貼圖實(shí)現(xiàn)更細(xì)致的
    凹凸和皺紋261
10.1.4 使用位移貼圖來改變頂點(diǎn)
      的位置263
10.1.5 使用環(huán)境光遮蔽貼圖添加
    細(xì)致的陰影265
10.1.6 使用光照貼圖創(chuàng)建偽光照
    效果268
10.1.7 金屬貼圖和粗糙貼圖269
10.1.8 使用透明貼圖創(chuàng)建透明
    模型271
10.1.9 使用發(fā)光貼圖使模型發(fā)光273
10.1.10 使用高光貼圖來確定模型
      的閃亮度275
10.1.11 使用環(huán)境貼圖創(chuàng)建偽反射277
10.1.12 重復(fù)包裹282
10.2 使用HTML5 canvas作為紋理
   的輸入284
10.2.1 使用HTML5 canvas創(chuàng)建
    顏色貼圖285
10.2.2 使用canvas作為凸凹貼圖286
10.2.3 使用視頻輸出作為紋理288
10.3 本章小結(jié)289
第四部分 后期處理、物理模擬
和音頻集成
第11章 渲染后期處理292
11.1 設(shè)置Three.js以支持后期處理292
11.1.1 創(chuàng)建THREE.EffectCom-
    poser293
11.1.2 配置THREE.EffectComposer
    以進(jìn)行后期處理294
11.1.3 更新渲染循環(huán)295
11.2 后期處理通道296
11.2.1 簡單的后期處理通道297
11.2.2 在同一屏幕上顯示多個
    渲染器的輸出302
11.2.3 其他簡單通道303
11.3 高級EffectComposer流之
   使用遮罩305
11.3.1 高級通道—散景309
11.3.2 高級通道—環(huán)境光遮蔽311
11.4 使用THREE.ShaderPass
   自定義效果313
11.4.1 簡單著色器314
11.4.2 模糊著色器318
11.5 創(chuàng)建自定義后期處理著色器320
11.5.1 自定義灰度著色器320
11.5.2 創(chuàng)建自定義位著色器324
11.6 本章小結(jié)325
第12章 給場景添加物理效果
     和音效326
12.1 使用Rapier創(chuàng)建基本Three.js
     場景327
12.1.1 設(shè)置世界和創(chuàng)建描述328
12.1.2 渲染場景并模擬世界330
12.2 在Rapier中模擬多米諾骨牌331
12.3 設(shè)置摩擦力和恢復(fù)力335
12.4 Rapier支持的形狀338
12.5 使用關(guān)節(jié)限制對象的移動341
12.5.1 用固定關(guān)節(jié)連接兩個對象341
12.5.2 使用球形關(guān)節(jié)連接對象342
12.5.3 使用旋轉(zhuǎn)關(guān)節(jié)來限制兩個
    對象之間的旋轉(zhuǎn)運(yùn)動344
12.5.4 使用平移關(guān)節(jié)來限制一個
    對象只能沿一個軸移動346
12.6 將聲源添加到場景中348
12.7 本章小結(jié)350
第13章 結(jié)合使用Blender和
     Three.js351
13.1 從Three.js導(dǎo)出場景并將其
   導(dǎo)入Blender352
13.2 從Blender導(dǎo)出靜態(tài)場景并將其
   導(dǎo)入Three.js356
13.3 從Blender導(dǎo)出動畫并將其
   導(dǎo)入Three.js359
13.4 用Blender烘焙光照貼圖和
   環(huán)境光遮蔽貼圖365
13.4.1 在Blender中設(shè)置場景365
13.4.2 將光照加入場景367
13.4.3 將光照烘焙到紋理中369
13.4.4 導(dǎo)出場景并將其導(dǎo)入
    Blender373
13.4.5 用Blender烘焙環(huán)境光
    遮蔽貼圖375
13.5 在Blender中進(jìn)行自定義
   UV建模376
13.6 本章小結(jié)380
第14章 結(jié)合使用Three.js與React、
     TypeScript、Web-XR381
14.1 結(jié)合使用Three.js和TypeScript382
14.2 在TypeScript的幫助下集成
   Three.js和React385
14.3 在Three.js fibers的幫助下輕松
   集成Three.js和React389
14.4 Three.js和VR395
14.5 Three.js和AR400
14.6 本章小結(jié)402

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號