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

11

28.08.2010, 18:24

Wenn ich den Artikel richtig verstanden habe, werden alle 16 Bytes, die Variablen neu gepackt?

Als Beispiel:

C-/C++-Quelltext

1
2
3
4
5
6
struct Light
{
    LightType Type;
    Color Diffuse; // Die ersten 3 Werte, werden in die letzen 3 Werte von der Shader Variable gespeichert?
    Color Ambient; // 
};


C-/C++-Quelltext

1
2
3
4
5
6
7
cbuffer Foo : register(b0)
{
     int Type;
     float4 Diffuse; // r, g, b vom C++ Code werden in g, b, a gespeichert?
     float4 Ambient; // a wird in r gespeichert und a, von Ambient aus den C++ Code geht verloren?
     // usw.
};


Habe ich das so richtig verstanden. Könnte es daran liegen, dass mein Constantbuffer beim aktualisieren eine Fehlermeldung wirft? Weil der Constantbuffer im Shader falsch ist?

Mfg male

12

29.08.2010, 13:24

Sry für den Doppelpost,

also ich habe daran weiter versucht, aber jedes mal wenn ich den 2 Constantbuffer aktualisieren will, bricht der mit einer Fehlermeldung ab, den Buffer erstelle ich wie oben, nur das die mal 16 genommen werden. Kann es daran liegen, dass ich den Buffer nicht aktualisieren kann?

Mfg Male

13

29.08.2010, 15:02

So ich hab den Fehler jetzt gelöst :D Lag daran das die Constantbuffer zu groß waren. Ich hab die Constantbuffer umorganisiert und jetzt klappt es mit der Variablenübertragung :D Kommen noch Anzeigefehler, die ich jetzt versuchen werde zu lösen, aber sonst klappt alles :) Sorry für den Dreifachpost

Mfg Male

Werbeanzeige