![](/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) |
Modelled after the oval boxes that were produced by the Shakers. I really
like playing with wood textures, though the "wood" keyword was never
actually used in any of these textures/pigments. :-)
CSG with isosurfaces with an image_map pigment to create the appearance of
overlapping strips (basically, just like a heightfield wrapped around a
cylinder).
--
Jeremy
www.beantoad.com
Post a reply to this message
Attachments:
Download 'ovalbox-1.jpg' (114 KB)
Preview of image 'ovalbox-1.jpg'
![ovalbox-1.jpg](/povray.binaries.images/attachment/%3C4210cfca%40news.povray.org%3E/ovalbox-1.jpg?ttop=441697&toff=5600&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) |
Jeremy M. Praay wrote:
> Modelled after the oval boxes that were produced by the Shakers. I really
> like playing with wood textures, though the "wood" keyword was never
> actually used in any of these textures/pigments. :-)
>
> CSG with isosurfaces with an image_map pigment to create the appearance of
> overlapping strips (basically, just like a heightfield wrapped around a
> cylinder).
>
>
Beautiful. Some really nice subtlties like the way the tacks sink into
the wood grain and the vertical drizzle of yellow. So I take it you are
combining UV mapping with procedural texture or did you lay the texture
down on the imagemap along with the strip shapes?
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) |
"Jim Charter" <jrc### [at] msn com> wrote in message
news:4210db55@news.povray.org...
> Beautiful. Some really nice subtlties like the way the tacks sink into
> the wood grain and the vertical drizzle of yellow.
:-)
> So I take it you are combining UV mapping with procedural texture or did
> you lay the texture down on the imagemap along with the strip shapes?
UV-mapping? Blasphemy! ;-)
It's all procedural. I think I used about 5-6 layers of texture to create
the wood. Actually, I have nothing against uv-mapping, but I generally find
it easier (and more fulfilling) to use procedural unless I'm dealing with
something where pictures/drawings are involved. But I don't want to paint
myself into a corner, either. Playing around with Gilles' Mini Cooper demo
taught me a lot about how to use heightfields in conjunction with
photographic textures, and some day I may make use of that. For example,
it's difficult (though not impossible) to produce "wear" in the proper
places by using procedural textures. But I digress...
To make the fingers have a different texture than the wood that they are
tacked onto, I simply made a cylinder slightly larger than most of the
heightfield cylinder (technically an isosurface) and said "translate x*20"
for the texture. I experimented with more complex solutions ("cylindrical"
pigments), but that was the simplest solution.
I had a difficult time forcing myself to use a heightfield, and I actually
produced a version that was pure CSG. But with the heightfield, I was able
to make the tack holes, and then place the tacks in them one at a time, as
well as to make the "fingers" a little bit round. Basically, it was about
the same process that I used for my old radios (the "face-plates" were all
heightfields), except wrapped around a cylinder. Anyway, I think it makes
for a more realistic object, while keeping all of the benefits of using CSG.
--
Jeremy
www.beantoad.com
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) |
"Jeremy M. Praay" <jer### [at] questsoftware com> wrote in message
news:4210f228@news.povray.org...
> Anyway, I think it makes
> for a more realistic object, while keeping all of the benefits of using
CSG.
>
very much so. great texture too. however, what are those artifacts on the
bottom left corner of the lid? they look like they sort of continue all
around the bottom edge of the lid, but are more noticeable on the left side.
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) |
"Ross" <rli### [at] everestkc net> wrote in message
news:4210f67c$1@news.povray.org...
>
> very much so. great texture too. however, what are those artifacts on the
> bottom left corner of the lid? they look like they sort of continue all
> around the bottom edge of the lid, but are more noticeable on the left
> side.
>
Thanks!
...and, Hmmm... I'm not sure. I hadn't noticed that. I thought those
might be j-peg artifacts, but they're in the original BMP image also. I
wonder if they are a result of my isosurface-heightfield. Maybe I need to
check my max-gradient or something (though I always thought that led to
black spots).
I'll have to fiddle around with it a bit more, and perhaps see if I missed a
warning in the code parser.
--
Jeremy
www.beantoad.com
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) |
Jeremy M. Praay wrote:
> "Jim Charter" <jrc### [at] msn com> wrote in message
> news:4210db55@news.povray.org...
>
>
>>Beautiful. Some really nice subtlties like the way the tacks sink into
>>the wood grain and the vertical drizzle of yellow.
>
>
> :-)
>
>
>>So I take it you are combining UV mapping with procedural texture or did
>>you lay the texture down on the imagemap along with the strip shapes?
>
>
> UV-mapping? Blasphemy! ;-)
>
> It's all procedural.
Okay ;) I would have thought it odd if it wasn't but I just wanted to be
sure. I think to be fair, if you use the hf_cylinder macro you are
using a type of uv mapping implicitly, in the sense that a uv space is
being projected, which is what I meant.
I think I used about 5-6 layers of texture to create
> the wood. Actually, I have nothing against uv-mapping, but I generally find
> it easier (and more fulfilling) to use procedural unless I'm dealing with
> something where pictures/drawings are involved.
Well the fine grain of the wood is *extremely* convincing whatever the
case. So you are using a texture like granite or crackle which works the
same in all dimensions and so appears to wrap very well, especially on
regular shapes. This is also my preferred solution. Are you applying a
normal too it looks like?
But you are dealing with drawing aren't you?
But I don't want to paint
> myself into a corner, either. Playing around with Gilles' Mini Cooper demo
> taught me a lot about how to use heightfields in conjunction with
> photographic textures, and some day I may make use of that. For example,
> it's difficult (though not impossible) to produce "wear" in the proper
> places by using procedural textures. But I digress...
Yeah I was just playing with putting functions into hf's myself in the
hope of speeding up the isowood.inc for limited applications or for
testing, but the way the pattern gets transformed when applied to the hf
object is fairly mind-bending. ie it seems to automatically rotate the
wood pattern to align it with the vertical. Incidently I don't know if I
am experiencing a "senior moment" but I could not find where it is
covered in the official docs, how to apply functions to hf's. I had to
go rummaging through old files to remember.
>
> To make the fingers have a different texture than the wood that they are
> tacked onto, I simply made a cylinder slightly larger than most of the
> heightfield cylinder (technically an isosurface) and said "translate x*20"
> for the texture. I experimented with more complex solutions ("cylindrical"
> pigments), but that was the simplest solution.
>
> I had a difficult time forcing myself to use a heightfield, and I actually
> produced a version that was pure CSG.
How? You are still dependent on the image_map to displace the "fingers"
are you not? I can picture uv mapping the image to a cylinder, and I
can picture making the image a function and displacing an iso's surface
with it, but I can't picture doing both.
But with the heightfield, I was able
> to make the tack holes, and then place the tacks in them one at a time, as
> well as to make the "fingers" a little bit round. Basically, it was about
> the same process that I used for my old radios (the "face-plates" were all
> heightfields), except wrapped around a cylinder. Anyway, I think it makes
> for a more realistic object, while keeping all of the benefits of using CSG.
>
Well it is a very cool result and it stands up to magnification very well
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) |
"Jeremy M. Praay" <jer### [at] questsoftware com> wrote in message
news:4210f96b$1@news.povray.org...
>
> "Ross" <rli### [at] everestkc net> wrote in message
> news:4210f67c$1@news.povray.org...
>>
>> very much so. great texture too. however, what are those artifacts on the
>> bottom left corner of the lid? they look like they sort of continue all
>> around the bottom edge of the lid, but are more noticeable on the left
>> side.
> Maybe I need to check my max-gradient or something (though I always
> thought that led to black spots).
>
Increasing the max_gradient only made more spots appear, which had me
puzzled for a bit. Eventually, I realized that it was creating a ring
around the object (like Saturn), and it just so happened that it was right
along the bottom, which corresponded to the bottom of the
pigment-image_map-heightfield-thing. Adjusting "contained_by" by an
extremely small fraction fixed it.
I guess it was something similar to a coincident surfaces problem.
--
Jeremy
www.beantoad.com
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) |
"Jim Charter" <jrc### [at] msn com> wrote in message
news:421115c3$1@news.povray.org...
> Jeremy M. Praay wrote:
>>
>> UV-mapping? Blasphemy! ;-)
>>
>> It's all procedural.
>
> Okay ;) I would have thought it odd if it wasn't but I just wanted to be
> sure. I think to be fair, if you use the hf_cylinder macro you are using
> a type of uv mapping implicitly, in the sense that a uv space is being
> projected, which is what I meant.
Ahh. Ok, then. I'll forgive the heresy. ;-)
I actually looked at the hf_cylinder macro, and it scared me, so I simply
used a isosurface-pigment-image_map-thing. I have no idea how to refer to
it, but it's something I've used before, so it was easy to adapt. I think
Christoph Hormann does something similar in some of the iso_csg library
macros (IC_HF_Cylinder).
>
> I think I used about 5-6 layers of texture to create
>> the wood. Actually, I have nothing against uv-mapping, but I generally
>> find it easier (and more fulfilling) to use procedural unless I'm dealing
>> with something where pictures/drawings are involved.
>
> Well the fine grain of the wood is *extremely* convincing whatever the
> case. So you are using a texture like granite or crackle which works the
> same in all dimensions and so appears to wrap very well, especially on
> regular shapes. This is also my preferred solution. Are you applying a
> normal too it looks like?
Yep. Granite, bozo, agate. Then I generally just stretched them in one
direction or the other. For the lid, I also used a warp {repeat 2*x flip
<1,0,0>} on each layer, and rotate it slightly (before the warp). It's
something I figured out a long time ago, and haven't modified much since.
It makes nice veneer too, but it can also create the appearance of a wood
cross-section without using "wood."
<snip>
>> To make the fingers have a different texture than the wood that they are
>> tacked onto, I simply made a cylinder slightly larger than most of the
>> heightfield cylinder (technically an isosurface) and said "translate
>> x*20" for the texture. I experimented with more complex solutions
>> ("cylindrical" pigments), but that was the simplest solution.
>>
>> I had a difficult time forcing myself to use a heightfield, and I
>> actually produced a version that was pure CSG.
>
> How? You are still dependent on the image_map to displace the "fingers"
> are you not? I can picture uv mapping the image to a cylinder, and I can
> picture making the image a function and displacing an iso's surface with
> it, but I can't picture doing both.
I should probably restate that. I had a cylinder for the box, then I
created the fingers by differencing cylinders (turned 90 degrees) from a
cylinder (the same size as the box) and then unioning the box-cylinder with
the differenced (fingers) cylinder and translating the differenced one
slightly -z, so that the fingers would stick out. But then I realized that
rounding the differenced parts was nearly impossible, and without some
rounded edges on the fingers, it just didn't look right, so I gave up on
that, and turned to heightfields, which up to that point, I hadn't used.
To be technically correct, the rounded edges (on top of the lid) which you
see now are actually the Round_Cylinder_Union.
I think I'll add the source to the pov-ray wiki, though I might want to
clean it up a little bit first.
--
Jeremy
www.beantoad.com
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) |
Woah, I own one of those. This is a pretty good reproduction, with a
particularly nice job on the wood texture. Nice work.
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) |
Jeremy M. Praay wrote:
> "Jim Charter" <jrc### [at] msn com> wrote in message
> news:421115c3$1@news.povray.org...
>
>>Jeremy M. Praay wrote:
>>
>>>UV-mapping? Blasphemy! ;-)
>>>
>>>It's all procedural.
>>
>>Okay ;) I would have thought it odd if it wasn't but I just wanted to be
>>sure. I think to be fair, if you use the hf_cylinder macro you are using
>>a type of uv mapping implicitly, in the sense that a uv space is being
>>projected, which is what I meant.
>
>
> Ahh. Ok, then. I'll forgive the heresy. ;-)
>
> I actually looked at the hf_cylinder macro, and it scared me, so I simply
> used a isosurface-pigment-image_map-thing. I have no idea how to refer to
> it, but it's something I've used before, so it was easy to adapt. I think
> Christoph Hormann does something similar in some of the iso_csg library
> macros (IC_HF_Cylinder).
>
>
Okay, so you are doing the thing I couldn't picture. I'd forgotten
about the IC_HF_Cylinder() macro in iso_csg. ( It does tend to confuse
the term heightfield or hf which I normally would use to mean mesh. )
My mistake. So that makes my reference to UV space implicit only in
the fact of the image_map keyword and that's about it. I'll shutup now.
>
> I should probably restate that. I had a cylinder for the box, then I
> created the fingers by differencing cylinders (turned 90 degrees) from a
> cylinder (the same size as the box) and then unioning the box-cylinder with
> the differenced (fingers) cylinder and translating the differenced one
> slightly -z, so that the fingers would stick out. But then I realized that
> rounding the differenced parts was nearly impossible, and without some
> rounded edges on the fingers, it just didn't look right, so I gave up on
> that, and turned to heightfields, which up to that point, I hadn't used.
>
> To be technically correct, the rounded edges (on top of the lid) which you
> see now are actually the Round_Cylinder_Union.
>
> I think I'll add the source to the pov-ray wiki, though I might want to
> clean it up a little bit first.
>
Yeah, after I posted I realized what you meant. Duh.
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) |