


Archive for the 'Scandinavia' Category
800
Author: あきを

一様グリッド空間分割を実装した。
すでに一回作っていたので現状に合わせればよいだけだったので
特に問題もなく出来た。
その結果
200球 2.0s
から
800球 2.0s
約4倍速くなった
とりあえずの目標は
10000球 1.0s
なのであと20倍速くしないといけないわけで
マルチスレッドに手を出してみようか
もう画面が球で埋め尽くされているので
アングルも変えないと
read comments (0)レンダラ近況
Author: あきを
tvmetを組み込んでみたけれど、自作ライブラリの方が速かった。。。OTL
まぁ今は単純なモデル、シェーダなしなので、計算量が少ないわけで
複雑になってきたらまた入れ替えてみよう
tvmetに変更するシェルスクリプトは書いてあるのでいつでも更新可能なのです
これで単純モデルによるローレベルの高速化の手法は色々試せた
結局組み込めたのはsseだけなので、あんまり実にはなってないのが残念だけど
一応種はまけたので、またトライしてみたい
次は空間分割
これが出来たら大量ポリゴンがレンダリングできるようになるので色々出来ることが増えそう
まずはUniform Gridからやってみます
boost::uBlasを使う
Author: あきを
週一時間くらいのペースでレンダラーのコード書いてます。
全然進みません。。。
マルチスレッドはひとまず置いておいて
次のフェーズである数学関数を自前のものから既存ライブラリに置き換える作業に移行
とりあえず各種ライブラリに置き換えて種々のテストを行ってみる
使用予定の数学関数はBoost::ublas, tvmet, blitz++, gsl
gslは速度でなさそうなので微妙かな。。。
まずはboost::ublas
ライブラリを新規にインストールせずに使えるので
で、一応コンパイルは通るようにはなったけど
動きませんがな。。。
クラス内で固定長宣言できないみたいなので
class A{
public:
vector position(3);
};
みたいな書き方が出来ませんがな
class A{
public:
A(){position.resize(3);}
vector position;
};
と書けばいいんだけどね
何とも面倒だな。。。
マルチスレッド
Author: あきを
最近はマルチスレッドに手を出しているんだけど
自分の理解が足りないせいで、うまくいかず
レンダラーも進んでおりません
コードを実行するたびに違う箇所で落ちてしまうので
多分排他制御に失敗しているんだろうけど
ミューテックスをちゃんと理解していないな〜
うちにある唯一のC-Magazineが「マルチスレッド」特集をしているのだけど
ひたすらWindowsなのでピンポイントでの参考にはなりませぬ。。。
gcc4.4
Author: あきを
OSXのデフォルトgccはバージョン4.0で、これだとCPU指定オプションで
pentiumMまでしか指定できない。(うちはCore2Duo)
なので、以下のページからgcc4.4をダウンロード
http://hpc.sourceforge.net/
macportsにもあるけど、ビルドに数時間もかけるのももったいない
これで -mtune=core2 で指定できるようになった。
で、早速myレンダラーでレンダリングしてみると
20%ほど高速になった。ふむ
