首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HLSL透明塑料着色器

HLSL透明塑料着色器
EN

Stack Overflow用户
提问于 2010-09-08 21:48:41
回答 3查看 1.4K关注 0票数 1

我正在尝试制作一个着色器来复制一个白色的塑料物体,里面有一个彩色的光。要么是通过一个半透明的着色器,如果我把一个光放在物体里面,光线就会透过物体显示出来,要么通过一个着色器来伪装里面的光的效果。

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

理想情况下,我将能够控制光的强度和颜色,使其脉动并旋转通过一些漂亮的明亮的萤光颜色。

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-10 09:02:55

你可能想在Subsurface Scattering上做一些研究,以了解如何重现这种效果。次表面散射对于渲染逼真的蒙皮很重要,但在这种情况下,您通常要处理半透明对象前面或后面的灯光,而不是它内部的灯光。同样的基本原理也适用,但一些用于实时次表面散射近似的技巧和技巧可能不适用于您的情况。

票数 4
EN

Stack Overflow用户

发布于 2010-09-09 04:16:03

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

当从内部光源到表面点的矢量与表面法向矢量几乎平行时,表面点是亮的;当它们几乎彼此垂直时,表面点是暗的。所以试着用这两个向量的点积。别忘了正常化。

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

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

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

票数 2
EN

Stack Overflow用户

发布于 2022-02-20 19:35:19

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3668359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档