directx初第八卷

材质

创建几何体

通过顶点缓存和索引缓存

请看前面的章节

通过内置几何体

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);
文章目录
  1. 1. 材质
    1. 1.1. 创建几何体
    2. 1.2. 设置材质