Wie schließlich, papervision3d (das beliebte 3D-Rendering-Paket für Flash) gezeichnet Texturen auf den Bildschirm zeichnen?Wie transformiert Papervision3d Texturen?
Wird intern eines der Flash-Rendering-Geräte verwendet - d. H. Indem Sie Texturen in DisplayObjects zeichnen und transformieren, oder zum Beispiel mit 3D MovieClips? Oder vielleicht Filter? Oder liest es letztendlich nur Pixel aus den Texturen und malt sie in die Ausgabe, wie Sie es in jeder Softwareplattform tun würden?
Ich frage, weil die einfache Antwort die letztere wäre, aber nach ein wenig Test scheint es, dass getPixel
und setPixel
einfach nicht schnell genug für diese Art von Ansatz sind, so dass es scheint, als müsse etwas arkaner gehen auf.
Danke für jede Info!
Bearbeiten - meine Zusammenfassung der Antwort: Papervision macht nicht perspektive Transformationen. Es skaliert und verzerrt nur Transformationen auf jedem Texturdreieck, und die Illusion der Perspektive entsteht, wenn Sie genügend Dreiecke verwenden. Die affinen Transformationen nutzen das Flash-Rendering-Gerät, so dass kostspielige Pixeloperationen vermieden werden.
Vielen Dank für die Antwort! Aber du hast mich beim Schritt "Transformationen ausführen" verwirrt. Wenn sie sich mit irgendeiner Art von Pixel umwandeln, müssen dann nicht alle Pixel in den transformierten BitmapDaten abgerufen und gesetzt werden? Oder Sie könnten einen DisplacementMapFilter verwenden, aber Sie müssten dennoch jedes Pixel in der Karte festlegen. Oder meinst du, dass die Transformation mit Flash-Rendering-Gerät getan wird (d. H. In eine MC malen, transformieren und in eine Bitmap zurückziehen)? Das scheint machbar, aber dann scheint es, als wären Sie auf affine Transformationen beschränkt, so dass es keine Perspektive geben würde. – fenomas
Wenn Sie eine BitmapFill festlegen, können Sie auch eine Matrix definieren, die beim Zeichnen verwendet wird. Diese Matrix transformiert die Bitmap so, wie sie gezeichnet wird. (zum Beispiel Schrägbild des Bildes) Dies ist Verschleiß Dreiecke ins Spiel kommt. Ein Rechteck ist in zwei (oder mehr) Dreiecke unterteilt. Beim Zeichnen wird die Bitmap für jedes Dreieck anders ausgerichtet, um die richtige Perspektive zu erhalten. Je mehr Unterteilungen, desto besser ist die Genauigkeit. –
AH! Ich verstehe es jetzt, es macht überhaupt keine perspektivische Transformation - es macht affine Verzerrungen, und die Illusion der Perspektive entsteht, wenn mehr Unterteilungen verwendet werden. Verstanden, vielen Dank! – fenomas