CG

OBJ形式の3DモデルデータからCコードを自動生成

旧Wavefront Technologies 社の OBJ 形式で保存された3DモデルデータからCコードを自動生成するツールを作成したので公開します。 http://homepage.mac.com/radio_nights/files/obj_parser.tar.gz 次のように引数に .obj ファイルのパスを指定すると標準出力…

クォータニオン

ずっと以前から頭の片隅にあったクォータニオンを、最近になってようやく少し分かった気がしてきました。 § 自分の印象としては、クォータニオンはその定義からして一見とっつきにくいものの、予め複素平面の知識があれば、おそらく自然と理解できるのではな…

シュリックの反射モデル (1)

自作レンダラーにシュリックの反射モデルを導入してみました。このモデルの発案者であるシュリック氏の論文「An Inexpensive BRDF Model for Physically-based Rendring」に従って素直に実装しただけですが、案の定、不自然な箇所が多くまだまだこれからです…

微小立体角

これまでレンダリング方程式の中で表れる微小立体角(Δω)の導出がいまいち理解できてなかったのですが、たまたま本屋で「ゲームプログラミングのための3Dグラフィックス数学」を立ち読みしたところ、とても分かりやすかったのでメモしておきます。 § 天頂角…

ノイズの削減と間接照明

約一ヶ月休んでましたが、色々蹴つまづきながらも開発は進んでます。いまは人生初めての就職活動に挑むにあたって、身辺がばたばたして心が落ち着きません。ああ、早く定職に就きたい...§ここ1週間は、レンダリング処理に様々な問題が見つかり、その解決…

対応フォーマットの件

決定を保留していた対応フォーマットの件ですが、正直、ベンダー独自のフォーマットの仕様を一から理解するのが面倒くさいので、とりあえず既に知っていてるPLYに対応することにします。実装に関しては、スタンフォード大学がCのライブラリを公開しているの…

kdツリーできましたが...

ひとまずkdツリーを使ってレンダリングできるようになったのですが、レイを使ってツリーをトラバースする処理のオーバーヘッドが大きすぎてかえって実行速度が遅くなってしまいました。作業PC上で計測した実時間の比較では2倍以上遅いです。 プロファイラで…

kdツリーの構築

ようやくkdツリーを構築することが出来ました。ケアレスミスのせいでAABBと三角形の交差判定処理の実装に少々時間がかかってしまいましたが、なんとか動いてくれてほっとしてます。先日作成したビューワーで生成したツリーを表示させてみたところ、期待する…

3次元モデルを閲覧するビューワー

簡単にプロファイラでレイトレーサーの処理時間を計測したところ、やはりレイとオブジェクトとの交差判定がボトルネックになっていることが分かりました。元々、コーディングにおいてあまり実行速度を配慮してない事もあるのですが、このままだとレンダリン…

レイトレーサーを作ってみました

2月末に仕事を辞めて以来、ろくに転職活動もせず時間が余っていたので、少し大きめのプログラムに取り組もうと思いレイトレーサーを作ってみました。先月からC++でコードを書き始めて約2週間、ようやくそれらしい結果が出力できるようになりました。下の画…