POV-Ray : Newsgroups : povray.binaries.images : Question about layered textures (19KB) : Re: Question about layered textures (19KB) Server Time
17 Aug 2024 14:19:35 EDT (-0400)
  Re: Question about layered textures (19KB)  
From: Francois Labreque
Date: 26 Sep 2001 18:11:10
Message: <3BB25245.701@videotron.ca>
Tor Olav Kristensen wrote:

> I'm trying to understand layered textures better,
> but I don't understand why the colors of the left
> spheres in the attached image don't match the 
> colors of right spheres.
> 
> See my code below.
> 
> Can anyone please explain ?
> 
> And what do I have to do in order to make the 
> colors of the right spheres equal to the colors 
> of the left spheres (using subtractive color 
> mixing for the right ones and additive for the
> left ones) ?
> 
> E.g.: Any changes to the finish {} part of the textures ?
> 


Nope.

What happens is that when you put a color that has a non-zero transmit 
component, it does a weighted average of the color and the color underneath.

for example:

> // White - Blue  - Green = Red
>   texture { pigment { color rgbt <1, 0, 1, 0.0> } }
>   texture { pigment { color rgbt <1, 1, 0, 0.5> } }


is equivalent to:

     texture { pigment { color rgbt < 1, 0.5, 0.5, 0.0 > } }

That is:

#declare Weight = 0.5;
#declare Magenta = color rgb < 1, 0, 1 >;
#declare Yellow = color rgb < 1, 1, 0 >;
#declare Not_Red = Weight*Magenta + (1-Weight)*Yellow;

As you can see, the green and blue components of the final color are not 
zero as a fraction of the orignal two colors is still present in the 
final one.

Since layered textures are additive, to substract a color component, 
you'd have to add a negative color, in other words,do the following:
    texture { pigment { color rgbt <1, 1, 1, 0.0> } }
    texture { pigment { color rgbt <1, -1, -1, 0.5> } }

As you can see, the second texture does not make physical sense.

-- 
/*Francois Labreque*/#local a=x+y;#local b=x+a;#local c=a+b;#macro P(F//
/*    flabreque    */L)polygon{5,F,F+z,L+z,L,F pigment{rgb 9}}#end union
/*        @        */{P(0,a)P(a,b)P(b,c)P(2*a,2*b)P(2*b,b+c)P(b+c,<2,3>)
/*   videotron.ca  */}camera{location<6,1.25,-6>look_at a orthographic}


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.