2010-06-20 6 views
6

Die folgenden Fehler angezeigt: Test.fx (1,1): error X3000: Syntaxfehler: unerwartetes Token '{'HLSL: Leere fx file: X3000: unerwartetes Token '{'

Text.fx enthält dies: Nichts.

Ich versuchte es auch mit einer Effekt-Datei, die in einem anderen Test-Projekt funktioniert gut:

float4x4 mWorld; 

struct TInputVertex { 
    float3 vPosition : POSITION0; 
    float3 vNormal  : NORMAL0; 
    float2 vTexCoord : TEXCOORD0; 
    float4 vColor  : COLOR0; 
}; 

struct TOutputVertex { 
    float4 vPosition : POSITION0; 
    float3 vNormal  : TEXCOORD1; 
    float4 vColor  : COLOR0; 
}; 

TOutputVertex vsMain(TInputVertex i) { 
    TOutputVertex o; 

    o.vPosition = mul(float4(i.vPosition, 1), mWorld); 
    o.vColor = i.vColor; 

    o.vNormal = mul(float4(i.vNormal, 1), mWorld).xyz; 

    //o.vColor += pow(dot(normal_world, float3(0, 0, 1)) * 2 + 0.3, 10); 

    return o; 
} 

struct TInputFragment { 
    float3 vNormal  : TEXCOORD1; 
    float2 vTexCoord : TEXCOORD0; 
    float4 vColor  : COLOR0; 
}; 

struct TOutputFragment { 
    float4 vColor  : COLOR0; 
}; 

TOutputFragment psMain(TInputFragment i) { 
    TOutputFragment o; 

    o.vColor = i.vColor; 
    o.vColor += pow(dot(i.vNormal, float3(0, 0, 1)) * 2 + 0.3, 10); 

    return o; 
} 

technique mytech { 
    pass p0 { 
     //ShadeMode = Flat; 
     //ZEnable = false; 

     WorldTransform[0] = mWorld; 

     VertexShader = compile vs_1_1 vsMain(); 
     PixelShader = compile ps_2_0 psMain(); 
    } 
} 

mit dem gleichen Fehler wie Ergebnis.

Enthaltene DX-Dateien von der gleichen DX SDK in beiden Projekten. Einfügen und Verknüpfen derselben Header und Bibliotheken.

Ich habe buchstäblich die Ladefunktion aus dem Testprojekt kopiert. Ich habe das gesamte Testprojekt selbst geschrieben.

HRESULT res = D3DXCreateEffectFromFile(device, file_name, NULL, NULL, 0, 0, &effect, &error_buffer); 

Google kommt mit so etwas nicht auf. Ich würde es wirklich schätzen, wenn Sie den Dolch aus meiner Wetware entfernen könnten.

Antoon

Antwort

4

Lösung: Verwenden Sie keine RTF-Dateien erstellen und sie dann umbenennen und mit Wordpad bearbeiten. Wordpad wird es weiterhin als rtf interpretieren, da die Datei mit "{\ rtf1}" beginnt. Das Ziehen ins Visual Studio zeigte mir den wahren Inhalt. Oh Welt, du machst so viel Spaß.

+1

Beachten Sie, dass Sie Ihre eigene Lösung akzeptieren können. – Stringer

+0

Ja, definitiv nicht Code mit einem Texteditor bearbeiten. Sie tun Dinge wie nicht das Ergebnis in etwas ausstellen, das sich entfernt dem nähert, was ein Compiler erwartet, konform mit Textformatstandards (die nicht mit Code-Standards identisch sind) und nicht die meisten Features von IDEs haben, auf die wir alle angewiesen sind. –