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

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

1

30.01.2012, 18:02

Indexbuffer im Shader?

Hey,

kann man Indexbuffer im Shader benutzen (GLSL)? Ich find nichts vernünftiges dazu bei Google...
Wenn es geht (muss es ja eigentlich) wüsste ich gerne noch wie, also wie man dann die Dreiecke letztendlich "baut".

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

30.01.2012, 18:10

Was genau meinst du mit "Indexbuffer im Shader benutzen"?

Moe

Frischling

Beiträge: 85

Wohnort: München

  • Private Nachricht senden

3

30.01.2012, 18:31

Also im Geometry-Shader gibst Du die Vertices einfach in der richtigen Reihenfolge aus, da gibt es keinen Indexbuffer. Tesselationshader habe ich noch nicht genaugenug angesehen, um es zu wissen. Im Vertex- und Fragmentshader verstehe ich nicht, was dir der Index helfen könnte?

4

30.01.2012, 19:44

Um welche Shaderart geht es? Der Vertesshader bekommt immer genau einen Shader übergeben und kann damit dann weiter rechnen (ihn z.B. transformieren). Ohne Geometrieshader & Co kümemrt sich die Grafikakrte darum, dass der richtige Vertex aus dem Vertexbuffer gemäß des aktuellen Index aus dem Indexbuffer benutzt wird.
Lieber dumm fragen, als dumm bleiben!

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

5

30.01.2012, 20:25

Zitat

Was genau meinst du mit "Indexbuffer im Shader benutzen"?


Sowas:

Quellcode

1
2
3
4
5
6
7
8
9
// Vertices:
0 0
1 0
0 1
1 1

// Indices:
0 1 2
1 3 2


Also hier ein Quadrat aus 2 Dreiecken aber aus nur 4 Punkten.

Zitat

Ohne Geometrieshader & Co kümemrt sich die Grafikakrte darum, dass der richtige Vertex aus dem Vertexbuffer gemäß des aktuellen Index aus dem Indexbuffer benutzt wird.


Macht das überhaupt Sinn? Weil im Moment erstelle ich aus den Daten einfach mehr Vertices und lass den Indexbuffer dann einfach weg. Aber mir kommt das vor als würde ich Speicher verschwenden oder auf jeden Fall etwas "unnötig" z.B. aus dem oberen Beispiel so etwas zu machen:

Quellcode

1
2
3
4
5
6
7
// Vertices:
0 0
1 0
0 1
1 0
1 1
0 1


Wenn man dann größere Meshes hätte hätte man ja auch ein paar mehr Indices und dafür deutlich weniger Vertices...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

30.01.2012, 20:29

Mir ist immer noch nicht klar wie genau du das "im Shader benutzen" willst.

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

7

30.01.2012, 20:32

Zitat

Mir ist immer noch nicht klar wie genau du das "im Shader benutzen" willst.


Mir auch nicht :P aber ich wollte mal wissen ob die Möglichkeit besteht. Währe es denn sinnvoll?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

30.01.2012, 20:33

Wie bitte sollen wir dir eine Antwort auf eine Frage geben, die du selbst nicht verstehst!?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

30.01.2012, 20:33

Ich glaube ihm ist einfach gar nicht klar, wie die Vertices von der GraKa in die Shader übergeben werden und er glaubt vermutlich er müsse da wie in einem Array drauf zugreifen und bräuchte dazu die Indices.

Ich bin mir auch nicht sicher, ob er mit Shadern rumfiddeln sollte, wenn ihm letzte Woche noch nicht klar war was glViewport macht.
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]

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

10

30.01.2012, 20:41

Zitat

Ich bin mir auch nicht sicher, ob er mit Shadern rumfiddeln sollte, wenn ihm letzte Woche noch nicht klar war was glViewport macht.


Da haben wir von zwei unterschiedlichen Dingen gesprochen.

Zitat

Ich glaube ihm ist einfach gar nicht klar, wie die Vertices von der GraKa in die Shader übergeben werden


Doch, aber du scheinst nicht zu verstehen das ich noch nicht alles wissen kann und ja evt. die Möglichkeit besteht das soetwas irgendwie möglich ist. Also stell mich hier nicht als Dummkopf hin.

Da es wohl nicht geht ist die Frage beantwortet. Vielen Dank, den Thread kann wer gerne aus Grund der Überflüssigkeit platt machen.

PS: übrigens hätte ein Nein am Anfang gereicht.

Werbeanzeige