|
|
This scene demonstrates how to put text on objects using text objects
and the object pattern. The MakeBall macro takes an object and resizes
it to fit the spot, the MakeTextBall macro takes a character and
automatically generates a text object and calls the MakeBall macro. The
text is flipped around for the opposite side of the ball.
MegaPOV required(for *_extent() functions and object pattern).
#include "colors.inc"
#include "textures.inc"
#version unofficial MegaPov 0.5;
//-------------------------------------------
global_settings {
assumed_gamma 1.8
max_trace_level 32
}
camera {
location <0, 3.5,-8>
up y*image_height right x*image_width
angle 25
look_at <0, 1, 0>
}
light_source {<0, 3.5,-8> color White*0.5}
box {<-100, 0,-100>, < 100, 0, 100>
texture {
pigment {checker color Black, color White}
}
}
//*******************************************
#macro MakeBall(Text, SpotSize, SpotClearance, ColorTex, WhiteTex)
#local Mn = min_extent(Text);
#local Mx = max_extent(Text);
#local PatternObj =
union {
object {Text
translate -Mn - 0.5*(Mx-Mn)
scale x + y + z*1/(Mx.z - Mn.z)
scale (x+y)*(SpotSize-SpotClearance)/vlength(<Mx.x, Mx.y, 0>
- <Mn.x, Mn.y, 0>) + z
translate -z*1
}
#debug "\n"
#debug str((Mx.z - Mn.z),0,0)
#debug "\n"
object {Text
translate -Mn - 0.5*(Mx-Mn)
scale -x + y + z*1/(Mx.z - Mn.z)
scale (x+y)*(SpotSize-SpotClearance)/vlength(<Mx.x, Mx.y, 0>
- <Mn.x, Mn.y, 0>) + z
translate z*1
}
difference {
cylinder {-z*2, z*2, 5}
cylinder {-z*2, z*2, SpotSize/2}
}
}
sphere {< 0, 0, 0>, 1
texture {
object {PatternObj texture {WhiteTex}, texture {ColorTex}}
}
}
#end
#macro MakeTextBall(Text, SpotSize, SpotClearance, ColorTex, WhiteTex)
#local TextObj =
text {ttf "crystal.ttf", Text, 1, 0}
MakeBall(TextObj, SpotSize, SpotClearance, ColorTex, WhiteTex)
#end
#declare RedTex =
texture {
pigment {color Red}
}
#declare WhiteTex =
texture {
pigment {color White}
}
object {MakeTextBall("13", 0.75, 0.1, RedTex, WhiteTex)
translate y*1
translate -x*1
}
object {MakeTextBall("13", 0.75, 0.1, RedTex, WhiteTex)
rotate y*180
translate y*1
translate x*1
}
//*******************************************
light_source {<-20, 15, -100 > color White}
//-------------------------------------------
--
Christopher James Huff
Personal: chr### [at] maccom, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tagpovrayorg, http://tag.povray.org/
<><
Post a reply to this message
|
|