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.
在這裏,我想對待結構作爲一個數組,但最後一個命令不工作,雖然,出現錯誤「參數不是數字類型」。