《Java 3D與計算機三維動態(tài)圖形網(wǎng)絡編程設計》以多邊形圖形學(Polygon Graphics)與多屬性體圖形學(Volume Graphics)概念為基礎,介紹了Java 3D主要功能,包括Java 3D虛擬空間與場景式管理,Java 3D點、線、三角網(wǎng)格、四邊網(wǎng)格繪制,Java 3D坐標變換、幾何體變形與動態(tài)圖形及交互技術,Java 3D紋理映射,Java 3D聲音功能,Java 3D外部圖形文件導入等,給出了Java、Java 3D編程實例。本書還介紹了計算機圖形學的重要概念與算法,Bezier、B樣條與NURBS曲線、曲面設計與拼接技術,給出了Java、Java 3D編程實例,介紹了DEXEL模型與VOXEL體素模型,以及將Brep邊界面模型轉換為DEXEL模型與VOXEL體素模型的算法及應用。
本書適合作為高等院校計算機圖形學課程的教材,也可作為研究生與科研工作者的參考書。
第1章緒論
1.1計算機圖形學
1.1.1多邊形圖形學
1.1.2多屬性體圖形學
1.2計算機圖形學應用
1.2.1計算機輔助設計與制造
(CAD/CAM)
1.2.2地形地貌與自然資源圖
1.2.3虛擬現(xiàn)實技術
1.2.4科學計算可視化
1.2.5計算機三維動漫設計
1.2.6計算機三維網(wǎng)絡游戲開發(fā)
1.2.7三維設計常用的軟件系統(tǒng)
1.3計算機圖形學中的重要概念
1.3.1計算機三維模型表示
1.3.2線架模型
1.3.3Brep邊界面模型
1.3.4翼邊數(shù)據(jù)結構與半邊數(shù)據(jù)結構
1.3.5Solid實體與CSG構造實體幾何
1.3.6Brep邊界面模型與多邊形圖形學
1.3.7VOXEL體素模型
1.3.8DEXEL深度元素模型
1.3.9VOXEL體素模型與多屬性體
圖形學
1.3.10八叉樹表示法
1.4逆向工程
1.5STL三角網(wǎng)格數(shù)據(jù)文件
1.6快速原型系統(tǒng)
1.7總結20第2章Java 3D基本概念
2.1Java 3D的包及其功能
2.2Java 3D的重要概念222.2.1Java 3D高分辨率大尺度坐標系
2.2.2虛擬空間
2.2.3場所
2.2.4VirtualUniverse類、Locale類與
HiResCoord類之間的關系
2.2.5默認情況下Java 3D坐標系
2.2.6Java 3D場景圖
2.2.7Java 3D的3種可視化模式
2.2.8SimpleUniverse類
2.2.9Java 3D的三維空間范圍定義
Bounds類
2.2.10所有場景圖節(jié)點的默認坐標系
和原點
2.2.11激活與預編譯的概念
(Live and Compiled)
2.2.12Java 3D的SharedGroup類共享子
圖功能
2.2.13Java 3D的CloneTree方法克隆子
圖功能
2.2.14Java 3D的View類觀察模型
2.2.15在虛擬世界中的ViewPlatform
觀察平臺
2.2.16產生一個View觀察
2.2.17Java 3D觀察模型概述
2.2.18虛擬世界坐標系與ViewPlatform
觀察平臺坐標系
2.2.19共存坐標系統(tǒng)
2.2.20一個最小的環(huán)境
2.2.21Java 3D最常用的顯示設備
2.2.22行為與插值器
(Behaviors and Znterpolators)
2.3總結45第3章Java 3D基本圖形功能
3.1Java 3D的場景式管理
3.2SimpleUniverse類及其方法
3.3ViewingPlatform類及其方法
3.4Java 3D包、類的結構關系
3.5Java 3D的基本圖形功能類
3.6Shape3D類
3.7Appearance類
3.8BranchGroup類
3.9TransformGroup類
3.10GeometryArray類
3.11點PointArray類
3.11.1PointArray類
3.11.2PointAttributes類
3.11.3像素
3.11.4直線DDA算法
3.11.5紅、綠、藍三原色合成
3.11.6IndexedPointArray類
3.12線LineArray類
3.12.1LineArray類
3.12.2LineAttributes類
3.12.3IndexedLineArray類
3.12.4LineStripArray類
3.13多邊形屬性類PolygonAttributes類
3.14多邊形面及其法向量
3.14.1多邊形的法向量計算
3.14.2多邊形可視化的填充算法
3.15三角面TriangleArray類
3.16三角帶TriangleStripArray類
3.17三角扇TriangleFanArray類
3.18IndexedTriangleArray類
3.19四邊面QuadArray類
3.20IndexedQuadArray類
3.21顏色屬性ColoringAttributes類
3.22材質Material類
3.23透明屬性TransparencyAttributes類
3.24光源Light類
3.25點光源PointLight類
3.26平行光源DirectionalLight類
3.27環(huán)境光源AmbientLight類
3.28Java語言多維數(shù)組與計算機幾何
數(shù)據(jù)定義
3.28.1線性數(shù)據(jù)點與二維數(shù)組表示
3.28.2平面型數(shù)據(jù)點與三維
數(shù)組表示
3.28.3空間層狀立體數(shù)據(jù)點與四維
數(shù)組表示
3.29Java語言多維數(shù)組與Java 3D一維數(shù)組
之間的轉換
3.30體與面的三角網(wǎng)格與四邊網(wǎng)格表示
3.30.1四邊網(wǎng)格曲面表示
3.30.2三角網(wǎng)格曲面表示
3.30.3混合多邊形網(wǎng)格表示
3.31Tuple3f類
3.32Vector3f類
3.33三角網(wǎng)格與四邊網(wǎng)格混合使用實例
3.34GeometryInfo類
3.35Stripifier類
3.36Triangulator類
3.37Java 3D的實體字體
3.37.1Font3D類
3.37.2FontExtrusion類
3.37.3Text3D類
3.38總結148第4章復雜曲線、曲面設計
4.1Bezier曲線、曲面設計
4.1.1Bezier曲線
4.1.2三次Bezier曲線的矩陣表示
4.1.3二次Bezier曲線的矩陣表示
4.1.4一次Bezier曲線的矩陣表示
4.1.5三次Bezier曲線切線計算
4.1.6Bezier曲線的De Casteljau算法
4.1.7三次Bezier曲面的矩陣表示
4.1.8二次Bezier曲面的矩陣表示
4.1.9Bezier曲線、曲面拼接的連續(xù)性
4.1.10Bezier曲面法向量計算
4.1.11Bezier曲面的性質
4.2B樣條曲線、曲面設計
4.2.1B樣條基函數(shù)及其遞推公式
4.2.2三次B樣條基函數(shù)直接
計算公式
4.2.3二次B樣條基函數(shù)直接
計算公式
4.2.4參數(shù)u節(jié)點值的分布對B樣條基
函數(shù)的影響
4.2.5B樣條曲線設計
4.2.6均勻參數(shù)節(jié)點的B樣條曲線
矩陣表示
4.2.7內部重節(jié)點對B樣條曲線
的影響
4.2.8B樣條曲面定義
4.2.9雙三次、雙二次均勻參數(shù)節(jié)點B樣
條曲面的矩陣表示
4.2.10雙三次均勻參數(shù)節(jié)點B樣條曲面
的拼接
4.3NURBS曲線、曲面設計
4.3.1NURBS曲線的定義
4.3.2NURBS曲線的齊次坐標表示
4.3.3NURBS曲線的矩陣表示
4.3.4NURBS曲線的u參數(shù)化算法
4.3.5NURBS曲面的定義
4.3.6NURBS曲面的矩陣塊表示
4.4NURBS體造型與可視化
4.4.1NURBS體方程
4.4.2NURBS體的u、v、w參數(shù)空間
4.4.3NURBS體的體素模型表示與
可視化
4.5總結204第5章Java 3D的坐標變換與基本形體
5.1圖形坐標變換
5.1.1二維空間圖形坐標變換
5.1.2三維空間圖形坐標變換
5.1.3剛性變換與仿射變換
5.1.4錯切變換
5.1.5三維空間圖形的組合坐標變換
5.2Java 3D的坐標變換
5.2.1AxisAngle4f類、AxisAngle4d類
5.2.2Transform3D類與AxisAngle4f類、
AxisAngle4d類相關的方法
5.2.3Quat4d類、Quat4f類
5.2.4Matrix3d類、Matrix3f類
5.2.5Transform3D類
5.2.6Transform3D類最常用的方法
5.3TransformGroup類及其與Transform3D類
之間的關系
5.4兩矩陣的乘積與編程
5.5世界坐標系、觀察坐標系與Java 3D
顯示器坐標系
5.6透視投影、平行投影及其計算
5.6.1透視投影計算
5.6.2平行投影計算
5.7隱藏線、隱藏面消除算法
5.7.1隱藏線消除
5.7.2法向量與隱藏面消除
5.7.3Z Buffer隱藏面消除算法
5.7.4區(qū)域排序消隱算法
5.7.5掃描線消隱算法
5.7.6光線跟蹤消隱算法
5.8三維幾何形體的最小包圍盒與最小包
圍球
5.8.1最小包圍矩形、最小包圍圓
5.8.2最小包圍盒、最小包圍球
5.9線、面、體幾何元素間的求交
5.10包含判定算法
5.10.1點與直線段的包含判定
5.10.2點與圓錐曲線段的包含判定
5.10.3點與參數(shù)曲線的包含判定
5.10.4點與平面多邊形區(qū)域的包含
判定
5.10.5同一平面內點與多邊形的包含
判定
5.10.6點與二次曲面、參數(shù)曲面的包含
判定
5.10.7點與三維形體的包含判定
5.10.8重疊判定算法
5.11光源的類型
5.12局部光照明計算模型
5.13Gouraud算法和Phong算法
5.13.1平面光照明模型(Flat Shading)
5.13.2Gouraud算法
5.13.3Phong算法
5.14Whitted整體光照明模型
5.14.1Whitted整體光照明模型
5.14.2光線追蹤算法(Raytracing)
5.15Java 3D定義的基本形體
5.15.1長方體Box類
5.15.2圓柱體Cylinder類
5.15.3圓錐體Cone類
5.15.4球體Sphere類
5.15.5彩色立方體ColorCube 類
5.16Switch 類
5.17OrderedGroup類
5.18SharedGroup類
5.19Link類
5.20圖形剪裁
5.20.1三維剪裁空間
5.20.2二維平面剪裁區(qū)間
5.21總結271第6章Java 3D動態(tài)圖形技術與變形
6.1插值器行為
6.2Alpha類
6.3將時間匹配成Alpha
6.4Alpha加速
6.5Behavior類
6.6WakeupCondition類
6.6.1WakeupAnd類
6.6.2WakeupOr類
6.6.3WakeupAndOfOrs類
6.6.4WakeupOrOfAnds類
6.6.5WakeupCriterion類
6.6.6WakeupOnElapsedTime類
6.6.7WakeupOnElapsedFrames類
6.6.8WakeupOnActivation類
6.6.9WakeupOnDeactivation類
6.6.10WakeupOnAWTEvent類
6.6.11WakeupOnTransformChange類
6.6.12WakeupOnBehaviorPost類
6.6.13WakeupOnViewPlatformEntry類
6.6.14WakeupOnViewPlatformExit類
6.6.15WakeupOnCollisionEntry類
6.6.16WakeupOnCollisionExit類
6.6.17WakeupOnCollisionMovement類
6.6.18WakeupOnSensorEntry類
6.6.19WakeupOnSensorExit類
6.7Interpolator類
6.7.1ColorInterpolator類
6.7.2TransparencyInterpolator類
6.7.3SwitchValueInterpolator類
6.7.4TransformInterpolator類
6.7.5RotationInterpolator類
6.7.6PositionInterpolator類
6.7.7ScaleInterpolator類
6.7.8KBSplinePathInterpolator類
6.7.9KBRotPosScaleSplinePath
Interpolator類
6.7.10TCBSplinePathInterpolator類
6.7.11RotPosScaleTCBSplinePath
Interpolator類
6.7.12TCBKeyFrame類
6.7.13PathInterpolator類
6.7.14PositionPathInterpolator類
6.7.15RotationPathInterpolator類
6.7.16RotPosPathInterpolator類
6.7.17RotPosScalePathInterpolator類
6.8LOD類
6.9Billboard類
6.10Morph類
6.11KeyNavigatorBehavior類
6.12MouseBehavior類
6.12.1MouseBehaviorCallback接口
6.12.2MouseRotate類
6.12.3MouseTranslate類
6.12.4MouseWheelZoom類
6.12.5MouseZoom類
6.13PickMouseBehavior類
6.13.1PickingCallback接口
6.13.2PickTool類
6.13.3PickRotateBehavior類
6.13.4PickTranslateBehavior類
6.13.5PickZoomBehavior類
6.14ViewPlatformBehavior類
6.14.1ViewPlatformAWTBehavior類
6.14.2WandViewBehavior類
6.15總結433第7章Java 3D的紋理與紋理映射
7.1紋理與紋理映射原理
7.1.1紋理映射
7.1.2幾何體表面的凸凹紋理
7.2Java 3D的紋理映射
7.3TextureLoader類
7.4TextureAttributes類
7.5Texture類
7.6Texture2D類
7.7Texture3D類
7.8TextureCubeMap類
7.9TextureUnitState類
7.10TexCoordGeneration類
7.11TexCoord2f類
7.12TexCoord3f類
7.13TexCoord4f類
7.14ImageComponent類
7.15ImageComponent2D類
7.16ImageComponent3D類
7.17基本形體紋理映射
7.18不共面的四點形成的四邊形的紋理映射
7.19雙三次Bezier曲面的紋理映射
7.20自動紋理坐標生成類TexCoordGeneration
的應用
7.21紋理立方體匹配類TextureCubeMap類
......