CgFX几何体着色器

CgFX几何体着色器,cg,geometry-shader,Cg,Geometry Shader,如何将几何体着色器与CgFX一起使用?实际上,如何在“技术”中指定几何体着色器 清单如下所示,顶点着色器和片段着色器编译良好。但是,在我向'technology'添加'GeometryProgram'后,“NVIDIA FX Composer 2.5”会触发一个'error C3001 no program defined' float4x4 WorldITXf : WorldInverseTranspose; float4x4 WorldViewProjXf : WorldViewProjec

如何将几何体着色器与CgFX一起使用?实际上,如何在“技术”中指定几何体着色器

清单如下所示,顶点着色器和片段着色器编译良好。但是,在我向
'technology'
添加
'GeometryProgram'
后,“NVIDIA FX Composer 2.5”会触发一个
'error C3001 no program defined'

float4x4 WorldITXf : WorldInverseTranspose;
float4x4 WorldViewProjXf : WorldViewProjection;
float4x4 WorldXf : World;

struct appdata
{
    float4 Position : POSITION;
    float4 Color    : COLOR0;
};

struct vertexOutput
{
    float4 Position : POSITION;
    float4 Color : COLOR0;
};


TRIANGLE void gshader1(AttribArray<float4> pos : POSITION,
                      AttribArray<float4> col : COLOR0)
{
//    some code will be here;
}


vertexOutput vshader1(appdata IN)
{
    vertexOutput OUT;
    float4 Po = float4(IN.Position.xyz,1.0f);
    OUT.Position = mul(WorldViewProjXf, Po);

    OUT.Color = IN.Color;

    return OUT;
}

float4 fshader1(vertexOutput IN) : COLOR
{
    return  IN.Color;
}

technique Tec1 {
    pass p0 {
        GeometryProgram = compile glslg gshader1();
        VertexProgram = compile glslv vshader1();
        FragmentProgram = compile glslf fshader1();
    }
}
float4x4 WorldITXf:WorldInverseTransfose;
float4x4 WorldViewProjXf:WorldViewProjection;
浮动4x4 WorldXf:世界;
结构appdata
{
浮动位置4:位置;
float4颜色:COLOR0;
};
结构顶点输出
{
浮动位置4:位置;
float4颜色:COLOR0;
};
三角形空隙gshader1(属性阵列位置:位置,
属性阵列列:颜色0)
{
//这里会有一些代码;
}
顶点输出vshader1(appdata输入)
{
垂直输出;
浮动4 Po=浮动4(在位置xyz,1.0f);
OUT.Position=mul(WorldViewProjXf,Po);
OUT.Color=IN.Color;
返回;
}
float4 fshader1(顶点输出输入):颜色
{
返回。颜色;
}
技术Tec1{
通过p0{
GeometryProgram=编译glslg gshader1();
VertexProgram=编译glslv vshader1();
FragmentProgram=编译glslf fshader1();
}
}

已解决。
'glslg'
配置文件出现问题,将其更改为
'gp4gp'
可以解决此问题。

已解决。
'glslg'
配置文件出现问题,将其更改为
'gp4gp'
可以解决此问题