|
|
On 12/13/23 10:48, Kenneth wrote:
> i William!
>
> I am wondering how your idea would affect an explicitly-specified
> #default [texture/pigment/etc].
>
> When I want to quickly get an idea for a scene into POV-ray, I usually use a
> #default{...something...} at the start, whether a full texture of just a finish,
> etc...which I understand to be a full behind-the-scenes 'default' texture that I
> am just updating there with a shorthand change. Then I can additionally use more
> shorthand updates for the objects I make, while still getting the #default stuff
> that I originally specified:
>
> sphere{0,1 pigment{rgb <.2,.4,.6>}} // already including my #default stuff
>
> It's a nice quick method to sketch-out the basics of a scene.
>
> But if I understand your proposed fix-- of making all shorthand updates into
> parse errors-- it seems that I would have to pre-#declare even a #default
> texture with an ID, then specify the ID in an object (with another shorthand
> update if desired.) That would seem to negate the easy usefulness of the
> #default{...} feature as-is.
>
> Am I mistaken?
>
> [As you can tell, I LIKE POV-ray's 'shorthand' ability 😉 ]
>
Hi.
In the no shorthand, texture aspect, update(a) approach you'd tweak the
default texture by specifying no initial texture ID.
object { My_Object
texture { pigment { color <1,0,0> } }
interior_texture { pigment { color <1,1,0> } }
}
Specifying the texture{} or interior_texture{} with or without a initial
texture ID will, I believe, always behave in a consistent and simple to
understand way, but yes, the short methods are handy.
(a) - Internally POV-Ray considers many of the shorthand forms to be
object modifiers where they directly follow an 'object' definition or
reference. FWIW.
---
One of a few confusing things with the short form updates is you have to
know whether 'My_Object' already has a non-default texture - and what it
is - to know what you get for a final complete texture.
#declare Sph00 = sphere { 0, 0.7 }
#declare Sph00p = sphere { 0, 0.7 pigment { color Green } }
...
object { Sph00 normal { granite } } // White with granite normal
object { Sph00p normal {granite } } // Green with granite normal
Where as the texture{}, internal_texture{} wrap always starts with the
default texture and updates one to all the texture aspects.
---
In a related and FWIW category, how many know the following is a valid
way to specify a texture?
#declare Sph00 = sphere { 0, 0.7 }
#declare P = pigment { rgb <1,0.6,0.3> }
#declare N = normal { quilted 0.5 scale 1/3 }
#declare F = finish { emission 1/3 }
object { Sph00 texture { P N F } } // Aspect updates by ID type!
Bill P.
Post a reply to this message
|
|