-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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開發指南

( 簡體 字)
作者:(美)Jos Dirksen 著類別:1. -> 程式設計 -> 網路編程 -> Javascript
譯者:
出版社:機械工業出版社Three.js開發指南 3dWoo書號: 41090
詢問書籍請說出此書號!

缺書
NT售價: 295

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

譯者序:

前言:

兩年里,瀏覽器變得更加強大了,而且能夠作為平臺來運行復雜的應用和圖形。但大部分的圖形都是二維的。現在大部分的瀏覽器已經實現了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章進一步講解場景中的各種光源。該章會展示幾個例子,并解釋如何使用各種光源,該章所介紹的光源包括:SpotLight、DirectionLight、AmbientLight、PointLight、HemisphereLight,以及AreaLight。另外,該章還展示如何在光源中應用LensFlare效果。

第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章引入的材質。這一章會深入講解材質的細節。該章介紹了各種可用的材質,以及應用到網格上時如何控制材質。另外,在這一章你還會看到如何將HTML5視頻的輸出和HTML5畫布中的元素作為紋理。

第11章探討如何使用Three.js庫來對已經渲染過的場景進行后期處理。通過后期處理,你可以對已經渲染過的場景應用某些特效,如模糊、移軸、陳舊。另外,你還會學習如何創建自定義的后期處理效果,以及創建自定義頂點和片段著色器。

第12章講解如何在Three.js的場景中添加物理效果。有了物理效果后,你就可以檢測物體之間的碰撞,使它們能夠對重力產生反應,并產生摩擦。這一章將會展示如何使用JavaScript的物理庫來達到上述效果。

閱讀之前的準備

閱讀本書你要準備的只是一個文本編輯器(例如Sublime文本編輯器),用來編輯示例,以及一個現代的瀏覽器,用來顯示這些示例。有些示例需要一個本地的Web服務器,但是在第1章,你將會學習如何搭建一個非常輕量的Web服務器來使用本書中的示例。

在我們開始之前,先對書中示例可能出現的問題簡單提一下。第1章大致介紹了一下支持WebGL的瀏覽器,這是運行Three.js所必需的。現在的瀏覽器,諸如Chrome、Firefox和Internet Explorer可以很好地支持HTML5 標準。但是仍然有一些細節要注意。當瀏覽器有新的版本時,它們有可能會不支持WebGL的某些特性。例如,在本書完成的時候,Windows 7上的Chrome和Firefox在運行第11章的例子時會有問題。所以在嘗試這些示例時,請確保升級到最新版的Chrome和Firefox。

讀者對象

本書對所有已經了解JavaScript并開始想在瀏覽器里創建三維圖形的人都會有很大的幫助。你不必去了解任何高級的算法或WebGL,只要具有一般的JavaScript和HTML知識即可。所有示例代碼可以登錄華章網站(www.hzbook.com)免費下載,本書中用到的工具也都是開源的。所以,如果你想要學習如何創建漂亮的、交互的三維圖形,并且可以在任何現代的瀏覽器上運行,那么這本書就是你想要的。
內容簡介:

通過大量的示例和代碼,以互動的方式向讀者展示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章深入講解材質的細節,包括如何控制材質,以及如何將HTML 5視頻的輸出和HTML 5畫布中的元素作為紋理;第11章探索如何使用Three.js庫來對已經渲染過的場景進行后期處理;第12章講解如何在Three.js的場景中添加物理效果。



隨著HTML 5標準的頒布,以及流行瀏覽器的日益強大,直接在瀏覽器中展示三維圖形和動畫已經變得越來越容易,也越來越受關注。但是三維圖形和動畫本身比較復雜,不僅需要有豐富的數學、圖形學等方面的知識,還需要了解材質、貼圖等各種創建三維場景所必備的要素。另外,直接使用WebGL在瀏覽器中創建三維圖形和動畫也非常繁瑣,它所提供的各種接口盡管非常豐富且強大,但對于用戶來說未免過于復雜了。
Three.js的出現則完美地幫助人們解決了這個矛盾。Three.js將WebGL的強大功能融匯其中,同時又非常易于使用,即便用戶對其中的原理不甚了解,也能借助Three.js創建出絢麗多姿的三維場景和動畫。
本書先從基本概念和Three.js的基本模塊講起,然后伴隨著大量的示例和代碼,逐步擴展到更多的主題,循序漸進地講解Three.js的各種功能,幫助讀者充分利用WebGL和現代瀏覽器的潛能,直接在瀏覽器中創建動態的華麗場景。

通過閱讀本書,你將學會:
為Three.js工程創建HTML頁面框架和渲染循環
使用Three.js提供的各種幾何體
使用Three.js提供的各種相機控件,在三維場景中輕松導航
使用粒子系統創建出雨、雪,以及類似銀河系的效果
從OBJ、STL、Collada等外部格式的文件中導入動畫模型
在材質上應用高級紋理(凹凸貼圖、法向貼圖、高光貼圖和光照貼圖),創建逼真的三維圖形
使用Physijs這個JavaScript庫,實現三維物體的物理效果
目錄:

前 言

致 謝

第1章用Three.js創建你的第一個三維場景1

1.1 使用Three.js的前提條件3

1.2 獲取源代碼4

1.2.1 用Git克隆代碼倉庫4

1.2.2 下載并解壓壓縮包5

1.2.3 測試示例6

1.3 創建HTML頁面框架7

1.4 渲染并展示三維對象9

1.5 添加材質、燈光和陰影13

1.6 用動畫擴展你的首個場景15

1.6.1 引入requestAnimation-Frame()方法15

1.6.2 轉動方塊17

1.6.3 彈跳球17

1.7 使用dat.GUI庫簡化試驗18

1.8 使用ASCII效果19

1.9 總結20

第2章使用構建Three.js場景的基本組件22

2.1 創建場景22

2.1.1 場景的基本功能23

2.1.2 在場景中添加霧化效果27

2.1.3 使用材質覆蓋屬性28

2.2 使用幾何和網格對象29

2.2.1 幾何對象的屬性和函數29

2.2.2 網格對象的函數和屬性33

2.3 選擇合適的相機37

2.3.1 正投影相機和透視相機37

2.3.2 讓相機在指定點上聚焦41

2.4 總結41

第3章使用Three.js里的各種光源43

3.1 探索Three.js庫提供的光源43

3.2 學習基礎光源44

3.2.1 AmbientLight—影響整個場景的光源44

3.2.2 PointLight—照射所有方向的光源47

3.2.3 SpotLight—具有錐形效果的光源49

3.2.4 DirectinalLight—模擬遠處類似太陽的光源53

3.2.5 使用特殊光源生成高級光照效果54

3.3 總結61

第4章使用Three.js的材質62

4.1 理解共有屬性63

4.1.1 基礎屬性63

4.1.2 融合屬性64

4.1.3 高級屬性64

4.2 從簡單的網格材質(基礎、深度和面)開始65

4.2.1 簡單表面的MeshBasic-Material65

4.2.2 基于深度著色的MeshDepthMaterial67

4.2.3 聯合材質68

4.2.4 計算法向顏色的MeshNormalMaterial70

4.2.5 為每個面指定材質的MeshFaceMaterial72

4.3 學習高級材質73

4.3.1 用于暗淡、不光亮表面的MeshLambertMaterial74

4.3.2 用于光亮表面的MeshPhongMaterial75

4.3.3 用ShaderMaterial創建自己的著色器76

4.4 線段幾何體的材質81

4.4.1 LineBasicMaterial81

4.4.2 LineDashedMaterial83

4.5 總結84

第5章學習使用幾何體85

5.1 Three.js提供的基礎幾何體86

5.1.1 二維幾何體86

5.1.2 三維幾何體92

5.2 總結100

第6章使用高級幾何體和二元操作102

6.1 ConvexGeometry102

6.2 LatheGeometry104

6.3 通過拉伸創建幾何體105

6.3.1 ExtrudeGeometry106

6.3.2 TubeGeometry107

6.3.3 從SVG拉伸109

6.3.4 ParametricGeometry110

6.4 創建三維文本112

6.4.1 渲染文本113

6.4.2 添加自定義字體114

6.5 使用二元操作組合網格115

6.5.1 subtract函數117

6.5.2 intersect函數120

6.5.3 函數121

6.6 總結121

第7章粒子和粒子系統123

7.1 理解粒子123

7.2 粒子、粒子系統和BasicParticleMaterial125

7.3 使用HTML5畫布格式化粒子128

7.3.1 在CanvasRenderer類里使用HTML5畫布128

7.3.2 在WebGLRenderer中使用HTML5畫布129

7.4 使用紋理格式化粒子131

7.5 從高級幾何體中創建粒子系統139

7.6 總結141

第8章創建、加載高級網格和幾何體143

8.1 幾何體組合和合并143

8.1.1 對象組合143

8.1.2 將多個網格合并成一個網格145

8.2 從外部資源中加載幾何體147

8.3 以Three.js的JSON格式保存和加載147

8.3.1 保存和加載幾何體147

8.3.2 保存和加載場景149

8.4 使用Blender151

8.4.1 在Blender中安裝Three.js導出器152

8.4.2 在Blender里加載和導出模型153

8.5 導入三維格式文件155

8.5.1 OBJ和MTL格式156

8.5.2 加載Collada模型159

8.5.3 加載STL、CTM和VTK模型160

8.5.4 展示蛋白質數據銀行中的蛋白質161

8.5.5 從PLY模型中創建粒子系統163

8.6 總結164

第9章創建動畫和移動相機166

9.1 基礎動畫166

9.1.1簡單動畫167

9.1.2 選擇對象168

9.1.3 用Tween.js做動畫170

9.2 使用相機172

9.2.1 軌跡球控件172

9.2.2 飛行控件174

9.2.3 翻滾控件175

9.2.4 第一人稱控件175

9.2.5 軌道控件177

9.2.6 路徑控件178

9.3 變形動畫和骨骼動畫180

9.3.1 用變形目標制作動畫181

9.3.2用骨骼和蒙皮制作動畫184

9.4使用外部模型創建動畫186

9.4.1 用Blender創建骨骼動畫186

9.4.2從Collada模型中加載動畫190

9.4.3從雷神之錘模型中加載動畫191

9.5總結192

第10章加載和使用紋理194

10.1在材質中使用紋理194

10.1.1加載紋理并應用到網格194

10.1.2使用凹凸貼圖創建皺紋197

10.1.3使用法向貼圖創建更加細致的凹凸和皺紋198

10.1.4使用光照貼圖創建假陰影199

10.1.5用環境貼圖創建虛假的反光效果201

10.1.6高光貼圖204

10.2紋理的高級用途205

10.2.1定制UV映射205

10.2.2重復映射207

10.2.3在畫布上繪制圖案并作為紋理209

10.3總結213

第11章定制著色器和渲染后期處理215

11.1設置后期處理215

11.1.1創建EffectComposer對象216

11.2后期處理通道218

11.2.1簡單后期處理通道218

11.2.2 使用掩膜的高級效果組合器223

11.2.3 用ShaderPass定制效果226

11.3 創建自定義的后期處理著色器231

11.3.1 定制灰度圖著色器232

11.3.2 定制位著色器235

11.4 總結237

第12章用Physijs在場景中添加物理效果238

12.1 創建可用Physijs的基本Three.js場景238

12.2 材質屬性243

12.3 基礎圖形244

12.4 使用約束限制對象移動248

12.4.1 用PointConstraint限制兩點間的移動249

12.4.2 用HingeConstraint創建類似門的約束250

12.4.3 用SliderConstraint將移動限制到一個軸252

12.4.4 用ConeTwistConstraint創建類似球銷的約束254

12.4.5 用DOFConstraint實現細節的控制255

12.5 總結259
序: