Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.10.2014, 22:20

[OpenGL] Polygone zählen

Hallo,
ich arbeite in meinem Studium an einem Projekt und nutze eine (noch in Entwicklung befindlichen) 3D Engine.
Ich würde gerne die Polygone zählen. Bzw. die Dreiecke (wenn ich mich nicht irre, sollte ich daraus die Polygone berechnen können). Gibt es da Funktionen oder muss ich manuell vorgehen. Und falls dies der Fall ist, habt ihr tipps oder Literaturempfehlung für mich?

Vielen Dank.

Viele Grüße,
TheSlowlySnail

FSA

Community-Fossil

  • Private Nachricht senden

2

12.10.2014, 22:32

Polygone von was? Aus einem VertexBuffer? Alle, die gerendert werden?

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

3

12.10.2014, 23:45

Klingt aber ja fast so 'n bisschen wie Tessellation.

MfG
Check

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

4

12.10.2014, 23:49

Also wenn du die Anzahl der Dreiecke zählen willst, zählst du die Größe der Indexbuffer die du der GraKa gibst zusammen, teilst sie durch die Elementgröße (z.B. 4 Byte bei uint) und das teilst du dann durch 3, dann hast du die Dreiecke.
Für die Anzahl der Vertices gehst du genau so vor mit den Vertexbuffern (die Teilung durch 3 auslassen).

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

13.10.2014, 06:42

Mir stellt sich grad die man eine unbekannte Anzahl Polygone rendern will. Die Anzahl muss ja irgendwo bekannt sein.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

6

13.10.2014, 07:12

Ich dachte man rendert Dreiecke?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

13.10.2014, 13:45

Man kann genauso auch Quads rendern. Oder Strips. Aber auch da muss man wissen wie viele. Daher habe ich nur das Wort "Polygone" verwendet.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

8

13.10.2014, 18:07

Quads gibt es im modernen OpenGL nicht mehr.
Bei Strips/Fans wären es theoretisch "n - 2" Polygone bei zu rendernden n-Vertices/Indices.
Praktisch gibt es noch den Primitive Restart, was das ganze zumindest theoretisch, jeden Indexbuffer zu einem Problem macht.
Oder mit den ganzen Dingen wie Geometry Shadern, Tesselation oder gar Indirect Draw, wird die Sache unter Umständen schon etwas komplizierter.

Wenn nicht mit solchen Dingen gearbeitet wird, würde ich einfach ganz naiv in der Software aufaddieren.
Ansonsten gibt es in OpenGL spezielle Queries dafür, falls tatsächlich notwendig, solltest du mal hier schauen:
https://www.opengl.org/wiki/Timer_Query#Primitive_queries

Werbeanzeige