D7WS HOMEPAGE WORKSHOP NEUE XTRAS GALERIE WORKSHOP Automatic Translation LESERSERVICE BUCH NEWS

Director 8.5: 3D-Lingo

 

 

 

Home
Workshop-Seite

Director 8.5 Startseite

Part 1: Modelresources und ihre Eigenschaften

#plane
#box
#sphere
#cylinder
#extruder
#particle
#mesh

Modelresources werden durch Lingo erzeugt und nicht mit dem Darsteller gesichert. Sie haben unterschiedliche geometrische Eigenschaften, die im folgenden für alle Typen dargestellt werden. Die Funktionen zur Adressierung und Generierung von Models sind übergreifend gültig:

member(m).newModelResource("Name", #Typ {,#facing})

erzeugt eine neue Modelresource im Darsteller member(m). Es kann ein Name gewählt werden; als Typ sind #plane, #box, #sphere und #cylinder möglich. Mit dem optionalen Parameter facing können Sie angeben, ob nur für die Vorder-/Außenseiten (#front), Hinter-/Innenseiten (#back) oder beide (#both) ein Gitternetz generiert werden soll. Bei #both benötigt das Model die doppelte Anzahl an Shadern.

Abweichend werden Meshes und Extruder-Resourcen generiert:

member(m).newMesh("Name", numFaces, numVertices, \
numNormals, numColors, numTextureCoordinates)

bzw.

member("text").extrude3d(member(m))

Sie können die Anzahl der Modelresources eines Darstellers zählen:

member(m).modelResource.count

und nach Name oder Indexnummer auf die einzelnen Objekte zugreifen:

member(m).modelResource(2)
member(m).modelResource("Model1")

Ebenso lassen sich einzelne Objekte löschen:

member(m).deleteModelResource(2)
member(m).deleteModelResource("Model1")

Models erzeugen Sie mit der Funktion newModel() aus einer Modelresource:

resRef = member(m).newModelResource("Kreis",#sphere)
member(m).newModel("Name", resRef)

Ein Grundgerüste für das Skripting mit Primitives finden Sie hier: Director 3D Jumpstart




 

 

 

 

#plane

Generiert eine plane, rechteckige Fläche in der XZ Ebene mit einer Ecke in (width,0,length) und der anderen in (0,0,0).

Property Wert Default Anmerkungen
width float  > 0.0 50.0  
length float  > 0.0 50.0  
lengthvertices integer  >=2 4  
widthvertices integer  >=2 4  

Alle diese Eigenschaften können zur Laufzeit animiert werden.




 

 

 

 

#box

Generiert einen Quader.

Property Wert Default Anmerkungen
height float  > 0.0 50.0  
width float  > 0.0 50.0  
length float  > 0.0 50.0  
heightvertices integer  >=2 4  
lengthvertices integer  >=2 4  
widthvertices integer  >=2 4  
top boolean  true/false true  
bottom boolean  true/false true  
front boolean  true/false true  
back boolean  true/false true  
left boolean  true/false true  
right boolean  true/false true  

Alle diese Eigenschaften können zur Laufzeit animiert werden.

Ein Beispielskript finden Sie hier: Box von außen und von innen




 

 

 

 

#sphere

Die Kugeloberfläche wird durch Rotation eines Halbbogens in einem Winkelbereich (von startAngle bis endAngle) in der XY-Ebene erzeugt. Werden die Winkelangaben beim erzeugen der Kugel nicht genutzt, so wird eine vollständige Kugel generiert. startAngle = 0 und endAngle = 180 generiert eine Halbkugel.

resolution steht für die Anzahl der Polygone, die für die Erstellung der Oberfläche genutzt werden. Je höher diese Zahl, desto glatter ist die Oberfläche.

Property Wert Default Anmerkungen
radius float  > 0.0 25.0  
resolution integer  >=1 20  
startAngle float  0.0-360.0 0.0  
endAngle float  0.0-360.0 360.0  

Alle diese Eigenschaften können zur Laufzeit animiert werden.

Beispielskripte finden Sie hier: Kugel erzeugen / Ring von Kugeln erzeugen




 

 

 

 

#cylinder

Die Zylinderoberfläche wird durch Rotation einer 2D-Linie in einem Winkelbereich (von startAngle bis endAngle) in der YZ-Ebene erzeugt. Die Linie wird durch die Punkte (0, -bottomRadius, -height/2) und (0, -topRadius, height/2) definiert. Die Rotationsrichtung ist gegen den Uhrzeigersinn (beim Blick in Richtung der positiven Z-Achse). Werden die Winkelangaben beim erzeugen der Kugel nicht genutzt, so wird ein vollständiger Zylinder generiert. startAngle = 0 und endAngle = 180 generiert einen Halbzylinder.

Property Wert Default Anmerkungen
topRadius float  > 0.0 25.0  
bottomRadius float  > 0.0 25.0  
resolution integer  >=1 20  
numSegments integer  >=2 2  
topCap boolean  true/false true  
bottomCap boolean  true/false true  
height float  > 0.0 50.0  
startAngle float  0.0-360.0 0.0  
endAngle float  0.0-360.0 360.0  

Alle diese Eigenschaften können zur Laufzeit animiert werden.




 

 

 

 

#extruder

Im Gegensatz zu den anderen Modelresources wird #extruder nicht direkt in einem 3D-Darsteller, sondern mit der Methode extrude3d() des Textdarstellers erzeugt. Ist Darsteller 1 ein Text-, Darsteller 2 ein 3D-Darsteller, so erzeugt die Zeile

extrudedText = member(1).extrude3d( member(2) )

eine Modelresource in Darsteller 2, die die Extrusion des Textes in Darsteller 1 ist.

Property Wert Default Anmerkungen
tunnelDepth float   1.0-100.0 50.0  
displayFace list [#front, #tunnel, #back] [#front, #tunnel, #back]  
bevelDepth float  0.0-10.0 10.0  
bevelType symbol #none, #miter, #round #miter  
smoothness integer 1-10 5  
vertexlist Vertexliste Vertexliste undokumentiert

Alle diese Eigenschaften können zur Laufzeit animiert werden.

Beispielskripte finden Sie hier: Vectorshapes extrudieren




 

 

 

 

#particle

coming soon




 

 

 

 

#mesh

coming soon





Directorworkshop.de ist © Joachim Gola & Gerd Gillmaier 1998-2002. Alle Rechte vorbehalten.