Bool ApplinkImporter::CreateChannelSpecular(long i, BaseMaterial* mat)
{
	if(this->matArray[i].map_Ks != "")
	{
		BaseChannel *color = mat->GetChannel(CHANNEL_SPECULARCOLOR);
		if (!color) return false;

		GeData b;
		mat->GetParameter(DescID(MATERIAL_USE_SPECULARCOLOR), b, DESCFLAGS_GET_0);
		if(!b.GetBool()) mat->SetParameter(DescID(MATERIAL_USE_SPECULARCOLOR), true, DESCFLAGS_SET_0);
		BaseContainer cdata = color->GetData();
		cdata.SetVector(BASECHANNEL_COLOR_EX, this->matArray[i].Ks);

		cdata.SetData(BAKE_TEX_NORMAL_FLIP_Y, GeData(true));

		if (this->matArray[i].useTextures)
		{
			//GePrint ("Material Use texture: " + this->matArray[i].map_Kd);
			cdata.SetString(BASECHANNEL_TEXTURE, this->matArray[i].map_Ks);
			cdata.SetFilename(BASECHANNEL_SUGGESTEDFOLDER, this->pSet.tempPath);
		}
		color->SetData(cdata);
	}
	
	return true;
}
Example #2
0
Bool SDKGradientClass::Init(GeListNode *node)
{
	BaseContainer *data = ((BaseShader*)node)->GetDataInstance();

	AutoAlloc<Gradient> gradient;
	if (!gradient) return FALSE;

	GradientKnot k1,k2;
	k1.col =Vector(0.0,0.0,1.0);
	k1.pos =0.0;

	k2.col =1.0;
	k2.pos =1.0;

	gradient->InsertKnot(k1);
	gradient->InsertKnot(k2);

	data->SetData(SDKGRADIENTSHADER_COLOR,GeData(CUSTOMDATATYPE_GRADIENT,gradient));
	data->SetBool(SDKGRADIENTSHADER_CYCLE,FALSE);
	data->SetLong(SDKGRADIENTSHADER_MODE,0);
	data->SetReal(SDKGRADIENTSHADER_ANGLE,0.0);

	data->SetReal(SDKGRADIENTSHADER_TURBULENCE,0.0);
	data->SetReal(SDKGRADIENTSHADER_OCTAVES,5.0);
	data->SetReal(SDKGRADIENTSHADER_SCALE,1.0);
	data->SetReal(SDKGRADIENTSHADER_FREQ,1.0);
	data->SetBool(SDKGRADIENTSHADER_ABSOLUTE,FALSE);
	
	return TRUE;
}