2010-09-08 91 views
1

我试图制作一个着色器来复制一个白色的塑料物体,里面有彩色的光。无论是通过具有半透明的着色器,或者如果我将光线投射到物体内部,光线都会透过或者通过具有模仿内部光线效果的着色器。HLSL半透明塑料着色器

的影响我去的是有点像一个光线经历一个灯罩类似这些图片:

alt text alt text alt text

理想我想能够控制的强度和颜色光让它通过一些不错的明亮的fluro颜色脉冲和旋转

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

我的问题是没有人知道我应该研究的技术能够产生这样的着色器或有一个相同/相似的着色器的例子,我可以作为一个起点?或者即使你想提供一个可以做这项工作的着色器

+1

好吧,我不知道如何做到这一点,但发布你想要的结果的图像将帮助我猜! – Peter 2010-09-08 16:14:40

+0

我听说blinn着色器可能类似于我在找什么?但如果是这样,它有什么不同? – Tristan 2010-09-08 16:55:56

+0

Blinn着色是用于镜面反射的Phong着色的更快近似。除了别的东西之外,您可以将其用于表面反射,但Blinn本身不会为您提供所需的漫反射光透射。 – LarsH 2010-09-08 20:21:32

回答

4

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

+0

这看起来像要走的路!我看了一些次表面散射的例子,我认为用一点工作就会很完美!谢谢 – Tristan 2010-09-10 08:03:13

2

不错的照片。它看起来像你使用的半透明塑料的类型可以有很大的不同。我所看到的是,塑料在每个点的亮度都是基于光源到该点的光线与该点的表面法线之间的角度。 (观看者角度无关)

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

换句话说,除了将内部光源(透射)的效果添加到外部光源(反射)的效果之外,它基本上是漫反射。以Lambertian_reflectance为起点。

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

第三个图像更复杂:我认为它显示了外部表面的内部阴影。