glm 0.9.6 perspective 事件簿


↑この法線マップもどき何か変だと思った君、センスある!

やあ子供たち。GLM使っているか。
GLMだよ。
http://glm.g-truc.net/0.9.8/index.html
そうだね、OpenGLのいろいろなものがDeprecatedになってしまった今、GLMはほとんど手放せない存在感を発揮しているよね。おじさんもGLMは便利に快適に使わせてもらっていたし、これからも使わせてもらうつもりなのだけど、先日、同じプログラムを、GLM バージョン0.9.5.4を使ってビルドした場合と、GLM 0.9.8.x を使ってビルドした場合とで、動作がことなることに気付いてしまったんだね。
つまり、何やらパースが変だし、カメラの回転も変だというわけ。しかも上述の二つの環境ときたら、ハードウェアもOSも違っていたので、すっかりそこのところの違いのせいだと思い込んでしまい、ずっと頭を抱えてしまっていた感じだったよ。こっちのOSではウィンドウ座標が左上が原点なのだけど、こっちのOSでは左下が原点になったのかな?いやいや、それじゃ過去のソフト全部動かないでしょだとか、回転が変なのは、画面の解像度が違うせいもあるのかも知れない。いやいやそこまでは違わないっしょ!、、とかね。
しかししかし、その原因はあろうことかGLMそのものにあったんだ。
どういうことかというと、

GLMのバージョン0.9.6以降は、glm::perspective()や、glm::rotate()の中で指定する「角度」は、それまではDegreeだったものを、0.9.6からはRadianにしちゃいましたので!http://glm.g-truc.net/0.9.6/updates.html

↑長い間問題だったDegreeかRadianかという問題にー、、という感じの言いような内容。そんな論争は知らないままにこの変更に苦しんだだけの立場からすると、この傍若無人な言いようはMADMAX2のあの冒頭場面を彷彿とさせる。「まったくお前たちには呆れさせられる。あるAPIではAngleを、そしてあるAPIではRadianを使うお前たちを全く理解できない、、!よって我々は一切のAngle系APIをRadian仕様に変えてやった、、!」といったところか。しかも理解に苦しむのは、現行最新の0.9.8.0のページの左ペインにある、ReleaseNotesからはGitHubのサイトへのリンクとなっており、その中の0.9.6.0の更新内容の中に、上記記述を見つけることはもはやできない。上記内容は、GLMホームページの右上にある、0.9.6.0をクリックして飛ぶページの左ペインの中にある、ReleaseNotesリンクから辿ることができる。

という内容だったんだね。これにはおじさんも目が点になった後ひっくり返ってしまったよ。例えばOpenGLAPIが突然そんなことになったら大混乱だよね。本当に信じられない内容だった。
同じようにハマった人は、ここここにも見つけることができる。それとここにも。どうも外人の子供たちもGLMのドキュメントは気が利かないとか、大事なことを事前に教えてくれないとかいろいろ不満を表明している感じだね。
つまり、GLMは便利だが、GLMには気をつけろ!油断するな!ということらしい。ところでおじさんが気になるのは日本の子供たちがこの件について誰も何もいってない気がするところだ。
みんなGLM使ってないのかな。。気のせいならいいが。
それでは今日はこの辺で。チャオ!