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

Sebastian92

Frischling

  • »Sebastian92« ist der Autor dieses Themas

Beiträge: 33

Wohnort: Wesel

Beruf: Azubi (Fachinformatiker für Anwendungsentwicklung)

  • Private Nachricht senden

1

12.03.2008, 08:29

Shader Fehler im Release

Hallo. Ich habe 2 Effekte mit Shadern geschrieben.
Der erste ist für einen SkyDome und funktioniert super.
Bei dem zweiten (BumpMapping) sieht das Ergebnis im Release nicht so aus wie in der Debug version.
(Die rechte Seite ist schwarz und auf dem Boden ist garkeine Veränderung zu sehen.)

Debug:

(Link)

Release:

(Link)


Ich habe mittlerweile herausgefunden das der Shadder nur das richtige Ergebnis liefert wenn ich auf "Multi-threaded Debug DLL (/MDd)" umschalte.
Bei den 3 anderen Optionen sieht es dann so aus wie auf dem 2. Bild gezeigt.

Meine Frage nun:
Woran kann das liegen und wie kann ich das verhindern, ohne "Multi-threaded Debug DLL (/MDd)" zu aktvieren.

2

12.03.2008, 08:47

Sofern du eine der D3DXCreateEffectFrom... Funktionen benutzt: Irgendwelche Flags (D3DXSHADER_DEBUG oä.) angegeben?
Ansonsten fällt mir im Moment kein anderer Zusammenhang ein.

Sebastian92

Frischling

  • »Sebastian92« ist der Autor dieses Themas

Beiträge: 33

Wohnort: Wesel

Beruf: Azubi (Fachinformatiker für Anwendungsentwicklung)

  • Private Nachricht senden

3

12.03.2008, 08:54

Mein Aufruf sieht so aus:

C-/C++-Quelltext

1
2
3
4
if(FAILED(D3DXCreateEffectFromFile(tbDirect3D::Instance().GetDevice(),"Data\\fx\\SkyDome.fx",NULL,NULL,NULL,NULL,&m_pESkyDome,&Buffer)))
        {
        ...
        }

Ich würde mich ja auch mit der EInstellung "Multi-threaded Debug DLL (/MDd)" zu frieden geben aber Die Programme laufen dann nicht auf anderen Rechnern (und sollen langsamer sein!? kann mir das jemand bestätigen?).

Habe mir schon überlegt ob ich es mal mit vorher compilierten Shadern versuchen soll weiß nur leider nicht wie das funktioniert und kann mir eigentlich auch nicht vorstellen das sich damit etwas ändert.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

12.03.2008, 09:14

Gibt dein Programm denn dann irgendwelche Fehlermeldungen aus bzw. kann bestimmte Sachen nicht mehr laden?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

5

12.03.2008, 09:17

Du verwendest die TriBase Engine, oder?
Hast du bei der Release-Version die richtigen Libs (Tribase.lib statt TribaseD.lib etc.) angegeben? Und was sagt die Tribase Log.html nach Ausführen der Release-Version?
In der SkyDome.fx befindet sich auch der Shader für das Bumpmapping?
Wenn nicht, ist der Aufruf für den zweiten Shader identisch?
Und ja, Debug-Versionen sind i.d.R. langsamer. Sollten aber auch auf anderen Rechnern laufen, wenn du die entsprechenden Runtime-Dateien mitlieferst.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

12.03.2008, 09:27

Oder man stellt auf \MTd um.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

7

12.03.2008, 10:57

man kann ja auch die dlls mitliefern. dann sollte es wieder auf anderen rechnern laufen ;)

Sebastian92

Frischling

  • »Sebastian92« ist der Autor dieses Themas

Beiträge: 33

Wohnort: Wesel

Beruf: Azubi (Fachinformatiker für Anwendungsentwicklung)

  • Private Nachricht senden

8

12.03.2008, 18:38

Sorry für die Späte Antwort bin grad im Praktikum.

@Nox:
Nein.

@TrikkieMikkie:
Ich verwende die TriBase Engine mit den richtigen libs und Fehler sind im Log keine.
Nein der BumpMapping-Effekt steht in einer anderen Datei die aber genau so geladen wird.

Welche Runtime-Dateien bräuchte ich denn und wie heißen diese ?

@Nox:
Das mit dem Umstellen klappt nicht. Der Shader läuft nur auf dieser einen Einstellung richtig.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

9

12.03.2008, 20:50

Dann stell auf MTd um und debug das ganze. Immerhin hast du dann eine Chance den Fehler leichter zu finden als in der Releaseversion.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

10

12.03.2008, 20:51

Wenn du VC2005/2008 verwendest, hilft dir bezüglich der Runtimes dieser Thread möglicherweise weiter.

Werbeanzeige