mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: So 11.12.2016 13:06 Benutzername: Passwort: Auto-Login

Thema: Flash Vektoren 3D vom 06.07.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> Flash Vektoren 3D
Autor Nachricht
silox
Threadersteller

Dabei seit: 05.05.2004
Ort: Landau (Isar)
Alter: 30
Geschlecht: Männlich
Verfasst Mi 06.07.2005 13:57
Titel

Flash Vektoren 3D

Antworten mit Zitat Zum Seitenanfang

hoi... habn problem... nähmlich keine ahnung von vektorenzeug in 3d und das alles in flash...

vielleicht hat wer tutorials am start.. hab vor einiger zeit mal so einen einfachen würfel mit outlines in 3d gesehn.. der rumrotiert... aber weis nicht mehr wo... sowas würde mir VIELLEICHT! auch schon ein wenig weiter helfen...

ich hab keine ahnung ob die dinger programiert/berechnet werden müssen.. also die vektoren.. oder ob das anders auch geht.. dsehalb mal in programmierung rein..

danke für die hilfe.. mfg silox


Zuletzt bearbeitet von silox am Mi 06.07.2005 13:58, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
l'Audiophile

Dabei seit: 16.09.2004
Ort: Berlin
Alter: 35
Geschlecht: Männlich
Verfasst Mi 06.07.2005 14:29
Titel

Antworten mit Zitat Zum Seitenanfang

Servus silox

Der einfachste und auch häufig benutzte Weg ist, 3D-Objekte mit Tools wie z.B. Swift 3D zu erstellen und zu aniemieren und dann in Flash zu importieren.

Klar kannst dus auch programmieren. Das hat aber weniger mit Actionscript, als mit höherer Mathematik (Matrizen usw.) zu tun (bei etwas aufwändigeren Sachen zum Beispiel).

Hie noch ein paar Links:

1
2

Gruß PeJot
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
gtz

Dabei seit: 15.04.2002
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Mi 06.07.2005 14:33
Titel

Antworten mit Zitat Zum Seitenanfang

wenn du richtig echtes 3d in flash realisiern willst, dann musste dir die engline selber schreiben. da das aber ja über einfache räumliche geometrie nich hinausgeht, is das nich so schwer.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
l'Audiophile

Dabei seit: 16.09.2004
Ort: Berlin
Alter: 35
Geschlecht: Männlich
Verfasst Mi 06.07.2005 14:43
Titel

Antworten mit Zitat Zum Seitenanfang

gtz hat geschrieben:
wenn du richtig echtes 3d in flash realisiern willst, dann musste dir die engline selber schreiben.


Man sollte sich aber immer vor Augen halten, dass in Sachen 3D Flash nicht gerade das performanteste Spielzeug ist. *zwinker*
Und so ist man bei ner selbstgeschriebenen Engine schnell in einer Performance-Sackgasse angelangt.


gtz hat geschrieben:
da das aber ja über einfache räumliche geometrie nich hinausgeht, is das nich so schwer.


Nö, ansich nicht. Aber da es ja hier hauptsächlich um das Animieren von 3D-Objekten geht, wird man mit einfacher Geometrie bei komplexen Gebilden wohl nicht weit kommen.


Hier als Beispiel eine Mini-Engine für einen simplen Würfel. Bei komplexeren Sachen schauts schon ganz anders aus

Code:

cubeData = [{colour:0xff9900,
         Vertices:[
                 {x:-50, y:50, z:50},
                 {x:-50, y:50, z:-50},
                 {x:50, y:50, z:-50},
                 {x:50, y:50, z:50}
                 ]},
         {colour:0xff9900,
         Vertices:[
                 {x:-50, y:-50, z:-50},
                 {x:-50, y:-50, z:50},
                 {x:50, y:-50, z:50},
                 {x:50, y:-50, z:-50}
                 ]},
         {colour:0xff8800,
         Vertices:[
                 {x:50, y:-50, z:50},
                 {x:50, y:50, z:50},
                 {x:50, y:50, z:-50},
                 {x:50, y:-50, z:-50}
                 ]},
         {colour:0xff8800,
         Vertices:[
                 {x:-50, y:-50, z:-50},
                 {x:-50, y:50, z:-50},
                 {x:-50, y:50, z:50},
                 {x:-50, y:-50, z:50}
                 ]},
         {colour:0xffaa00,
         Vertices:[
                 {x:-50, y:50, z:-50},
                 {x:-50, y:-50, z:-50},
                 {x:50, y:-50, z:-50},
                 {x:50, y:50, z:-50}
                 ]},
         {colour:0xffaa00,
         Vertices:[
                 {x:50, y:50, z:50},
                 {x:50, y:-50, z:50},
                 {x:-50, y:-50, z:50},
                 {x:-50, y:50, z:50}
                 ]}
         ];
Objekt3d = function (data3d) {
   this.data3d = data3d;
   this.move3d = function(x, y, z) {
      var k = 0;
      while (k<this.data3d.length) {
         var i = 0;
         while (i<this.data3d[k].Vertices.length) {
            this.data3d[k].Vertices[i].x = this.data3d[k].Vertices[i].x+x;
            this.data3d[k].Vertices[i].y = this.data3d[k].Vertices[i].y+y;
            this.data3d[k].Vertices[i].z = this.data3d[k].Vertices[i].z+z;
            i++;
         }
         k++;
      }
   };
   this.scale3d = function(x, y, z) {
      var k = 0;
      while (k<this.data3d.length) {
         var i = 0;
         while (i<this.data3d[k].Vertices.length) {
            this.data3d[k].Vertices[i].x = this.data3d[k].Vertices[i].x*x;
            this.data3d[k].Vertices[i].y = this.data3d[k].Vertices[i].y*y;
            this.data3d[k].Vertices[i].z = this.data3d[k].Vertices[i].z*z;
            i++;
         }
         k++;
      }
   };
   this.rotate3d = function(xa, ya) {
      var rad = Math.PI/180;
      var px;
      var py;
      var pz;
      var sin_xa;
      var sin_ya;
      var cos_xa;
      var cos_ya;
      var tempz;
      var k = 0;
      while (k<this.data3d.length) {
         var i = 0;
         while (i<this.data3d[k].Vertices.length) {
            px = this.data3d[k].Vertices[i].x;
            py = this.data3d[k].Vertices[i].y;
            pz = this.data3d[k].Vertices[i].z;
            cos_ya = Math.cos(ya*rad);
            sin_ya = Math.sin(ya*rad);
            cos_xa = Math.cos(xa*rad);
            sin_xa = Math.sin(xa*rad);
            tempz = (pz*cos_ya)-(px*sin_ya);
            this.data3d[k].Vertices[i].x = (pz*sin_ya)+(px*cos_ya);
            this.data3d[k].Vertices[i].y = (py*cos_xa)-(tempz*sin_xa);
            this.data3d[k].Vertices[i].z = (py*sin_xa)+(tempz*cos_xa);
            i++;
         }
         k++;
      }
   };
};
Kamera3d = function (Objekt3d, distance, angle, loc) {
   this.Objekt3d = Objekt3d;
   this.distance = distance;
   this.angle = angle;
   this.loc = loc;
   this.mc = this.create();
};
Kamera3d.prototype.create = function() {
   return (this.loc.createEmptyMovieClip("camMC"+Stage.camNum, Stage.camNum++));
};
Kamera3d.prototype.render = function() {
   this.mc.clear();
   var z;
   var pers;
   var sx;
   var sy;
   var tx;
   var ty;
   var polygon;
   var k = 0;
   while (k<this.Objekt3d.data3d.length) {
      polygon = [];
      var i = 0;
      while (i<this.Objekt3d.data3d[k].Vertices.length) {
         z = this.Objekt3d.data3d[k].Vertices[i].z+this.distance;
         pers = this.angle/z;
         sx = this.Objekt3d.data3d[k].Vertices[i].x*pers;
         sy = this.Objekt3d.data3d[k].Vertices[i].y*pers;
         polygon.push({sx:sx, sy:sy});
         i++;
      }
      z = ((polygon[1].sx-polygon[0].sx)*(polygon[2].sy-polygon[0].sy))-((polygon[1].sy-polygon[0].sy)*(polygon[2].sx-polygon[0].sx));
      if (z>0) {
         this.mc.beginFill(this.Objekt3d.data3d[k].colour, this.Objekt3d.data3d[k].colour);
         this.mc.moveTo(polygon[0].sx, polygon[0].sy);
         this.mc.lineTo(polygon[1].sx, polygon[1].sy);
         this.mc.lineTo(polygon[2].sx, polygon[2].sy);
         this.mc.lineTo(polygon[3].sx, polygon[3].sy);
         this.mc.lineTo(polygon[0].sx, polygon[0].sy);
      }
      k++;
   }
};
Cube3d = new Objekt3d(cubeData);
Scene3d = new Kamera3d(Cube3d, 200, 400, _root);
Scene3d.render();
Scene3d.mc._x = 275;
Scene3d.mc._y = 175;
_root.onEnterFrame = function() {
   Cube3d.rotate3d((this._xmouse+100)/100, (this._ymouse+200)/100);
   Scene3d.render();
};



As von Matze Kannengießer
www.flashstar.de


Zuletzt bearbeitet von l'Audiophile am Mi 06.07.2005 14:57, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
gtz

Dabei seit: 15.04.2002
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Mi 06.07.2005 14:51
Titel

Antworten mit Zitat Zum Seitenanfang

letztenendes sind das alles nur punkttransformationen vom 3dimensionalen in den 2dimensionalen raum. die materie ist hinreichend und umfassend verstanden und kann in jedem mathebuch nachgeschlagen werden.
wenn man sich dann noch was einfallen lässt, wie man objekte anständig beschreibt, dann is das schon die halbe miete.

ein wenig komplzierter wird der spass, wenn man nicht nur wireframe, sondern gefüllte flächen haben will. oder gar geshadete.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
JanG

Dabei seit: 13.10.2002
Ort: Köln/Düsseldorf
Alter: -
Geschlecht: Männlich
Verfasst Mi 06.07.2005 16:00
Titel

Antworten mit Zitat Zum Seitenanfang

hehee... Irgendwie war klar, das hier irgendwas vom matze landen wird. Grins

3D in Flash ist für mich immer > Swift 3D (also direkt erkennbar, das es nen Zusatztool ist)
oder halt pseudo 3D a la matze! *Thumbs up!*

Jenachdem sind die pseudocodings echt hilfreich. Smirgel codete mal komplette pixelfonts, die man selber baut und dann nutzen kann. etwas umständlich, aber nette anis sind möglich...

http://www.flactory.de/flashfonts/

Zum Thread im FF > http://www.flashforum.de/forum/showthread.php?t=80717&highlight=font

Peaze!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
l'Audiophile

Dabei seit: 16.09.2004
Ort: Berlin
Alter: 35
Geschlecht: Männlich
Verfasst Mi 06.07.2005 16:22
Titel

Antworten mit Zitat Zum Seitenanfang

JanG hat geschrieben:
hehee... Irgendwie war klar, das hier irgendwas vom matze landen wird. Grins


Jaja Matze, die Mutter Theresa der deutschen Flashcommunity. Grins
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
silox
Threadersteller

Dabei seit: 05.05.2004
Ort: Landau (Isar)
Alter: 30
Geschlecht: Männlich
Verfasst Do 07.07.2005 08:10
Titel

Antworten mit Zitat Zum Seitenanfang

ich dank euch jungX! ich kuck mir die ganzen sachen mal an! wenns was gibt.. meld ich mich!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Erdkugel (Vektoren)
jpeg in Vektoren
Bitmaps vs Vektoren
Illustrator Punktraster als vektoren
PDF in Freehand/Vektoren erhalten...
Darstellungsfehler bei in pdf eingebauten vektoren
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Multimedia


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.