POV-Ray : Newsgroups : povray.advanced-users : multipigment surface : Re: multipigment surface Server Time
26 Jun 2024 08:14:50 EDT (-0400)
  Re: multipigment surface  
From: Alain
Date: 29 Jul 2011 17:36:14
Message: <4e3327ce@news.povray.org>

>>> To simplify the things, I want to have one pigment for OpenGL
>>> emissive color and another pigment for OpenGL diffuse color.
>>> POV-Ray should compute the lighting on both of them and the
>>> final color would be sum of these. Is it possible to do
>>> this in POV-Ray?
>>
>> If I get it correctly:
>> OpenGL     povray
>> =========+=========
>> emissive | ambient
>> diffuse  | diffuse
>>
>> To perform a sum, use the average pigment with relevant map
>>
>>> http://wiki.povray.org/content/Documentation:Reference_Section_5.3#Average
>
> Things are more difficult:
>
> OpenGL           povray
> ===============+================
> ambient  COLOR | ambient  COLOR
> diffuse  COLOR | diffuse  float
> specular COLOR | specular float
> emission COLOR | (no equivalent, but can be emulated by ambient)

Add this in your global_settings block:
ambient_lights Ambient_COLOR

Now, any ambient component of your finish will be MULTIPLYED by that 
value. it will effectively colour the shadowed areas. With version 3.7, 
it will be disabled in a radiosity scene.

For your diffuse modification you can:
1 - precompute the desired pigment OR
2 - use layered pigments with a plain filtering pigment of the desired 
colour over your base texture.

If you add metallic to your finish, the specular highlights will be 
coloured with the pigment. You can use a float after metallic to adjust 
that colouring.

Use POV-Ray 3.7. It have an emission COLOR component for your finish.

>
> In OpenGL, ambient color is real color used for the computation of ambient light
> contribution to the final color, while ambient on povray side is just pigment
> filter.
>
> In OpenGL diffuse, specular and emission are all colors that can be completely
> different colors while povray's diffuse and specular is just float multiplying
> pigment color.
>
> As a result, OpenGL allows to specify for example blue diffuse color - e.g.
> object is blue when lit by the light coming from the scene, and red ambient
> light (e.g. surface shines red, provided that there is global ambient light in
> the scene).
>
> You may wonder why I need this, but it would allow to correctly show all the
> models that are used in OpenSceneGraph, OpenGL, DirectX, and real-time graphics
> in general.
>
> Thanks for any good advice,
> John
>
>

Just remember that those separated components are there to get faster 
real time graphics at the cost of geting away from actual physicaly 
correct lighting.


Post a reply to this message

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