Re: Maximale mögliche Auflösung / Farbanzahl
Verfasst: Mo 29. Jun 2009, 12:17
Hm,
also das größte Problem eine Ultra-Mega-Grafik hinzubekommen sehe ich eigentlich im mangelnden Propeller-Ram. 32KB sind für hohe Auflösungen einfach zu wenig. Zumal man da ja nicht nur die Graifk ablegt, sondern auch noch die Programme und deren Daten aussen umzu.
Wenn man schnelles 3D machen möchte, braucht man den Speicher auf jeden fall auch noch doppelt damit man im Hintergrund ein 2. Bild aufbauen kann während das 1. gerade angezeigt wird. Die reinen 3D- Berechnungen denke ich kann ein Propeller nicht mehr wirklich in Echtzeit leisten, das sind zu viele Operationen die er ausführen müsste. Das wären 16 Additionen und 16 Multiplikationen pro 3D- Eckpunkt, alles Floatingpoint, unter Verwendung einer 4*4 Matrix. Dafür bekommt man die Transformation, Skallierung und Rotation alles in einem.
Hier kann man evtl. noch bissel tricksen und eine art Pseudo3D machen.
Zum zeichnen eines Drahgittermodells kann man die Eckpunkte recht einfach mit dem Bresenham- Allgorithmus verbinden. Selbst das Ausfüllen einfacher Dreieckgrafiken könnte man hinbekommen, wenn man 3 Bresenham- Allgorithmen geschickt schachtelt. Das haben die ersten 3D- Karten auch so gemacht, die konnten auch nicht wirklich mehr.
Wie das ganze aussehen würde, wenn man auf den Bildspeicher verzichtet und statt dessen bei jedem Pixel schaut, ob evtl. ein 3D- Objekt darunter liegt, das möcht ich hier lieber nicht schätzen.
Einen Zugriff auf das externe Ram sehe ich da auch eher als sinnlos an, denn der ist viel zu langsam und auch noch am "falschen" Chip drann. Das extere Ram werde ich wohl eher dafür nehmen, um dynamisch Tiles/Sprites nachzualden. Und dann nur die gerade wirklich gebrauchten Tiles/Sprites im Ram des "Videopropellers" zu halten.
Um die Verwendung mehrerer Cog's wird man wohl auch nicht umzu können, da ein Cog die benötigten Pixeldaten nicht schnell genug erzeugen kann, wenn man volle 64 Fraben haben möchte. Der Videogenerator kann zwar schön hochauflösende Textgrafik erzeugen, diese aber auch nur mit maximal 4 Fraben. Will man mehr, reicht ein Cog leider nicht mehr aus.
Ich denke, das da noch einiges am Betriebssystem gebastelt wird, damit das gut läuft. Im momemt schwebt mir da vor, das bei dem Start einer Hive- Anwenung die Anwendung aus einer Bibliothek einen Video/Audio- Treiber auswählen darf, der dann auf den Video/Audiochip sozusagen nachgeladen wird. Beim beenden der Anwendung, wird dann wieder der "Betriebssystemtreiber" nachgeladen, um damit dem Betriebssystem immer einen definierten Stand anzubieten. Ich denke da werden wir noch genügend Hirnschmalz reinstecken müssen, bevor wir da ein wirklich gutes Betriebsssytem haben werden. Gerade der Gedanke sowas wie 3*8 Rechenkerne optimal auszulasten hat schon ganz andere Informatiker als mich in den Wahnsinn getrieben.
Alles in allem bin ich shcon ganz gespannt auf meinen Bausatz und die ersten Bastelleien.
Grüße
Janaha
also das größte Problem eine Ultra-Mega-Grafik hinzubekommen sehe ich eigentlich im mangelnden Propeller-Ram. 32KB sind für hohe Auflösungen einfach zu wenig. Zumal man da ja nicht nur die Graifk ablegt, sondern auch noch die Programme und deren Daten aussen umzu.
Wenn man schnelles 3D machen möchte, braucht man den Speicher auf jeden fall auch noch doppelt damit man im Hintergrund ein 2. Bild aufbauen kann während das 1. gerade angezeigt wird. Die reinen 3D- Berechnungen denke ich kann ein Propeller nicht mehr wirklich in Echtzeit leisten, das sind zu viele Operationen die er ausführen müsste. Das wären 16 Additionen und 16 Multiplikationen pro 3D- Eckpunkt, alles Floatingpoint, unter Verwendung einer 4*4 Matrix. Dafür bekommt man die Transformation, Skallierung und Rotation alles in einem.

Zum zeichnen eines Drahgittermodells kann man die Eckpunkte recht einfach mit dem Bresenham- Allgorithmus verbinden. Selbst das Ausfüllen einfacher Dreieckgrafiken könnte man hinbekommen, wenn man 3 Bresenham- Allgorithmen geschickt schachtelt. Das haben die ersten 3D- Karten auch so gemacht, die konnten auch nicht wirklich mehr.
Wie das ganze aussehen würde, wenn man auf den Bildspeicher verzichtet und statt dessen bei jedem Pixel schaut, ob evtl. ein 3D- Objekt darunter liegt, das möcht ich hier lieber nicht schätzen.

Einen Zugriff auf das externe Ram sehe ich da auch eher als sinnlos an, denn der ist viel zu langsam und auch noch am "falschen" Chip drann. Das extere Ram werde ich wohl eher dafür nehmen, um dynamisch Tiles/Sprites nachzualden. Und dann nur die gerade wirklich gebrauchten Tiles/Sprites im Ram des "Videopropellers" zu halten.
Um die Verwendung mehrerer Cog's wird man wohl auch nicht umzu können, da ein Cog die benötigten Pixeldaten nicht schnell genug erzeugen kann, wenn man volle 64 Fraben haben möchte. Der Videogenerator kann zwar schön hochauflösende Textgrafik erzeugen, diese aber auch nur mit maximal 4 Fraben. Will man mehr, reicht ein Cog leider nicht mehr aus.
Ich denke, das da noch einiges am Betriebssystem gebastelt wird, damit das gut läuft. Im momemt schwebt mir da vor, das bei dem Start einer Hive- Anwenung die Anwendung aus einer Bibliothek einen Video/Audio- Treiber auswählen darf, der dann auf den Video/Audiochip sozusagen nachgeladen wird. Beim beenden der Anwendung, wird dann wieder der "Betriebssystemtreiber" nachgeladen, um damit dem Betriebssystem immer einen definierten Stand anzubieten. Ich denke da werden wir noch genügend Hirnschmalz reinstecken müssen, bevor wir da ein wirklich gutes Betriebsssytem haben werden. Gerade der Gedanke sowas wie 3*8 Rechenkerne optimal auszulasten hat schon ganz andere Informatiker als mich in den Wahnsinn getrieben.

Alles in allem bin ich shcon ganz gespannt auf meinen Bausatz und die ersten Bastelleien.
Grüße
Janaha