OpenGL と DirectX の違い

最近、TL が 3D で溢れているので、久々に昔のソースコードを引っ張り出して遊んでいました。
とりあえず、未完成だった OpenGL のボーンアニメーションを実装とかしていました。
うーむ、久々にクリーチャーなんかを製造して楽しかったです。
これで、1箇所を変えるだけで、OpenGLDirectX の切り替えを行えるので満足。
グラフィックの部分は切りだしてメンテナンスしたいなぁー……。
OpenGLDirectX の両方をラップして切り替えられるようにしていたりするんですよね。


あと表記の、OpenGLDirectX の違い。
組み込み関数やライブラリの違いなどがよく比較されているのを見ますが、真の悪は座標系の違い。
有名なところでいえば、OpenGL は右手座標系で、DirectX は左手座標系とか?
VisualStudio と GCC の違いに似ている気がする。
細かい違いが多いんですが、結構はまったりする事が多いんですよねぇー……。
詳細は、下記のサイトで。


わたしのオレオレライブラリは、全て自前で座標計算を行っているので、CPU での計算は特に影響はないんですが、問題はシェーダ部分。
HLSL 内のボーン処理をそのまま、GLSL に移行したら、ベクトル×行列の計算部分で思いっきり逆にしてて、3時間ぐらい時間を無駄にしてしまいました……。
まぁしょっぱい違いなんですけど、OpenGLDirectX の両立を考えている方はご注意を。
最近は、Android の影響で、OpenGL の需要も高まっているような気がするんですが、わたしの持っているスキルは役に経つんだか立たないんだか……。
まぁ、グラフィックライブラリなんて所詮、VRAM とのパイプラインですよね!(ぇー。


どうでもいいけど、ゲームライブラリ自体の設計は悪くない(と思う)んで再利用したいです。
コードは4年前のものなんで色々とアレですが……。
(dynamic_cast と const_cast がいっぱいありました)