parent
36416206c3
commit
683cfb6912
|
@ -5,6 +5,11 @@ uniform float dayNightRatio;
|
|||
uniform float timeOfDay;
|
||||
uniform vec3 eyePosition;
|
||||
|
||||
uniform float enableWaterWave;
|
||||
uniform float waterWaveHeight;
|
||||
uniform float waterWaveSpeed;
|
||||
uniform float waterWaveLength;
|
||||
|
||||
varying vec3 vPosition;
|
||||
varying vec3 viewVec;
|
||||
varying vec3 T,B,N;
|
||||
|
@ -22,16 +27,18 @@ float rand(vec2 co)
|
|||
void main(void)
|
||||
{
|
||||
gl_Position = mWorldViewProj * gl_Vertex;
|
||||
int wavelength = 20;
|
||||
float waveheight = 1.7;
|
||||
int wavespeed = 100;
|
||||
int height_randomness = 1;
|
||||
vec4 pos2 = gl_Vertex;
|
||||
pos2.y -= 3.0;
|
||||
pos2.y -= sin (pos2.z/wavelength + timeOfDay * wavespeed * wavelength) * waveheight
|
||||
+ sin ((pos2.z/wavelength + timeOfDay * wavespeed * wavelength)/7) * waveheight * height_randomness;
|
||||
gl_Position = mWorldViewProj * pos2;
|
||||
|
||||
if (enableWaterWave == 1)
|
||||
{
|
||||
int wavelength = 20;
|
||||
float waveheight = 0.4;
|
||||
int wavespeed = 50;
|
||||
int height_randomness = 1;
|
||||
vec4 pos2 = gl_Vertex;
|
||||
pos2.y -= 3.0;
|
||||
pos2.y -= sin (pos2.z/waterWaveLength + timeOfDay * waterWaveSpeed * waterWaveLength) * waterWaveHeight
|
||||
+ sin ((pos2.z/waterWaveLength + timeOfDay * waterWaveSpeed * waterWaveLength)/7) * waterWaveHeight * height_randomness;
|
||||
gl_Position = mWorldViewProj * pos2;
|
||||
}
|
||||
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
||||
vec3 pos = vec3(gl_Vertex);
|
||||
|
||||
|
|
|
@ -131,6 +131,10 @@ void set_default_settings(Settings *settings)
|
|||
settings->setDefault("parallax_mapping_bias", "0.04");
|
||||
settings->setDefault("enable_bumpmapping", "false");
|
||||
settings->setDefault("enable_water_surface_shaders", "false");
|
||||
settings->setDefault("enable_water_wave", "false");
|
||||
settings->setDefault("water_wave_height", "0.4");
|
||||
settings->setDefault("water_wave_speed", "50.0");
|
||||
settings->setDefault("water_wave_length", "20.0");
|
||||
settings->setDefault("enable_shaders", "true");
|
||||
settings->setDefault("repeat_rightclick_time", "0.25");
|
||||
settings->setDefault("enable_particles", "true");
|
||||
|
|
12
src/game.cpp
12
src/game.cpp
|
@ -809,6 +809,18 @@ public:
|
|||
services->setPixelShaderConstant("timeOfDay", &time_of_day_f, 1);
|
||||
services->setVertexShaderConstant("timeOfDay", &time_of_day_f, 1);
|
||||
|
||||
float enable_water_wave = 0;
|
||||
if (g_settings->getBool("enable_water_wave")){
|
||||
enable_water_wave = 1;
|
||||
float water_wave_height = g_settings->getFloat("water_wave_height");
|
||||
services->setVertexShaderConstant("waterWaveHeight", &water_wave_height, 1);
|
||||
float water_wave_speed = g_settings->getFloat("water_wave_speed");
|
||||
services->setVertexShaderConstant("waterWaveSpeed", &water_wave_speed, 1);
|
||||
float water_wave_length = g_settings->getFloat("water_wave_length");
|
||||
services->setVertexShaderConstant("waterWaveLength", &water_wave_length, 1);
|
||||
}
|
||||
services->setVertexShaderConstant("enableWaterWave", &enable_water_wave, 1);
|
||||
|
||||
LocalPlayer* player = m_client->getEnv().getLocalPlayer();
|
||||
v3f eye_position = player->getEyePosition();
|
||||
services->setPixelShaderConstant("eyePosition", (irr::f32*)&eye_position, 3);
|
||||
|
|
Loading…
Reference in New Issue