POV-Ray : Newsgroups : povray.binaries.images : Object study Server Time
8 Nov 2024 10:29:17 EST (-0500)
  Object study (Message 1 to 9 of 9)  
From: ShadowMage3D
Subject: Object study
Date: 10 Oct 2012 03:33:38
Message: <507524d2@news.povray.org>
I was hoping to do some more texture work with this before showing it 
off, but it appears that I will not be able to texture it further 
without de-constructing it and applying the same texture over and over 
again to selected pieces... -.-

Which somewhat defeats the purpose.

I have some ideas - though little hope, at the moment - for developing a 
"spray-paint" macro to do lettering and stenciling, but considering that 
it would likely require millions of microscopic particles to make it 
look good, I'm not very optimistic.

Further discussion of the difficulties is in p.general

Comments and suggestions are, as usual, quite welcome.

Regards,
A.D.B.


Post a reply to this message


Attachments:
Download 'crate5.png' (488 KB) Download 'crate4.png' (794 KB)

Preview of image 'crate5.png'
crate5.png

Preview of image 'crate4.png'
crate4.png


 

From: Thomas de Groot
Subject: Re: Object study
Date: 10 Oct 2012 03:46:24
Message: <507527d0$1@news.povray.org>
On 10-10-2012 9:33, ShadowMage3D wrote:
> Comments and suggestions are, as usual, quite welcome.

Except for the overlay problem discussed in p.general, you might 
consider adding some randomness (random translation would be enough I 
guess) to the wood texture of the individual planks of the box, in order 
to avoid repetition of the pattern.

Thomas


Post a reply to this message

From: Anthony D  Baye
Subject: Re: Object study
Date: 10 Oct 2012 04:10:00
Message: <web.50752c70e3a8e9c8d97ee2b90@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:
> On 10-10-2012 9:33, ShadowMage3D wrote:
> > Comments and suggestions are, as usual, quite welcome.
>
> Except for the overlay problem discussed in p.general, you might
> consider adding some randomness (random translation would be enough I
> guess) to the wood texture of the individual planks of the box, in order
> to avoid repetition of the pattern.
>
> Thomas

been attempting to do that, not having a lot of success.

The boards are made from an isosurface that uses the function:

f_rounded_box(x,y,z,0.125, W/2-0.03125*OldWood(x-_X,y-_Y,z-_Z).x,
T/2-0.078125*OldWood(x-_X,y-_Y,z-_Z), L/2+0.25)

Where W, T and L are Width, Thickness and Length and _X, _Y, and _Z are supposed
to be random translations, but I don't think that they're getting re-calculated
every time the macro is called, or if they are, they're always the same.

Regards,
A.D.B.


Post a reply to this message

From: Jaime Vives Piqueres
Subject: Re: Object study
Date: 10 Oct 2012 06:15:33
Message: <50754ac5$1@news.povray.org>
On 10/10/12 10:06, Anthony D. Baye wrote:
> The boards are made from an isosurface that uses the function:
>
> f_rounded_box(x,y,z,0.125, W/2-0.03125*OldWood(x-_X,y-_Y,z-_Z).x,
> T/2-0.078125*OldWood(x-_X,y-_Y,z-_Z), L/2+0.25)
>
> Where W, T and L are Width, Thickness and Length and _X, _Y, and _Z
> are supposed to be random translations, but I don't think that
> they're getting re-calculated every time the macro is called, or if
> they are, they're always the same.

   But there you are translating the isosurface function, not the texture
later applied to it: you need to translate it independently.

   BTW, after seeing at last the "problem object", I think it has an easy
solution, as long the base the texture is the same for all: just lay the
"global" texture at each sub-object:

union{
   object{board1
     texture{t_wood
       // local transforms here
     }
     texture{t_dirt}
   }
   object{board2
     texture{t_wood
       // local transforms here
     }
     texture{t_dirt}
   }
   ...
}

--
Jaime


Post a reply to this message

From: Thomas de Groot
Subject: Re: Object study
Date: 10 Oct 2012 07:20:42
Message: <50755a0a$1@news.povray.org>
On 10-10-2012 12:15, Jaime Vives Piqueres wrote:
> On 10/10/12 10:06, Anthony D. Baye wrote:
>> The boards are made from an isosurface that uses the function:
>>
>> f_rounded_box(x,y,z,0.125, W/2-0.03125*OldWood(x-_X,y-_Y,z-_Z).x,
>> T/2-0.078125*OldWood(x-_X,y-_Y,z-_Z), L/2+0.25)
>>
>> Where W, T and L are Width, Thickness and Length and _X, _Y, and _Z
>> are supposed to be random translations, but I don't think that
>> they're getting re-calculated every time the macro is called, or if
>> they are, they're always the same.
>
>    But there you are translating the isosurface function, not the texture
> later applied to it: you need to translate it independently.

Exactly.

>
>    BTW, after seeing at last the "problem object", I think it has an easy
> solution, as long the base the texture is the same for all: just lay the
> "global" texture at each sub-object:
>
> union{
>    object{board1
>      texture{t_wood
>        // local transforms here
>      }
>      texture{t_dirt}
>    }
>    object{board2
>      texture{t_wood
>        // local transforms here
>      }
>      texture{t_dirt}
>    }
>    ...
> }

And of course, the randomness of the pattern is easy to include in this

union{
    object{board1
      texture{t_wood
        // local random translate here
        // local transforms here
      }
      texture{t_dirt}
    }
    object{board2
      texture{t_wood
        // local random translate here
        // local transforms here
      }
      texture{t_dirt}
    }
    ...
}

Note that if you use this for the horizontal and diagonal boards, you 
may have to counter-rotate the dirt texture by the same amount, in order 
to get a correct (?) image.

Thomas


Post a reply to this message

From: Anthony D  Baye
Subject: Re: Object study
Date: 10 Oct 2012 10:45:00
Message: <web.507588f9e3a8e9c8d97ee2b90@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:
> On 10-10-2012 12:15, Jaime Vives Piqueres wrote:
> > On 10/10/12 10:06, Anthony D. Baye wrote:
> >> The boards are made from an isosurface that uses the function:
> >>
> >> f_rounded_box(x,y,z,0.125, W/2-0.03125*OldWood(x-_X,y-_Y,z-_Z).x,
> >> T/2-0.078125*OldWood(x-_X,y-_Y,z-_Z), L/2+0.25)
> >>
> >> Where W, T and L are Width, Thickness and Length and _X, _Y, and _Z
> >> are supposed to be random translations, but I don't think that
> >> they're getting re-calculated every time the macro is called, or if
> >> they are, they're always the same.
> >
> >    But there you are translating the isosurface function, not the texture
> > later applied to it: you need to translate it independently.
>
> Exactly.
>
> >
> >    BTW, after seeing at last the "problem object", I think it has an easy
> > solution, as long the base the texture is the same for all: just lay the
> > "global" texture at each sub-object:
> >
> > union{
> >    object{board1
> >      texture{t_wood
> >        // local transforms here
> >      }
> >      texture{t_dirt}
> >    }
> >    object{board2
> >      texture{t_wood
> >        // local transforms here
> >      }
> >      texture{t_dirt}
> >    }
> >    ...
> > }
>
> And of course, the randomness of the pattern is easy to include in this
>
> union{
>     object{board1
>       texture{t_wood
>         // local random translate here
>         // local transforms here
>       }
>       texture{t_dirt}
>     }
>     object{board2
>       texture{t_wood
>         // local random translate here
>         // local transforms here
>       }
>       texture{t_dirt}
>     }
>     ...
> }
>
> Note that if you use this for the horizontal and diagonal boards, you
> may have to counter-rotate the dirt texture by the same amount, in order
> to get a correct (?) image.
>
I have been translating the texture.  It's still not having an effect because _X
_Y and _Z are always the same...  I'll post the source next time I'm at my
computer.

As for your texture solution:  It might work if dirt was all I was working
with.  But I also want to add serial numbers, company logos and handling
instructions like "this end up" or "fragile" etc...

Added to individual elements, the texture would need to be translated precisely
for each element such that adjacent elements matched up.  It's tedious to even
automate something like that.  Assuming it can be done in the first place.

And it makes the object extremely wasteful in terms of memory, if I need a lot
if them.

Of course,  my spray-paint method might not be any better, and could be much
worse.

Regards,
A.D.B.


Post a reply to this message

From: Thomas de Groot
Subject: Re: Object study
Date: 10 Oct 2012 11:00:16
Message: <50758d80@news.povray.org>
On 10-10-2012 16:41, Anthony D. Baye wrote:
> Thomas de Groot <tho### [at] degrootorg> wrote:
>> On 10-10-2012 12:15, Jaime Vives Piqueres wrote:
>>> On 10/10/12 10:06, Anthony D. Baye wrote:
>>>> The boards are made from an isosurface that uses the function:
>>>>
>>>> f_rounded_box(x,y,z,0.125, W/2-0.03125*OldWood(x-_X,y-_Y,z-_Z).x,
>>>> T/2-0.078125*OldWood(x-_X,y-_Y,z-_Z), L/2+0.25)
>>>>
>>>> Where W, T and L are Width, Thickness and Length and _X, _Y, and _Z
>>>> are supposed to be random translations, but I don't think that
>>>> they're getting re-calculated every time the macro is called, or if
>>>> they are, they're always the same.
>>>
>>>     But there you are translating the isosurface function, not the texture
>>> later applied to it: you need to translate it independently.
>>
>> Exactly.
>>
>>>
>>>     BTW, after seeing at last the "problem object", I think it has an easy
>>> solution, as long the base the texture is the same for all: just lay the
>>> "global" texture at each sub-object:
>>>
>>> union{
>>>     object{board1
>>>       texture{t_wood
>>>         // local transforms here
>>>       }
>>>       texture{t_dirt}
>>>     }
>>>     object{board2
>>>       texture{t_wood
>>>         // local transforms here
>>>       }
>>>       texture{t_dirt}
>>>     }
>>>     ...
>>> }
>>
>> And of course, the randomness of the pattern is easy to include in this
>>
>> union{
>>      object{board1
>>        texture{t_wood
>>          // local random translate here
>>          // local transforms here
>>        }
>>        texture{t_dirt}
>>      }
>>      object{board2
>>        texture{t_wood
>>          // local random translate here
>>          // local transforms here
>>        }
>>        texture{t_dirt}
>>      }
>>      ...
>> }
>>
>> Note that if you use this for the horizontal and diagonal boards, you
>> may have to counter-rotate the dirt texture by the same amount, in order
>> to get a correct (?) image.
>>
> I have been translating the texture.  It's still not having an effect because _X
> _Y and _Z are always the same...  I'll post the source next time I'm at my
> computer.

Hmmm... You need to make a randomness macro, which is called each time a 
texture is applied (not tested):

#local R = seed(123);
#macro RandTrans(R)
   translate rand(R)
#end

which would be used as follows:
         texture{t_wood
           RandTrans
           // local transforms here
         }

>
> As for your texture solution:  It might work if dirt was all I was working
> with.  But I also want to add serial numbers, company logos and handling
> instructions like "this end up" or "fragile" etc...

Yes, that makes it difficult indeed... I have to ponder this a bit more...

Thomas


Post a reply to this message

From: Anthony D  Baye
Subject: Re: Object study
Date: 10 Oct 2012 13:30:00
Message: <web.5075af7ee3a8e9c8d97ee2b90@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:
> On 10-10-2012 16:41, Anthony D. Baye wrote:
> > Thomas de Groot <tho### [at] degrootorg> wrote:
> >> On 10-10-2012 12:15, Jaime Vives Piqueres wrote:
> >>> On 10/10/12 10:06, Anthony D. Baye wrote:
> >>>> The boards are made from an isosurface that uses the function:
> >>>>
> >>>> f_rounded_box(x,y,z,0.125, W/2-0.03125*OldWood(x-_X,y-_Y,z-_Z).x,
> >>>> T/2-0.078125*OldWood(x-_X,y-_Y,z-_Z), L/2+0.25)
> >>>>
> >>>> Where W, T and L are Width, Thickness and Length and _X, _Y, and _Z
> >>>> are supposed to be random translations, but I don't think that
> >>>> they're getting re-calculated every time the macro is called, or if
> >>>> they are, they're always the same.
> >>>
> >>>     But there you are translating the isosurface function, not the texture
> >>> later applied to it: you need to translate it independently.
> >>
> >> Exactly.
> >>
> >>>
> >>>     BTW, after seeing at last the "problem object", I think it has an easy
> >>> solution, as long the base the texture is the same for all: just lay the
> >>> "global" texture at each sub-object:
> >>>
> >>> union{
> >>>     object{board1
> >>>       texture{t_wood
> >>>         // local transforms here
> >>>       }
> >>>       texture{t_dirt}
> >>>     }
> >>>     object{board2
> >>>       texture{t_wood
> >>>         // local transforms here
> >>>       }
> >>>       texture{t_dirt}
> >>>     }
> >>>     ...
> >>> }
> >>
> >> And of course, the randomness of the pattern is easy to include in this
> >>
> >> union{
> >>      object{board1
> >>        texture{t_wood
> >>          // local random translate here
> >>          // local transforms here
> >>        }
> >>        texture{t_dirt}
> >>      }
> >>      object{board2
> >>        texture{t_wood
> >>          // local random translate here
> >>          // local transforms here
> >>        }
> >>        texture{t_dirt}
> >>      }
> >>      ...
> >> }
> >>
> >> Note that if you use this for the horizontal and diagonal boards, you
> >> may have to counter-rotate the dirt texture by the same amount, in order
> >> to get a correct (?) image.
> >>
> > I have been translating the texture.  It's still not having an effect because _X
> > _Y and _Z are always the same...  I'll post the source next time I'm at my
> > computer.
>
> Hmmm... You need to make a randomness macro, which is called each time a
> texture is applied (not tested):
>
> #local R = seed(123);
> #macro RandTrans(R)
>    translate rand(R)
> #end
>
> which would be used as follows:
>          texture{t_wood
>            RandTrans
>            // local transforms here
>          }
>
> >
> > As for your texture solution:  It might work if dirt was all I was working
> > with.  But I also want to add serial numbers, company logos and handling
> > instructions like "this end up" or "fragile" etc...
>
> Yes, that makes it difficult indeed... I have to ponder this a bit more...
>
> Thomas

personally, I think it would be best if the textures on a given object were
sampled in reverse-order, with the last being sampled first.  you could stop
when you encounter a texture with no transparency and warn if there are textures
that aren't sampled.

Regards,
A.D.B.

p,s. - source below.


Post a reply to this message


Attachments:
Download 'crate2.pov.txt' (5 KB)

From: Alain
Subject: Re: Object study
Date: 14 Oct 2012 15:23:48
Message: <507b1144$1@news.povray.org>

> I was hoping to do some more texture work with this before showing it
> off, but it appears that I will not be able to texture it further
> without de-constructing it and applying the same texture over and over
> again to selected pieces... -.-
>
> Which somewhat defeats the purpose.
>
> I have some ideas - though little hope, at the moment - for developing a
> "spray-paint" macro to do lettering and stenciling, but considering that
> it would likely require millions of microscopic particles to make it
> look good, I'm not very optimistic.
>
> Further discussion of the difficulties is in p.general
>
> Comments and suggestions are, as usual, quite welcome.
>
> Regards,
> A.D.B.

For the parallel planks forming each faces, did you look at using warp 
with repeat? Add some flip and offset to effectively break the 
repetition. Also, you can layer a few textures each having different 
flip patterns and offsets. I've done it and it works great. That way, it 
would be easy to apply some staining or marking as an additional top layer.
It only leave the diagonals, horizontals and some corner vertical pieces 
to be textured individualy.


Alain


Post a reply to this message

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