04/09/19 02:25:00
floatangle_r = (PI / (float)ring);
floatangle_s = (2.0f * PI / (float)segment);
// リンググループを生成する
for(DWORD i=0; i<ring; i++){
floatr0 = sinf((float)(i + 0) * angle_r);
floatr1 = sinf((float)(i + 1) * angle_r);
floaty0 = cosf((float)(i + 0) * angle_r);
floaty1 = cosf((float)(i + 1) * angle_r);
// 現在のリングについてセグメントグループを生成する
for(DWORD j=0; j<segment+1; j++){
floatx0 = sinf(j * angle_s);
floatz0 = cosf(j * angle_s);
floatx1 = sinf(j * angle_s);
floatz1 = cosf(j * angle_s);
// 頂点データを入力する
vert->vPos = D3DXVECTOR3(r0 * x0, y0, r0 * z0) * radius;
vert->vNormal = D3DXVECTOR3(x0, y0, z0);
vert->fU = -((float)j) / (float)segment;
vert->fV = (float)(i + 0) / (float)ring;
vert++;
vert->vPos = D3DXVECTOR3(r1 * x1, y1, r1 * z1) * radius;
vert->vNormal = D3DXVECTOR3(x1, y1, z1);
vert->fU = -((float)j) / (float)segment;
vert->fV = (float)(i + 1) / (float)ring;
vert++;
}
}
頂点シェーダで球を作るものですが、
rがsinでyがcosの理由がよく分からないのですが。
長文コピペすみません。