Blender
V3.3
|
#include <stdbool.h>
Go to the source code of this file.
Classes | |
struct | OceanResult |
struct | OceanCache |
Typedefs | |
typedef struct OceanResult | OceanResult |
typedef struct OceanCache | OceanCache |
Functions | |
struct Ocean * | BKE_ocean_add (void) |
void | BKE_ocean_free_data (struct Ocean *oc) |
void | BKE_ocean_free (struct Ocean *oc) |
bool | BKE_ocean_ensure (struct OceanModifierData *omd, int resolution) |
bool | BKE_ocean_init_from_modifier (struct Ocean *ocean, struct OceanModifierData const *omd, int resolution) |
bool | BKE_ocean_is_valid (const struct Ocean *o) |
bool | BKE_ocean_init (struct Ocean *o, int M, int N, float Lx, float Lz, float V, float l, float A, float w, float damp, float alignment, float depth, float time, int spectrum, float fetch_jonswap, float sharpen_peak_jonswap, short do_height_field, short do_chop, short do_spray, short do_normals, short do_jacobian, int seed) |
void | BKE_ocean_simulate (struct Ocean *o, float t, float scale, float chop_amount) |
float | BKE_ocean_jminus_to_foam (float jminus, float coverage) |
void | BKE_ocean_eval_uv (struct Ocean *oc, struct OceanResult *ocr, float u, float v) |
void | BKE_ocean_eval_uv_catrom (struct Ocean *oc, struct OceanResult *ocr, float u, float v) |
void | BKE_ocean_eval_xz (struct Ocean *oc, struct OceanResult *ocr, float x, float z) |
void | BKE_ocean_eval_xz_catrom (struct Ocean *oc, struct OceanResult *ocr, float x, float z) |
void | BKE_ocean_eval_ij (struct Ocean *oc, struct OceanResult *ocr, int i, int j) |
struct OceanCache * | BKE_ocean_init_cache (const char *bakepath, const char *relbase, int start, int end, float wave_scale, float chop_amount, float foam_coverage, float foam_fade, int resolution) |
void | BKE_ocean_simulate_cache (struct OceanCache *och, int frame) |
void | BKE_ocean_bake (struct Ocean *o, struct OceanCache *och, void(*update_cb)(void *, float progress, int *cancel), void *update_cb_data) |
void | BKE_ocean_cache_eval_uv (struct OceanCache *och, struct OceanResult *ocr, int f, float u, float v) |
void | BKE_ocean_cache_eval_ij (struct OceanCache *och, struct OceanResult *ocr, int f, int i, int j) |
void | BKE_ocean_free_cache (struct OceanCache *och) |
void | BKE_ocean_free_modifier_cache (struct OceanModifierData *omd) |
float | BLI_ocean_spectrum_piersonmoskowitz (const struct Ocean *oc, float kx, float kz) |
float | BLI_ocean_spectrum_texelmarsenarsloe (const struct Ocean *oc, float kx, float kz) |
float | BLI_ocean_spectrum_jonswap (const struct Ocean *oc, float kx, float kz) |
typedef struct OceanCache OceanCache |
typedef struct OceanResult OceanResult |
Definition at line 1608 of file ocean.c.
References MEM_callocN.
Referenced by copyData(), initData(), and ocean_bake_exec().
void BKE_ocean_bake | ( | struct Ocean * | o, |
struct OceanCache * | och, | ||
void(*)(void *, float progress, int *cancel) | update_cb, | ||
void * | update_cb_data | ||
) |
Referenced by ocean_bake_exec(), and oceanbake_startjob().
void BKE_ocean_cache_eval_ij | ( | struct OceanCache * | och, |
struct OceanResult * | ocr, | ||
int | f, | ||
int | i, | ||
int | j | ||
) |
void BKE_ocean_cache_eval_uv | ( | struct OceanCache * | och, |
struct OceanResult * | ocr, | ||
int | f, | ||
float | u, | ||
float | v | ||
) |
bool BKE_ocean_ensure | ( | struct OceanModifierData * | omd, |
int | resolution | ||
) |
void BKE_ocean_eval_ij | ( | struct Ocean * | oc, |
struct OceanResult * | ocr, | ||
int | i, | ||
int | j | ||
) |
Note that this doesn't wrap properly for i, j < 0, but its not really meant for that being just a way to get the raw data out to save in some image format.
void BKE_ocean_eval_uv | ( | struct Ocean * | oc, |
struct OceanResult * | ocr, | ||
float | u, | ||
float | v | ||
) |
Sampling the ocean surface.
void BKE_ocean_eval_uv_catrom | ( | struct Ocean * | oc, |
struct OceanResult * | ocr, | ||
float | u, | ||
float | v | ||
) |
Use catmullrom interpolation rather than linear.
void BKE_ocean_eval_xz | ( | struct Ocean * | oc, |
struct OceanResult * | ocr, | ||
float | x, | ||
float | z | ||
) |
void BKE_ocean_eval_xz_catrom | ( | struct Ocean * | oc, |
struct OceanResult * | ocr, | ||
float | x, | ||
float | z | ||
) |
Definition at line 1645 of file ocean.c.
References MEM_freeN.
Referenced by freeData(), and oceanbake_endjob().
void BKE_ocean_free_cache | ( | struct OceanCache * | och | ) |
Definition at line 1655 of file ocean.c.
References MEM_freeN.
Referenced by BKE_ocean_free_modifier_cache(), and freeData().
void BKE_ocean_free_modifier_cache | ( | struct OceanModifierData * | omd | ) |
Definition at line 1717 of file ocean.c.
References BKE_ocean_free_cache(), OceanModifierData::cached, NULL, and OceanModifierData::oceancache.
Referenced by ocean_bake_exec().
bool BKE_ocean_init | ( | struct Ocean * | o, |
int | M, | ||
int | N, | ||
float | Lx, | ||
float | Lz, | ||
float | V, | ||
float | l, | ||
float | A, | ||
float | w, | ||
float | damp, | ||
float | alignment, | ||
float | depth, | ||
float | time, | ||
int | spectrum, | ||
float | fetch_jonswap, | ||
float | sharpen_peak_jonswap, | ||
short | do_height_field, | ||
short | do_chop, | ||
short | do_spray, | ||
short | do_normals, | ||
short | do_jacobian, | ||
int | seed | ||
) |
Return true if the ocean data is valid and can be used.
struct OceanCache* BKE_ocean_init_cache | ( | const char * | bakepath, |
const char * | relbase, | ||
int | start, | ||
int | end, | ||
float | wave_scale, | ||
float | chop_amount, | ||
float | foam_coverage, | ||
float | foam_fade, | ||
int | resolution | ||
) |
Ocean cache handling.
Referenced by ocean_bake_exec().
bool BKE_ocean_init_from_modifier | ( | struct Ocean * | ocean, |
struct OceanModifierData const * | omd, | ||
int | resolution | ||
) |
Return true if the ocean data is valid and can be used.
Referenced by copyData(), initData(), and ocean_bake_exec().
Return true if the ocean is valid and can be used.
void BKE_ocean_simulate_cache | ( | struct OceanCache * | och, |
int | frame | ||
) |
Hasselmann et al, 1973. This model extends the Pierson-Moskowitz model with a peak sharpening function This enhancement is an artificial construct to address the problem that the wave spectrum is never fully developed.
The fetch parameter represents the distance from a lee shore, called the fetch, or the distance over which the wind blows with constant velocity.
Pierson-Moskowitz model, 1964, assumes waves reach equilibrium with wind. Model is intended for large area 'fully developed' sea, where winds have been steadily blowing for days over an area that includes hundreds of wavelengths on a side.