2010-06-20 11 views
6

L'erreur suivante apparaît: Test.fx (1,1): erreur X3000: erreur de syntaxe: jeton inattendu '{'HLSL: vide fichier FX: X3000: jeton inattendu '{'

Text.fx contient ceci: Rien.

J'ai essayé aussi avec un fichier d'effet qui fonctionne très bien dans un autre projet de test:

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(); 
    } 
} 

Avec la même erreur que résultat.

Inclus les fichiers dx du même SDK SDK dans les deux projets. Inclure et relier les mêmes en-têtes et bibliothèques.

J'ai littéralement copié la fonction de chargement du projet de test. J'ai écrit le projet de test entier moi-même.

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

Google ne trouve pas avec quelque chose comme ça. J'apprécierais vraiment si vous pouviez enlever le poignard de mon wetware.

Antoon

Répondre

4

Solution: Ne pas créer des fichiers RTF, puis les renommer et modifier avec WordPad. Wordpad l'interprétera toujours comme rtf car le fichier commence par "{\ rtf1}". Le glisser dans le studio visuel m'a montré le vrai contenu. Oh monde, vous êtes tellement amusant.

+1

Notez que vous pouvez accepter votre propre solution. – Stringer

+0

Oui, certainement pas éditer le code avec un éditeur de texte. Ils font des choses comme ne pas afficher le résultat dans quelque chose qui ressemble à un compilateur, se conformer aux normes de format de texte (qui ne sont pas les mêmes que les normes de code) et n'ont pas la plupart des IDE dont nous dépendons. –