首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >光线追踪-颜色混合

光线追踪-颜色混合
EN

Stack Overflow用户
提问于 2014-11-01 18:34:30
回答 1查看 2.5K关注 0票数 0

我在写射线追踪仪。到目前为止,我有漫射和镜面照明,我也计划实施反射和折射。

到目前为止,我已经使用了白光,在这里我计算了像这样的表面颜色:surface_color * light_intensity,除以适当的距离^2值,因为我使用的是点光源。对于镜面反射,它是light_color * light_intensity。Afaik,镜面反射不会改变光线的颜色,所以这应该适用于不同的颜色光源。

当光源不是白色时,如何计算漫射表面反射的颜色?例如,(0.7,0.2,0)轻击中(0.5,0.5,0.5)表面。此外,在这种情况下,距离因素是否不同?

此外,我将如何添加光贡献在一个点从不同的彩色光源?例如,(1,0.5,1)表面由(0.5,0.5,1)和(1,0.7,0.2)灯照明。我是否只是计算两者(包括距离)并将它们相加在一起?

EN

回答 1

Stack Overflow用户

发布于 2015-08-29 01:37:47

  • 我发现RGB是一个很差的颜色空间来进行照明计算,因为你必须考虑一些特殊的情况,才能得到任何看起来真实或表现出你期望的方式。
  • 尽管如此,从概念上讲,用HSL而不是RGB进行照明计算可能更容易。根据您使用的语言和工具包的不同,这应该是标准库/发行版的一部分或可用的工具包。
  • 一个更精确的选择是实现光谱渲染,在这里,它们返回采样的光谱功率分布,而不是返回RGB值的跟踪函数。与跟踪大量RGB混合特殊情况相比,SPD更准确和更容易使用,代价是性能受到轻微但明显的影响(特别是如果没有优化)。镜面高光和彩色灯光是这种模式的自然结果,在一般情况下不需要任何特殊处理。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26691706

复制
相关文章

相似问题

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