Name
TEVE
Syntax
TEVE x, y, z, u, v
x, Typ real
y, Typ real
z, Typ real
u, Typ real
v, Typ real
y, Typ real
z, Typ real
u, Typ real
v, Typ real
Definiert einen Punkt (x/y/z) im 3D wie beim VERT -Befehl, gibt jedoch zusätzlich die Bezugskoordinate für die Textur (u/v) an (u/v-Mapping). TEVE ist in ArchiCAD die einzige Möglichkeit eine Textur um eine amorphe Struktur zu kleiden (wrapping)! Der Punkt selbst wird nicht dargestellt, sondern ist Grundlage für die Befehle EDGE und COOR.
Die Erweiterung von VERT durch den TEVE-Befehl besteht darin, dass in einem Befehl 2 Punktdefinitionen erfolgen:
1. Die Lage im Raum(x/y/z)
2. Die Lage auf der Textur/im Material (u/v)
Die mit dem Punkt erzeugten Vektoren und mit diesen wiederum definierten Polygone besitzen dann ebenfalls zu ihrer Präsenz im Raum ein Pendant auf der Textur. Bei der Erzeugung des Körpers mit dem BODY-Befehl werden dann die Polygone aus der Textur so verzerrt, dass sie der Geometrie des Polygons im Raum entsprechen und planar darauf projiziert. Den Algorithmus der Verzerrung wird mit dem COOR-Befehl festgelegt.
Es ist bei der Körperdefinition darauf zu achten, dass die Projektion von außen erfolgt. Erscheint die Textur gespiegelt auf der Oberfläche, ist bei der Definition des Körpers innen und außen vertauscht.
Die Erweiterung von VERT durch den TEVE-Befehl besteht darin, dass in einem Befehl 2 Punktdefinitionen erfolgen:
1. Die Lage im Raum(x/y/z)
2. Die Lage auf der Textur/im Material (u/v)
Die mit dem Punkt erzeugten Vektoren und mit diesen wiederum definierten Polygone besitzen dann ebenfalls zu ihrer Präsenz im Raum ein Pendant auf der Textur. Bei der Erzeugung des Körpers mit dem BODY-Befehl werden dann die Polygone aus der Textur so verzerrt, dass sie der Geometrie des Polygons im Raum entsprechen und planar darauf projiziert. Den Algorithmus der Verzerrung wird mit dem COOR-Befehl festgelegt.
Es ist bei der Körperdefinition darauf zu achten, dass die Projektion von außen erfolgt. Erscheint die Textur gespiegelt auf der Oberfläche, ist bei der Definition des Körpers innen und außen vertauscht.
! ------------------
! Koordinaten der Ecken
a=1 ! Breite/Kantenlänge
b=a*sin(60) ! Dreieckshöhe
h1=a/2*TAN(30) ! Schwerpunkt
z=b ! Höhe
! ------------------
! Material definieren
mx=2.5*a ! Breite der Bitmap/Textur in Metern
my=b ! Höhe der Bitmap/Textur in Metern
DEFINE TEXTURE "wrap" "tetra_wrap.gif", mx,my, 1, 0
DEFINE MATERIAL "Tetra" 20,
1, 1, 1, 0.58, 0.85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! Schraffur-Index, Farbe-Index, Textur-Index
IND(FILL, "Leere Schraffur"), 0, IND(TEXTURE, "wrap")
SET MATERIAL "Tetra"
! ------------------
! Punkte
TEVE 0,0,0 ,1.0*a,0 ! Ecke 1
TEVE a,0,0 ,0.0*a,0 ! Ecke 2
TEVE a/2,b,0 ,0.5*a,b ! Ecke 3
TEVE a/2,h1,z ,1.5*a,b ! Ecke 4
TEVE a,0,0 ,2.0*a,0 ! Ecke 5 (Lage im Raum wie 2)
TEVE a/2,b,0 ,2.5*a,b ! Ecke 6 (Lage im Raum wie 3)
! ------------------
! Kanten
EDGE 1,2, -1,-1, 0 ! Kante 1
EDGE 2,3, -1,-1, 0 ! Kante 2
EDGE 3,1, -1,-1, 0 ! Kante 3
EDGE 1,4, -1,-1, 0 ! Kante 4
EDGE 4,3, -1,-1, 0 ! Kante 5
EDGE 1,5, -1,-1, 0 ! Kante 6 (wie Kante 1)
EDGE 4,5, -1,-1, 0 ! Kante 7
EDGE 4,6, -1,-1, 0 ! Kante 8 (wie Kante 5)
EDGE 5,6, -1,-1, 0 ! Kante 9 (wie Kante 2)
! ------------------
! Flächen
PGON 3, 0, 0, 1, 2, 3 ! Fläche 1
PGON 3, 0, 0, 4, 7,-6 ! Fläche 2
PGON 3, 0, 0, 7, 9,-8 ! Fläche 3
PGON 3, 0, 0, 3, 4, 5 ! Fläche 4
! ------------------
! Texturausrichtung und Körpererzeugung
BASE
TEVE 0,0,0 ,0,0 ! Ursprung
TEVE 1,0,0 ,0,0 ! X
TEVE 0,1,0 ,0,0 ! Y
TEVE 0,0,1 ,0,0 ! Z
COOR 2+1024, 1,2,3,4
BODY -1
Damit das Beispiel funktioniert muss das Bitmap "tetra_wrap.gif" in der geladenen Bibliothek liegen. Siehe Beispielobjekt.
! Koordinaten der Ecken
a=1 ! Breite/Kantenlänge
b=a*sin(60) ! Dreieckshöhe
h1=a/2*TAN(30) ! Schwerpunkt
z=b ! Höhe
! ------------------
! Material definieren
mx=2.5*a ! Breite der Bitmap/Textur in Metern
my=b ! Höhe der Bitmap/Textur in Metern
DEFINE TEXTURE "wrap" "tetra_wrap.gif", mx,my, 1, 0
DEFINE MATERIAL "Tetra" 20,
1, 1, 1, 0.58, 0.85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! Schraffur-Index, Farbe-Index, Textur-Index
IND(FILL, "Leere Schraffur"), 0, IND(TEXTURE, "wrap")
SET MATERIAL "Tetra"
! ------------------
! Punkte
TEVE 0,0,0 ,1.0*a,0 ! Ecke 1
TEVE a,0,0 ,0.0*a,0 ! Ecke 2
TEVE a/2,b,0 ,0.5*a,b ! Ecke 3
TEVE a/2,h1,z ,1.5*a,b ! Ecke 4
TEVE a,0,0 ,2.0*a,0 ! Ecke 5 (Lage im Raum wie 2)
TEVE a/2,b,0 ,2.5*a,b ! Ecke 6 (Lage im Raum wie 3)
! ------------------
! Kanten
EDGE 1,2, -1,-1, 0 ! Kante 1
EDGE 2,3, -1,-1, 0 ! Kante 2
EDGE 3,1, -1,-1, 0 ! Kante 3
EDGE 1,4, -1,-1, 0 ! Kante 4
EDGE 4,3, -1,-1, 0 ! Kante 5
EDGE 1,5, -1,-1, 0 ! Kante 6 (wie Kante 1)
EDGE 4,5, -1,-1, 0 ! Kante 7
EDGE 4,6, -1,-1, 0 ! Kante 8 (wie Kante 5)
EDGE 5,6, -1,-1, 0 ! Kante 9 (wie Kante 2)
! ------------------
! Flächen
PGON 3, 0, 0, 1, 2, 3 ! Fläche 1
PGON 3, 0, 0, 4, 7,-6 ! Fläche 2
PGON 3, 0, 0, 7, 9,-8 ! Fläche 3
PGON 3, 0, 0, 3, 4, 5 ! Fläche 4
! ------------------
! Texturausrichtung und Körpererzeugung
BASE
TEVE 0,0,0 ,0,0 ! Ursprung
TEVE 1,0,0 ,0,0 ! X
TEVE 0,1,0 ,0,0 ! Y
TEVE 0,0,1 ,0,0 ! Z
COOR 2+1024, 1,2,3,4
BODY -1
Damit das Beispiel funktioniert muss das Bitmap "tetra_wrap.gif" in der geladenen Bibliothek liegen. Siehe Beispielobjekt.
Die u und v-Koordinaten sind nur in der photorealistischen Darstellung wirksam. Befindet sich die 3D-Darstellung im OpenGL-Modus (ab ArchiCAD 8.x), wirken sie auch in der schattierten Darstellung.
Wird der TEVE-Befehl mit VERT innerhalb eines Körpers (zwischen 2 BODY) gemischt, werden die u/v-Koordinaten der TEVE-Befehle ignoriert. Auch wenn die Verwendung von TEVE eigentlich keinen Sinn macht (z.B. bei Punkten für den COOR-Befehl), muss ein (beliebiger) u/v-Wert mit TEVE definiert werden. Werden Punkte sowohl mit VERT als auch mit TEVE definiert, verwenden sie eine gemeinsame Indexverwaltung.
Das Beispiel mit dem Tetraeder verwendet eine geschlossene Textur um einen geschlossenen Körper. Da die Material/Texturdefinition das Bitmap aber in der Fläche endlos aneinanderkachelt, müssen manche Punkte und damit auch Kanten in der Raumdefinition redundant definiert werden. Siehe im Beispiel Punkt 2/5 und Kante 1/6. Damit wird definiert, welche Punkte auf der Textur im Raum aneinandergrenzen. Der Aufwand gegenüber einer einfachen Texturierung und der Verwendung von VERT ist deutlich höher.
Wird der TEVE-Befehl mit VERT innerhalb eines Körpers (zwischen 2 BODY) gemischt, werden die u/v-Koordinaten der TEVE-Befehle ignoriert. Auch wenn die Verwendung von TEVE eigentlich keinen Sinn macht (z.B. bei Punkten für den COOR-Befehl), muss ein (beliebiger) u/v-Wert mit TEVE definiert werden. Werden Punkte sowohl mit VERT als auch mit TEVE definiert, verwenden sie eine gemeinsame Indexverwaltung.
Das Beispiel mit dem Tetraeder verwendet eine geschlossene Textur um einen geschlossenen Körper. Da die Material/Texturdefinition das Bitmap aber in der Fläche endlos aneinanderkachelt, müssen manche Punkte und damit auch Kanten in der Raumdefinition redundant definiert werden. Siehe im Beispiel Punkt 2/5 und Kante 1/6. Damit wird definiert, welche Punkte auf der Textur im Raum aneinandergrenzen. Der Aufwand gegenüber einer einfachen Texturierung und der Verwendung von VERT ist deutlich höher.
ArchiTalk: (EN)
TEVE-Befehl im Vergleich
uv-Texturierung mit cinema4D
TEVE-Befehl im Vergleich
uv-Texturierung mit cinema4D
3D-Skript
ab 6.0