POV-Ray : Newsgroups : povray.advanced-users : Question about Material and documentation : Re: Question about Material and documentation Server Time
2 May 2024 14:51:15 EDT (-0400)
  Re: Question about Material and documentation  
From: Alain
Date: 16 May 2017 13:22:49
Message: <591b3569$1@news.povray.org>
Le 17-05-15 à 11:42, Kenneth a écrit :
> "Kenneth" <kdw### [at] gmailcom> wrote:
>> "Bald Eagle" <cre### [at] netscapenet> wrote:
>>
>>>
>>> "If the object already has a texture, then the material texture is layered
>>> over it."
This ONLY work on textures applied at the same level.
>>>
>>
>> It's always been my understanding that, once an object already has a texture,
>> that texture can't be replaced or overlayed later with an additional one. I
>> think the docs are in error.
>>
> 
> Sorry, I'm completely mistaken. The 'material' container DOES work, and indeed
> overlays the previous texture, like *this* example... (but it has to be added to
> each object individually)...
> 
> --Change my #declared 'material' texture to this instead (so that its blue
> translucent color can be seen to overlay the objects' own texture colors)--
> 
> #declare MY_MATERIAL =
> material{
> texture{
> pigment{rgbt <.1,.1,1,.5>} // change t to see different effects
> finish{emission .2 diffuse .8 phong 1}
> }
> }
> 
> // NO union-- an added 'material' container doesn't work at the end of a union,
> // it seems...
> sphere{0,1
>      texture{
>          pigment{rgb <1,.5,.5>}
>          finish{emission .2 diffuse .8}
>          }
>          material{MY_MATERIAL}
>          translate 1.5*x
>         }
> 
> sphere{0,1
>      texture{
>          pigment{rgb <.5,1,.5>}
>          finish{emission .2 diffuse .8}
>          }
>          material{MY_MATERIAL}
>          translate -1.5*x
>         }
> 
> (BTW, this also works if the 'material' container itself is not used, and just
> its texture is #declared. OR, the 2nd texture can be added to the objects
> directly, with no previous #declare.) Of course, a 'material' container is made
> for combining lots of stuff, like interior etc.
> 
> This overlayed-texture effect seems to be different(?) behavior from what I
> remember in v3.62 or v3.61; adding a '2nd texture' to an object *completely*
> replaced the first texture, IIRC. Not so now, at least using v3.7.1 beta 7.
> Unless my eyes are deceiving me!
> 
> 
> 
> 
> 
Whenever you apply a pigment, finish, complete texture or material to a 
CSG entity, any object that already have any of those are never 
affected. ONLY those that don't already have any texture or pigment can 
receive the CSG level texture.

If you add a second texture over a previous one, as in a layered 
texture, if the second texture don't have any transparency, it will 
totally cover and visually replace the underlying one. The underlying 
texture is still there, it's just hidden under the top one. Think of it 
as a coat of paint over the previous one.

If you add a texture to a CSG, it can overlay previous textures of that 
CSG, but never those of it's components.
As an object can have only one ior, only the last one should be used. If 
you have an union and some of it's component have an ior, the union 
level ior will never affect those. No change with the last versions.

There have been no behaviour change for layered textures since, at 
least, version 3.1G. (time when I discovered POV-Ray)


Post a reply to this message

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