|
|
Vectorshapes extrudieren
Über einen Umweg können Sie auch Vectorshapes extrudieren,
sie also in den 3D-Raum übernehmen. Dafür zweckentfremden
Sie die #extruder-Modelresource, die
eigentlich nur für 3D-Text vorgesehen ist: zunächst wird
ein (Dummy-)Text extrudiert, dann die (undokumentierte) Eigenschaft
modelresourceRef.vertexlist auf
die Vertexliste des Vectorshapes (oder eine beliebige andere Vertexliste)
gesetzt.
Hier die Änderungen, die Sie im Listing
1 vornehmen müssen, um den Vectorshape-Darsteller "shape"
zu extrudieren:
Listing 1d
-- --------------------------
-- 1. Darsteller vorbereiten
-- --------------------------
mmb.resetworld()
-- World Light Properties
mmb.bgcolor = rgb(0,0,0)
mmb.ambientcolor = rgb(128,128,128)
mmb.directionalpreset = #bottomleft
mmb.directionalcolor = rgb(0,0,255)
-- --------------------------
-- 2. Modelresource anlegen
-- --------------------------
if voidP(mmb.modelresource(2)) then
Res = member("text").extrude3d(mmb, "test")
Res.beveltype = #miter
Res.smoothness = 10
Res.tunneldepth = 10
Res.beveldepth = 5
Res.vertexlist = member("shape").vertexlist
else
Res = mmb.modelresource(2)
end if
-- --------------------------
-- 3. Model anlegen
-- --------------------------
if voidP(mmb.model("Model1")) then
mymod = mmb.newModel("Model1", Res)
mymod.transform.rotation = vector(180,0,0)
mymod.transform.scale = vector(0.5,0.5,0.5)
end if
-- --------------------------
-- 4. Shader anlegen und zuweisen
-- --------------------------
if voidP(mmb.shader("shad")) then
myShad = mmb.newShader("shad",#standard)
myShad.renderStyle = #fill
myshad.texture = VOID
end if
mmb.model("Model1").shader = mmb.shader("shad")
In Schritt 2 werden hier die Eigenschaften des Extruders eingestellt;
der Darsteller "text" wird
nur als Dummy genutzt, die Vertexlist des Extruders schließlich
mit der Vertexlist des Darstellers "shape"
überschrieben.
|


 |