directx初第八卷

来源:互联网 发布:c语言控制鼠标点击 编辑:程序博客网 时间:2024/05/01 11:15

材质

创建几何体

通过顶点缓存和索引缓存

请看前面的章节

通过内置几何体

ID3DXMesh* mesh;//创建立方体(设备指针,宽度,高度,深度,把结果存到网格指针,无三角形索引指针)D3DXCreateBox(g_pd3dDevice, 2, 2, 2, &mesh, 0);//创建茶壶(设备指针,把结果存到网格指针,无三角形索引指针)D3DXCreateTeapot(g_pd3dDevice, &mesh, 0);//创建柱体(设备指针,z轴负方向半径,z轴正方向半径,高度,柱体外围面数,柱体两端间段数,把结果存到网格指针,无三角形索引指针)D3DXCreateCylinder(g_pd3dDevice, .5f, .5f, 2, 20, 20, &mesh, 0);//创建圆环体(设备指针,内圈半径,外圈半径,外圈面数,内圈与外圈之间面数,把结果存到网格指针,无三角形索引指针)D3DXCreateTorus(g_pd3dDevice, 0.5f, 1, 20, 20, &mesh, 0);//创建球面体(设备指针,每条边长度,经线数,纬线数,把结果存到网格指针,无三角形索引指针)D3DXCreateSphere(g_pd3dDevice, 1, 20, 20, &mesh, 0);//创建2d多边形(设备指针,每条边长度,三角形数,把结果存到网格指针,无三角形索引指针)D3DXCreatePolygon(g_pd3dDevice, 2.0, 3, &mesh, 0);//绘制网格mesh->DrawSubset(0);

通过导入模型
以后再详细说明

设置材质

//填充材质结构D3DMATERIAL9 mtrl;mtrl.Ambient = (D3DXCOLOR)D3DCOLOR_XRGB(255, 0, 0); //环境光颜色值mtrl.Diffuse = (D3DXCOLOR)D3DCOLOR_XRGB(255, 0, 0); //漫反射光颜色值mtrl.Specular = (D3DXCOLOR)D3DCOLOR_XRGB(255, 0, 0); //镜面反射光颜色值mtrl.Power = 2; //镜面反射指数mtrl.Emissive = (D3DXCOLOR)D3DCOLOR_XRGB(0, 0, 0); //自发光颜色值//设置材质g_pd3dDevice->SetMaterial(&mtrl);
0 0