|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
How can I mirror a texture across an axis?
Here's what I'm trying to do. I'm modeling a guitar, and a common
woodworking technique used on guitars is called 'bookmatching'. This is
used on the top of the body for aestetic reasons. Basically you take a
block of wood, say, 8" wide x 15" long x 0.5" thick. Cut it down the
middle so you now have 2 8x15x0.25 peices. Now you lay the two peices side
by side with two matching edges at the middle. The result is that many of
the features of the grain are 'mirrored' across the middle of the body. I
could probably get a good result by mirroring the texture, and then
applying a small translation or rotation so they don't match EXACTLY.
Anyone have an idea as to how to go about this?
http://www.prsguitars.com/showcase/current/513rose.html
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Tyler Eaves wrote:
> How can I mirror a texture across an axis?
>
> Here's what I'm trying to do. I'm modeling a guitar, and a common
> woodworking technique used on guitars is called 'bookmatching'. This is
> used on the top of the body for aestetic reasons. Basically you take a
> block of wood, say, 8" wide x 15" long x 0.5" thick. Cut it down the
> middle so you now have 2 8x15x0.25 peices. Now you lay the two peices side
> by side with two matching edges at the middle. The result is that many of
> the features of the grain are 'mirrored' across the middle of the body. I
> could probably get a good result by mirroring the texture, and then
> applying a small translation or rotation so they don't match EXACTLY.
> Anyone have an idea as to how to go about this?
If the thingy you're modeling is made of two pieces of wood, then model
two pieces of wood:
#local iI=0; #while(iI<2)
object { MyWoodShape
texture { MyWoodTexture
#if(iI) translate z*.3 #end // assumes 1 unit = 1 cm
}
#if(iI) scale <1,-1,1> #end
}
#local iI=iI+1;#end
Regards,
John
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it Tyler Eaves who wrote:
>How can I mirror a texture across an axis?
>
>Here's what I'm trying to do. I'm modeling a guitar, and a common
>woodworking technique used on guitars is called 'bookmatching'. This is
>used on the top of the body for aestetic reasons. Basically you take a
>block of wood, say, 8" wide x 15" long x 0.5" thick. Cut it down the
>middle so you now have 2 8x15x0.25 peices. Now you lay the two peices side
>by side with two matching edges at the middle. The result is that many of
>the features of the grain are 'mirrored' across the middle of the body. I
>could probably get a good result by mirroring the texture, and then
>applying a small translation or rotation so they don't match EXACTLY.
>Anyone have an idea as to how to go about this?
>
>http://www.prsguitars.com/showcase/current/513rose.html
I'd do it by applying a flip repeat warp to the pigment to get the
mirror effect, then applying a turbulence warp afterwards to get the two
halves to not match exactly.
pigment { Whatever
warp {repeat x*R warp x}
warp {turbulence 0.2}
}
Where "R" is chosen larger than the size of the object so that you don't
actually see the repeats.
For this particular purpose, you might find that the smoothness of
"octaves 1" produces a better turbulation.
pigment { Whatever
warp {repeat x*R warp x}
warp {turbulence 0.2 octaves 1}
}
--
Mike Williams
Gentleman of Leisure
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Sat, 03 Jul 2004 19:28:47 -0600, John VanSickle wrote:
> If the thingy you're modeling is made of two pieces of wood, then model
> two pieces of wood:
>
> #local iI=0; #while(iI<2)
> object { MyWoodShape
> texture { MyWoodTexture
> #if(iI) translate z*.3 #end // assumes 1 unit = 1 cm
> }
> #if(iI) scale <1,-1,1> #end
> }
> #local iI=iI+1;#end
>
> Regards,
> John
Unfortunatly, I'm not sure if I can do it that way. Said object is deeply
nested in CSG, and the actual object is not symetrical. To see a pic check
out the thread 'Guitar WIP' in p.b.images
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Unfortunatly, I'm not sure if I can do it that way. Said object is deeply
> nested in CSG, and the actual object is not symetrical.
Take your object...
#declare myobject = ...
and then cut it into two pieces like this:
// one side
intersection {
object {myobject}
plane {x,0}
}
// other side
intersection {
object {myobject}
plane{-x,0}
}
And then texture each piece separately, using the same base texture, but
transforming it differently.
- Slime
[ http://www.slimeland.com/ ]
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I'm super pleased with what I've come up with your help.
http://tyler.ml1.net/guitar.png
Here's the actual texture statement.
It's a triple texture, and actually done more or less it's done in real
life. The base layer is the actual wood (simularting flamed maple). Next
layer is a clear-coat finish to give it color, and then a 'burst' layer on
top that is usually referred to as an 'ocean burst'. This paint makes
this thing look killer. I'm also really pleased by how real it's looking.
#declare top_wood = texture{
pigment{P_WoodGrain12A color_map{M_Wood9A} scale 2.5 rotate <0,15,0>
warp{repeat x*6.5 offset y*.25 flip <0,0,1>}
finish{specular 1 reflection .1}
}
texture{pigment{rgbf <0,1,.1,1>}}
texture{pigment{spherical color_map{
[0.0 rgbt <0,0,0,.3>]
[0.5 rgbt <0,0,0,.6>]
[0.7 rgbt <0,0,0,1>]
[1.0 rgbt <0,0,0,1>]}
scale 8 translate <0,0,4.375>}}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it Tyler Eaves who wrote:
>I'm super pleased with what I've come up with your help.
>
>http://tyler.ml1.net/guitar.png
The way I play guitar I'd be stabbing myself in the thigh all the time.
For a safe, playable guitar, all those sharp points need to be rounded
off slightly.
--
Mike Williams
Gentleman of Leisure
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|