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

1

08.04.2007, 20:00

Probleme mit Effekt Files (*.fx)

Das letzte Beispielprogramm aus Kapitel 2 lädt ja fx Files und rendert anhand derer verschiedene Sachen. Allerdings tut es das nicht, wenn ich das Programm selbst kompiliere. Also die schon fertig kompilierte exe läuft wunderbar. Nur wenn ich es selbst kompiliere (Debug oder Release) dann lädt er das fx File schon nicht:

Quellcode

1
FEHLER: Der Aufruf von D3DXCreateEffectFromFile verursachte den DirectX-Fehler E_FAIL! Beschreibung: An undetermined error occurred  (Effekte.cpp, Zeile 237, Funktion InitScene)


Komisch ist auch, dass die schon fertig kompilierte Version über 1MB groß ist und meine Release Version nur 316KB. Ich habe folgende Bibliotheken gelinkt (Release) :

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
tribase.lib
d3d9.lib
d3dx9.lib
dxerr9.lib

kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib


Auch enthält mein DirectX SDK (Februar 2007) das im Buch erwähnte Tool "Effect Edit" nicht. Die fx Dateien sind bisweilen mit dem DirectXViewer verknüpft der aber beim öffnen der Dateien abstürzt. Ich verwende Vista x64 falls das irgendetwas aussagt.

Ich lade gerade das DirectX SDK April 2007 von der MS Seite herunter. Vielleicht ist da das Programm dabei.

2

09.04.2007, 11:33

Gibt es denn eine Möglichkeit eine genauere Fehlerangabe von D3DXCreateEffectFromFile zu bekommen als den Rückgabewert E_FAIL ?

Edit: Sorry. Ich hab grad mal nen Blick in die Doku geworfen. Da gibt nen Parameter für Compilerfehler.

3

09.04.2007, 12:02

Sorry für den Tripplepost aber ich bin mir nicht sicher ob es dann jemand bemerkt, dass ich was gepostet habe (Ein Moderator könnte das ja wieder zusammenflicken :D ).

So ich habe nun mal den Compilerfehler ausgegeben. Und der Compiler hängt sich scheinbar an den Strings in den Files auf. Folgende Meldung bekomme ich:

Quellcode

1
Culling.fx(1,28): error X3017: cannot implicitly convert from 'const string' to texture


Die Zeile 1 ist:

Quellcode

1
STRING  Description      = "Culling einmal anders - nur die hinteren Dreiecke zeigen";


Wenn ich nun die erste Zeile auskommentiere, dann meldet er das gleiche über die Zweite, die auch ein String ist.

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

4

12.04.2007, 09:57

Sorry wenn ich nicht genauer helfen kann, saber ich habe keine Zeit Dinge nachzuschauen und hoffe es hilft auch so:

IIRC, wurde in gewissen DX SDK Versionen der FX Compiler geändert. IMO muss er in einer *.lib datei der DX SDK sein, die man dazulinkt. Wenn Du mal die "Changelogs" (Änderungsbeschreibungen) durchliest müsstest Du etwas finden. Ich glaube der neue kann sowohl DX9 als auch DX10 oder so etwas. Vielleicht kann man ja eine option setzen damit er dem alten Compilerverhalten näher kommt?
"Games are algorithmic entertainment."

5

12.04.2007, 12:24

Das habe ich mir auch schon gedacht. Ich habe mich jetzt mal durch die Doku geschmökert und habe bemerkt, dass dort in allen Shader Beispielen die Typen klein geschrieben sind. Dann habe ich das auch mal gemacht und siehe da das ganze funktioniert :D

Werbeanzeige