POV-Ray : Newsgroups : povray.general : Trying to multiply pigment color : Re: Trying to multiply pigment color Server Time
2 Nov 2024 09:19:48 EDT (-0400)
  Re: Trying to multiply pigment color  
From: Mike Williams
Date: 12 Apr 2004 02:11:14
Message: <2VmR7DAfKjeAFw8V@econym.demon.co.uk>
Wasn't it FlyerX who wrote:
>Hello,
>
>I have been using filter as a multiplier for a pigment but the results are
>always too bright.
>
>Here is how I define the material:
>
>#declare p_map1=pigment {image_map{jpeg "tex.jpg" interpolate 2 transmit all
>0 filter all 1 }  }
>
>#declare Mat1=
>texture{pigment {color rgb <1,1,1> transmit 0 filter 0}finish{ambient 0}}
>texture{pigment{p_map1} finish{ambient 0}}
>
>This should be the same as
>
>#declare p_map2=pigment {image_map{jpeg "tex.jpg" interpolate 2 transmit all
>0 filter all 1 }  }
>
>#declare Mat2=
>texture{pigment{p_map2} finish{ambient 0}}
>
>because the color underneat the pigment is white <1,1,1>. Unfortunately Mat1
>is brighter than Mat2. Is there a procedure that could be done to remedy
>this? If there is another way of multiplying a pigment color please let me
>know.

All other things being equal, these two textures are equally bright.

There are an awful lot of things that can make other things not be equal. For
example, the background that you can see through the transparency of Mat2
might be further from the light source, or at a different angle to the light
source, or may be in shadow (in particular, check for the shadow of the object
that you've applied the Mat2 texture to).

Below is a complete scene that has all other things almost exactly equal, and
the two textures are indistinguishable.

Hint: if your lighting is arranged such that you can see a pure white object
against a pure white background, then adding an image_map pigment to the white
object will not look the same as looking through a semitransparent image_map
at the background.


#version 3.5;

global_settings {assumed_gamma 1.0}

#declare p_map1=pigment {image_map{jpeg  "tex.jpg" interpolate 2 transmit all
 0 filter all 1 }  }

#declare Mat1=
texture{pigment {color rgb <1,1,1> transmit 0 filter 0}finish{ambient 0}}
texture{pigment{p_map1} finish{ambient 0}}

#declare p_map2=pigment {image_map{jpeg  "tex.jpg" interpolate 2 transmit all
 0 filter all 1 }  }

#declare Mat2= texture{pigment{p_map2} finish{ambient 0}}


camera {location  <0,0,-10> look_at <0,0,0> angle 25}

plane {z,-0.94  texture{pigment {color rgb <1,1,1> transmit 0 filter 0}
 finish{ambient 0}}
}

light_source {<10,10,-30> color rgb 1}

box {-0.95,0.95 texture{Mat1} translate -x}
box {-0.95,0.95 texture{Mat2} no_shadow translate x}


Post a reply to this message

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