R
@CUser1 sagte in Möglichst effizienter Pixel Draw?:
Und ist das was man als Welt oder Level bezeichnet im Endeffekt einfach ein 3D Array wo alle Bildpunkte drinn stehen und alles repräsentieren für den Moment und vorm Draw wird je nach Kameraposition ein 2D Array daraus gemacht?
das ist gar nicht soo falsch ....
Stell dir eher vor, in der 3D engine sind die daten, die deine Welt/Level Objekte etc. beschreiben .... meist eine Kombo aus 3D daten (Triangle / Meshes), 2D daten (Texturen / Verläufe) und ne ganze Menge Verwaltungskrams ...
und dann wird daraus deine "Scene" gerendert ... dazu wird so viel wie möglich auf die Graka geschoben und die macht das dann .... meist in mehreren stages, der wichtigste ist dann die Rasterization .... da wird nicht ein 2D Buffer erzeugt, sondern mehrere (meist 3) aber nur einer, (der ColorBuffer) intressiert als Endergebnis.
Im Directmodus wird der buffer dann direct auf den monitor geschoben, aber oft wird das ergebnis auch wieder ans OS (CPU) gegeben, und das blitted es dann an die richtige Position (Fenster)
Fuers Rastern und die primitiven 3D grafik stages hat man "simple" algos (interpolation und extrapolation) und das für viele viele daten die unabhängig voneinander ausgeführt werden können und kaum verwaltung -> Parralellisierung -> GPU ist das richtige Gerät dafür ....
Rasterization wird auch im 2D bereich benötigt .... ellipsen malen z.b. da wird fix berechnet, welche punkt in welchen bereich farbe abbekommen oder nicht ... oder (poly)linien ... dafür haben Grakas schon lange Funktionen / Support für GDI Funktionen ....
Wenn deine Basis Linen, Kreise, Ellipsen sind, und du nicht tonnenweisse parralell Vorbedingungen rechnen musst (Vertex/Geometry/Tesselation Stages) oder sowas, würde GDI (2D beschleunigte Grafikroutinen) kaum einen Nachteil haben ...
Hasst du was ganz spezielles, ebenfalls viele schritte unabhängig voneinander auf einen Buffer bedingt, aber eben sehr speziell für deinen fall ist, so das es die renderpipline nicht kann(spezielle Image filter etc), dann sind direkte GPU programme(cuda opencl ...) das mittel der Wahl, das funktioniert ähnlich, und freier (weniger vorgeschriebene Workflows) und noch generischer ...