Die Suchmaschine spuckt nur ihren nach Klickanzahl sortierten, Werbung-gesponserten, Zielgruppen-relevanten Algorithmen-Dreck aus ... Soviel ich weiss muss eine 3D-GPU aus Koordinaten Linien zwischen Punkten zeichnen können und diese mit Flächen füllen, vielleicht Textur draufmachen je nach Lichtwinkel beleuchtet usw. Wie funktioniert das überhaupt ? Läuft da Microcode drin ? Es müsste wohl recht viel und schnell berechnet werden ...
Natürlich geht das. Eine "einfache" 3D-GPU ist nichts anderes als ein Mikroprozessor, der eine Grafikpipeline "emuliert". Eine Grafikpipeline ist relativ komplex, gugst du: https://de.wikipedia.org/wiki/Grafikpipeline
2⁵ schrieb: > Eine "einfache" 3D-GPU ist nichts anderes als ein > Mikroprozessor, der eine Grafikpipeline "emuliert". Bis vor 1-2 Jahren hattest du recht. Aktuell setzen sich allerdings Analogprozessoren durch, da hier eine Linie einfach durch einen Verstärker mit entsprechendem Steigungsfaktor generiert wird, ganz ohne Takt und Latenz. Flächenfüllen ergibt sich aus einem Komparator (entweder kleiner als die Linie oder größer -> gefüllt oder leer). Man kann natürlich einen FPGA nehmen, wenn einen die neuen Entwicklungen nicht interessieren. Bei den Fragen wird auch eher der Stand von 1990 erreicht als der Stand von 2010, von daher sollte es ausreichen.
Konrad schrieb: > Aktuell setzen sich allerdings Analogprozessoren durch, da hier eine > Linie einfach durch einen Verstärker mit entsprechendem Steigungsfaktor > generiert wird, ganz ohne Takt und Latenz. Ist das so? Und wo genau setzen sich die durch? Haben aktuelle GPUs der großen Hersteller solche Analogschaltungen eingebaut? Aber ja, man kann in FPGAs auch eine GPU einbauen. Es gab sogar mal ein Projekt mit einer FPGA Grafikkarte: https://en.wikipedia.org/wiki/Open_Graphics_Project Um eine Linie zwischen zwei Punkten in n-Dimensionen zu zeichnen gibt es Algorithmen. Genauso für das Füllen von Flächen. https://de.wikipedia.org/wiki/Rasterung_von_Linien
Konrad schrieb: > Analogprozessoren Hm... ich versuche gerade, Analogprozessoren mit meiner Vorstellung von 3d-Modellen die mittels eines größeren Aufwandes peu à peu in einen 2d-Framebuffer gerastet werden zu verbinden und schaffe dies nicht. Könntest du hier mehr Infos geben? Zumal die Darstellung von einfarbigen Linien bzw. Flächen im 3d-Prozess eher weniger gebraucht wird. Mir wäre auch neu, dass diese Technik im Consumerbereich (Nvidia und AMD) benutzt wird. Hier wird, vereinfacht gesagt, nach wie vor durch eine hohe Anzahl von Unified-Shadern die parallel arbeiten die Aufgabe erledigt. Zur eigentlichen Fragestellung: Die ersten brauchbaren Consumer-Chipsets (Voodoo 1 & Co) kamen ja erst Mitte der 90er Jahre raus, ebenso die PlayStation 1. Die damalige 3d-Leistung war ja noch arg limitiert. Die Profikarten vorher (TIGA & Co) wahren ja eher Signalprozessoren, die sich auf dem Framebuffer austoben durften. Trotz allem dürfte der Nachbau eines aus heutiger Sicht simplen 3d-Chipsatzes (Voodoo oder PS1) trotzdem noch eine anspruchsvolle Aufgabe sein.
Wobei man ja auch Silicon Graphics nicht vergessen darf, die hatten ja schon Ende der 80er Jahre Geometrie-Coprozessoren. Evtl. findet man hier Informationen, wie diese aufgebaut waren.
Konrad schrieb: > Aktuell setzen sich allerdings > Analogprozessoren durch, Quelle? Hab ich abseits von Forschungsprojekten noch nichts gesehen.
2⁵ schrieb: > Trotz allem dürfte der > Nachbau eines aus heutiger Sicht simplen 3d-Chipsatzes (Voodoo oder PS1) > trotzdem noch eine anspruchsvolle Aufgabe sein. Das stimmt, aber es ist jetzt möglich. Damit meine ich, dass es heutzutage günstige FPGA Boards mit groß genugem FPGA gibt um sowas als Projekt anzugehen. Das wäre vor 15 Jahren für Privatleute nicht bezahlbar gewesen wenn es überhaupt in ein damals verfügbares FPGA gepasst hätte.
Gustl B. schrieb: > Konrad schrieb: >> Aktuell setzen sich allerdings Analogprozessoren durch, da hier eine >> Linie einfach durch einen Verstärker mit entsprechendem Steigungsfaktor >> generiert wird, ganz ohne Takt und Latenz. > > Ist das so? Und wo genau setzen sich die durch? Haben aktuelle GPUs der > großen Hersteller solche Analogschaltungen eingebaut? Das ist ziemlich unwahrscheinlich, da die für compute-Anwendungen ziemlich nutzlos wären. Kann man solche Analogschaltungen in 7nm FinFET überhaupt umsetzen? Hat hier jemand genug Ahnung von dem Thema oder Quellen, um die Frage zu beantworten?
Konrad schrieb: > Man kann natürlich einen FPGA nehmen, wenn einen die neuen Entwicklungen > nicht interessieren. Bei den Fragen wird auch eher der Stand von 1990 > erreicht als der Stand von 2010, von daher sollte es ausreichen. Gustl B. schrieb: > Das stimmt, aber es ist jetzt möglich. Damit meine ich, dass es > heutzutage günstige FPGA Boards mit groß genugem FPGA gibt um sowas als > Projekt anzugehen. Das wäre vor 15 Jahren für Privatleute nicht > bezahlbar gewesen wenn es überhaupt in ein damals verfügbares FPGA > gepasst hätte. Vor ca. 10 Jahren hatte ich eine GPU geschrieben, zuerst nur integerbasiert, später dann mit 24Bit-Float-Support. Eine Unit ging locker in das kleinste CycloneII bzw. StratixI, d.h. mein Projekt wäre auch ab 2005 möglich gewesen (frühere grosse FPGAs hätten es auch getan, d.h. ab 2002/2003). Bei grösseren FPGAs und mehreren Speicherkanälen wären auch 2-8 Units möglich gewesen. Bei 150-200MHz (CylconeII) und 200-300MHz (StratixI) wären man schon bei 2-8 mal 150-300MPixel, d.h. deutlichst jenseits einer RivaTNT2 von 1999, etwa auch dem Niveau einer GForce3 von 2001. Das kann man jetzt weiterrechnen und kommt auf einer aktuellen Stratix oder Virtex auf etwa den Stand von 2015. Das ganze allerdings ohne Shaderunits.
Wie aufwändig wäre es, die einfachste Form zu realisieren ? Also nur einfarbig gefüllte Dreiecke zeichnen (mit Beleuchtung, Drehung zur Kamera usw.) ? Es würde dann so aussehen wie im Spiel "Elite" nur gefüllt ... vielleicht so wie in "Star Fox".
Ernst schrieb: > Wie aufwändig wäre es, die einfachste Form zu realisieren ? Also nur > einfarbig gefüllte Dreiecke zeichnen (mit Beleuchtung, Drehung zur > Kamera usw.) ? Es würde dann so aussehen wie im Spiel "Elite" nur > gefüllt ... vielleicht so wie in "Star Fox". Der Aufwand hängt ganz stark davon ab, wie gut du dich mit dem System auskennst, auf dem es laufen soll, wie gut deine Mathekenntnisse sind und was du genau machen willst. Für jemanden, der sich damit auskennt, sollte eine "minimale" Grafikpipline in z.B. Python in ein paar Stunden umzusetzen sein. Jemand der bis jetzt nur LEDs zum blinken gebracht hat und keine Ahnung hat was ne Matrix ist, braucht für eine "Grafikengine wie in Star Fox, die auf einem FPGA laufen soll, vermutlich mehrere Jahre.
Hier basteln die schon seit längerer Zeit an einer einfachen GPU für ein FPGA: https://www.eevblog.com/forum/fpga/fpga-vga-controller-for-8-bit-computer/1775/
Das hängt davon ab, wie gut du die entsprechenden Algorithmen kennst und wie gut du sie in HDL umsetzen kannst. Grob teilt man das Design in folgende Teile auf: - Register-Set zur Ansteuerung für die CPU - Speicherinterfaces (mehrere für Vektoren, Texturen, Z-Buffer-Read/Write und Pixelbuffer) - TnL-Unit zum Transformieren der Vektoren (per FPGA-internen MUL-Units) - für slicebasierten Ansatz (teilt Dreiecke in horz. Linien auf) ein oder mehrere Slicer-Units, die alle 3 Linien der Dreiecke in horz. Slicepakete unterteilt - Slicer zum Zeichnen der horz. Slices - (VGA- oÄ Ansteuerung, ist aber von den anderen Einheiten unabhängig, da nur der Pixelbuffer ausgelesen werden muss) Die letzen drei Einheiten sind eiglich relativ einfach, schwieriger sind die vielen Speicherinterfaces, da idR nur ein Speicher (z.B. SDRAM) zur Verfügung steht. Die Registerbank (z.B. per Altera-Avalon) ist idR auch sehr einfach. Ich kannte die Raster- und Mathealgorithmen recht gut, die Umsetzung in HDL zu der Zeit war für mich auch sehr einfach. Der Aufwand lag so bei 3-4 Monaten in der Freizeit, der grösste Teil davon war bei mir das Testen.
Ernst schrieb: > Wie aufwändig wäre es, die einfachste Form zu realisieren ? Also nur > einfarbig gefüllte Dreiecke zeichnen (mit Beleuchtung, Drehung zur > Kamera usw.) ? Dafür brauchst du nur ein paar OP-Amps. Wer sich auskennt, baut das in einem Tag zusammen.
Konrad schrieb: > Dafür brauchst du nur ein paar OP-Amps. Wer sich auskennt, baut das in > einem Tag zusammen. Operationsverstärkern waren nie so mein Ding - wollten einfach nicht ins Hirn. Die sind ja auch recht komplex, ich meine das die Ausbildungsunterlagen dazu über sehr viele Seiten gingen. @Sigi: Das klingt alles andere als einfach ... es wird wohl für mich unerreichbar sein. Die FPGA haben wohl schon Multiplikations-Blöcke drin - was kommt denn als nächstes :-) Trotzdem danke ich euch für die Antworten ... einen Versuch war es wert.
Konrad schrieb: > Also nur einfarbig gefüllte Dreiecke zeichnen (mit Beleuchtung, Drehung zur Kamera usw.) ? > > Dafür brauchst du nur ein paar OP-Amps. Wer sich auskennt, baut das in > einem Tag zusammen. Quatsch!
> Wobei man ja auch Silicon Graphics nicht vergessen darf, die hatten ja > schon Ende der 80er Jahre Geometrie-Coprozessoren. Die brauchten dafür aber immer noch einen dicken Beisteller und mehrere Hosenträger um ihn anzuschliessen. Der erste echte 3D Adapter ist der ZX Leo. Belegt räumlich zwar auch 4 Steckplätze, steckt aber im Rechner.
Konrad schrieb: > Aktuell setzen sich allerdings Analogprozessoren durch Und die werden dann zusammen mit den autonomen Straßenfahrzeugen fertig. Oder wo kann ich solche Grafikbausteine kaufen? Konrad schrieb: > Ernst schrieb: >> Wie aufwändig wäre es, die einfachste Form zu realisieren ? Also nur >> einfarbig gefüllte Dreiecke zeichnen (mit Beleuchtung, Drehung zur >> Kamera usw.) ? > Dafür brauchst du nur ein paar OP-Amps. Wer sich auskennt, baut das in > einem Tag zusammen. Ja, sowieso tut er das. Und wer das in einem Tag zusammenbaut, der hat dann auch die nötigen Fertigungsprozesse in der Hand, um diese analoge Bildverarbeitung auf den selben Chip zu bringen wie das digitale Interface zum Prozessor und dzum Display. Nun. schrieb: > Hab ich abseits von Forschungsprojekten noch nichts gesehen. Da war ja die vielgepriesene und wohlverdient in der Versenkung verschwundene Fuzzy-Logik schon mal weiter. Ernst schrieb: > Operationsverstärkern waren nie so mein Ding - wollten einfach nicht ins > Hirn. Die sind ja auch recht komplex, Im Grunde nicht, so lange man mitten im Arbeitsbereich bleibt. > ich meine das die > Ausbildungsunterlagen dazu über sehr viele Seiten gingen. Naja, die Datenblätter von FPGAs samt integrierter Module sind ja nun auch nicht von der schmalsten Sorte...
Vielleicht passend dazu: https://heise.de/-4718929 DOOM auf FPGA ohne dabei einen CPU-Core im FPGA zu nutzen...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.