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

stef

Treue Seele

  • »stef« ist der Autor dieses Themas

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

11

03.09.2012, 09:23

Ich glaube ich habe was gefunden ...

http://ogldev.atspace.co.uk/www/tutorial33/tutorial33.html

Der entscheidende Part ist ...

Zitat

Since a WVP matrix is a 4x4 matrix and we plan to provide it as an input variable to the VS we cannot enable just one vertex attribute for it because a vertex attribute can contain no more than 4 floating points or integers.


Das Tutorial ist übringens sehr gut und behandelt genau mein Thema. Sehr zu empfehlen.
Ich probiere das aus und melde mich wieder ob es geklappt hat (für alle die interessiert sind).
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

stef

Treue Seele

  • »stef« ist der Autor dieses Themas

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

12

03.09.2012, 21:56

Habe es mit Hilfe des Tutorials hin bekommen.
Mit Instancing erhöt sich die Renderperformance bei mir um Faktor 5.
Ich habe zwei kleine Demos angehängt die 1000 Ringe Zeichnen.
Einmal mit Instancing (InstancedDraw) und einmal ohne Instancing (RegularDraw).

Wer will kann ja mal testen ...


EDIT: Für die InstancedDraw-Demo gibt es weiter unten einen Bugfix (SecondTry.rar) :S
»stef« hat folgende Datei angehängt:
  • Demo.rar (474,08 kB - 34 mal heruntergeladen - zuletzt: 18.09.2023, 17:37)
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »stef« (03.09.2012, 23:49)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

03.09.2012, 22:29

Stimmt, daran hab ich natürlich nicht gedacht. Gut, dass du es lösen konntest :)

stef

Treue Seele

  • »stef« ist der Autor dieses Themas

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

14

03.09.2012, 22:37

Stimmt, daran hab ich natürlich nicht gedacht. Gut, dass du es lösen konntest


Trotzdem noch mal Danke. Die Sache mit der fehlenden Klammer um die sizeof und die V-Table wären doch als nächstes aufgeschlagen. :thumbsup:
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

03.09.2012, 22:57

Hab grad mal deine Demo ausprobiert und offenbar hast du da noch irgendwo einen Bug. Der Text mit den fps wird bei der normalen Variante korrekt gezeichnet, bei der Variante mit Instancing seh ich allerdings folgendes (musste das Explorerfenster verwenden, um deine Anwendung im Hintergrund zu halten, damit ich einen Screenshot machen konnte ;)):



ATI Mobility Radeon HD 5650 mit Catalyst 12.3

Edit: Auf meinem Desktop mit NVIDIA tritt das Problem nicht auf. Nette Demo btw ;)

stef

Treue Seele

  • »stef« ist der Autor dieses Themas

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

16

03.09.2012, 23:16

ATI Mobility Radeon HD 5650 mit Catalyst 12.3

Edit: Auf meinem Desktop mit NVIDIA tritt das Problem nicht auf.



Ich hoffe mal es liegt and den schlecht implementierten ATI Treibern und nicht an mir. ;)
Auf meiner GeForce hatte ich bisher keine Probleme.
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

03.09.2012, 23:21

ATI und NVIDIA haben beide eigentlich sehr guten OpenGL Support. Natürlich ist es möglich, dass es am Treiber liegt, ich würd aber eher von einem Bug in deinem Code ausgehen, der sich bei NVIDIA einfach nicht bemerkbar macht...

Mit derartigen Dingen ist man unter OpenGL leider sehr oft konfrontiert, z.B. allein schon weil die Shadercompiler komplett im Treiber sitzen und ATI und NVIDIA sehr unterschiedliche Implementierungen haben. NVIDIA übersetzt GLSL intern afaik nach HLSL bzw. Cg bevor es kompiliert. NVIDIA Treiber akzeptieren daher oft Konstrukte, die eigentlich kein gültiges GLSL sind, aber gültiges HLSL wären etc. Ich teste meine GLSL Shader immer auf ATI und NVIDIA, zu oft hatte ich schon das Problem, dass NVIDIA meine Shader genommen hat, ATI aber nicht oder manchmal auch umgekehrt...

Ich nehme an, du zeichnest den Text als dynamischen Spritebatch? Vielleicht ist wieder irgendwo ein Buffer zu klein!?

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »dot« (03.09.2012, 23:31)


stef

Treue Seele

  • »stef« ist der Autor dieses Themas

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

18

03.09.2012, 23:35

@DOT: Eine Unschönheit habe ich noch schnell gefunden. Kannst du noch mal auf deiner ATI testen.
»stef« hat folgende Datei angehängt:
  • SecondTry.rar (238,62 kB - 34 mal heruntergeladen - zuletzt: 20.12.2023, 02:05)
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

19

03.09.2012, 23:39

Jetzt geht's ;)
Was war's denn?

stef

Treue Seele

  • »stef« ist der Autor dieses Themas

Beiträge: 246

Wohnort: Kassel

Beruf: Softwareentwickler

  • Private Nachricht senden

20

03.09.2012, 23:45

Der Shader für den Text war noch mit #version 130 übersetzt.
Außerdem hatte ich vor kurzem von glBindAttribLocation auf layout Qualifier umgestellt,
selbige aber in dem Text-Shader noch nicht nachgezogen. (Peinlich :pillepalle: )
"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

Werbeanzeige