1
これは気になることですが、構造体パラメータをCgシェーダから取得するより良い方法がありますか? 11_two_light_with_structs例(OpenGLの)でCgシェーダから構造体パラメータを取得する
は、構造体の材質は、シェーダーにあります:
のCgシェーダー:
Cコード:
// From page 128
struct Material {
float3 Ke;
float3 Ka;
float3 Kd;
float3 Ks;
float shininess;
};
は、その後のコードで、彼らはこれを行います:
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");
、ここで
cgSetParameterValuefr(myCgVertexParam_materialALL, 13, brassMat) ;//! no.
私は配列として構造体を処理するためにしようとしているが、その最後のコマンドは、しかし動作しません:退屈なMSは、あなただけの後のようなものを
myCgVertexParam_materialALL = cgGetNamedParameter(myCgVertexProgram, "material") ;
を行うことはできません「パラメータは数値型ではありません」というエラーが表示されます。