CGの描画について
Posted: 2014年6月04日(水) 15:16
グラフィックの描画について質問です。球の描画なのですが、下のプログラムで描画される球をもう一つ描画する様にするにはどこをどう改良すればいいのでしょうか。
1つまでは描画できたのですが2つにするのがどうしてもわかりませんでした。よろしくお願いします。
1つまでは描画できたのですが2つにするのがどうしてもわかりませんでした。よろしくお願いします。
#include "win3d.h"
main()
{
Ball Ba= Ball( Point(0,0,70),70); // 球体の記述
Polygon Wa( Point( 200, 200,-50),Point(-200, 200,-50),// 床の記述
Point(-200,-200,-50),Point( 200,-200,-50) );
Color Cb= RED;
Color Cw= 0.3*WHITE+0.4*BLUE;
Win3D w("EX5_2"); // EX5_2はファイル名
Point V0=Point(500,500,500); // 視点の記述
Point L0=Point(0,400,1000); // 照明光の記述
w.setview(V0);
for(int x=0; x<w.size_x; x++)
for(int y=0; y<w.size_y; y++){
Vector V=unit(w.world(Point(x,y,-w.dv))-V0);// 視線ベクトルの計算
Ray VR=Ray(V0,V); // 視線の記述
float s=1; // 日向か日陰を表す
Point P; // 交点座標
Vector N,D;
Color Cs=0.25*CYAN;
if(Ba.hit(VR,P,N)<INFINITY){ // 視線が球体と交わるかの判定
Vector L=unit(P-L0); // 照明光の方向ベクトル
Cs=shading(V,L,N,Cb,1);
}
else if(Wa.hit(VR,P,N)<INFINITY){ // 視線が床と交わるかの判定
Vector L=unit(P-L0); // 照明光の方向ベクトル
Ray LR=Ray(L0, L); // 照明光線の記述
if(Ba.hit(LR,P,D)<INFINITY)s=0; // 照明光が球体と交わるかの判定
Cs=shading(V,L,N,Cw,s);
}
w.color(Cs);
w.point(x,y);
}
pause("EX5_2");
}