|
|
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)
|
|