2010-01-01から1年間の記事一覧
毎日練習した成果、最高で分間200文字まで行った。 実際にプログラミングで使うには、ショートカットキーやら記号の位置やらも覚えなくてはならないので、もう少しかかりそうだ。
最近Dvorak配列でタイピングの練習をしている。 Qwertyより打ち易くていい感じだ。 現在のスコアは分間130文字。 Qwertyは250。 まだまだ遅いな
Project EulerのProblem3をやった。 問題は素因数分解で、最大の素数を求めるもの。 素数を求めて割り切れるか確かめていけばいいだけだ。実に簡単…、じゃなかった。 分解する数が600851475143と超でかい。intじゃ収まらない。と思ったら、Lisp系の言語は多…
面白そうなサイトを見つけた。 Project Euler http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler数学の問題をプログラムで解いていく、とういうものだ。言語は何でもいいのでSchemeで解くことにした。初めの問題は、3と5の倍数で1000未満の数…
Schemeを習得するために本を読んだりネットの解説ページ見たりしてるんだけど、こんなので本当に使い物になるプログラムが書けるのか疑問だ。しかし、構文とかばっかしやっててもつまらないので、何かゲームでも作りながら覚えたい。。 出来るだけシンプルな…
ちょっとしたデータの操作とかをするのに毎回Cで書いてたんだけど、面倒になってきたのでサクっと処理できるようにスクリプトなんかやろうと思って買ってきた。 Cygwin+Gauche+Meadowの環境で動かしてる。Emacsなんて使ったことがなかったので現在奮闘中。導…
早速、Expression Template(ET)を試してみることにした。 ずいぶん前に、買って置いたC++テンプレートテクニックを参考に実装してみる。 そのままでは詰まらないので、ベクトルの次元数を型情報としてテンプレート引数にとるようにしてみた。Traitsってやつ…
レンダラが重いので、SIMDを使ってVectorの演算部分を書き直したのだが・・・。テストしてみると、超遅い。外積を求める演算を100000回させたら、SIMD使って無い方が1ms。でSIMDで書いた奴は15ms・・・。 シャッフルを多用したり、水平演算を噛ましてるのが…
何故かハンドアセンブルに興味がわいたので、例のアレをやってみた。 B2 48 B4 02 CD 21 B2 65 CD 21 B2 6C CD 21 B2 6C CD 21 B2 6F CD 21 B2 20 CD 21 B2 57 CD 21 B2 6F CD 21 B2 72 CD 21 B2 6C CD 21 B2 64 CD 21 B2 21 CD 21 CD 20バイナリエディタか…
幾つか細かいバクを潰したのと、屈折の実装をした。 一番の基本の拡散反射の式が間違っていたらしく、直したらかなり綺麗になった。 一応、集光模様っぽいのが出ている。しかし、まだ、完全にレンダリング方程式を再現していない。 完全再現のために次は直接…
反射を実装した。が、何かノイズがでてる・・・。 特に左の奴はまともに描画すらされていない。何も考えずに書いていたせいで、クラス間の依存関係が酷くなってきた。書き直したいけど、もう少し頑張ろう。。
放射輝度推定が出来るようになったので、サクッとレンダリングしてみた。 と言いたいが、超時間掛かった。効率無視のゴリ押しコード書いてたから仕方ないか。 放出フォトン数500000個、放射輝度推定に1000個。 なんか、それっぽくはなったけど全然リアルじゃ…
フォトンの反射を実装した。と言っても一番簡単な鏡面反射だけだが。 次は光線追跡部分。この辺りは一般的なレイトレと同じようにレイを追跡して計算する。ただフォトンマッピングではレイが衝突したときに、その周りのフォトンを探して輝度の計算を行う。交…
最近忙しくて趣味のプログラムを書く時間が余りない。 以前からフォトンマッピングのレンダラを作成しているのだが、ようやくフォトンをばら撒いてKDTreeを構成するところまで来た。 といっても、ベクトルの交差判定くらいしかしてないので、まだ先は長い・…