6

次のエラーが表示されます。Test.fx(1,1):エラーX3000:構文エラー:予期しないトークン'{'

Text.fxにはこれが含まれています:何もありません。

また、別のテストプロジェクトで正常に機能するエフェクトファイルで試してみました。

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

結果と同じエラーで。

両方のプロジェクトに同じdxsdkからのdxファイルが含まれています。同じヘッダーとライブラリを含めてリンクします。

テストプロジェクトからロード関数を文字通りコピーしました。テストプロジェクト全体を自分で作成しました。

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

グーグルはこのようなものには出てこない。私のウェットウェアから短剣を取り除いていただければ幸いです。

アントーン

4

1 に答える 1

5

解決策:RTFファイルを作成してから名前を変更し、ワードパッドで編集しないでください。ファイルは「{\rtf1}」で始まるため、ワードパッドは引き続きrtfとして解釈します。Visual Studioにドラッグすると、実際のコンテンツが表示されました。ああ、世界、あなたはとても楽しいです。

于 2010-06-20T22:44:08.930 に答える