OpenGL: Ist es effizienter zu nutzen GL_QUADS oder GL_TRIANGLES?

Ich weiß, dass OpenGL veraltet und entledigte GL_QUADS in den neueren Versionen. Ich habe gehört, dass dies aufgrund der Tatsache, dass moderne GPUs nur Dreiecke Rendern mit so ruft ein quad würde nur die GPU härter arbeiten, um brechen es in zwei Dreiecke (was ich jedenfalls gehört, ich bin nicht viel von einem Experten auf jedem von diesem Thema).

Ich Frage mich, ob es nicht besser ist (vorausgesetzt, die Durchschnittliche person, die CPU ist schneller, relativ, als Ihre GPU) nur manuell brechen die übergabe des quads in zwei Dreiecke sich selbst oder lass mal den GPU-tun Sie es selbst. Nochmal, ich habe absolut keine Erfahrung mit OpenGL, da bin ich nur ab. Ich würde lieber wissen was besser ist für die meisten Maschinen in diesen Tagen, so konnte ich meine Aufmerksamkeit auf entweder die rendering-Methode*. Danke.

*Dennoch werde ich wahrscheinlich nutzen die "Dreieck-Methode" for the sake of it.

  • Während die einzelnen CPU-Prozessoren schneller sein als einzelne GPU-Prozessoren, es gibt so viele GPU Prozessoren, die würde ich mir vorstellen, es wäre viel schneller zu ermöglichen, die GPU zu verteilen, das problem über alle seine Prozessoren als handle es sich.
  • Auch wenn Sie es Tausende Male jeden frame?
  • Wenn die quads sind nicht die änderung zwischen den Bildern würde ich sagen, dass es nicht viele frames, bevor die Verlagerung der Berechnung auf der CPU vorzuziehen wäre. In jedem Fall aber, ich glaube, Sie Spalten Haare. In den meisten Grafikanwendungen mit GL_QUADS, ich Wette, der Großteil der Datenverarbeitung erfolgt an anderer Stelle.
  • Ich Neige dazu, das zu tun. Ich bin immer versucht, squeeze immer etwas Saft von etwas, auch wenn nichts übrig ist, um zu bekommen. Aber danke für die kurze Erklärung
  • Sollten Sie es nicht tun vorzeitige Optimierungen. Immer verlassen Sie sich auf die profiling-Ergebnisse.
  • Beachten Sie, dass GL_QUADS wurde entfernt von glDrawElements & Co von OpenGL 3+ (Vergleiche specs von glDrawElements zwischen OGL2 und OGL3)

Schreibe einen Kommentar