1
我一直在嘗試編寫幾何着色器以生成廣告牌系統,如Frank Luna的書中介紹的使用DirectX進行3D遊戲編程所述。我插入着色器到我的技術如下:Geometry Shader無法在DirectX10中編譯HLSL
pass P3
{
SetVertexShader(CompileShader(vs_4_0, VS()));
SetGeometryShader(CompileShader(gs_4_0, GS()));
SetPixelShader(CompileShader(ps_4_0, PS_NoSpecular()));
SetBlendState(SrcAlphaBlendingAdd, float4(0.0f, 0.0f, 0.0f, 0.0f), 0xFFFFFFFF);
}
然而,這給出了錯誤1> D3DEffectCompiler:錯誤:沒有有效的VertexShader,幾何着色器組合可以在技術中找到渲染,通P3。
兩個VS和GS的結構給出如下:
struct GS_INPUT
{
float4 PosH : SV_POSITION;
float4 PosW : POSITION;
float2 Tex : TEXCOORD;
float3 N : NORMAL;
float3 Tangent : TANGENT;
float3 Binormal : BINORMAL;
};
struct VS_INPUT
{
float4 Pos : POSITION;
float2 Tex : TEXCOORD;
float3 N : NORMAL;
float3 Tangent : TANGENT;
float3 Binormal : BINORMAL;
};
他們應該是一樣的嗎?
我也有這樣的警告: 語義TEXCOORD已被放置在兩個階段的不同寄存器。 – pypmannetjies 2011-06-08 11:23:13