2017-04-27 5 views
-1

正距円筒が360テクスチャをエンコード、レンダリング、通常、正距円筒質感はすでに非常にプレフィルタされどのように(疑似)ミップマップの等角投影?

u = atan(x,z) 
v = acos(y) 

のような検索があります。ミップマップをオンにしても機能しません。 uは連続しておらず、テクスチャ自体はuvに不均一なデータを持っています。また、2x2ボックスのダウンサンプルを使ってミップマップを作成することも、等角の場合は正しくありません。

しかし、miplevelsとハードウェアミップマップルックアップの2x2ボックスを仮定すると、理にかなったlodやgradientsの計算には良い方法がありますか?

ちょうどdFdx(v)とdFdy(v)を使用して、小さなビューポートを扱うことができます。しかし、より良い方法が必要でしょうか?

+1

は「eqirect」テクスチャは何ですか? – ybungalobill

+0

@ybungalobill:このようなものhttp://photographyreel.com/image/9-narthex-equirect-panoramic-photography – starmole

+0

「等角投影法」と呼ばれています。誰もそれを 'eqirect'に短縮したことは一度も聞いていなかったが、Googleは同意しているようだ。 – ybungalobill

答えて

0

glGenerateTextureMipmap()関数でミップマップを生成し、texture(tex, uv)ルックアップ関数を使用できます。それはすでに仕事をするでしょう。彼らは[0,1]範囲になるように

あなたは、しかし、uv座標を正規化する必要があります

u = atan(x,z) 
v = acos(y) 
uv = uv/6.283185 + .5 
+0

私は正規化を外に出しました - それは派生物にとって重要ではありません。そのようなミップマップをオンにしても機能しません。それは質問です:) glGenerateは2x2ボックスフィルタを実行します。しかし、eqirectはすでにプリフィルターされています。 – starmole

+0

@starmole:あなたはそれを試しましたか?なぜそれは動作しません?あなたのテクスチャはすでにプレフィルトレーションされていると言ってどういう意味ですか? 2dラスタイメージとしてロードしないでください。サンプルファイルを投稿できますか?私のアプローチはあなたがリンクしたサンプルファイルでは間違いなく機能します。もしそれが 'eqirect'、 'webmerc'または 'lambcyl'であれば問題ありません。 – ybungalobill

関連する問題