今天可是大年三十啊,真无聊啊,北京的票可真紧,都买不着,同学都回去了,我则要继续我的D3D,今天做了个小的随机地形DEMO. (下次给改成雪地的)
因为没有用高度图,只是利用随机函数生成Y轴数据,X,Z轴数据可以根据地形的大小及横纵轴数进行计算得出
加入了材质.纹理.光线.及FPS的计算及显示,
共有2个类,一个CGame游戏类和CTerrain地形类.结构很简单,
CGame主要生成一个地形类并初始化调用,加载光线,空间变换,FPS计算等.
CTerrain地形类主要是地形的顶点的计算,包括顶点缓冲,索引缓冲构造,及顶点法线的计算(计算每个顶点共
享的三角形的法线的平均值),材质的加载等.
流程:初始化窗口类->生成CGame类初始化->CGame生成CTerrain类指针,->调用CTerrain进行初始化顶点数据->
设置光线,空间变换,渲染参数->render()->release()析构清除内存
因为没有用到高度图,是随机函数生成Y坐标数据,想起计算机图形学上讲过随机图数的功式:
随机数=rand()%宽度+基数
例:4~13这10个数,则宽度为10,基数为4,则函数改变为,随机数=rand()%10+4
下面贴出几张不同地形大小及高度的图
行数, 列数, 网格大小, 最大高度
70, 70, 8, 15
行数, 列数, 网格大小, 最大高度
70, 70, 10, 40