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

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

11

16.06.2012, 17:08

naja ich passe den Typ dem Typ an, der vom Pixel Shader erwartet wird. Ist das falsch? Für Kritik bin ich dankbar! :-)


Naja, zum Einen weil du die anderen Vektoren mit 3x3 Matrizen multiplizierst, was sich zur Transformation eines Vektors i.A. sinnvoller anhört. Daher frage ich ob du damit irgendwas spezielles Verfolgst... :)
@D13_Dreinig

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

12

18.06.2012, 17:17

naja ich passe den Typ dem Typ an, der vom Pixel Shader erwartet wird. Ist das falsch? Für Kritik bin ich dankbar! :-)


Naja, zum Einen weil du die anderen Vektoren mit 3x3 Matrizen multiplizierst, was sich zur Transformation eines Vektors i.A. sinnvoller anhört. Daher frage ich ob du damit irgendwas spezielles Verfolgst... :)



Hallo,

also ich werde mal alles auf einen 3x3 umstellen. Kann sein, dass ich dann ein

C-/C++-Quelltext

1
float padding;
einbauen.

Gruß

Fb

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

13

18.06.2012, 20:28

Hallo,
ich habe mal zum Test alle Datentypen im Shader auf 3x3 umgestellt. Ich musste das dann alles wieder rückgängig machen, weil ...

Zitat

\dev\cpp\dx11\BumpmapVS.fx(34,10): error X4576: Output signature parameter SV_POSITION (1-based Entry 0) type must be float32 and mask must be xyzw.


Ich habe dann noch ein wenig rumprobiert, allerdings ohne Erfolg. Das Die Textur ist nun komplett verzerrt und der Würfel wechselt immer noch zwischen Zeitlich zu einer kompletten schwarzen Farbe. ?(

Naja ich suche weiter :search:

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

14

18.06.2012, 21:28

ich habe mal zum Test alle Datentypen im Shader auf 3x3 umgestellt. Ich musste das dann alles wieder rückgängig machen, weil ...


Wie sieht denn der Code aus?
@D13_Dreinig

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

15

19.06.2012, 13:36

ich habe mal zum Test alle Datentypen im Shader auf 3x3 umgestellt. Ich musste das dann alles wieder rückgängig machen, weil ...


Wie sieht denn der Code aus?


Hallo David_pb,

poste ich sobald ich von der Arbeit im Hotel bin.

Schöne Grüße

Fb

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

16

20.06.2012, 19:07

:cursing:
Der Fehler lag in einem von mir erstellen Datentyp, welcher nicht mit dem Vertex Layout zusammen passt.

Man braucht lediglich aus dem XMFLOAT4 ein XMFLOAT3, dann gehts. :dash:

C-/C++-Quelltext

1
2
3
4
struct VertexBumpmappingType{
    //XMFLOAT4 pos;
        XMFLOAT3 pos;
    ...


Hinzu kam auch noch, dass ich vergessen hatte die Normal Vektoren von meinem Model in den Buffer zuschreiben, somit konnte nur murks rauskommen. :fie:

Video poste ich am Wochenende :-)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Fireball« (20.06.2012, 19:13)


Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

17

04.08.2012, 05:00

besser spät als nie :-)

So ich glaube, dass kann man als Bumpmapping durchgehen lassen. Habe den Shader noch ein klein wenig erweitert und ein Specular Light Effekt eingebaut.


Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

18

04.08.2012, 12:11

Ich kann mir hier nur an meiner Intuition orientieren, aber die meint, Du hättest da noch eine falsch gerichtete Rotation im Spiel. Das Licht auf der Oberfläche sieht wabbernd aus, nicht stetig in einer Richtung.

Ich will damit sagen: schicker Effekt, aber nicht das, was Du haben willst, wenn Du Normal Mapping anpeilst.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

19

06.08.2012, 15:02

Ich habe eine Frage, die vielleicht hier ungefähr passt:
Ich erstelle für jedes Model, das ich lade, einen eigenen Vertexpuffer (das macht man doch so, oder?) mit den Koordinaten, Texturkoordinaten und Normalen für jeden Vertex. Wenn ich nun einen Shader, wie den hier beschriebenen habe, der zusätzlich noch Tangenten und Binormalen benötigt, kann ich den erstellten Vertexpuffer doch nicht mehr verwenden, da in ihm kein Platz für diese Daten vorhanden ist. Nun gut, ich könnte beim Laden des Models natürlich einen geeigneten Puffer erstellen. Doch was mache ich, wenn ich zu irgendeinem Zeitpunkt auf die Idee komme, den Vertexshader, der das Modell verarbeitet, auszutauschen und stattdessen einen anderen Shader, der ein anderes Inputlayout erwartet, verwenden möchte? Ich müsste dazu doch wieder einen geeigneten Vertexpuffer anlegen. Das kann doch aber nicht der richtige Weg sein?? Falls dem doch so ist, welche Daten sind für weitere Anwendungen in einem Shader erforderlich? Gibt es außer den fünf genannten noch andere Daten, für die Platz vorgesehen werden sollte, damit möglichst viele Anwendungen möglich sind?

Grüße

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

20

06.08.2012, 18:56

Ich müsste dazu doch wieder einen geeigneten Vertexpuffer anlegen. Das kann doch aber nicht der richtige Weg sein??


Dein Vertexpuffer sollte genau die beinhalten, die du benötigst. Was spricht dagegen einen entsprechenden Vertexpuffer zu erstellen?
@D13_Dreinig

Werbeanzeige