現在このページ(http://marina.sys.wakayama-u.ac.jp/~tok ... e=20040920)で投影マッピングについて学習していますが、分からないところがあります。
立方体のポリゴンにマッピングするということで、立方体の座標値をそのままテクスチャ座標値に対応させているのですが、この場合、立方体の各面にタイヤの画像が施されるのではないのでしょうか?
なぜ2面にだけしか施されていないのでしょうか?
C・C++を数か月前から勉強を始めた初心者ですが、よろしくお願いします。
OpenGL投影マッピングについて
Re: OpenGL投影マッピングについて
それを説明しているのがそのページなのだと思いますが。
テクスチャの視点を立方体に対して手前から奥にまっすぐにして平行投影しているので、手前と奥の面だけに画像が映ります。
続く解説で、視点を変えて画像を上下に移動させたり、透視投影したりしてますね。
投影マッピングでは、座標値は空間座標値です。
イメージとしては、テクスチャはビームで、ポリゴンとビームが交差する場所に描画されます。
テクスチャの視点を立方体に対して手前から奥にまっすぐにして平行投影しているので、手前と奥の面だけに画像が映ります。
続く解説で、視点を変えて画像を上下に移動させたり、透視投影したりしてますね。
投影マッピングでは、座標値は空間座標値です。
イメージとしては、テクスチャはビームで、ポリゴンとビームが交差する場所に描画されます。
Re: OpenGL投影マッピングについて
返答ありがとうございます。
投影マッピングのイメージは、例えば真っ白の立方体にアンパンマンの顔が描かれているライトを当てて、
その時のアンパンマンの顔がどのように立方体に写るかというのをプログラム上で表すというイメージで良いのでしょうか?
もし、そうであるならば立方体の正面からライトを当てた時、(図で書くと、 □ ←(ライト) □は立方体を真横から見た図)ライトに一番近い面にマッピングされるのは当然ですが、
その面と向かい合っている、つまりライトが届かない真後ろの面にまでマッピングされているのはなぜなのでしょうか?
質問の意図が分かりにくいかもしれませんが、よろしくお願いします。
投影マッピングのイメージは、例えば真っ白の立方体にアンパンマンの顔が描かれているライトを当てて、
その時のアンパンマンの顔がどのように立方体に写るかというのをプログラム上で表すというイメージで良いのでしょうか?
もし、そうであるならば立方体の正面からライトを当てた時、(図で書くと、 □ ←(ライト) □は立方体を真横から見た図)ライトに一番近い面にマッピングされるのは当然ですが、
その面と向かい合っている、つまりライトが届かない真後ろの面にまでマッピングされているのはなぜなのでしょうか?
質問の意図が分かりにくいかもしれませんが、よろしくお願いします。
Re: OpenGL投影マッピングについて
簡単に言うと、立方体を描画する時には面ごとに個別に描画されるようになっています。
各面の向きとライトの位置関係からそれっぽく見えるように計算しているだけなので、他の面で隠れているかどうかは考慮されません。
ですから裏にあろうがなかろうが光線と交差している部分すべてにマッピングされます。
全面すりガラスでできた立方体にライトを当てたような状態をイメージしてもらうといいかもしれません。
もちろん、実際はすりガラスにはそんなに鮮明には映らないですが。
各面の向きとライトの位置関係からそれっぽく見えるように計算しているだけなので、他の面で隠れているかどうかは考慮されません。
ですから裏にあろうがなかろうが光線と交差している部分すべてにマッピングされます。
全面すりガラスでできた立方体にライトを当てたような状態をイメージしてもらうといいかもしれません。
もちろん、実際はすりガラスにはそんなに鮮明には映らないですが。