LDKRendererWaterDesc
typedef struct LDKRendererWaterDesc{
float water_level;
rgba32 shallow_color;
rgba32 deep_color;
float depth_color_distance;
float edge_fade_distance;
LDKRendererWaterWave waves[LDK_RENDERER_WATER_WAVE_COUNT];
float detail_scale;
float detail_strength;
float detail_speed;
float specular;
float shininess;
rgba32 foam_color;
float foam_width;
float foam_strength;
float foam_scale;
float shore_range;
float shore_wave_length;
float shore_wave_speed;
float shore_foam_strength;
LDKResourceTexture textures[LDK_RENDERER_WATER_TEXTURE_COUNT];
float noise_scale;
float noise_speed;
float distortion_strength;
float foam_speed;
float foam_cutoff;
float surface_foam_strength;
float caustics_scale;
float caustics_strength;
float caustics_speed;
float caustics_depth;
float time_seconds;
}LDKRendererWaterDesc;
LDKRendererWaterPass
typedef struct LDKRendererWaterPass{
LDKRHIContext *rhi;
LDKRHIShaderModule vertex_shader_module;
LDKRHIShaderModule fragment_shader_module;
LDKRHIBindingsLayout bindings_layout;
LDKRHIPipeline ldr_pipeline;
LDKRHIPipeline hdr_pipeline;
LDKRHIBuffer params_buffer;
LDKRHISampler depth_sampler;
LDKRHISampler texture_sampler;
LDKRHITexture fallback_texture;
bool is_initialized;
}LDKRendererWaterPass;
LDKRendererWaterSubmit
typedef struct LDKRendererWaterSubmit{
LDKResourceMesh mesh;
LDKRendererViewId view_id;
LDKRendererWaterDesc desc;
}LDKRendererWaterSubmit;
LDKRendererWaterWave
typedef struct LDKRendererWaterWave{
float height;
float length;
float speed;
float direction_degrees;
}LDKRendererWaterWave;
LDK_RENDERER_WATER_WAVE_COUNT
#define LDK_RENDERER_WATER_WAVE_COUNT 3u
ldk_renderer_submit_water
Submit a horizontal world-space grid. XZ positions come from the mesh;
the shader supplies Y using water_level and the three waves. Scene depth
is sampled after opaque rendering. Meshes and optional textures remain
caller-owned and must live until render_frame() completes. Overlapping
water surfaces are composited in submission order; this path does not
sort stacked water.
LDK_API bool ldk_renderer_submit_water(
LDKRenderer *renderer,
LDKRendererViewId view_id,
LDKResourceMesh mesh,
const LDKRendererWaterDesc *desc
);
Returns
True if the operation succeeds; false otherwise.
ldk_renderer_water_desc_defaults
Initialize defaults for renderer water.
LDK_API void ldk_renderer_water_desc_defaults(LDKRendererWaterDesc *desc);
ldk_renderer_water_desc_is_valid
Check whether the renderer water desc is valid.
LDK_API bool ldk_renderer_water_desc_is_valid(const LDKRendererWaterDesc *desc);
Returns
True when the queried condition holds; false otherwise.