Wer berechnet Polygone?

Felixxz21

Lt. Commander
Registriert
Sep. 2007
Beiträge
1.531
Hallo,

erstmal entschulding, wenn das das falsche Forum ist, hab aber keinen passenderen Bereich gefunden. Wenn nicht passt, bitte verschieben.

Bin in Sachen Computerhardware/Technik recht versiert, doch eine Frage habe ich noch:

Wer berechnet Polygone? Die CPU? Die Grafikkarte?

Man kann darüber leider nichts finden, auch in keinem CPU/GPU Test steht irgendwas von Polygonfüllraten.

Würde mich sehr freuen wenn jemand eine (hoffentlich ausführliche und sachlich korrekte) Antwort für mich hätte.

mfg

Felixxz21
 
Bilder bestehen aus vielen Polygonen (Dreicken), diese werden normalerweise von der Grafikkarte berechnet und dargestellt

Man kann natürlich die Polygone auch mit der CPU berechnen, dauert dann sehr viel länger und macht daher keinen Sinn, außer man will mit einem Test die CPU mehr oder weniger sinnlos testen, ich weiß ja nicht, was du da für einen Test verwendest.

Siehe auch: http://de.wikipedia.org/wiki/Rasterung_von_Polygonen
 
Danke für die Antwort!

Aber warum wird dann nie bei einer Graka angegeben, wie viele Polygone sie pro Sekunde berechnen kann.

Habe bisher nur eine Füllrate gefunden, die der Xbox 360, laut Wikipedia kann die Xenos GPU 500 mio. Polygone/Sekunde darstellen.

Hast du vielleicht Vergleichswerte aktueller PC GPUs?
 
Das sind eh alles theoretische Werte. Die konkrete Leistung hängt nicht nur von der theoretischen Füllrate ab, sondern inzwischen genau so von Shaderleistung und GPU-Bandbreite und der Effizienz der GPU.

Die theoretische, maximale Pixelfüllrate und Texelfülrate und Shaderleistung der aktuellen GPUs wird bei Wiki auch angegeben: http://de.wikipedia.org/wiki/ATI-Radeon-HD-5000-Serie
 
Ich habe oben schon geschrieben, dass ich mich sehr gut mit Computerhardware auskenne ;)

Meine Frage daher: Warum wird nicht eine Polygonfüllrate, ähnlich wie die Texelfüllrate oder die GFLOPs angegeben?
 
Weil es ein Wert ist, der im Gesamtbild irrelevant ist. Eine KArte mit sehr hiher Texturefüllrate muss nicht schneller sein als eine Karte die eben eine nich tmal halb so große Füllrate hat. Zumal die Polygonenberechnung mittlerweile für keine Karte ein Problem oder Flaschenhals mehr ist. Flaschenhals ist die Shaderleistung, Speicherbandbreite und die Textureleistung.
 
Ist nicht ganz richtig. Klassischerweise werden die Polygone von der CPU berechnet oder fest vorgegeben (Vorab modellierte Modelle in Spielen bspw). D.h. Ort und Aussehen wird festgelegt. Das rendern der Polygone geschieht demnach auf der Grafikhardware (Füllrate). Man muss also unterscheiden zwischen Ort und Aussehen (Shape/Shading) der Polygone. Polygone auf der CPU rendern macht hingegen niemand, denn das geht in der Tat viel zu langsam.
Seit den neueren Shaderversionen können Polygone allerdings auch auf der Grafikkarte berechnet werden um bspw. gekrümmte Oberflächen zu verfeinern. Aktuell können Polygone also auf der CPU wie auch auf der GPU berechnet werden.
 
Eon Deon: Ja, aber die Texelfillrate wird ja auch angegeben, warum also nicht auch die Polygonfillrate? Und das Polygone ein riesiger Flaschenhals sind, beweist aktuell der Tesselator, der ja mangelnde Polygonanzahl ausgleichen soll.

Green Mamba: Ja sowas in der Art hatte ich mir schon gedacht. Bei Wikipedia stand bei der Xbox 360 auch mal eine Polygonfüllrate von 9,6 mrd. Dreiecken/Sekunde, dieser Wert wurde allerdings wieder aus dem Artikel entfernt. Und wie geschiets in der Praxis? Macht das eher die CPU, die GPU oder ist das stark Spielabhängig?
 
Die Frage ist doch, wie willst du das genau angeben? Einmal berecnet es die CPU, einmal müssen gegebenfalls diese gekrümmt oder sonst wie verarbeitet werden u.s.w.! Du kannst da schlecht einen festen Wert angeben.
 
Wenn man eine Form mathematisch beschreiben will, bietet sich eine Berechnung im Shader an. Viele Formen werden allerdings vorab berechnet (in entspr. 3D-Modellern designed) und dann nur noch auf die Grafikkarte geladen zur Darstellung.
Genauso verhält es sich bei Texturen. Man kann sie offline designen oder algorithmisch berechnen. Für beides gibs Anwendungsfälle.
 
Der Bildschirm wird mit Pixeln gefüllt, nicht mit Polygonen. Es gibt also keine Polygonfüllrate. Die GPUs arbeiten auch nicht mit Polygonen, sondern mit Dreiecken. Die Dreiecke werden von der GPU transformiert (hier macht eine Leistungsangabe keinen Sinn, weil das von der Art der Transformation abhängt, man kann hier also nur eine Rechenleistung in Flops angegeben) und gerastert (zeilenweise Bestimmung der Pixeladressen, die das Polygon belegt, hier braucht man keine Leistung anzugeben, weil das noch nie ein limitierender Faktor war).
 
Dreiecke sind Polygone. ;)

Und für die Pixelfillrate wird ja immer ein Wert angegeben, der zwar nicht limitierend ist, aber die Leistung der ROPs wieder gibt.

Und was ist eine Transformation?


Hab ich das jetzt richtig verstanden: Die Polygone werden oft schon vorab berechnet und dann als Modell gespeichert. Ihre Position usw. wird dann von der CPU berechnet, falls neue Polygone berechnet werden müssen erledigt das die Grafikkarte.
 
Wie sieht es mit durch ein Skelett animierte Figuren aus? Denn meines Wissens werden in modernen Spielen Figuren nur über ein Skelett animiert, dessen Bewegungen während des Spiels auf die 3D Modelle übertragen werden.
Das Skelett selbst wird ja von der CPU situationsabhängig berechnet werden; jedoch was von beiden übernimmt die Berechnung der neuen Koordinaten der am Skelett haftenden Polygone?
 
Für die Animation der Oberfläche (Haut) wird eine anteilsmässige Transformation der angrenzenden Knochen verwendet. Klassischerweise wird dies von der CPU berechnet, könnte aber imho auch genausogut über einen Shader laufen.
 
Zurück
Oben