Leopard入れた。動いてないのはSmart Scroll Xぐらいか。
ぐらいっつってもホイール無しのトラックボール使ってるから、これ無いと結構困るんだが。アップデートの予定はあるみたいなんで待つか。 代わりのソフトがそう簡単に見つかるとは思えんし。
うちのiMacはCore Duoなんで32bitだが、Core2なマシンだと64bitになってるんだろうか。64bitでも32bitなドライバ動くんだよね?
OpenGL Profilerがいろいろ強化されてた。BreakしてからResourceウィンドウを開こうとすると落ちてたがそれは直ってるっぽいな。
Resourceウィンドウではテクスチャとかシェーダとかのリソースが見れるわけなんだが、シェーダに関しては実行時に編集してコンパイルし直してそのまま実行ってのが出来るようになってた! これいいな。
しかし俺は普段Cg使ってるからアセンブリシェーダしか出てこないんだよね…。GLSLプロファイル使ったらなんかuniformのところでエラー出たし。
アセンブリシェーダも実行時にいじれるが、そもそもCgコンパイラで出たソースがコンパイル失敗になってるのはなんでだろう。ちゃんと動いてるシェーダなんだけど。いずれにせよアセンブリシェーダいじる程の気力は無い。
あとブレークポイントウィンドウでは見れるStateが増えてた。今まで現在のFBOとか見れなかった気がするんだが、ちゃんとどのFBOがバインドされてるのかとかバインドされてるRenderbufferが見れるようになった。
ブレーク条件も増えてる? Break on SW fallbackとかいう項目が増えてる。どういう時に止まるんだ?ってまあソフトウェアフォールバックが起きた時なんだろうけど、どういう時に起きんだろうな。
あとマルチスレッド制御の項目があって、マルチスレッドの強制ON、強制OFF、アプリケーションの設定による、が選べるんだが、これってドライバのマルチコア最適化をするかどうかだよな? アプリケーションの設定ってどうやるんだろ。CGL〜で設定できるんかな。
つか、これ有効にすると速くなるのかどうかは謎。
とりあえず記念に10.5でRadeon X1600なiMacのRendererInfoを上げておこう。
バージョンは2.0だね。GLSLは1.20だし、PBOも入ってるんだけどあとどこが足りなくて2.1になってないんだろ?
拡張ではなんかGL_ARB_shader_texture_lodとかいう知らない拡張が。前からあったっけ? ってARB拡張のくせにExtension Registryにも無いよ…。
調べてみたらtexture2DGradとか使える拡張らしい。こんなん前からあったような無かったような。
お、GL_EXT_gpu_shader4に入ってたのか。あとからARB拡張になったんだろうな。
あとGL_ATI_texture_compression_3dc。これは3Dc圧縮のOpenGL版だね。
GL_APPLE_aux_depth_stencilってのはAUXバッファにも別にDepthStencil持てるって奴だろうなぁ。FBO使えばいいんじゃないか? GL_APPLE_object_purgeableってなんだろ? 何をPurgeするって?
GL_EXT_framebuffer_blitが…ってこれはまえからあった気もするな。blitがあってもmultisampleが無いので微妙。
GL_EXT_geometry_shader4てのもあるね。…え?
ま、まあ…あっても実際使えないっていうオチだろうな。10.3のときもGLSL関係の拡張が名前だけ追加されたけど使えなくて意味ねー!!とかあったんで。
しかしエミュレーションしてくれるならドキドキなんだが…。あとで試してみよう。
ん、ソフトウェアレンダラの方にはGL_EXT_gpu_shader4とかGL_EXT_transform_feedbackとか入ってるな。これはG80クラスのシェーダ拡張がエミュレーションできるってことかな? 整数テクスチャとか無いんで中途半端ではあるんだけれど。
…あ! もしかしてRadeonHDなiMacならアクセラレーションしてくれるのか! いいなー。
まあ確かに最近のMacにSM4.0世代のGPUが載り始めたころから予想は出来たんだけどGL3がまだ出てない時点で諦めてたよ。
PNG読み込めるようになった。しかしlibpngとzlibが埋め込みなのでシステムにあればそっちを使うようなオプションも用意したい。
あとは文字描画もやらんとな。
今は衝突判定なんですが真面目にやったことがほとんど無いので苦戦中。とりあえずRubyで球と立方体について点と線をヒットさせるのは書いてみたものの、これを回転とか考えて、オブジェクト同士まで実装すると結構大変だなぁ。
あとどうやってヒット用のオブジェクトを仕込むのか。COLLADA Physicsの衝突用モデルを拾えば良さげだが、Blenderでどこまで出してくれるのか未確認。まあどうせ複雑な設定はしないんで手で書いてもいいんだけどさ。
Blenderで思い出した。今作ってるゲームでは簡単なんでAOくらいは使いたいいなと思ったんだが。
BlenderでAOは作れる。キャラクターについてはDynamicAOは大変なんだがそこは見なかったことにしよう!
で、Diffuseマップ*1のUVと一緒だと困るので別にAO用とかノーマルマップ用のUVを作るんだけど、BlenderのCOLLADA ExporterではUV一個しか出してくれない!! あー、やっぱりなー。
これはやっぱり、またExporterいじる必要があるのか…。つかいまだにmagfilterじゃなくてmaxfilterとかいう要素書き出しやがるし。
*1 というかアルベドマップっていうの?