着色透明物体

时间:2012-10-28 13:06:11

标签: graphics

我遇到光线跟踪问题。我无法将透明对象的颜色放到文件中。透明物体被视为白色。怎么了 ?我在算法中忘记了什么吗?

注意:由于我的声誉,我无法将图片上传到stackoverflow。

trace ( ray ) 
   intersect with objects
   for each light 
       if ( object in shadow )
              colour = black
       else
              diffuse 
              specular
   ambient
   color += trace ( reflect_ray )
   if ( object is transparent )
        color += trace ( transparent_ray )

1 个答案:

答案 0 :(得分:1)

您不想直接添加透明光线,需要将其混合。

color = opacity * color + (1 - opacity) * trace( transparent_ray )

opacity定义了对象的 opaque 。完全不透明的对象(opacity = 1)根本不透明,因此透明光线不会影响颜色。完全透明的物体(opacity = 0),例如空气或玻璃(几乎)不会受物体颜色的影响,因此光线的颜色只是透明光线的颜色。