Du bist nicht angemeldet.

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 veralteten 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: 766

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 859

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: 766

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 859

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 235

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