タグ付けされた質問 「reflection-rendering」

1
平面反射を行う際の波の説明
私はSDKからNvidiaの例、特にIsland11プロジェクトを研究してきましたが、波の高さの状態に応じて反射を上下に補正するHLSLコードの一部に興味を持ちました。 当然、コードの短い段落を調べた後: // calculating correction that shifts reflection up/down according to water wave Y position float4 projected_waveheight = mul(float4(input.positionWS.x,input.positionWS.y,input.positionWS.z,1),g_ModelViewProjectionMatrix); float waveheight_correction=-0.5*projected_waveheight.y/projected_waveheight.w; projected_waveheight = mul(float4(input.positionWS.x,-0.8,input.positionWS.z,1),g_ModelViewProjectionMatrix); waveheight_correction+=0.5*projected_waveheight.y/projected_waveheight.w; reflection_disturbance.y=max(-0.15,waveheight_correction+reflection_disturbance.y); 私の最初の推測は、垂直の摂動(波)を受けたときに平面反射を補正し、反射ジオメトリを何もない場所にシフトし、水が空または空だけのようにレンダリングされることでした: さて、それは私たちが地形の緑/灰色/黄色がかった反射が水の基線で折り返されるのを見るべき場所を反映している空です。問題は、その背後にあるロジックを正確に特定できないことです。波/水ジオメトリのポイントの実際のワールド空間位置を投影してから-.5fを掛けて、同じポイントの別の投影を取得します。今回はy座標を-0.8に変更します(なぜ-0.8?)。 コード内の手がかりは、冗長性があるため試行錯誤で派生したことを示しているようです。たとえば、著者は投影されたy座標の負の半分(w除算後)を取得します。 float waveheight_correction=-0.5*projected_waveheight.y/projected_waveheight.w; そして、2番目のポイントについても同じことを行い(肯定的なだけで、何らかの違いを得るために、私は推測します)、それらを組み合わせます: waveheight_correction+=0.5*projected_waveheight.y/projected_waveheight.w; 2による除算を削除しても、品質の改善に違いは見られません(誰かが私を修正したい場合は行ってください)。それの核心は、投影されたyの違いのようです。なぜですか?この冗長性と-.8fと-0.15fの一見arbitrary意的な選択により、これはヒューリスティック/推測の組み合わせであると結論付けられます。これには論理的な根拠がありますか、それとも単なる必死のハックですか? これは、コードフラグメントが修正する初期問題の誇張です。最低のテッセレーションレベルで観察します。うまくいけば、それは私が見逃しているアイデアを引き起こすかもしれません。-.8fは、平面反射されたジオメトリレンダリングをサンプリングするテクスチャ座標を乱す量を推定する基準高さであり、-。15fはセキュリティ対策である下限です。

1
GLSLフラグメントシェーダーでこの種のリップルを実装する方法は?
だから私はすでに反射部分を実装しました: uniform sampler2D texture; uniform vec2 resolution; uniform vec3 overlayColor; void main() { vec2 uv = gl_FragCoord.xy / resolution.xy; if (uv.y > 0.3)// is air - no reflection or effect { gl_FragColor = texture2D(texture, vec2(uv.x, uv.y)); } else { // Compute the mirror effect. vec4 color = texture2D(texture, vec2(uv.x, 0.6 …

1
異なる材料の光反射率値のリストまたはデータベースはどこで入手できますか?
WebGLアプリにライティングを実装していますが、私はアーティストではないので、マテリアルのリスト(拡散、鏡面反射光、アンビエント、光沢)を生成する方法やマテリアルのリストを取得する場所がわかりません。私はたくさん検索しましたが、運がありませんでした。 見落とした可能性のあるリストまたはDBはありますか?一般的なリポジトリまたは同様の何か? 前もって感謝します。 注:英語は私の主な言語ではありません。何かを理解できない場合はお知らせください。言い換えます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.