2017-07-04 22 views
0

私は、シーン内の各オブジェクト(中心球を引いたもの)が回転運動を行う中央球からなるシーンのアニメーションを生成するためにOpenGLプログラムを実装しようとしています質量中心と中心球の周りにある。ボールは研磨されたステンレススチールで作られており、ミラーのような表面上の特徴は、シーンの他のオブジェクトの反射です。シーン内の各オブジェクト(球を引いたもの)に対して、私は異なるテクスチャでテクスチャマッピングを行う必要があります。 "環境マップ"アプローチを使用して、中央の球面に鏡面効果を生成します。この手順に関連する問題を研究しましたが、私が間違いなく理解できることは、そのアニメーションに反映されたシーン上の他のオブジェクトを取得する方法です。私がここで見ているトピック(私がしなければならない最も近いもの)は、私を助けてくれるかもしれないが、答えられていないトピックは、リンクOpenGL Environment mapping Reflectionにある。OpenGLのシーン内の他のオブジェクトのリフレクション

誰でも私に考えを与えることができれば、私は非常に感謝します。これは、オブジェクトの構築と回転の一部が以前に行われた大学の仕事です。非常に残酷な質問は、この中央の球でこれらの動く物体の反射をどのように実現するかです。

+0

申し訳ありませんが、この情報を入力するのを忘れ、私はJavaでopengl4を使用しています。 – wgrt

+0

あなたのタグにその情報が反映されている必要があります。余分なタグを削除しました。 –

+0

phisicsのビット:[フレネル方程式](https://en.wikipedia.org/wiki/Fresnel_equations#Power_or_intensity_equations)では、光源(オブジェクト内のピクセル)とサーフェスの法線球に接する)は普通のものと同じで、あなたの目(カメラの位置)は – Ripi2

答えて

0

通常の解決策は、ダイナミックキューブマップを作成することです。各フレームで、シーンを中心球の視点(錐台:fov = 90、アスペクト比= 1、平面=半径+ε近傍)で6回(各方向に1回)レンダリングし、結果をキューマップに入れます。

次に、このキューブマップのサンプルである中心球用のピクセルシェーダーを作成します。

完璧ではありませんが、近いです。

この問題の解決策は他にもありますが、これはOpenGLで開発するのが最も簡単だと思います。

もっと正確な解決策が必要な場合は、他の手法に頼らざるを得ません。恐れがあります。レイトレーシングと同様。シンプルなジオメトリ(平面、球)しか持たない場合は、ピクセルシェーダまたは計算シェーダにレイトレーシングエンジンを書き込むことができます。

+0

です。申し訳ありませんが、あなたが言ったことのサンプルコードがありますか? – wgrt

+0

私はこれを実装しましたが、残念ながら私はそれを共有できません。しかし、これを実装したオープンソースのコードがいくつかあるはずです。 Ogre3Dや他のオープンソースのゲームエンジンのように。 – geza

+0

Ahhありがとうございました! – wgrt

関連する問題