On 10/08/2014 at 15:12, xxxxxxxx wrote:
Not sure if it helps but this is how i create my noise shader:
//// NOISE BASE ////
BaseShader *noiseBase = BaseShader::Alloc(Xnoise);
BaseContainer *noiseData_BASE = noiseBase->GetDataInstance();
noiseData_BASE->SetLong(SLA_NOISE_NOISE, 2007); //Noise Type - DISP_TURB
noiseData_BASE->SetReal(SLA_NOISE_OCTAVES, 20);
noiseData_BASE->SetReal(SLA_NOISE_GLOBAL_SCALE, 35);
noiseData_BASE->SetReal(SLA_NOISE_LOW_CLIP, 0);
noiseData_BASE->SetReal(SLA_NOISE_HIGH_CLIP, 1);
noiseData_BASE->SetReal(SLA_NOISE_BRIGHTNESS, -0.04);
noiseData_BASE->SetReal(SLA_NOISE_CONTRAST, 0.81);
noiseData_BASE->SetLong(SLA_NOISE_SEED, (rand() % 1000));
op->InsertShader((BaseShader* )noiseBase, NULL);
And here`s how i drop it into a Fusion shader and apply to a Displace object:
//// FUSION MAP ////
BaseShader *fusion1 = BaseShader::Alloc(Xfusion);
BaseContainer *fusionData = fusion1->GetDataInstance();
fusionData->SetBool(SLA_FUSION_USE_MASK, TRUE);
fusionData->SetReal(SLA_FUSION_BLEND, 0.79);
fusionData->SetLink(SLA_FUSION_BASE_CHANNEL, noiseBase);
fusionData->SetLink(SLA_FUSION_MASK_CHANNEL, noiseMask);
fusionData->SetLink(SLA_FUSION_BLEND_CHANNEL, noiseBlend);
op->InsertShader(fusion1, NULL);
//// DISPLACER OBJECT ////
BaseObject *dP1 = BaseObject::Alloc(1018685);
BaseContainer *dispData = dP1->GetDataInstance();
dispData->SetReal(MGDISPLACER_DISPLACEMENT_HEIGHT, 65);
dispData->SetReal(MGDISPLACER_DISPLACEMENT_STRENGTH, 0.6);
dispData->SetLong(MGDISPLACER_DISPLACEMENTMODE, MGDISPLACER_DISPLACEMENTMODE_INTENSITY);
dispData->SetLong(MGDISPLACER_POLYNORMALMODE, MGDISPLACER_PLANARNORMAL);
dispData->SetLong(PRIM_AXIS, PRIM_AXIS_XP);
dispData->SetLink(ID_MG_SHADER_SHADER, fusion1);