

よくわからないけど、上の式通りにプログラミングしたら、影ができたわ。
あ、shininess(i)を忘れてたわ


なんか手本と微妙に違うなー
できたわ

()の右下についてる+の意味は、値が負だった場合は、0にするということを意味していて、x_+=std::max(0.0, x)でプログラミングできる。

点光源の距離減衰はそんな難しくなかった。

ホントこれだけだったよ。
無限遠の光源の影は、簡単だった。
その方向に、障害物があるかどうかだけ。
点光源の影は難しかった。
その方向に障害物があってかつ、光源と交点との間にあるかどうかを判定しなきゃいけない。
Vec3d PointLight::shadowAttenuation(const Vec3d& P) const
{
Vec3d d = getDirection(P);
// 光源への方向ベクトルをとるd.normalize();
ray r(P, d, ray::SHADOW);
// Pからdへ進む、影の判定用のRayを生成isect i;
// 交点情報を保存するためのオブジェクトを生成Vec3d dv = position - P;
// 光源の位置ベクトルと交点の位置ベクトルの差をとるdouble dist = dv.length();
if (getScene()->intersect(r, i)&& i.t < dist - 1e-6) {
return Vec3d(0, 0, 0);
}
return Vec3d(1, 1, 1);
}


二つ影が重なってる場所をクリックすると、法線が3つ出るようになってるね。


やはりこれか、
中間報告で、教職はあと1回実習行けばとれるし、講義も10回やったよ。
過去作の改善点は夏コミでやる。
宗教の理解は、インドネシア行ったら深まったね。
デジタルゲームは今年中に何とかします。
鬼海外修行を果たさなければ。
100曲作るのは、ちょっといつになるかわからない。
emfa-japan.or.jpいろいろあったけど

透過と反射できた。