Java 3D與計算機三維動態圖形網路編程設計

Java 3D與計算機三維動態圖形網路編程設計

《Java 3D與計算機三維動態圖形網路編程設計》是2014年清華大學出版社出版的書籍。

內容簡介

本書以多邊形圖形學(Polygon Graphics)與多屬性體圖形學(Volume Graphics)概念為基礎,介紹了Java 3D主要功能,包括Java 3D虛擬空間與場景式管理,Java 3D點、線、三角格線、四邊格線繪製,Java 3D坐標變換、幾何體變形與動態圖形及互動技術,Java 3D紋理映射,Java 3D聲音功能,Java 3D外部圖形檔案導入等,給出了Java、Java 3D編程實例。  

目錄

第1章緒論1

1.1計算機圖形學1

1.1.1多邊形圖形學1

1.1.2多屬性體圖形學2

1.2計算機圖形學套用2

1.2.1計算機輔助設計與製造(CAD/CAM)2

1.2.2地形地貌與自然資源圖3

1.2.3虛擬現實技術3

1.2.4科學計算可視化4

1.2.5計算機三維動漫設計4

1.2.6計算機三維網路遊戲開發7

1.2.7三維設計常用的軟體系統8

1.3計算機圖形學中的重要概念8

1.3.1計算機三維模型表示8

1.3.2線架模型9

1.3.3Brep邊界面模型9

1.3.4翼邊數據結構與半邊數據結構10

1.3.5Solid實體與CSG構造實體幾何11

1.3.6Brep邊界面模型與多邊形圖形學12

1.3.7VOXEL體素模型12

1.3.8DEXEL深度元素模型13

1.3.9VOXEL體素模型與多屬性體

圖形學14

1.3.10八叉樹表示法15

1.4逆向工程16

1.5STL三角格線數據檔案17

1.6快速原型系統18

1.7總結20第2章Java3D基本概念21

2.1Java3D的包及其功能21

2.2Java3D的重要概念222.2.1Java3D高解析度大尺度坐標系22

2.2.2虛擬空間24

2.2.3場所24

2.2.4VirtualUniverse類、Locale類與

HiResCoord類之間的關係25

2.2.5默認情況下Java3D坐標系26

2.2.6Java3D場景圖26

2.2.7Java3D的3種可視化模式30

2.2.8SimpleUniverse類32

2.2.9Java3D的三維空間範圍定義

Bounds類33

2.2.10所有場景圖節點的默認坐標系

和原點33

2.2.11激活與預編譯的概念

(LiveandCompiled)35

2.2.12Java3D的SharedGroup類共享子

圖功能35

2.2.13Java3D的CloneTree方法克隆子

圖功能36

2.2.14Java3D的View類觀察模型36

2.2.15在虛擬世界中的ViewPlatform

觀察平台37

2.2.16產生一個View觀察38

2.2.17Java3D觀察模型概述39

2.2.18虛擬世界坐標系與ViewPlatform

觀察平台坐標系40

2.2.19共存坐標系統40

2.2.20一個最小的環境40

2.2.21Java3D最常用的顯示設備41

2.2.22行為與插值器

(BehaviorsandZnterpolators)41

2.3總結45第3章Java3D基本圖形功能46

3.1Java3D的場景式管理46

3.2SimpleUniverse類及其方法49

3.3ViewingPlatform類及其方法50

3.4Java3D包、類的結構關係52

3.5Java3D的基本圖形功能類53

3.6Shape3D類54

3.7Appearance類56

3.8BranchGroup類58

3.9TransformGroup類58

3.10GeometryArray類59

3.11點PointArray類63

3.11.1PointArray類63

3.11.2PointAttributes類63

3.11.3像素64

3.11.4直線DDA算法64  

3.11.5紅、綠、藍三原色合成65

3.11.6IndexedPointArray類69

3.12線LineArray類71

3.12.1LineArray類71

3.12.2LineAttributes類72

3.12.3IndexedLineArray類75

3.12.4LineStripArray類77

3.13多邊形屬性類PolygonAttributes類80

3.14多邊形面及其法向量81

3.14.1多邊形的法向量計算81

3.14.2多邊形可視化的填充算法82

3.15三角面TriangleArray類84

3.16三角帶TriangleStripArray類86

3.17三角扇TriangleFanArray類89

3.18IndexedTriangleArray類94

3.19四邊面QuadArray類95

3.20IndexedQuadArray類97

3.21顏色屬性ColoringAttributes類98

3.22材質Material類99

3.23透明屬性TransparencyAttributes類102

3.24光源Light類103

3.25點光源PointLight類105

3.26平行光源DirectionalLight類106

3.27環境光源AmbientLight類106

3.28Java語言多維數組與計算機幾何數據定義109

3.28.1線性數據點與二維數組表示109

3.28.2平面型數據點與三維數組表示110

3.28.3空間層狀立體數據點與四維數組表示111

3.29Java語言多維數組與Java3D一維數組之間的轉換112

3.30體與面的三角格線與四邊格線表示112

3.30.1四邊格線曲面表示112

3.30.2三角格線曲面表示117

3.30.3混合多邊形格線表示118

3.31Tuple3f類118

3.32Vector3f類119

3.33三角格線與四邊格線混合使用實例124

3.34GeometryInfo類132

3.35Stripifier類136

3.36Triangulator類136

3.37Java3D的實體字型144

3.37.1Font3D類144

3.37.2FontExtrusion類144

3.37.3Text3D類145

3.38總結148第4章複雜曲線、曲面設計149

4.1Bezier曲線、曲面設計149

4.1.1Bezier曲線149

4.1.2三次Bezier曲線的矩陣表示151

4.1.3二次Bezier曲線的矩陣表示155

4.1.4一次Bezier曲線的矩陣表示156

4.1.5三次Bezier曲線切線計算156

4.1.6Bezier曲線的DeCasteljau算法156

4.1.7三次Bezier曲面的矩陣表示157

4.1.8二次Bezier曲面的矩陣表示171

4.1.9Bezier曲線、曲面拼接的連續性171

4.1.10Bezier曲面法向量計算172

4.1.11Bezier曲面的性質172

4.2B樣條曲線、曲面設計173

4.2.1B樣條基函式及其遞推公式173

4.2.2三次B樣條基函式直接計算公式175

4.2.3二次B樣條基函式直接計算公式177

4.2.4參數u節點值的分布對B樣條基函式的影響177

4.2.5B樣條曲線設計180

4.2.6均勻參數節點的B樣條曲線矩陣表示182

4.2.7內部重節點對B樣條曲線的影響186

4.2.8B樣條曲面定義187

4.2.9雙三次、雙二次均勻參數節點B樣條曲面的矩陣表示187

4.2.10雙三次均勻參數節點B樣條曲面的拼接194

4.3NURBS曲線、曲面設計198

4.3.1NURBS曲線的定義198

4.3.2NURBS曲線的齊次坐標表示200

4.3.3NURBS曲線的矩陣表示200

4.3.4NURBS曲線的u參數化算法201

4.3.5NURBS曲面的定義202

4.3.6NURBS曲面的矩陣塊表示203  

4.4NURBS體造型與可視化203

4.4.1NURBS體方程203

4.4.2NURBS體的u、v、w參數空間203

4.4.3NURBS體的體素模型表示與

可視化204

4.5總結204第5章Java3D的坐標變換與基本形體205

5.1圖形坐標變換205

5.1.1二維空間圖形坐標變換205

5.1.2三維空間圖形坐標變換209

5.1.3剛性變換與仿射變換213

5.1.4錯切變換213

5.1.5三維空間圖形的組合坐標變換214

5.2Java3D的坐標變換214

5.2.1AxisAngle4f類、AxisAngle4d類214

5.2.2Transform3D類與AxisAngle4f類、

AxisAngle4d類相關的方法215

5.2.3Quat4d類、Quat4f類216

5.2.4Matrix3d類、Matrix3f類217

5.2.5Transform3D類218

5.2.6Transform3D類最常用的方法219

5.3TransformGroup類及其與Transform3D類

之間的關係222

5.4兩矩陣的乘積與編程223

5.5世界坐標系、觀察坐標系與Java3D

顯示器坐標系224

5.6透視投影、平行投影及其計算225

5.6.1透視投影計算225

5.6.2平行投影計算225

5.7隱藏線、隱藏面消除算法226

5.7.1隱藏線消除226

5.7.2法向量與隱藏面消除226

5.7.3ZBuffer隱藏面消除算法228

5.7.4區域排序消隱算法229

5.7.5掃描線消隱算法230

5.7.6光線跟蹤消隱算法230

5.8三維幾何形體的最小包圍盒與最小包

圍球231

5.8.1最小包圍矩形、最小包圍圓231

5.8.2最小包圍盒、最小包圍球231

5.9線、面、體幾何元素間的求交232

5.10包含判定算法232

5.10.1點與直線段的包含判定232

5.10.2點與圓錐曲線段的包含判定233

5.10.3點與參數曲線的包含判定233

5.10.4點與平面多邊形區域的包含

判定233

5.10.5同一平面內點與多邊形的包含

判定234

5.10.6點與二次曲面、參數曲面的包含

判定236

5.10.7點與三維形體的包含判定236

5.10.8重疊判定算法236

5.11光源的類型237

5.12局部光照明計算模型237

5.13Gouraud算法和Phong算法239

5.13.1平面光照明模型(FlatShading)240

5.13.2Gouraud算法240

5.13.3Phong算法241

5.14Whitted整體光照明模型243

5.14.1Whitted整體光照明模型243

5.14.2光線追蹤算法(Raytracing)244

5.15Java3D定義的基本形體245

5.15.1長方體Box類245

5.15.2圓柱體Cylinder類246

5.15.3圓錐體Cone類246

5.15.4球體Sphere類246

5.15.5彩色立方體ColorCube類247

5.16Switch類247

5.17OrderedGroup類249

5.18SharedGroup類258

5.19Link類258

5.20圖形剪裁269

5.20.1三維剪裁空間269

5.20.2二維平面剪裁區間269

5.21總結271第6章Java3D動態圖形技術與變形272

6.1插值器行為272

6.2Alpha類272

6.3將時間匹配成Alpha273

6.4Alpha加速275

6.5Behavior類278

6.6WakeupCondition類283

6.6.1WakeupAnd類283

6.6.2WakeupOr類284

6.6.3WakeupAndOfOrs類284

6.6.4WakeupOrOfAnds類284

6.6.5WakeupCriterion類284

6.6.6WakeupOnElapsedTime類285

6.6.7WakeupOnElapsedFrames類285

6.6.8WakeupOnActivation類286

6.6.9WakeupOnDeactivation類286

6.6.10WakeupOnAWTEvent類286

6.6.11WakeupOnTransformChange類287

6.6.12WakeupOnBehaviorPost類287

6.6.13WakeupOnViewPlatformEntry類288

6.6.14WakeupOnViewPlatformExit類288

6.6.15WakeupOnCollisionEntry類288

6.6.16WakeupOnCollisionExit類289

6.6.17WakeupOnCollisionMovement類290

6.6.18WakeupOnSensorEntry類291

6.6.19WakeupOnSensorExit類292

6.7Interpolator類292

6.7.1ColorInterpolator類293

6.7.2TransparencyInterpolator類297

6.7.3SwitchValueInterpolator類300

6.7.4TransformInterpolator類305

6.7.5RotationInterpolator類306

6.7.6PositionInterpolator類327

6.7.7ScaleInterpolator類330

6.7.8KBSplinePathInterpolator類333  

6.7.9KBRotPosScaleSplinePath

Interpolator類334

6.7.10TCBSplinePathInterpolator類335

6.7.11RotPosScaleTCBSplinePath

Interpolator類336

6.7.12TCBKeyFrame類336

6.7.13PathInterpolator類341

6.7.14PositionPathInterpolator類343

6.7.15RotationPathInterpolator類348

6.7.16RotPosPathInterpolator類352

6.7.17RotPosScalePathInterpolator類357

6.8LOD類362

6.9Billboard類370

6.10Morph類378

6.11KeyNavigatorBehavior類385

6.12MouseBehavior類400

6.12.1MouseBehaviorCallback接口402

6.12.2MouseRotate類402

6.12.3MouseTranslate類404

6.12.4MouseWheelZoom類405

6.12.5MouseZoom類406

6.13PickMouseBehavior類418

6.13.1PickingCallback接口419

6.13.2PickTool類419

6.13.3PickRotateBehavior類420

6.13.4PickTranslateBehavior類421

6.13.5PickZoomBehavior類422

6.14ViewPlatformBehavior類430

6.14.1ViewPlatformAWTBehavior類431

6.14.2WandViewBehavior類432

6.15總結433第7章Java3D的紋理與紋理映射434

7.1紋理與紋理映射原理434

7.1.1紋理映射435

7.1.2幾何體表面的凸凹紋理435

7.2Java3D的紋理映射436

7.3TextureLoader類437

7.4TextureAttributes類439

7.5Texture類443

7.6Texture2D類448

7.7Texture3D類450

7.8TextureCubeMap類451

7.9TextureUnitState類453

7.10TexCoordGeneration類454

7.11TexCoord2f類457

7.12TexCoord3f類458

7.13TexCoord4f類458

7.14ImageComponent類458

7.15ImageComponent2D類459

7.16ImageComponent3D類460

7.17基本形體紋理映射461

7.18不共面的四點形成的四邊形的紋理映射465

7.19雙三次Bezier曲面的紋理映射467

7.20自動紋理坐標生成類TexCoordGeneration的套用472

7.21紋理立方體匹配類TextureCubeMap類的套用479

7.21.1基本形體TextureCubeMap類的套用479

7.21.2雙三次Bezier曲面體的TextureCubeMap紋理映射及其越界490

7.22雙三次複雜Bezier曲面體的精確紋理映射493

7.23總結498第8章Java3D外部三維圖形檔案導入499

8.1引言499

8.2Loader接口499

8.3Lw3dLoader類500

8.4ObjectFile類501

8.5LoaderBase類503

8.6Wavefront的.obj檔案格式與Java3D模型

檔案格式的轉換503

8.73dsMax的.3ds檔案格式與Java3D模型檔案格式的轉換505

8.8總結508

第9章Java3DSound聲音類509

9.1引言509

9.2Sound類509

9.3BackgroundSound類513

9.4PointSound類513

9.5ConeSound類515

9.6MediaContainer類518

9.7PointSound類的套用519

9.8ConeSound類的套用521

9.9BackgroundSound類的套用524  

第10章 Brep邊界面模型、DEXEL模型、VOXEL模型及其轉換

附錄A Java 3D包、類結構關係

附錄B JDK 1.7、Java 3D 1.5、JCreator LE 5.00的下載與安裝

參考文獻

相關詞條

熱門詞條

聯絡我們