個々の物体に透明度 Kt を与えて,これが 0 でないものは、向こう側が透けて見えるようにしてください. Kt は,構造体 Material の要素に t を追加し, この構造体の変数のそれぞれの要素に格納するものとします.
struct Material {
float a[3]; /* 環境光に対する反射係数 Ka */
float d[3]; /* 物体表面の拡散反射係数 Kd */
float s[3]; /* 物体表面の鏡面反射係数 Ks */
float e; /* ハイライトの広がり */
float r; /* 映り込みの反射率 */
float t; /* 透明度 */
};
struct Material red = {
{ 0.5, 0.1, 0.1 },
{ 0.5, 0.1, 0.1 },
{ 0.4, 0.4, 0.4 },
40.0,
1.0,
0.5,
};
struct Material green = {
{ 0.1, 0.5, 0.1 },
{ 0.1, 0.5, 0.1 },
{ 0.4, 0.4, 0.4 },
40.0,
1.0,
0.8,
};
struct Material blue = {
{ 0.1, 0.1, 0.5 },
{ 0.1, 0.1, 0.5 },
{ 0.4, 0.4, 0.4 },
40.0,
1.0,
0.3,
};