HISTORY
まずは球。シェーダは法線を RGB にするもの。
しばらくは球プリミティブだけで行きます。
画像出力は、float RGBA をバイナリで書き出して、Imagemagick で png などに変換します。
convert -depth 32 -define quantum:format=floating-point -size ${W}x${H} -define quantum:scale=65536.0 -endian lsb RGBA:fb out.png
シーンファイルを JSON にして雪だるま的な物体にしてみる。
JSON ライブラリは YAJL を使用。
交差判定のアクセラレータはなし。総当たり。
phong shader 的なもの。点光源。局所照明。
光源を4つにしてみる。
影光線を追加。
反射を追加。左のでかい球が鏡面反射。
エリアライトを追加。ちょっとそれっぽくなった。
Light->Eye (LE) をどう描画すればいいか、よくわからん。
TODO
あとはこの辺りを実装して、何か動画でも作れたらおもしろいかなと。
- Texture
- Bump mapping
- Image based lighting
- Motion blur
- Depth of field
- Local coordinate system
- Blinn shading
- Path tracing
- Triangle intersection
- 別途 scene generator ... blender のプラグイン
blender ってオブジェクト同士の積、差を計算できたりするんでしょうか。