0

レイトレーシングに問題があります。透明なオブジェクトの色をファイルに入れることができませんでした。透明なオブジェクトは白く見えます。なにが問題ですか ?アルゴリズムで何かを忘れましたか?

注:評判が良かったため、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 )
4

1 に答える 1

1

透明光線を直接追加するのではなく、ブレンドする必要があります。

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

opacityオブジェクトの不透明度を定義します。完全に不透明なオブジェクト(opacity = 1)はまったく透明ではないため、透明光線は色に影響を与えません。空気やガラス(ほとんど)などの完全に透明なオブジェクト(opacity = 0)は、オブジェクトの色の影響を受けないため、光線の色は透明な光線の色にすぎません。

于 2012-10-28T13:11:18.273 に答える