-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Three.js開發指南:基于WebGL和HTML5在網頁上渲染3D圖形和動畫(原書第3版)

( 簡體 字)
作者:[美] 喬斯·德克森(Jos Dirksen)著類別:1. -> 程式設計 -> 綜合
譯者:
出版社:機械工業出版社Three.js開發指南:基于WebGL和HTML5在網頁上渲染3D圖形和動畫(原書第3版) 3dWoo書號: 51347
詢問書籍請說出此書號!

缺書
NT售價: 495

出版日:6/1/2019
頁數:
光碟數:0
站長推薦:
印刷:語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111628842
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

在最近的幾年中,瀏覽器的功能變得愈發強大,并且成為展現復雜的應用和圖形的平臺。然而其中大部分都是標準的二維圖形。大多數現代瀏覽器已經支持WebGL,不僅可以在瀏覽器端創建二維應用和圖形,而且可以通過GPU的功能創建好看并且運行良好的三維應用。

然而,直接使用WebGL編程還是很復雜的。編程者需要知道WebGL的底層細節,并且學習復雜的著色語言來獲得WebGL的大部分功能。Three.js提供了一個很簡單的關于WebGL特性的JavaScript API,所以用戶不需要詳細地學習WebGL,就能創作出好看的三維圖形。

Three.js為直接在瀏覽器中創建三維場景提供了大量的特性和API。閱讀這本書,讀者將通過許多交互示例和示例代碼學習Three.js提供的各種API。

本書內容

第1章介紹使用Three.js的基本步驟。閱讀完本章就能立刻創建你的第一個Three.js場景,也能直接在瀏覽器中創建你的第一個三維場景并讓它動起來。

第2章解釋使用Three.js時需要了解的基本組件。將介紹燈光、網格、幾何形狀、材質和攝像機。閱讀本章,讀者也將對Three.js提供的不同燈光和在場景中使用的攝像機有一個大概的印象。

第3章深入介紹可以在場景中使用的不同燈光。本章會通過示例講解如何使用聚光燈、平行光、環境光、點光源、半球光和區域光。此外,本章還會展示如何使用鏡頭光暈來影響光源。

第4章講述Three.js中可在網格中使用的材質。本章展示可以設置的所有屬性,并且提供不同的交互示例來闡述Three.js中可用的材質。

第5章講述Three.js中的幾何體。本章將介紹如何在Three.js中創建和配置幾何體,并且提供了幾何體的交互示例,包括平面、圓形、任意圖形、長方體、球體、圓柱體、圓環、環狀扭結和多面體。

第6章接著第5章講解如何使用幾何體。本章介紹如何配置和使用Three.js提供的更高級的幾何體,如凸面體和旋轉體。在本章,你還能學到如何從二維形狀拉伸出三維幾何體,并且學會通過二元操作來組合幾何體,從而創建出一個新的幾何體。

第7章解釋如何使用Three.js中的精靈和粒子,介紹從頭開始或者通過現有的幾何體來創建一個粒子系統。這一章還介紹如何使用精靈或點云材質來改變單個點的外觀。

第8章介紹如何通過外部資源導入網格和幾何體,以及如何使用Three.js內置的JSON格式來保存幾何體和場景。本章還會解釋如何加載不同格式的模型,如OBJ、DAE、STL、CTM、PLY等。

第9章展示可以讓場景動起來的各種動畫,包括如何組合使用Tween.js庫和Three.js,以及如何使用基于變形和骨骼的動畫模型。

第10章延續第4章的內容—使用Three.js材質。在第4章已經初步介紹了材質,本章著重介紹現有的各種材質以及如何把材質應用到網格中。另外,本章還介紹如何直接使用HTML5中的視頻元素和畫布元素作為材質來源。

第11章展示如何使用Three.js對已經渲染過的場景進行后期處理。通過后期處理,你可以將模糊、傾斜移位和著色等效果添加到已經渲染過的場景中。除此之外,本章還介紹如何創建自己的后期處理效果、自定義的頂點和片段著色器。

第12章解釋如何將物理效果添加到Three.js場景中。通過物理效果,你能檢測物體之間的碰撞,使物體對重力有響應,以及應用摩擦力。本章會展示如何用Physijs JavaScript庫實現這些效果。此外,本章還會展示如何在Three.js場景中添加聲音。

本書的使用要求

使用本書只需稍微了解JavaScript,并按照第1章的指導搭建一個本地的網絡服務器和獲取書中使用的示例。

面向的讀者

這本書對于每一個知道JavaScript并且想要在瀏覽器中創建運行的三維圖形的人來說都是很棒的。你不需要知道任何高級的數學知識或WebGL,所需的只是對JavaScript和HTML有大致的了解。書中所需要的材料和示例都可以免費下載,所用的工具都是開源的。所以,如果你想創建可以在任何現代瀏覽器中運行的交互的三維圖形,這本書就適合你。

下載示例代碼及彩圖

本書的示例代碼及彩圖,可通過個人賬號下載,也可以訪問華章公司官網,通過注冊并登錄個人賬號下載。
內容簡介:

本書通過大量的示例和代碼,以豐富的互動的方式向讀者展示Three.js的各種功能。

全書共12章:第1章講述使用Three.js庫的基本步驟;第2章講解Three.js庫使用過程中所需要理解的各種基礎組件,包括燈光、網格、幾何體、材質和相機等;第3章通過具體示例講解場景中使用的各種燈光;第4章討論Three.js庫中可以用于網格的各種材質,并通過互動示例讓你來試用這些材質;第5章講解Three.js中幾何體的創建和設置;第6章展示如何設置、使用Three.js庫中的高級幾何體,例如凸面體和掃描體;第7章講解如何使用Three.js庫中的粒子系統;第8章展示如何從外部導入網格和幾何體;第9章探索各種動畫效果,使場景活動起來;第10章深入講解材質的細節,包括如何控制材質,以及如何將HTML5視頻的輸出和HTML5畫布中的元素作為紋理;第11章探索如何使用Three.js庫來對已經渲染過的場景進行后期處理;第12章講解如何在Three.js的場景中添加物理效果。



現代瀏覽器都支持WebGL,這樣不必使用Flash、Java等插件就能在瀏覽器中創建三維圖形。然而,直接使用WebGL在瀏覽器中創建三維圖形和動畫也非常繁瑣,它所提供的各種接口盡管非常豐富且強大,但對于用戶來說未免過于復雜了。

  Three.js的出現則完美地幫助人們解決了這個矛盾。Three.js將WebGL的強大功能融匯其中,同時又非常易于使用,即便用戶對其中的原理不甚了解,也能借助Three.js創建出絢麗多姿的三維場景和動畫。

  本書先從基本概念和Three.js的基本模塊講起,然后伴隨著大量的示例和代碼,逐步擴展到更多的主題,循序漸進地講解Three.js的各種功能,幫助你充分利用WebGL和現代瀏覽器的潛能,直接在瀏覽器中創建動態的華麗場景。

通過閱讀本書,你將學會:

 使用Three.js提供的各種材質并了解它們如何與3D模型和場景相互作用

 通過Three.js提供的各種攝像機控制功能,在三維場景中輕松導航

 通過直接操作頂點實現雨、雪以及宇宙星系效果

 導入OBJ、STL、COLLADA等外部格式的模型和創建動畫效果

 創建和運行基于形態和框架的動畫

 在材質上應用高級紋理(凹凸貼圖、法向貼圖、高光貼圖和光照貼圖),創建逼真的三維圖形

 使用Physijs這個JavaScript庫,實現三維物體的物理效果

 創建自定義頂點和片段著色器,實現與WebGL的直接交互
目錄:

譯者序
前言
第1章 使用Three.js創建你的第一個三維場景1
1.1 準備工作3
1.2 獲取源碼5
1.2.1 通過Git獲取代碼倉庫5
1.2.2 下載并解壓縮檔案文件5
1.2.3 測試示例6
1.3 搭建HTML框架9
1.4 渲染并查看三維對象10
1.5 添加材質、光源和陰影效果14
1.6 讓你的場景動起來16
1.6.1 引入requestAnimationFrame()方法16
1.6.2 旋轉立方體18
1.6.3 彈跳球19
1.7 使用dat.GUI簡化試驗流程20
1.8 場景對瀏覽器的自適應22
1.9 總結23
第2章 構建Three.js應用的基本組件24
2.1 創建場景24
2.1.1 場景的基本功能25
2.1.2 給場景添加霧化效果29
2.1.3 使用overrideMaterial屬性30
2.2 幾何體和網格32
2.2.1 幾何體的屬性和方法32
2.2.2 網格對象的屬性和方法36
2.3 選擇合適的攝像機40
2.3.1 正交投影攝像機和透視投影攝像機41
2.3.2 將攝像機聚焦在指定點上45
2.4 總結46
第3章 學習使用Three.js中的光源47
3.1 Three.js中不同種類的光源47
3.2 基礎光源48
3.2.1 THREE.AmbientLight48
3.2.2 THREE.SpotLight53
3.2.3 THREE.PointLight58
3.2.4 THREE.DirectionalLight62
3.3 特殊光源63
3.3.1 THREE.HemisphereLight64
3.3.2 THREE.AreaLight65
3.3.3 鏡頭光暈67
3.4 總結69
第4章 使用Three.js的材質70
4.1 理解材質的共有屬性71
4.1.1 基礎屬性71
4.1.2 融合屬性73
4.1.3 高級屬性73
4.2 從簡單的網格材質開始74
4.2.1 THREE.MeshBasicMaterial75
4.2.2 THREE.MeshDepthMaterial77
4.2.3 聯合材質79
4.2.4 THREE.MeshNormalMaterial80
4.2.5 在單幾何體上使用多種材質82
4.3 高級材質84
4.3.1 THREE.MeshLambertMaterial85
4.3.2 THREE.MeshPhongMaterial86
4.3.3 THREE.MeshStandardMaterial88
4.3.4 THREE.MeshPhysicalMaterial89
4.3.5 用THREE.ShaderMaterial創建自己的著色器89
4.4 線性幾何體的材質95
4.4.1 THREE.LineBasicMaterial95
4.4.2 THREE.LineDashedMaterial97
4.5 總結97
第5章 學習使用幾何體99
5.1 Three.js提供的基礎幾何體101
5.1.1 二維幾何體101
5.1.2 三維幾何體109
5.2 總結120
第6章 高級幾何體和二元操作122
6.1 THREE.ConvexGeometry122
6.2 THREE.LatheGeometry124
6.3 通過拉伸創建幾何體125
6.3.1 THREE.ExtrudeGeometry126
6.3.2 THREE.TubeGeometry127
6.3.3 從SVG拉伸129
6.4 THREE.ParametricGeometry131
6.5 創建三維文本133
6.5.1 渲染文本133
6.5.2 添加自定義字體136
6.6 使用二元操作組合網格137
6.6.1 subtract函數139
6.6.2 intersect函數142
6.6.3 函數143
6.7 總結143
第7章 粒子和精靈145
7.1 理解粒子145
7.2 THREE.Points和THREE.PointsMaterial148
7.3 使用HTML5畫布樣式化粒子151
7.3.1 在THREE.CanvasRenderer中使用HTML5畫布151
7.3.2 在WebGLRenderer中使用HTML5畫布152
7.4 使用紋理樣式化粒子155
7.5 使用精靈貼圖160
7.6 從高級幾何體創建THREE.Points163
7.7 總結165
第8章 創建、加載高級網格和幾何體166
8.1 幾何體組合與合并166
8.1.1 對象組合166
8.1.2 將多個網格合并成一個網格168
8.2 從外部資源加載幾何體170
8.2.1 以Three.js的JSON格式保存和加載171
8.2.2 使用Blender177
8.3 導入三維格式文件181
8.3.1 OBJ和MTL格式181
8.3.2 加載Collada模型185
8.3.3 從其他格式的文件中加載模型186
8.3.4 展示蛋白質數據銀行中的蛋白質190
8.3.5 從PLY模型中創建粒子系統192
8.4 總結194
第9章 創建動畫和移動攝像機195
9.1 基礎動畫195
9.1.1 簡單動畫196
9.1.2 選擇對象197
9.1.3 使用Tween.js實現動畫198
9.2 使用攝像機201
9.2.1 軌跡球控制器202
9.2.2 飛行控制器204
9.2.3 第一視角控制器205
9.2.4 軌道控制器207
9.3 變形動畫和骨骼動畫208
9.3.1 用變形目標創建動畫209
9.3.2 用骨骼和蒙皮創建動畫217
9.4 使用外部模型創建動畫220
9.4.1 使用Blender創建骨骼動畫220
9.4.2 從Collada模型加載動畫223
9.4.3 從雷神之錘模型中加載動畫225
9.4.4 使用gltfLoader225
9.4.5 利用fbxLoader顯示動作捕捉模型動畫227
9.4.6 通過xLoader加載古老的DirectX模型228
9.4.7 利用BVHLoader顯示骨骼動畫230
9.4.8 如何重用SEA3D模型231
9.5 總結232
第10章 加載和使用紋理233
10.1 將紋理應用于材質233
10.1.1 加載紋理并應用到網格233
10.1.2 使用凹凸貼圖創建褶皺238
10.1.3 使用法向貼圖創建更加細致的凹凸和褶皺239
10.1.4 使用移位貼圖來改變頂點位置240
10.1.5 用環境光遮擋貼圖實現細節陰影241
10.1.6 用光照貼圖產生假陰影243
10.1.7 金屬光澤度貼圖和粗糙度貼圖244
10.1.8 Alpha貼圖246
10.1.9 自發光貼圖247
10.1.10 高光貼圖248
10.1.11 使用環境貼圖創建偽鏡面反射效果250
10.2 紋理的高級用途255
10.2.1 自定義UV映射255
10.2.2 重復紋理258
10.2.3 在畫布上繪制圖案并作為紋理260
10.2.4 將視頻輸出作為紋理262
10.3 總結263
第11章 自定義著色器和后期處理265
11.1 配置Three.js以進行后期處理265
11.2 后期處理通道268
11.2.1 簡單后期處理通道270
11.2.2 使用掩碼的高級效果組合器274
11.2.3 高級渲染通道:景深效果278
11.2.4 高級渲染通道:環境光遮擋280
11.3 使用THREE.ShaderPass自定義效果281
11.3.1 簡單著色器283
11.3.2 模糊著色器285
11.4 創建自定義后期處理著色器287
11.4.1 自定義灰度圖著色器287
11.4.2 自定義位著色器290
11.5 總結292
第12章 在場景中添加物理效果和聲音293
12.1 創建基本的Three.js場景294
12.2 Physi.js材質屬性298
12.3 Physi.js基礎形體300
12.4 使用約束限制對象的移動304
12.4.1 使用PointConstraint限制對象在兩點間移動305
12.4.2 使用HingeConstraint創建類似門的約束306
12.4.3 使用SliderConstraint將移動限制在一個軸上309
12.4.4 使用ConeTwistConstraint創建類似球銷的約束311
12.4.5 使用DOFConstraint實現細節的控制312
12.5 在場景中添加聲源315
12.6 總結317
序: