2010-06-20 23 views
6

Các lỗi sau xuất hiện: Test.fx (1,1): Lỗi X3000: cú pháp lỗi: thẻ bất ngờ '{'HLSL: Rỗng fx file: X3000: dấu hiệu bất ngờ '{'

Text.fx chứa này: Không có gì.

Tôi cũng đã thử nó với một tập tin hiệu quả mà hoạt động tốt trong một dự án thử nghiệm:

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

Với những lỗi tương tự như kết quả.

Bao gồm các tệp dx từ cùng một sdx dx trong cả hai dự án. Bao gồm và liên kết cùng một tiêu đề và thư viện.

Tôi đã sao chép chính xác chức năng tải từ dự án thử nghiệm. Tôi đã tự mình viết toàn bộ dự án thử nghiệm.

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

Google không bật lên với bất kỳ thứ gì như thế này. Tôi thực sự đánh giá cao nếu bạn có thể loại bỏ các dao găm từ wetware của tôi.

Antoon

Trả lời

4

Giải pháp: Không tạo tệp RTF, sau đó đổi tên và chỉnh sửa bằng wordpad. Wordpad sẽ vẫn diễn giải nó dưới dạng rtf vì tệp bắt đầu bằng "{\ rtf1}". Kéo nó vào phòng thu trực quan cho tôi thấy những nội dung thực sự. Oh thế giới, bạn đang rất nhiều niềm vui.

+1

Lưu ý rằng bạn có thể chấp nhận giải pháp của riêng mình. – Stringer

+0

Vâng, chắc chắn không chỉnh sửa mã bằng trình chỉnh sửa văn bản. Họ làm những việc như không đưa ra kết quả trong bất kỳ điều gì từ xa tiếp cận những gì mà một trình biên dịch mong đợi, tuân theo các tiêu chuẩn định dạng văn bản (không giống như tiêu chuẩn mã) và không có hầu hết các tính năng của IDE mà chúng ta phụ thuộc. –

Các vấn đề liên quan