POV-Ray : Newsgroups : povray.general : Pigment multiplication : Re: Pigment multiplication Server Time
31 Jul 2024 16:26:14 EDT (-0400)
  Re: Pigment multiplication  
From: FlyerX
Date: 14 Dec 2006 15:27:07
Message: <4581b39b$1@news.povray.org>
Trevor G Quayle wrote:
> Skip Talbot <ski### [at] aolcom> wrote:
>> I don't have time to write out the source, but I can suggest a possible
>> solution if you are looking for a quick answer.  Use your image map as a
>> pigment function, and then you should be able to directly multiply the
>> output of the function by whatever scalar you want.  The function and
>> its multiplied scalar can then be declared as a new pigment function.
>> Hopefully one of the pros can help get you setup with this approach if
>> you have any trouble.
>>
>> Skip
> 
> Hopefully this can help:
> 
> //declare image map as a function
> #declare PIMAGE = function {pigment{image_map {jpeg "body_01.jpg"
> interpolate 2}}
> 
> #declare Mult=rgb <1,1,1>; //multiplier colour
> 
> //r,g,b components need to be calculated individually as functions can't
> carry vectors:
> #declare FRed=function(x,y,z) {PIMAGE(x,y,z).red  *Mult.red}
> #declare FGrn=function(x,y,z) {PIMAGE(x,y,z).green*Mult.green}
> #declare FBlu=function(x,y,z) {PIMAGE(x,y,z).blue *Mult.blue}
> 
> //assemble using average: (colours multiplied by 3 so they average to 1)
> #declare Pig=
> pigment{average
>   pigment_map{
>     [function{FRed(x,y,z)*3} color_map{[0 rgb 0][1 rgb <1,0,0>]}]
>     [function{FGrn(x,y,z)*3} color_map{[0 rgb 0][1 rgb <0,1,0>]}]
>     [function{FBlu(x,y,z)*3} color_map{[0 rgb 0][1 rgb <0,0,1>]}]
>   }
> }
> 
> 
> -tgq
> 
> 
> 

Thanks for the code. I think it should work but when I try to use in 
POV-Ray 3.6.1 (Win32) the FRed declaration stops with "Expected operand, 
colour identifier found instead". After reading about the function on 
the documentation I could not see what was wrong. I though that maybe 
POV-Ray though it was a color instead of a float so I enclosed the 
PIMAGE().red and Mult.red in parenthesis but that did not work.

FlyerX


Post a reply to this message

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