Maximale mögliche Auflösung / Farbanzahl

Fragen zu Programmiersprachen und Software für den Hive und die Propellerchips
Janaha
Beiträge: 213
Registriert: Fr 29. Mai 2009, 08:30

Re: Maximale mögliche Auflösung / Farbanzahl

Beitrag von Janaha »

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
Benutzeravatar
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: Maximale mögliche Auflösung / Farbanzahl

Beitrag von Rainer »

LOL, sag' mal, schreiben wir eigentlich immer gleichzeitig ? *hehe*

Zur Thema Grafik habe ich knapp vor Deinem Posting was geschrieben ... siehe Seite 1

Gruß.
Rainer
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Janaha
Beiträge: 213
Registriert: Fr 29. Mai 2009, 08:30

Re: Maximale mögliche Auflösung / Farbanzahl

Beitrag von Janaha »

Rainer hat geschrieben:LOL, sag' mal, schreiben wir eigentlich immer gleichzeitig ? *hehe*

Zur Thema Grafik habe ich knapp vor Deinem Posting was geschrieben ... siehe Seite 1

Gruß.
Rainer
Hihi,

ja irgendwie sind wir häufig zusammen Online und kommen auf die gleichen Ideen. Dein 3D- Hive- Demo hat meine Neugier geweckt, das werd ich mir mal neher ansehen. Bei meinen Ansprüchen schaue ich einfach immer zu hoch, ich denke ständig darüber nach, wie ich die höchstmögliche Auflösung mit allen möglichen Farben noch irgendwie hin bekomme. Wenn man wie auf deinem Bild zu sehen, die Auflösung runterschraubt und auch weniger Farben nimmt hat man ja auch genug Platz um den Bildspeicher 2 mal abzulegen. Man könnte auch einen Bildspeicher nehmen, aber das Flackern, das Auftritt wenn man das Bild neu Zeichnet wärend es zu sehen ist, ist wohl glaub ich sehr eckelig anzuschauen.

Grüßi
Janaha
Benutzeravatar
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: Maximale mögliche Auflösung / Farbanzahl

Beitrag von Rainer »

Schau Dir mal den Film an .. ich sehe da nichts flackern (außer wenn er auf was schießt).
Zum Speicherproblem. Du hast natürlich Recht was das COG RAM angeht ... aber nachladen aus dem eRAM geht schon hinreichend schnell, wenn man ein bißchen "trickst" ... glaube ich zumindestens ;).

Zum Betriebssystem:
Ich wollte schon mal eine Liste ins Forum zur Diskussion stellen bezüglich "IOS-Funktionen" die ich gerne hätte.
Genau Deine Idee hatte ich auch .. außerdem hätte ich noch gerne eine Funktion, um die aktuelle Auflösung abfragen zu können.
Ich lasse das Thema aber mal, bis ich den Hive Betriebsbereit habe.

Gruß.
Rainer
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Maximale mögliche Auflösung / Farbanzahl

Beitrag von drohne235 »

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.


Naja, wenn man sich auf Wireframe beschränkt bräuchte man ja keinen Test in der Z-Achse, da werden alle Punkte einfach geodert. Wenn man einen schnellen Linienalgorithmus hätte, welcher die Linien von oben beginnend immer in Echtzeit zeilenweise berechnen könnte, könnte man bis auf den Puffer für zwei Zeilen ganz auf einen Bildschirmpuffer verzichten und könnte den frei werdenden Speicher in Bellatrix mehr für Routinen nutzen, welche genau diese inien manipulieren (drehen, strecken, bewegen...)
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.


Ist der RAM an Regnatix wirklich falsch? Für Anwendungen wie Compiler, Editoren usw. ist der Speicher natürlich genau richtig. Aber die Frage habe ich mir auch schon gestellt wenn es um Grafik geht. Und es erscheint auch wirklich an der falschen Stelle, zumindest wenn man die Struktur des Hive so als fertig ansieht. Aber das muß ja nicht so sein! Du brauchst den eRam an Bellatrix? Dann programmiere den Hive so das es genau so ist: Mache eine COG in Regnatix zu einem "externen" Adresszähler/Register für Bellatrix, die adressierte Speicherzelle kann Bellatrix selbst über den Datenbus einlesen. Im Extremfall kann Bellatrix über eine umkonfigurierte Steuerleitung (PRO/SELECT) den "Adresszähler" in Regnatix takten, kann also den Zugriff auf den Speicher selbst steuern. Wenn du also möchtest, mache Regnatix einfach zu einem Speicherkontroller für Bellatrix. :)
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.
Momentan ist es so: Eine Anwendung kann über die IOS-Funktionen "breset/bload" in einem Programm einfach einen kompletten neuen Code in den Bellatrixchip laden und damit seinen eigenen Grafiktreiber aktivieren. Für die Kommandozeile als momentanes einfachste Oberfläche wird einfach wieder der normale Standarttreiber "vga.bin" in Bellatrix geladen - momentan ein schöder Texttreiber. Im StarTracker mache ich das schon genau so, dort wird beim starten der Treiber geladen um die Startrek-Oberfläche zu zeichen und beim beenden wird wieder der Texttreiber geladen. Die Bibliothek sind dabei einfach die entsprechenden Treiberdateien auf der SD-Karte, im Fall des StarTrecker befindet sich der Treiber in der Datei "stint.bin". So hatt jede Anwendung uneingeschränkt die volle Kontrolle über die Ressourcen von Bellatrix.

Was noch fehlt: Das gleiche für den Administrachip. Mir ist einfach noch keine einfache Methode eingefallen wie man das für Administra hinbekommt, da sich ja in diesem Chip etwas ganz grundlegendes befindet: Die Anbindung an die SD-Card, von welcher ja die Treiber kommen. Man müßte also den Treiber beim Wechsel erst im eRam puffern oder irgendwie die Dateien umkopieren, aber das erschien mir bisher einfach zu umständlich. Aber Fakt ist eins: Letztlich brauchen wir das auch für Administra, genau wie du das schreibst.
Genau Deine Idee hatte ich auch .. außerdem hätte ich noch gerne eine Funktion, um die aktuelle Auflösung abfragen zu können.
Jo, wichtig wären auch Auskunftsfunktionen - Anzahl der Zeichen und Zeilen des aktuellen Treibers - um zeichenorientierte Software unabhängig von der Auflösung zu programmieren. Bis jetzt hat das System ja noch "Werkstattniveau", d.h. ich hab einfach nur das eingebaut was ich aktuell brauchte - da ist also evtl. noch viel Bedarf an Funktionalität. Vielleicht wäre es ja auch besser das ganze einfach nochmal neu anzufangen.

Was ich irgendwie bei der Grafik absolut cool finde ist die alte Vectrex:

http://www.retrozentrale.net/?p=1266
http://vectorzoa.com/info2.html

Bei so einer einfachen Grafik muß man sich auch mehr auf das Spiel selbst, auf innovative Ideen konzentrieren, die dann ihren ganz eigenen Reiz haben.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
laserjones
Beiträge: 291
Registriert: Fr 19. Jun 2009, 10:38
Wohnort: Hennef
Kontaktdaten:

Re: Maximale mögliche Auflösung / Farbanzahl

Beitrag von laserjones »

Was ich irgendwie bei der Grafik absolut cool finde ist die alte Vectrex:
Das gleiche Prinzip findet sich ja auch in diversen alten Spielhallen-Automaten, allen voran der Original-Star-Wars-Automat (kann man auf dem PC per MAME spielen, der simuliert auf Wunsch sogar das Flimmern der Vektorgrafik ...). Die Frage ist, kann man ein VGA- oder TV-Signal mit dem HIVE so verbiegen, dass es so eine echte Vektorgrafik, also eine völlig freie Steuerung des Elektronenstrahls, auf einem normalen Monitor oder Fernseher darstellen kann? Oder zwingt uns der VGA- bzw. TV-Standard (oder der Propeller) zur normalen Zeilengrafik? Sorry für meine Unwissenheit ...
Momentan ist richtig, momentan ist gut – nichts ist wirklich wichtig, nach der Ebbe kommt die Flut. (Herbert Grönemeyer)
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Maximale mögliche Auflösung / Farbanzahl

Beitrag von drohne235 »

laserjones hat geschrieben:
Die Frage ist, kann man ein VGA- oder TV-Signal mit dem HIVE so verbiegen, dass es so eine echte Vektorgrafik, also eine völlig freie Steuerung des Elektronenstrahls, auf einem normalen Monitor oder Fernseher darstellen kann? Oder zwingt uns der VGA- bzw. TV-Standard (oder der Propeller) zur normalen Zeilengrafik? Sorry für meine Unwissenheit ...
Direkt geht das nicht, da sowohl TV wie auch VGA-Monitor das Bild immer zeilenweise darstellen - daran kann man nichts ändern. Man muß also immer über den Umweg einer zeilenweisen Darstellung gehen.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: Maximale mögliche Auflösung / Farbanzahl

Beitrag von Rainer »

Mit einem Oszilloskop geht es. Die leuchten halt ziemlich lange nach (sollen sie ja auch).
Mit einer AVR Mega8 MCU habe ich schon Buchstaben darauf dargestellt.

Wenn Du gut in Elektronik bist könntest Du auch versuchen auf die Ablenkeinheiten von einem TV direkt zuzugreifen ... empfehlen würde ich es aber nicht.
Kann böse enden.

Gruß.
Rainer

[NACHTRAG]
Naja, ein paar Verrückte gibts wohl immer ;) ---> http://www.youtube.com/watch?v=Vq7rAxtZNr8
[/NACHTRAG]
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Benutzeravatar
laserjones
Beiträge: 291
Registriert: Fr 19. Jun 2009, 10:38
Wohnort: Hennef
Kontaktdaten:

Re: Maximale mögliche Auflösung / Farbanzahl

Beitrag von laserjones »

Wenn Du gut in Elektronik bist könntest Du auch versuchen auf die Ablenkeinheiten von einem TV direkt zuzugreifen ... empfehlen würde ich es aber nicht. Kann böse enden.
Ja, das lasse ich lieber - hatte zwar eben auch schon daran gedacht, aber etwas Recherche zu den alten Arcade-Automaten brachte schnell die Info, dass man die Vektorbildschirme sehr gut kühlen musste, damit sie nicht überhitzten. Und dann gibt's da ja noch die Hochspannung in den Röhrengeräten ... Hab mal übel eine gewischt bekommen, als ich an einem Monitor rumgedoktort habe, bei dem noch ein Kondensator geladen war ...

Übrigens konnte ich trotz längerer Recherche nicht rausfinden, wie eigentlich ein Farb-Vektormonitor funktioniert. Ich kann mir kaum vorstellen, dass man bei beliebigem Winkel eines Vektors trotzdem die Subpixel eines RGB-Monitors treffen kann. Muss also wohl irgendwie anders gehen ... Na egal, das Projekt hat sich ja eh erledigt (siehe oben).

Nun gut, dann müssen wir also rotierende Spiegel mit dem HIVE ansteuern und die Vektorgrafik mit Laserstrahlen an die Wand projizieren - hm, warum eigentlich nicht? Bei präziser Zielmechanik müsste man mit drei Lasern sogar RGB hinbekommen. Blaue Laser sind zwar wohl noch etwas teuer - aber obercool wäre das ... 8-)
Momentan ist richtig, momentan ist gut – nichts ist wirklich wichtig, nach der Ebbe kommt die Flut. (Herbert Grönemeyer)
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Maximale mögliche Auflösung / Farbanzahl

Beitrag von drohne235 »

Und dann gibt's da ja noch die Hochspannung in den Röhrengeräten
Die ist aber nicht wirklich lebensgefährlich da sie was die Frequenz betrifft weit jenseits der Herzfrequenz sind. Gibt nur kleine, übel verbrannt riechende und heftig schmerzende Brandflecken auf der Haut... (Kenne ich aus eigener Erfahrung.)
Nun gut, dann müssen wir also rotierende Spiegel mit dem HIVE ansteuern und die Vektorgrafik mit Laserstrahlen an die Wand projizieren - hm, warum eigentlich nicht?
Also langsam glaube ich wirklich das wir hier alle gleich verrückt sind - da hab ich auch schon dran gedacht. :) Wäre natürlich absolut Steampunk so ein halbmechanischer Laservektorbildschirm.

Habt ihr schonmal das Oszilloskop-Demo gesehen:
http://www.youtube.com/watch?v=5V_fiCkfxWk

Das geht von der Soundkarte ab - ich denke die beiden Stereokanäle gehen auf die X und Y-Achse und dann muß da noch ein Signal sein welches den Strahl in der Helligkeit steuert.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Antworten