param_named_auto Var custom Index
Code: Select all
vertex_program_ref Ocean2VS
{
param_named_auto WaveFreq custom 1
param_named_auto WaveAmp custom 2
param_named_auto BumpScale custom 3
param_named_auto ScaleX custom 4
param_named_auto ScaleY custom 5
param_named_auto SpeedX custom 6
param_named_auto SpeedY custom 7
param_named_auto eyePosition camera_position_object_space
param_named_auto time time_0_x 100.0
}
Code: Select all
uniform float WaveFreq;
uniform float WaveAmp;
uniform float BumpScale;
uniform float ScaleX;
uniform float ScaleY;
uniform float SpeedX;
uniform float SpeedY;
uniform vec3 eyePosition;
uniform float time;
Code: Select all
Enumeration 1
#WaveFreq
#WaveAmp
#BumpScale
#TextureScaleX
#TextureScaleY
#WaveSpeedX
#WaveSpeedY
EndEnumeration
Then once you've loaded and assigned your material to an entity
Code: Select all
ocean\matOcean2 = GetScriptMaterial(#PB_Any,"Ocean2")
CreatePlane(1,5000,5000,50,50,1,1) ;create a surface to render the ocean on
ocean\entity = CreateEntity(#PB_Any, MeshID(1), MaterialID(ocean\matOcean2)) ;set the material to the entity
;set up the shader input control variables
WaveFreq = 0.028
WaveAmp = 1.8
BumpScale = 0.2
TextureScaleX = 25
TextureScaleY = 25
WaveSpeedX = 0.015
WaveSpeedY = 0.005
;set shader values
EntityCustomParameter(ocean\entity,0,#WaveFreq,WaveFreq,0,0,0)
EntityCustomParameter(ocean\entity,0,#WaveAmp,WaveAmp,0,0,0)
EntityCustomParameter(ocean\entity,0,#BumpScale,BumpScale,0,0,0)
EntityCustomParameter(ocean\entity,0,#TextureScaleX,TextureScaleX,0,0,0)
EntityCustomParameter(ocean\entity,0,#TextureScaleY,TextureScaleY,0,0,0)
EntityCustomParameter(ocean\entity,0,#WaveSpeedX,WaveSpeedX,0,0,0)
EntityCustomParameter(ocean\entity,0,#WaveSpeedY,WaveSpeedY,0,0,0)