タグ

ブックマーク / marupeke296.com (3)

  • その55 そもそも「w」って何なのか?

    ホーム < ゲームつくろー! < DirectX技術編 その55 そもそも「w」って何なのか? ローカル座標にある頂点は(x,y,z,w)という4次元のベクトルで定義されます。「w」・・・これ、謎な存在です。しかも、ローカル座標にある状態では、w=1とします。w=1・・・なぜ?どうして0じゃないの?そもそもコレ何?何に使われているの?どうして必要なの?謎な存在の疑問は尽きません。 そこで、この章ではそんな不思議な存在wの値の意義について調べてみたいと思います。 ① wの変化の旅を見てみよう wが実際にどう作用しているのか、実際にローカルから画面に描画されるまでのプロセスで確かめてみるとよ~~くわかります。長い旅に出発です。 まず、ローカル座標にある頂点は、冒頭で出てきたように(x,y,z,w=1)で定義されます。今、この頂点にワールド変換行列を掛け算してみます: 行列中の「m」というのはス

  • その58 やっぱり欲しい回転行列⇔クォータニオン相互変換

    算出されるyzwの符号に注目です。真のxの符号が+の時は正しく出ていますが、真のxの符号が-の場合は符号が反転しています。しかし、実はこれは問題ないんです。というのは「回転クォータニオンのQと-Qは同じ回転になる」という性質があるためです。時計の回転する長針を正面から見るか裏から見るかの違いでして、同じ回転であるのに違いありません。つまり、4*|x|さえ分かれば良いんです。そして、それはもう先の式で計算してあるではないですか(^-^)v。±の符号の「+」を採用して4*|x|を作ればいいだけです。 ここまでの情報があれば「よしゃー、変換はこれでできたぜ!」と思いたくなります。しかし、実は落とし穴がありまして、もう少し考慮が必要になります。右辺を4*|x|で割る時、xが0である可能性があるんです。例えば回転軸nが(0,1,0)とすると、|x|はあっさりと0になってしまいます。この場合、4*|x

    thorikawa
    thorikawa 2013/12/19
  • その1 プログラマブルシェーダーって何?

    ホーム < ゲームつくろー! < プログラマブルシェーダ編 < プログラマブルシェーダーって何? その1 プログラマブルシェーダーって何? Direct3Dをある程度読み解けるようになったころ、ちらちらと目に付いてくる用語の1つが「プログラマブルシェーダ」ではないでしょうか?これ、気になるんですよね。でも、多くの日人にとってこの用語から内容はイメージしづらいものです。プログラマブルシェーダーって何なのでしょうか?いや、そもそも「シェーダー」って何?この章では以後の章の前知識としてこれらについて見ていくことにしましょう。 ① プログラマブルシェーダーとは? シェード「Shade」というのは「描画法」という意味です。それに「-r」が点いてシェーダー(Shader)となると「描画する人」という意味になります。ちなみにシェーダーを辞書で引くと「映像制御技師」とありました。これらからイメージすると

  • 1