問題タブ [bump-mapping]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
three.js - threejsバンプマップスケール/タイリング
Three.js を使用して、実行時にインポートされたメッシュにバンプ マップを適用しようとしています。
実際には、bumpMap を適用できますが、マップの垂直方向と水平方向のスケーリングを指定する必要があります (タイリングと呼ぶ人もいます)。私が思ったように、bumpMapping にはスケールの値が 1 つしかなく、Vector2 ではないことがわかりました。
BumpMap.repeat プロパティがあることがわかりましたが、必要なものではないと思います。
誰かアドバイスをください。
どうもありがとうございました
ここに来たばかりなので、スナップショットを投稿できないことに気付きました。興味のある方は画像の送り方を教えてください。
opengl - OpenGL および GLSL でのバンプ マッピング
OpenGL と GLSL を使用してキューブにバンプ マッピングを実装しようとしています。ただし、立方体を回転させると、左向きの正方形と右向きの正方形のみが表示され (つまり、負の x 方向と正の x 方向)、立方体の他の 4 つの面 (上、下、前、後) が表示されます。 ) は黒です。次に例を示します。
私のメッシュ クラスは indexList と vertexList で構成されています (Vertex クラスには x、y、z などが含まれます)。s,t テクスチャ座標を含むこの単純な cube.ply モデルを使用しています。この例から借りて、接線ベクトルを次のように計算します。
各三角形の接線ベクトルの値を出力すると、次の値が得られます:
1, 0, 0
1, 0, 0
0, 0, -1
0, 0, -1
0, 0, 1
0, 0, 1
-1, 0, 0
-1, 0, 0,
1, 0, 0
1, 0, 0
1, 0, 0
1, 0, 0
これらが正しい場合、シェーダーに問題がある可能性があります。私のシェーダーは次のとおりです(主に本から取得):
頂点:
フラグ:
編集:背景を変更して、黒い顔がよりはっきりと見えるようにしました。また、どの顔が以前に実際に登場していたかを誤って指摘しました。
編集 2: フラグメント シェーダーの max(dot(normalDelta, lightDirection), 0.0) の値が、これらの面に対して 0 を返すことがわかりました。しかし、その理由はまだわかりません。
編集 3: 問題は、Vertex クラスで接線ベクトルの間違ったインデックスを渡していたことが判明しました。つまり、この行には 9 ではなく 10 がありました。
three.js - ThreeJS: Phong マテリアルのバンプマップは UV マッピングを使用しますか?
ThreeJS (r61) の PhongMaterial でbumpMap を使用しようとして夢中になりました。拡散と法線は正常に機能しています。これが私のコードです:
極端にバンプスケールを変更しようとしましたが、まったく変化がありませんでした。
バンプ マップは、デフォルトでオブジェクトのロードされた UV マップを使用しますか? 平面や球などのプリミティブ ジオメトリを使用した例しか見つかりませんでした。
テクスチャ オブジェクトの UVMapping プロパティは何に役立ちますか?
どんなヒントでも大歓迎です!ありがとう。
opengl - GLSL によるバンプ マッピング
バンプ マッピングを実装しようとしていますが、どこに問題があるのかわかりません。シェーダーは問題ないようです。法線、タンジェント、バイタンゲットは十分に計算されており、問題はシェーダーにあると確信していますが、コードの他の部分を見たい場合は、次のとおりです。
( https://github.com/CarlosCarrera/OpenglElements )
VertexShader.vsh
FragmentShader.fsh
私が得ている結果は次のとおりです。
c++ - タンジェント スペース、タンジェント/従法線の計算
タンジェント、バイタンジェントを計算する次のコードがあります。また、法線マッピングを使用して、いくつかのメッシュ サンプルを正常にレンダリングできます。
特定のメッシュに問題があり、法線との接線が計算されます。
原因を特定するための助けをいただければ幸いです。
例はこれです:
v0: (-9.860292,6.589309,-8.947665) v1: (-9.860292,0.000000,-8.947665), v2 (-8.068345,0.000000,-8.947665)
uv0: (-0.073677,-0.141450) uv1: (-0.074518,-0.140732), uv2 (-0.074243,-0.140732)
deltaPos1: (0.000000,-6.589309,0.000000) deltaPos2: (1.791947,-6.589309,0.000000)
deltaUV1: (-0.000841,0.000718) deltaUV2: (-0.000566,0.000718)
ノーマル: (1.000000,0.000000,0.000000) タンゲット : (6516.150391,-0.000000,-0.000000) , バイタンジェント (7632.445312,-9177.340820,-0.000000)
android - libgdx とビルド済みシェーダー?
私は XNA のバックグラウンドを持っていますが、他の人が作成したシェーダーを再利用するのは本当にクールでした。利用可能で再利用しやすい非常にクールなブルーム シェーダーがありました。水、法線マッピング、またはその他のクールな効果のための再利用可能なシェーダーの公式または非公式のコレクションはありますか?
c++ - 法線マッピングに関する質問
OpenGL アプリで接線空間の法線マッピングを実装していますが、いくつか質問があります。
1) 当然、テクスチャ座標が歪んでいる可能性があるため、TBN 行列が常に直交するとは限らないことはわかっています。グラム・シュミット法を使用して再直交化できることを知っています。私の質問はこれです - グラム-シュミット法は目に見えるアーティファクトを導入しますか? 変更されていない純粋な法線/タンジェント/バイタンジェントを使用することで、最高のビジュアル品質が得られますか?
2) 多くのチュートリアルで、ビュー空間ではなく接線空間で照明計算を行っていることに気付きました。どうしてこれなの?遅延レンダラーを使用する予定なので、法線をバッファに保存する必要があります。保存時にビュー スペースにある必要があるという点で正しいですか? 計算でタンジェント スペースの代わりにビュー スペースを使用すると、何が失われますか? ビュー スペースを使用している場合、TBN マトリックスの逆数が必要ですか?
3) フラグメント シェーダーでは、タンジェントとバイタンジェントを再正規化する必要がありますか? 入ってくる (正規化された) バンプ マップの法線を乗算した後、再正規化する必要がありますか? 直交性 (質問 1 を参照) はこれに影響しますか? フラグメント シェーダー内で再正規化する必要がある、または再正規化する必要がないベクトルは?