Проблема: я бы хотел работать с цветами вершин, предоставленными Maya, в моем шейдере cgfx.Это должно быть тривиальной проблемой, но мне пока не везет.
Попытка: ниже я написал супер простой шейдер, который должен просто отображать необработанные цвета вершин.Результат чисто белый.
Детали: Внутренне шейдер работает нормально, если я установлю цвет vert на красный в сравнении с тем, что он проходит просто отлично.Таким образом, проблема заключается в получении значения от майя.Также пробовал с COLOR и COLOR0.
Любая помощь или руководство приветствуется.
// string Category = "Effects\\Cg\\BRDF";
// string keywords = "texture";
string description = "Pure vertex color";
//////////////////////////////////////////////////////////
// untweakables //////////////////////////////////////////
//////////////////////////////////////////////////////////
float4x4 WorldViewProjXf : WorldViewProjection < string UIWidget="none";>;
/****************************************************/
/********** SAMPLERS ********************************/
/****************************************************/
texture ColorTex : Diffuse
<
string ResourceName = "default_color.dds";
string ResourceType = "2D";
>;
sampler2D ColorSampler = sampler_state
{
Texture = <ColorTex>;
MagFilter = Linear;
MinFilter = LinearMipmapLinear;
};
/****************************************************/
/********** CG SHADER FUNCTIONS *********************/
/****************************************************/
/**************************************/
/***** SHARED STRUCT ******************/
/**** Data from app vertex buffer *****/
/**** for all passes *****/
/**************************************/
struct appData {
float3 Position : POSITION;
float4 VertColor: COLOR;
};
/****************************************/
/****************************************/
// vertex->fragment registers used for this pass only
struct outVertexData {
float4 HPosition : POSITION;
float4 vertColor : TEXCOORD1;
};
/****************************************/
/****************************************/
outVertexData textureVS(appData IN)
{
outVertexData OUT;
OUT.vertColor = IN.VertColor;
//OUT.vertColor = float4(1.0f,0.0f,0.0f,0.0f);
float4 Po = float4(IN.Position.xyz,1.0);
OUT.HPosition = mul(WorldViewProjXf, Po);
return OUT;
}
float4 texturePS(outVertexData IN) : COLOR
{
return IN.vertColor;
}
/****************************************************/
/********** TECHNIQUES ******************************/
/****************************************************/
technique main {
pass p0 {
VertexProgram = compile arbvp1 textureVS();
DepthTestEnable = true;
DepthMask = true;
CullFaceEnable = false;
FragmentProgram = compile arbfp1 texturePS();
}
}
/***************************** eof ***/