第一部分 Direct3D保留模式简介 3
第一章 保留模式 3
第二章 D3D保留模式入门 4
2.1 3D坐标系统 4
2.2 三维变换 5
2.3 多边形 7
2.4 三角形的条块和三角形扇面 11
2.5 向量、顶点和四变量组 12
第三章 Direct3D保留模式体系结构 15
3.1 对象和接口 16
3.2 对象和参考计数 18
3.3 保留模式中的Z缓冲区 18
3.4 IDirect3DRM和IDirect3DRM2接口 18
3.5 IDirect3DRMAnimation和IDirect3DRMAnimationSet接口 20
3.6 IDirect3DRMDevice、IDirect3DRMDevice2和IDirect3DRMDeviceArray接口 20
3.7 IDirect3DRMFace和IDirect3DRMFaceArray接口 23
3.8 IDirect3DRMFrame、IDirect3DRMFrame2和IDirect3DRMFrameArray接口 23
3.9 IDirect3DRMInterpolator接口 25
3.10 IDirect3DRMLight和IDirect3DRMLightArray接口 29
3.11 IDirect3DRMMaterial接口 31
3.12 IDirect3DRMMesh、IDirect3DRMMeshBuilder和IDirect3DRMMeshBuilder2接口 31
3.13 Direct3DRMObject接口 33
3.14 IDirect3DRMPickedArray和IDirect3DRMPicked2Array接口 34
3.15 IDirect3DRMProgressiveMesh接口 34
3.16 IDirect3DRMShadow接口 34
3.17 IDirect3DRMTexture和IDirect3DRMTexture2接口 35
3.18 IDirect3DRMUserVisual接口 37
3.19 IDirect3DRMViewPort和IDirect3DRMViewPortArray接口 37
3.20 IDirect3DRMVisual和IDirect3DRMVisualArray接口 41
3.21 IDirect3DRMWrap接口 41
第四章 Direct3D保留模式导览 44
4.1 创建一个例子 44
4.2 定义和全局变量 46
4.3 窗口的建立和初始化 48
4.4 枚举设备驱动程序 54
4.5 设置三维环境 58
4.6 渲染循环 61
4.7 创建场景 62
4.8 清除 68
第二部分 Direct3D保留模式:参考 73
第一章 函数 73
1.1 Direct3DRMCreate函数 73
1.2 D3DRMColorGetAlpha函数 73
1.3 D3DRMColorGetBlue函数 73
1.4 D3DRMColorGetGreen函数 74
1.5 D3DRMColorGetRed函数 74
1.6 D3DRMCreateColorRGB函数 74
1.7 D3DRMCreateColorRGBA函数 75
1.8 D3DRMFREEFUNCTION函数 75
1.9 D3DRMMALLOCFUNCTION函数 76
1.10 D3DRMMatrixFromQuaternion函数 76
1.11 D3DRMQuaternionFromRotation 76
1.12 D3DRMQuaternionMultiply函数 77
1.13 D3DRMREALLOCFUNCTION函数 77
1.14 D3DRMVectorAdd函数 78
1.15 D3DRMVectorCrossProduct函数 78
1.16 D3DRMVectorDotProduct函数 79
1.17 D3DRMVectorModulus函数 79
1.18 D3DRMVectorNormalize函数 79
1.19 D3DRMVectorRandom函数 80
1.20 D3DRMVectorReflect函数 80
1.21 D3DRMVectorRotate函数 80
1.22 D3DRMVectorScale函数 81
1.23 D3DRMVectorSubtract函数 81
第二章 回调函数 83
2.1 D3DRMDEVICEPALETTECALLBACK 83
2.2 D3DRMFRAMEMOVECALLBACK 83
2.3 D3DRMLOADCALLBACK 84
2.4 D3DRMLOADTEXTURECALLBACK 85
2.5 D3DRMOBJECTCALLBACK 86
2.6 D3DRMUPDATECALLBACK 86
2.7 D3DRMUSERVISUALCALLBACK 87
2.8 D3DRMWRAPCALLBACK 88
第三章 阵列接口 89
3.1 IDirect3DRMArray接口 89
3.2 IDirect3DRMDeviceArray接口 89
3.3 IDirect3DRMFaceArray接口 90
3.4 IDirect3DRMFrameArray接口 91
3.5 IDirect3DRMLightArray接口 92
3.6 IDirect3DRMObjectArray接口 93
3.7 IDirect3DRMPickedArray接口 94
3.8 IDirect3DRMPicked2Array接口 96
3.9 IDirect3DRMViewportArray接口 97
3.10 IDirect3DRMVisualArray接口 98
3.11 IDirect3DRM接口 99
3.12 IDirect3DRM2接口 118
3.13 IDirect3DRMAnimation接口 138
3.14 IDirect3DRMAnimationSet接口 141
3.15 IDirect3DRMDevice接口 144
3.16 IDirect3DRMDevice2接口 153
3.17 IDirect3DRMFace接口 164
3.18 IDirect3DRMFrame 172
3.19 IDirect3DRMFrame2接口 198
3.20 IDirect3DRMInterpolator接口 232
3.21 IDirect3DRMLight接口 236
3.22 IDirect3DRMMaterial接口 244
3.23 IDirect3DRMMesh接口 248
3.24 IDirect3DRMMeshBuilder接口 258
3.25 IDirect3DRMMeshBuilder2接口 274
3.26 IDirect3DRMObject接口 292
3.27 IDirect3DRMProgressiveMesh接口 296
3.28 IDirect3DRMShadow接口 310
3.29 IDirect3DRMTexture接口 311
3.30 IDirect3DRMTexture2接口 319
3.31 IDirect3DRMUserVisual接口 330
3.32 IDirect3DRMViewport接口 331
3.33 IDirect3DRMWinDevice接口 342
3.34 IDirect3DRMWrap接口 344
第四章 结构 347
4.1 D3DRMBOX结构 347
4.2 D3DRMIMAGE结构 347
4.3 D3DRMLOADMEMORY结构 348
4.4 D3DRMLOADRESOURCE结构 349
4.5 D3DRMPALETTEENTRY结构 350
4.6 D3DRMPICKEDSC结构 350
4.7 D3DRMPICKDESC2结构 351
4.8 D3DRMPMESHLOADSTATUS结构 352
4.9 D3DRMQUATERNION结构 353
4.10 D3DRMRAY结构 353
4.11 D3DRMVECTOR4D结构 353
4.12 D3DRMVETEX结构 354
第五章 枚举类型 355
5.1 D3DRMCOLORSOURCE 355
5.2 D3DRMCOMBINETYPE 355
5.3 D3DRMFILLMODE 356
5.4 D3DRMFOGMODE 356
5.5 D3DRMFRAMECONSTRAINT 357
5.6 D3DRMLIGHTMODE 358
5.7 D3DRMLIGHTTYPE 358
5.8 D3DRMMATERIALMODE 359
5.9 D3DRMPALETTEFLAGS 359
5.10 D3DRMPROJECTIONTYPE 360
5.11 D3DRMRENDERQUALITY 361
5.12 D3DRMSHADEMODE 362
5.13 D3DRMSORTMODE 362
5.14 D3DRMTEXTUREQUALITY 363
5.15 D3DRMUSERVFSUAIREASON 364
5.16 D3DRMWRAPTYPE 364
5.17 D3DRMXOFFORMAT 365
5.18 D3DRMZBUFFERMODE 365
第六章 其它类型 367
6.1 D3DRMANIMATIONOPTIONS 367
6.2 D3DRMCOLORMODE1 367
6.3 D3DRMINTERPOLATIONOPTIONS 368
6.4 D3DRMLOADOPTIONS 368
6.5 D3DRMMAPPING 370
6.6 D3DRMMATRIX4D 371
6.7 D3DRMSAVEDPTIONS 371
第七章 返回值 373
第三部分 DirectX文件格式 377
第一章 文件格式介绍 377
第二章 文件格式结构 378
2.1 保留字 378
2.2 头 378
2.3 注释 378
2.4 模板 379
2.5 数据 381
2.6 使用逗号和分号 382
附录A 模板 385
A.1 模板名:Header 385
A.2 模板名:Vector 385
A.3 模板名:Coords2d 386
A.4 模板名:Quaternion 386
A.5 模板名:Matrix4x4 387
A.6 模块名:ColorRGBA 387
A.7 模板名:ColorRGB 387
A.8 模板名:Indexed Color 388
A.9 模板名:Boolean 388
A.10 模板名:Boolean2d 388
A.11 模板名:Material 389
A.12 模板名:TextureFileName 389
A.13 模板名:MeshFace 389
A.14 模板名:MeshFaceWraps 390
A.15 模板名:MeshTextureCoords 390
A.16 模板名:MeshNormals 390
A.17 模板名:MeshVertexColors 391
A.18 模板名:MeshMaterialList 391
A.19 模板名:Mesh 392
A.20 模板名:FrameTransformMatrix 392
A.21 模板名:Frame 393
A.22 模板名:FloatKeys 393
A.23 模板名:TimedFloatKeys 393
A.24 模板名:AnimationKey 394
A.25 模板名:Animation Options 394
A.26 模板名:Animation 394
A.27 模板名:AnimationSet 395
附录B 例子 396
B.1 一个简单的立方体 396
B.2 加入纹理 398
B.3 帧和动画 399
附录C 二进制格式(Binary Format) 401
C.1 头 401
C.2 模板 402
C.3 数据 403
C.4 标记 404
C.5 标记记录 405
C.6 模板例子 407
C.7 数据例子 407
附录D Conu3ds.exe工具 408
D.1 使用Conu3ds.exe 408
D.2 Conu3ds.exe选择项参数 408
D.3 从光波对象产生3DS文件 410
D.4 提示(Hints and Tips) 410