1

我正在尝试制作一个着色器来复制一个内部带有彩色光的白色塑料物体。要么通过一个半透明的着色器,如果我在物体内部放一盏灯,光线就会透过,或者通过一个着色器来伪造内部灯光的效果。

我想要的效果有点像穿过灯罩的光,类似于这些图片:

替代文字 替代文字 替代文字

理想情况下,我将能够控制光的强度和颜色,使其在一些漂亮明亮的荧光色中产生脉冲和旋转

虽然我不知道从哪里开始!

我的问题是,是否有人知道我应该研究哪些技术才能生成这样的着色器,或者有一个相同/相似着色器的示例可以用作起点?或者即使您想提供一个可以完成这项工作的着色器

4

3 回答 3

4

您可能想对次表面散射进行一些研究,以了解如何重新创建这种效果。次表面散射对于渲染逼真的皮肤很重要,但在这种情况下,您通常处理的是半透明对象前面或后面的光,而不是它内部。相同的基本原则适用,但用于实时次表面散射近似的一些技巧和技巧可能不适用于您的情况。

于 2010-09-10T01:02:55.013 回答
2

好看的照片。看起来您使用的半透明塑料类型可以产生很大的不同。我看到的是塑料在每个点的亮度是基于从光源到该点的光线与该点的表面法线之间的角度。(观察者角度无关紧要。)

当内部光源到面点的向量几乎平行于面法向量时,面点是亮的;当它们几乎相互垂直时,表面点是黑暗的。所以尝试使用这两个向量的点积。不要忘记标准化。

换句话说,它基本上是漫反射,只是您将内部光源(透射)的效果添加到外部光源(反射)的效果中。请参阅Lambertian_reflectance作为起点。

您可能还想在上面添加一点镜面反射。

第三张图片更复杂:我认为它显示了内表面在外表面的阴影。

于 2010-09-08T20:16:02.703 回答
0

您也可以通过将漫反射照明从背面转换到正面来伪造这种效果。更具体地说,您应该使用一些传递函数在两侧混合照明。但这种方法只适用于薄壁物体。

于 2022-02-20T19:35:19.070 回答