1
我觉得这很讨厌,但是有没有更好的方法从Cg着色器中检索结构参数?从Cg着色器检索结构参数
在11_two_light_with_structs例子(OpenGL的),还有在着色器结构材料:
CG着色器:
// From page 128
struct Material {
float3 Ke;
float3 Ka;
float3 Kd;
float3 Ks;
float shininess;
};
然后在代码中,他们做到这一点:
C代码:
myCgVertexParam_material_Ke = cgGetNamedParameter(myCgVertexProgram, "material.Ke");
myCgVertexParam_material_Ka = cgGetNamedParameter(myCgVertexProgram, "material.Ka");
myCgVertexParam_material_Kd = cgGetNamedParameter(myCgVertexProgram, "material.Kd");
myCgVertexParam_material_Ks = cgGetNamedParameter(myCgVertexProgram, "material.Ks");
请参阅MS乏味,你不能只是做
myCgVertexParam_materialALL = cgGetNamedParameter(myCgVertexProgram, "material") ;
然后是这样的:
cgSetParameterValuefr(myCgVertexParam_materialALL, 13, brassMat) ;//! no.
在这里,我想对待结构作为一个数组,但最后一个命令不工作,虽然,出现错误“参数不是数字类型”。