最近突然对Direct3D编程来了点兴趣,开始看一些Direct3D的教程。厌倦了Direct3D教程里千篇一律的旋转三角形,决定用C#构建一个完整D3D场景。
先对场景框架做一下基本的梳理。
D3D_Camera类:摄像机类,可以实现摄像机的平移(前进、后退、左移、右移、上升、下降)、旋转(左右转、俯仰视、侧向旋转)和缩放。
D3D_Light类:灯光类。
D3D_Curve类:D3D曲面基类,可以生成自定义曲面,数据存放在Mesh中。像我这样不会建模的人可以用这个类组合搭建一个复杂的D3D对象。
D3D_Object类:D3D对象的基类,具体的物体可以从该类继承。
D3D_MeshObject类:从D3D_Object类继承而来,数据从.X文件读取。
D3D_CurveObject类:从D3D_Object类继承而来,由数个D3D曲面组合而成的复杂物体。
D3D_Control类:D3D下的控件基类,所有的控件都从该类继承,类似于Windows的控件。
D3D_Terrain类:分形随机生成的D3D地形。
D3D_Sky类:分形随机生成的D3D天空。
D3D_World类:一个完整的D3D世界,由地形、天空以及若干个D3D_Object组成。
D3D_Scene类:一个D3D场景,包含一个摄像机、至少一个环境光(还可以包含其他灯光)、一个D3D世界以及一些辅助的D3D控件。场景的刷新以及与用户的交互均在这个类中完成。