![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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](/povray.binaries.images/attachment/%3C507524d2%40news.povray.org%3E/crate5.png?ttop=443866&toff=1750&preview=1)
Preview of image 'crate4.png'
![crate4.png](/povray.binaries.images/attachment/%3C507524d2%40news.povray.org%3E/crate4.png?ttop=443866&toff=1750&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Thomas de Groot <tho### [at] degroot org> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Thomas de Groot <tho### [at] degroot org> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 10-10-2012 16:41, Anthony D. Baye wrote:
> Thomas de Groot <tho### [at] degroot org> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Thomas de Groot <tho### [at] degroot org> wrote:
> On 10-10-2012 16:41, Anthony D. Baye wrote:
> > Thomas de Groot <tho### [at] degroot org> 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)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |