1

内部に色付きのライトがある白いプラスチック オブジェクトを複製するシェーダーを作成しようとしています。半透明になるシェーダーを使用し、オブジェクトの内部にライトを配置すると、光が透けて見えるようにするか、内部にライトの効果を偽装するシェーダーを配置します。

私が目指している効果は、これらの写真に似たランプシェードを通過する光のようなものです。

代替テキスト 代替テキスト 代替テキスト

理想的には、光の強度と色を制御して、光を脈動させ、いくつかの明るい蛍光色を回転させることができます。

どこから始めればよいかわかりませんが!

私の質問は、そのようなシェーダーを作成できるようにするために研究すべきテクニックを知っている人、または出発点として使用できる同じ/類似のシェーダーの例を持っている人はいますか? または、仕事をするシェーダーを提供したい場合でも

4

3 に答える 3

4

この種の効果を再現する方法を知るために、サブサーフェス スキャタリングについて調査することをお勧めします。サブサーフェス スキャッタリングはリアルな肌をレンダリングするために重要ですが、その場合、通常、半透明のオブジェクトの内部ではなく、その前または後ろのライトを扱っています。同じ基本原則が適用されますが、リアルタイムのサブサーフェス スキャタリングの近似に使用されるいくつかのトリックとハックは、あなたのケースではうまくいかないかもしれません。

于 2010-09-10T01:02:55.013 に答える
2

いい写真。使用する半透明のプラスチックの種類によって、大きな違いが生まれるようです。私が見ているのは、各ポイントでのプラスチックの明るさは、光源からそのポイントへの光線とそのポイントでの表面法線の間の角度に基づいているということです。(見る角度は関係ありません。)

内部光源からサーフェス ポイントへのベクトルがサーフェス法線ベクトルにほぼ平行な場合、サーフェス ポイントは明るいです。それらが互いにほぼ垂直になると、表面の点は暗くなります。したがって、これら 2 つのベクトルの内積を使用してみてください。正規化することを忘れないでください。

つまり、内部光源の効果 (透過) を外部光源の効果 (反射) に追加していることを除けば、基本的に拡散反射です。出発点として、Lambertian_reflectanceを参照してください。

その上に鏡面反射を少し追加することもできます。

3 番目の画像はより複雑です。外側の表面に内側の表面の影が表示されていると思います。

于 2010-09-08T20:16:02.703 に答える