From ab06ce0192c8106a3cbb48d76b60280aa29c485f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Madar=C3=A1sz?= Date: Thu, 30 Nov 2023 14:33:49 +0100 Subject: [PATCH] wip lightmapper + GUI improvements --- MAKE.bat | 8 + bind/v4k.lua | 46 +- demos/3rd_lightmapper.h | 1761 ++++++++++++++++++++++++++++++ demos/99-gui.c | 4 +- demos/99-lmap.c | 407 +++++++ demos/99-tls.c | 15 - engine/joint/v4k.h | 1852 +++++++++++++++++++++++++++++++- engine/split/3rd_lightmapper.h | 1761 ++++++++++++++++++++++++++++++ engine/split/v4k.x.inl | 3 + engine/split/v4k_gui.c | 67 +- engine/split/v4k_gui.h | 13 +- engine/split/v4k_render.h | 7 + engine/v4k | 1765 ++++++++++++++++++++++++++++++ engine/v4k.c | 67 +- engine/v4k.h | 20 +- tools/linswap.c | 34 + tools/linswap.exe | Bin 0 -> 7620608 bytes v4k.sublime-project | 4 +- 18 files changed, 7698 insertions(+), 136 deletions(-) create mode 100644 demos/3rd_lightmapper.h create mode 100644 demos/99-lmap.c delete mode 100644 demos/99-tls.c create mode 100644 engine/split/3rd_lightmapper.h create mode 100644 tools/linswap.c create mode 100644 tools/linswap.exe diff --git a/MAKE.bat b/MAKE.bat index 3fddd3b..017d218 100644 --- a/MAKE.bat +++ b/MAKE.bat @@ -31,6 +31,7 @@ if "%1"=="help" ( echo %0 [test] ; check untracked allocators in V4K echo %0 [todo] ; check for @fixme and @todo echo %0 [v4web] ; sync v4 website + echo %0 [swap] ; toggle #line directives on/off echo %0 [split^|join] ; engine/v4k* ^>split^> engine/split/* or engine/split/* ^>join^> engine/v4k* echo %0 [lua] ; execute lua script with v4k echo %0 [amalgamation] ; combine engine/v4k* into a single-header file @@ -243,6 +244,13 @@ if "%1"=="join" ( call tools\join exit /b ) +if "%1"=="swap" ( + echo Swapping #line on v4k.h + call tools\linswap engine\v4k.h + echo Swapping #line on v4k.c + call tools\linswap engine\v4k.c + exit /b +) rem fuse binaries and zipfiles if "%1"=="fuse" ( diff --git a/bind/v4k.lua b/bind/v4k.lua index 1a3973a..f16a31b 100644 --- a/bind/v4k.lua +++ b/bind/v4k.lua @@ -1520,17 +1520,23 @@ ffi.cdef([[ //lcpp INF [0000] vec2: macro name but used as C declaration in:vec2 fire; //lcpp INF [0000] vec4: macro name but used as C declaration in:vec4 pos; //lcpp INF [0000] vec2: macro name but used as C declaration in:vec2 sca; -//lcpp INF [0000] vec4: macro name but used as C declaration in:void (*drawrect)(void* userdata, const char *skin, vec4 rect); -//lcpp INF [0000] vec2: macro name but used as C declaration in:void (*getskinsize)(void* userdata, const char *skin, vec2 *size); -//lcpp INF [0000] vec4: macro name but used as C declaration in:void (*getscissorrect)(void* userdata, const char *skin, vec4 rect, vec4 *dims); -//lcpp INF [0000] vec4: macro name but used as C declaration in:void (*getscissorrect)(void* userdata, const char *skin, vec4 rect, vec4 *dims); -//lcpp INF [0000] vec4: macro name but used as C declaration in:bool (*ismouseinrect)(void* userdata, const char *skin, vec4 rect); -//lcpp INF [0000] vec2: macro name but used as C declaration in:API vec2 gui_getskinsize(const char *skin); -//lcpp INF [0000] vec2: macro name but used as C declaration in:STATIC vec2 gui_getskinsize(const char *skin); -//lcpp INF [0000] vec2: macro name but used as C declaration in: vec2 gui_getskinsize(const char *skin); -//lcpp INF [0000] vec4: macro name but used as C declaration in:API bool gui_ismouseinrect(const char *skin, vec4 rect); -//lcpp INF [0000] vec4: macro name but used as C declaration in:STATIC bool gui_ismouseinrect(const char *skin, vec4 rect); -//lcpp INF [0000] vec4: macro name but used as C declaration in: bool gui_ismouseinrect(const char *skin, vec4 rect); +//lcpp INF [0000] vec4: macro name but used as C declaration in:void (*drawrect)(void* userdata, const char *skin, const char *fallback, vec4 rect); +//lcpp INF [0000] vec2: macro name but used as C declaration in:void (*getskinsize)(void* userdata, const char *skin, const char *fallback, vec2 *size); +//lcpp INF [0000] vec4: macro name but used as C declaration in:void (*getscissorrect)(void* userdata, const char *skin, const char *fallback, vec4 rect, vec4 *dims); +//lcpp INF [0000] vec4: macro name but used as C declaration in:void (*getscissorrect)(void* userdata, const char *skin, const char *fallback, vec4 rect, vec4 *dims); +//lcpp INF [0000] vec4: macro name but used as C declaration in:bool (*ismouseinrect)(void* userdata, const char *skin, const char *fallback, vec4 rect); +//lcpp INF [0000] vec2: macro name but used as C declaration in:API vec2 gui_getskinsize(const char *skin, const char *fallback); +//lcpp INF [0000] vec2: macro name but used as C declaration in:STATIC vec2 gui_getskinsize(const char *skin, const char *fallback); +//lcpp INF [0000] vec2: macro name but used as C declaration in: vec2 gui_getskinsize(const char *skin, const char *fallback); +//lcpp INF [0000] vec4: macro name but used as C declaration in:API bool gui_ismouseinrect(const char *skin, const char *fallback, vec4 rect); +//lcpp INF [0000] vec4: macro name but used as C declaration in:STATIC bool gui_ismouseinrect(const char *skin, const char *fallback, vec4 rect); +//lcpp INF [0000] vec4: macro name but used as C declaration in: bool gui_ismouseinrect(const char *skin, const char *fallback, vec4 rect); +//lcpp INF [0000] vec4: macro name but used as C declaration in:API vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect); +//lcpp INF [0000] vec4: macro name but used as C declaration in:API vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect); +//lcpp INF [0000] vec4: macro name but used as C declaration in:STATIC vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect); +//lcpp INF [0000] vec4: macro name but used as C declaration in:STATIC vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect); +//lcpp INF [0000] vec4: macro name but used as C declaration in: vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect); +//lcpp INF [0000] vec4: macro name but used as C declaration in: vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect); //lcpp INF [0000] vec4: macro name but used as C declaration in:API void gui_panel_id(int id, vec4 rect, const char *skin); //lcpp INF [0000] vec4: macro name but used as C declaration in:STATIC void gui_panel_id(int id, vec4 rect, const char *skin); //lcpp INF [0000] vec4: macro name but used as C declaration in: void gui_panel_id(int id, vec4 rect, const char *skin); @@ -2991,6 +2997,9 @@ float speed; anim_t* anims; } anims_t; anims_t animations(const char *pathfile, int flags); +typedef struct lightmap_t { +struct lm_context *ctx; +} lightmap_t; typedef struct skybox_t { handle program; mesh_t geometry; @@ -3315,7 +3324,7 @@ unsigned play; bool paused; struct atlas_t *a; } sprite_t; -enum { OBJTYPE_sprite_t = 10 }; typedef struct { unsigned static_assert_on_L__LINE__ : !!(10 <= 255); } static_assert_on_Lconcat(_L,3938)___COUNTER__; typedef struct { unsigned static_assert_on_L__LINE__ : !!(sizeof(sprite_t)); } static_assert_on_Lconcat(_L,3938)___COUNTER__;; +enum { OBJTYPE_sprite_t = 10 }; typedef struct { unsigned static_assert_on_L__LINE__ : !!(10 <= 255); } static_assert_on_Lconcat(_L,3945)___COUNTER__; typedef struct { unsigned static_assert_on_L__LINE__ : !!(sizeof(sprite_t)); } static_assert_on_Lconcat(_L,3945)___COUNTER__;; void sprite_ctor(sprite_t *s); void sprite_dtor(sprite_t *s); void sprite_tick(sprite_t *s); @@ -3325,17 +3334,18 @@ enum { OBJTYPE_sprite_t = 10 }; typedef struct { unsigned static_assert_on void sprite_del(sprite_t *s); void sprite_setanim(sprite_t *s, unsigned name); typedef struct guiskin_t { -void (*drawrect)(void* userdata, const char *skin, vec4 rect); -void (*getskinsize)(void* userdata, const char *skin, vec2 *size); -void (*getscissorrect)(void* userdata, const char *skin, vec4 rect, vec4 *dims); -bool (*ismouseinrect)(void* userdata, const char *skin, vec4 rect); +void (*drawrect)(void* userdata, const char *skin, const char *fallback, vec4 rect); +void (*getskinsize)(void* userdata, const char *skin, const char *fallback, vec2 *size); +void (*getscissorrect)(void* userdata, const char *skin, const char *fallback, vec4 rect, vec4 *dims); +bool (*ismouseinrect)(void* userdata, const char *skin, const char *fallback, vec4 rect); void (*free)(void* userdata); void *userdata; } guiskin_t; void gui_pushskin(guiskin_t skin); void* gui_userdata(); - vec2 gui_getskinsize(const char *skin); - bool gui_ismouseinrect(const char *skin, vec4 rect); + vec2 gui_getskinsize(const char *skin, const char *fallback); + bool gui_ismouseinrect(const char *skin, const char *fallback, vec4 rect); + vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect); void gui_panel_id(int id, vec4 rect, const char *skin); void gui_rect_id(int id, vec4 rect, const char *skin); void gui_label_id(int id, const char *text, vec4 rect); diff --git a/demos/3rd_lightmapper.h b/demos/3rd_lightmapper.h new file mode 100644 index 0000000..671db74 --- /dev/null +++ b/demos/3rd_lightmapper.h @@ -0,0 +1,1761 @@ +/*********************************************************** +* A single header file OpenGL lightmapping library * +* https://github.com/ands/lightmapper * +* no warranty implied | use at your own risk * +* author: Andreas Mantler (ands) | last change: 10.05.2018 * +* * +* License: * +* This software is in the public domain. * +* Where that dedication is not recognized, * +* you are granted a perpetual, irrevocable license to copy * +* and modify this file however you want. * +***********************************************************/ + +#ifndef LIGHTMAPPER_H +#define LIGHTMAPPER_H + +#ifdef __cplusplus +#define LM_DEFAULT_VALUE(value) = value +#else +#define LM_DEFAULT_VALUE(value) +#endif + +#ifndef LM_CALLOC +#define LM_CALLOC(count, size) calloc(count, size) +#endif + +#ifndef LM_FREE +#define LM_FREE(ptr) free(ptr) +#endif + +typedef int lm_bool; +#define LM_FALSE 0 +#define LM_TRUE 1 + +typedef int lm_type; +#define LM_NONE 0 +#define LM_UNSIGNED_BYTE GL_UNSIGNED_BYTE +#define LM_UNSIGNED_SHORT GL_UNSIGNED_SHORT +#define LM_UNSIGNED_INT GL_UNSIGNED_INT +#define LM_FLOAT GL_FLOAT + +typedef struct lm_context lm_context; + +// creates a lightmapper instance. it can be used to render multiple lightmaps. +lm_context *lmCreate( + int hemisphereSize, // hemisphereSize: resolution of the hemisphere renderings. must be a power of two! typical: 64. + float zNear, float zFar, // zNear/zFar: hemisphere min/max draw distances. + float clearR, float clearG, float clearB, // clear color / background color / sky color. + int interpolationPasses, float interpolationThreshold, // passes: hierarchical selective interpolation passes (0-8; initial step size = 2^passes). + // threshold: error value below which lightmap pixels are interpolated instead of rendered. + // use output image from LM_DEBUG_INTERPOLATION to determine a good value. + // values around and below 0.01 are probably ok. + // the lower the value, the more hemispheres are rendered -> slower, but possibly better quality. + float cameraToSurfaceDistanceModifier LM_DEFAULT_VALUE(0.0f)); // modifier for the height of the rendered hemispheres above the surface + // -1.0f => stick to surface, 0.0f => minimum height for interpolated surface normals, + // > 0.0f => improves gradients on surfaces with interpolated normals due to the flat surface horizon, + // but may introduce other artifacts. + +// optional: set material characteristics by specifying cos(theta)-dependent weights for incoming light. +typedef float (*lm_weight_func)(float cos_theta, void *userdata); +void lmSetHemisphereWeights(lm_context *ctx, lm_weight_func f, void *userdata); // precalculates weights for incoming light depending on its angle. (default: all weights are 1.0f) + +// specify an output lightmap image buffer with w * h * c * sizeof(float) bytes of memory. +void lmSetTargetLightmap(lm_context *ctx, float *outLightmap, int w, int h, int c); // output HDR lightmap (linear 32bit float channels; c: 1->Greyscale, 2->Greyscale+Alpha, 3->RGB, 4->RGBA). + +// set the geometry to map to the currently set target lightmap (set the target lightmap before calling this!). +void lmSetGeometry(lm_context *ctx, + const float *transformationMatrix, // 4x4 object-to-world transform for the geometry or NULL (no transformation). + lm_type positionsType, const void *positionsXYZ, int positionsStride, // triangle mesh in object space. + lm_type normalsType, const void *normalsXYZ, int normalsStride, // optional normals for the mesh in object space (Use LM_NONE type in case you only need flat surfaces). + lm_type lightmapCoordsType, const void *lightmapCoordsUV, int lightmapCoordsStride, // lightmap atlas texture coordinates for the mesh [0..1]x[0..1] (integer types are normalized to 0..1 range). + int count, lm_type indicesType LM_DEFAULT_VALUE(LM_NONE), const void *indices LM_DEFAULT_VALUE(0));// if mesh indices are used, count = number of indices else count = number of vertices. + + +// as long as lmBegin returns true, the scene has to be rendered with the +// returned camera and view parameters to the currently bound framebuffer. +// if lmBegin returns true, it must be followed by lmEnd after rendering! +lm_bool lmBegin(lm_context *ctx, + int* outViewport4, // output of the current viewport: { x, y, w, h }. use these to call glViewport()! + float* outView4x4, // output of the current camera view matrix. + float* outProjection4x4); // output of the current camera projection matrix. + +float lmProgress(lm_context *ctx); // should only be called between lmBegin/lmEnd! + // provides the light mapping progress as a value increasing from 0.0 to 1.0. + +void lmEnd(lm_context *ctx); + +// destroys the lightmapper instance. should be called to free resources. +void lmDestroy(lm_context *ctx); + + +// image based post processing (c is the number of color channels in the image, m a channel mask for the operation) +#define LM_ALL_CHANNELS 0x0f +float lmImageMin(const float *image, int w, int h, int c, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // find the minimum value (across the specified channels) +float lmImageMax(const float *image, int w, int h, int c, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // find the maximum value (across the specified channels) +void lmImageAdd(float *image, int w, int h, int c, float value, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place add to the specified channels +void lmImageScale(float *image, int w, int h, int c, float factor, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place scaling of the specified channels +void lmImagePower(float *image, int w, int h, int c, float exponent, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place powf(v, exponent) of the specified channels (for gamma) +void lmImageDilate(const float *image, float *outImage, int w, int h, int c); // widen the populated non-zero areas by 1 pixel. +void lmImageSmooth(const float *image, float *outImage, int w, int h, int c); // simple box filter on only the non-zero values. +void lmImageDownsample(const float *image, float *outImage, int w, int h, int c); // downsamples [0..w]x[0..h] to [0..w/2]x[0..h/2] by avereging only the non-zero values +void lmImageFtoUB(const float *image, unsigned char *outImage, int w, int h, int c, float max LM_DEFAULT_VALUE(0.0f)); // casts a floating point image to an 8bit/channel image + +// TGA file output helpers +lm_bool lmImageSaveTGAub(const char *filename, const unsigned char *image, int w, int h, int c); +lm_bool lmImageSaveTGAf(const char *filename, const float *image, int w, int h, int c, float max LM_DEFAULT_VALUE(0.0f)); + +#endif +////////////////////// END OF HEADER ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#ifdef LIGHTMAPPER_IMPLEMENTATION +#undef LIGHTMAPPER_IMPLEMENTATION + +#include +#include +#include +#include +#include +#include + +#define LM_SWAP(type, a, b) { type tmp = (a); (a) = (b); (b) = tmp; } + +#if defined(_MSC_VER) && !defined(__cplusplus) +#define inline __inline +#endif + +#if defined(_MSC_VER) && (_MSC_VER <= 1700) +static inline lm_bool lm_finite(float a) { return _finite(a); } +#else +static inline lm_bool lm_finite(float a) { return isfinite(a); } +#endif + +static inline int lm_mini (int a, int b) { return a < b ? a : b; } +static inline int lm_maxi (int a, int b) { return a > b ? a : b; } +static inline int lm_absi (int a ) { return a < 0 ? -a : a; } +static inline float lm_minf (float a, float b) { return a < b ? a : b; } +static inline float lm_maxf (float a, float b) { return a > b ? a : b; } +static inline float lm_absf (float a ) { return a < 0.0f ? -a : a; } +static inline float lm_pmodf (float a, float b) { return (a < 0.0f ? 1.0f : 0.0f) + (float)fmod(a, b); } // positive mod + +typedef struct lm_ivec2 { int x, y; } lm_ivec2; +static inline lm_ivec2 lm_i2 (int x, int y) { lm_ivec2 v = { x, y }; return v; } + +typedef struct lm_vec2 { float x, y; } lm_vec2; +static inline lm_vec2 lm_v2i (int x, int y) { lm_vec2 v = { (float)x, (float)y }; return v; } +static inline lm_vec2 lm_v2 (float x, float y) { lm_vec2 v = { x, y }; return v; } +static inline lm_vec2 lm_negate2 (lm_vec2 a ) { return lm_v2(-a.x, -a.y); } +static inline lm_vec2 lm_add2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x + b.x, a.y + b.y); } +static inline lm_vec2 lm_sub2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x - b.x, a.y - b.y); } +static inline lm_vec2 lm_mul2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x * b.x, a.y * b.y); } +static inline lm_vec2 lm_scale2 (lm_vec2 a, float b) { return lm_v2(a.x * b, a.y * b); } +static inline lm_vec2 lm_div2 (lm_vec2 a, float b) { return lm_scale2(a, 1.0f / b); } +static inline lm_vec2 lm_pmod2 (lm_vec2 a, float b) { return lm_v2(lm_pmodf(a.x, b), lm_pmodf(a.y, b)); } +static inline lm_vec2 lm_min2 (lm_vec2 a, lm_vec2 b) { return lm_v2(lm_minf(a.x, b.x), lm_minf(a.y, b.y)); } +static inline lm_vec2 lm_max2 (lm_vec2 a, lm_vec2 b) { return lm_v2(lm_maxf(a.x, b.x), lm_maxf(a.y, b.y)); } +static inline lm_vec2 lm_abs2 (lm_vec2 a ) { return lm_v2(lm_absf(a.x), lm_absf(a.y)); } +static inline lm_vec2 lm_floor2 (lm_vec2 a ) { return lm_v2(floorf(a.x), floorf(a.y)); } +static inline lm_vec2 lm_ceil2 (lm_vec2 a ) { return lm_v2(ceilf (a.x), ceilf (a.y)); } +static inline float lm_dot2 (lm_vec2 a, lm_vec2 b) { return a.x * b.x + a.y * b.y; } +static inline float lm_cross2 (lm_vec2 a, lm_vec2 b) { return a.x * b.y - a.y * b.x; } // pseudo cross product +static inline float lm_length2sq (lm_vec2 a ) { return a.x * a.x + a.y * a.y; } +static inline float lm_length2 (lm_vec2 a ) { return sqrtf(lm_length2sq(a)); } +static inline lm_vec2 lm_normalize2(lm_vec2 a ) { return lm_div2(a, lm_length2(a)); } +static inline lm_bool lm_finite2 (lm_vec2 a ) { return lm_finite(a.x) && lm_finite(a.y); } + +typedef struct lm_vec3 { float x, y, z; } lm_vec3; +static inline lm_vec3 lm_v3 (float x, float y, float z) { lm_vec3 v = { x, y, z }; return v; } +static inline lm_vec3 lm_negate3 (lm_vec3 a ) { return lm_v3(-a.x, -a.y, -a.z); } +static inline lm_vec3 lm_add3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x + b.x, a.y + b.y, a.z + b.z); } +static inline lm_vec3 lm_sub3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x - b.x, a.y - b.y, a.z - b.z); } +static inline lm_vec3 lm_mul3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x * b.x, a.y * b.y, a.z * b.z); } +static inline lm_vec3 lm_scale3 (lm_vec3 a, float b) { return lm_v3(a.x * b, a.y * b, a.z * b); } +static inline lm_vec3 lm_div3 (lm_vec3 a, float b) { return lm_scale3(a, 1.0f / b); } +static inline lm_vec3 lm_pmod3 (lm_vec3 a, float b) { return lm_v3(lm_pmodf(a.x, b), lm_pmodf(a.y, b), lm_pmodf(a.z, b)); } +static inline lm_vec3 lm_min3 (lm_vec3 a, lm_vec3 b) { return lm_v3(lm_minf(a.x, b.x), lm_minf(a.y, b.y), lm_minf(a.z, b.z)); } +static inline lm_vec3 lm_max3 (lm_vec3 a, lm_vec3 b) { return lm_v3(lm_maxf(a.x, b.x), lm_maxf(a.y, b.y), lm_maxf(a.z, b.z)); } +static inline lm_vec3 lm_abs3 (lm_vec3 a ) { return lm_v3(lm_absf(a.x), lm_absf(a.y), lm_absf(a.z)); } +static inline lm_vec3 lm_floor3 (lm_vec3 a ) { return lm_v3(floorf(a.x), floorf(a.y), floorf(a.z)); } +static inline lm_vec3 lm_ceil3 (lm_vec3 a ) { return lm_v3(ceilf (a.x), ceilf (a.y), ceilf (a.z)); } +static inline float lm_dot3 (lm_vec3 a, lm_vec3 b) { return a.x * b.x + a.y * b.y + a.z * b.z; } +static inline lm_vec3 lm_cross3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.y * b.z - b.y * a.z, a.z * b.x - b.z * a.x, a.x * b.y - b.x * a.y); } +static inline float lm_length3sq (lm_vec3 a ) { return a.x * a.x + a.y * a.y + a.z * a.z; } +static inline float lm_length3 (lm_vec3 a ) { return sqrtf(lm_length3sq(a)); } +static inline lm_vec3 lm_normalize3(lm_vec3 a ) { return lm_div3(a, lm_length3(a)); } +static inline lm_bool lm_finite3 (lm_vec3 a ) { return lm_finite(a.x) && lm_finite(a.y) && lm_finite(a.z); } + +static lm_vec2 lm_toBarycentric(lm_vec2 p1, lm_vec2 p2, lm_vec2 p3, lm_vec2 p) +{ + // http://www.blackpawn.com/texts/pointinpoly/ + // Compute vectors + lm_vec2 v0 = lm_sub2(p3, p1); + lm_vec2 v1 = lm_sub2(p2, p1); + lm_vec2 v2 = lm_sub2(p, p1); + // Compute dot products + float dot00 = lm_dot2(v0, v0); + float dot01 = lm_dot2(v0, v1); + float dot02 = lm_dot2(v0, v2); + float dot11 = lm_dot2(v1, v1); + float dot12 = lm_dot2(v1, v2); + // Compute barycentric coordinates + float invDenom = 1.0f / (dot00 * dot11 - dot01 * dot01); + float u = (dot11 * dot02 - dot01 * dot12) * invDenom; + float v = (dot00 * dot12 - dot01 * dot02) * invDenom; + return lm_v2(u, v); +} + +static inline int lm_leftOf(lm_vec2 a, lm_vec2 b, lm_vec2 c) +{ + float x = lm_cross2(lm_sub2(b, a), lm_sub2(c, b)); + return x < 0 ? -1 : x > 0; +} + +static lm_bool lm_lineIntersection(lm_vec2 x0, lm_vec2 x1, lm_vec2 y0, lm_vec2 y1, lm_vec2* res) +{ + lm_vec2 dx = lm_sub2(x1, x0); + lm_vec2 dy = lm_sub2(y1, y0); + lm_vec2 d = lm_sub2(x0, y0); + float dyx = lm_cross2(dy, dx); + if (dyx == 0.0f) + return LM_FALSE; + dyx = lm_cross2(d, dx) / dyx; + if (dyx <= 0 || dyx >= 1) + return LM_FALSE; + res->x = y0.x + dyx * dy.x; + res->y = y0.y + dyx * dy.y; + return LM_TRUE; +} + +// this modifies the poly array! the poly array must be big enough to hold the result! +// res must be big enough to hold the result! +static int lm_convexClip(lm_vec2 *poly, int nPoly, const lm_vec2 *clip, int nClip, lm_vec2 *res) +{ + int nRes = nPoly; + int dir = lm_leftOf(clip[0], clip[1], clip[2]); + for (int i = 0, j = nClip - 1; i < nClip && nRes; j = i++) + { + if (i != 0) + for (nPoly = 0; nPoly < nRes; nPoly++) + poly[nPoly] = res[nPoly]; + nRes = 0; + lm_vec2 v0 = poly[nPoly - 1]; + int side0 = lm_leftOf(clip[j], clip[i], v0); + if (side0 != -dir) + res[nRes++] = v0; + for (int k = 0; k < nPoly; k++) + { + lm_vec2 v1 = poly[k], x; + int side1 = lm_leftOf(clip[j], clip[i], v1); + if (side0 + side1 == 0 && side0 && lm_lineIntersection(clip[j], clip[i], v0, v1, &x)) + res[nRes++] = x; + if (k == nPoly - 1) + break; + if (side1 != -dir) + res[nRes++] = v1; + v0 = v1; + side0 = side1; + } + } + + return nRes; +} + +struct lm_context +{ + struct + { + const float *modelMatrix; + float normalMatrix[9]; + + const unsigned char *positions; + lm_type positionsType; + int positionsStride; + const unsigned char *normals; + lm_type normalsType; + int normalsStride; + const unsigned char *uvs; + lm_type uvsType; + int uvsStride; + const unsigned char *indices; + lm_type indicesType; + unsigned int count; + } mesh; + + struct + { + int pass; + int passCount; + + struct + { + unsigned int baseIndex; + lm_vec3 p[3]; + lm_vec3 n[3]; + lm_vec2 uv[3]; + } triangle; + + struct + { + int minx, miny; + int maxx, maxy; + int x, y; + } rasterizer; + + struct + { + lm_vec3 position; + lm_vec3 direction; + lm_vec3 up; + } sample; + + struct + { + int side; + } hemisphere; + } meshPosition; + + struct + { + int width; + int height; + int channels; + float *data; + +#ifdef LM_DEBUG_INTERPOLATION + unsigned char *debug; +#endif + } lightmap; + + struct + { + unsigned int size; + float zNear, zFar; + float cameraToSurfaceDistanceModifier; + struct { float r, g, b; } clearColor; + + unsigned int fbHemiCountX; + unsigned int fbHemiCountY; + unsigned int fbHemiIndex; + lm_ivec2 *fbHemiToLightmapLocation; + GLuint fbTexture[2]; + GLuint fb[2]; + GLuint fbDepth; + GLuint vao; + struct + { + GLuint programID; + GLuint hemispheresTextureID; + GLuint weightsTextureID; + GLuint weightsTexture; + } firstPass; + struct + { + GLuint programID; + GLuint hemispheresTextureID; + } downsamplePass; + struct + { + GLuint texture; + lm_ivec2 writePosition; + lm_ivec2 *toLightmapLocation; + } storage; + } hemisphere; + + float interpolationThreshold; +}; + +// pass order of one 4x4 interpolation patch for two interpolation steps (and the next neighbors right of/below it) +// 0 4 1 4 0 +// 5 6 5 6 5 +// 2 4 3 4 2 +// 5 6 5 6 5 +// 0 4 1 4 0 + +static unsigned int lm_passStepSize(lm_context *ctx) +{ + unsigned int shift = ctx->meshPosition.passCount / 3 - (ctx->meshPosition.pass - 1) / 3; + unsigned int step = (1 << shift); + assert(step > 0); + return step; +} + +static unsigned int lm_passOffsetX(lm_context *ctx) +{ + if (!ctx->meshPosition.pass) + return 0; + int passType = (ctx->meshPosition.pass - 1) % 3; + unsigned int halfStep = lm_passStepSize(ctx) >> 1; + return passType != 1 ? halfStep : 0; +} + +static unsigned int lm_passOffsetY(lm_context *ctx) +{ + if (!ctx->meshPosition.pass) + return 0; + int passType = (ctx->meshPosition.pass - 1) % 3; + unsigned int halfStep = lm_passStepSize(ctx) >> 1; + return passType != 0 ? halfStep : 0; +} + +static lm_bool lm_hasConservativeTriangleRasterizerFinished(lm_context *ctx) +{ + return ctx->meshPosition.rasterizer.y >= ctx->meshPosition.rasterizer.maxy; +} + +static void lm_moveToNextPotentialConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + unsigned int step = lm_passStepSize(ctx); + ctx->meshPosition.rasterizer.x += step; + while (ctx->meshPosition.rasterizer.x >= ctx->meshPosition.rasterizer.maxx) + { + ctx->meshPosition.rasterizer.x = ctx->meshPosition.rasterizer.minx + lm_passOffsetX(ctx); + ctx->meshPosition.rasterizer.y += step; + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + break; + } +} + +static float *lm_getLightmapPixel(lm_context *ctx, int x, int y) +{ + assert(x >= 0 && x < ctx->lightmap.width && y >= 0 && y < ctx->lightmap.height); + return ctx->lightmap.data + (y * ctx->lightmap.width + x) * ctx->lightmap.channels; +} + +static void lm_setLightmapPixel(lm_context *ctx, int x, int y, float *in) +{ + assert(x >= 0 && x < ctx->lightmap.width && y >= 0 && y < ctx->lightmap.height); + float *p = ctx->lightmap.data + (y * ctx->lightmap.width + x) * ctx->lightmap.channels; + for (int j = 0; j < ctx->lightmap.channels; j++) + *p++ = *in++; +} + +#define lm_baseAngle 0.1f +static const float lm_baseAngles[3][3] = { + { lm_baseAngle, lm_baseAngle + 1.0f / 3.0f, lm_baseAngle + 2.0f / 3.0f }, + { lm_baseAngle + 1.0f / 3.0f, lm_baseAngle + 2.0f / 3.0f, lm_baseAngle }, + { lm_baseAngle + 2.0f / 3.0f, lm_baseAngle, lm_baseAngle + 1.0f / 3.0f } +}; + +static lm_bool lm_trySamplingConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + return LM_FALSE; + + // check if lightmap pixel was already set + float *pixelValue = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + for (int j = 0; j < ctx->lightmap.channels; j++) + if (pixelValue[j] != 0.0f) + return LM_FALSE; + + // try calculating centroid by clipping the pixel against the triangle + lm_vec2 pixel[16]; + pixel[0] = lm_v2i(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + pixel[1] = lm_v2i(ctx->meshPosition.rasterizer.x + 1, ctx->meshPosition.rasterizer.y); + pixel[2] = lm_v2i(ctx->meshPosition.rasterizer.x + 1, ctx->meshPosition.rasterizer.y + 1); + pixel[3] = lm_v2i(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y + 1); + + lm_vec2 res[16]; + int nRes = lm_convexClip(pixel, 4, ctx->meshPosition.triangle.uv, 3, res); + if (nRes == 0) + return LM_FALSE; // nothing left + + // calculate centroid position and area + lm_vec2 centroid = res[0]; + float area = res[nRes - 1].x * res[0].y - res[nRes - 1].y * res[0].x; + for (int i = 1; i < nRes; i++) + { + centroid = lm_add2(centroid, res[i]); + area += res[i - 1].x * res[i].y - res[i - 1].y * res[i].x; + } + centroid = lm_div2(centroid, (float)nRes); + area = lm_absf(area / 2.0f); + + if (area <= 0.0f) + return LM_FALSE; // no area left + + // calculate barycentric coords + lm_vec2 uv = lm_toBarycentric( + ctx->meshPosition.triangle.uv[0], + ctx->meshPosition.triangle.uv[1], + ctx->meshPosition.triangle.uv[2], + centroid); + + if (!lm_finite2(uv)) + return LM_FALSE; // degenerate + + // try to interpolate color from neighbors: + if (ctx->meshPosition.pass > 0) + { + float *neighbors[4]; + int neighborCount = 0; + int neighborsExpected = 0; + int d = (int)lm_passStepSize(ctx) / 2; + int dirs = ((ctx->meshPosition.pass - 1) % 3) + 1; + if (dirs & 1) // check x-neighbors with distance d + { + neighborsExpected += 2; + if (ctx->meshPosition.rasterizer.x - d >= ctx->meshPosition.rasterizer.minx && + ctx->meshPosition.rasterizer.x + d <= ctx->meshPosition.rasterizer.maxx) + { + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x - d, ctx->meshPosition.rasterizer.y); + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x + d, ctx->meshPosition.rasterizer.y); + } + } + if (dirs & 2) // check y-neighbors with distance d + { + neighborsExpected += 2; + if (ctx->meshPosition.rasterizer.y - d >= ctx->meshPosition.rasterizer.miny && + ctx->meshPosition.rasterizer.y + d <= ctx->meshPosition.rasterizer.maxy) + { + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y - d); + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y + d); + } + } + if (neighborCount == neighborsExpected) // are all interpolation neighbors available? + { + // calculate average neighbor pixel value + float avg[4] = { 0 }; + for (int i = 0; i < neighborCount; i++) + for (int j = 0; j < ctx->lightmap.channels; j++) + avg[j] += neighbors[i][j]; + float ni = 1.0f / neighborCount; + for (int j = 0; j < ctx->lightmap.channels; j++) + avg[j] *= ni; + + // check if error from average pixel to neighbors is above the interpolation threshold + lm_bool interpolate = LM_TRUE; + for (int i = 0; i < neighborCount; i++) + { + lm_bool zero = LM_TRUE; + for (int j = 0; j < ctx->lightmap.channels; j++) + { + if (neighbors[i][j] != 0.0f) + zero = LM_FALSE; + if (fabs(neighbors[i][j] - avg[j]) > ctx->interpolationThreshold) + interpolate = LM_FALSE; + } + if (zero) + interpolate = LM_FALSE; + if (!interpolate) + break; + } + + // set interpolated value and return if interpolation is acceptable + if (interpolate) + { + lm_setLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y, avg); +#ifdef LM_DEBUG_INTERPOLATION + // set interpolated pixel to green in debug output + ctx->lightmap.debug[(ctx->meshPosition.rasterizer.y * ctx->lightmap.width + ctx->meshPosition.rasterizer.x) * 3 + 1] = 255; +#endif + return LM_FALSE; + } + } + } + + // could not interpolate. must render a hemisphere. + // calculate 3D sample position and orientation + lm_vec3 p0 = ctx->meshPosition.triangle.p[0]; + lm_vec3 p1 = ctx->meshPosition.triangle.p[1]; + lm_vec3 p2 = ctx->meshPosition.triangle.p[2]; + lm_vec3 v1 = lm_sub3(p1, p0); + lm_vec3 v2 = lm_sub3(p2, p0); + ctx->meshPosition.sample.position = lm_add3(p0, lm_add3(lm_scale3(v2, uv.x), lm_scale3(v1, uv.y))); + + lm_vec3 n0 = ctx->meshPosition.triangle.n[0]; + lm_vec3 n1 = ctx->meshPosition.triangle.n[1]; + lm_vec3 n2 = ctx->meshPosition.triangle.n[2]; + lm_vec3 nv1 = lm_sub3(n1, n0); + lm_vec3 nv2 = lm_sub3(n2, n0); + ctx->meshPosition.sample.direction = lm_normalize3(lm_add3(n0, lm_add3(lm_scale3(nv2, uv.x), lm_scale3(nv1, uv.y)))); + ctx->meshPosition.sample.direction = lm_normalize3(ctx->meshPosition.sample.direction); + float cameraToSurfaceDistance = (1.0f + ctx->hemisphere.cameraToSurfaceDistanceModifier) * ctx->hemisphere.zNear * sqrtf(2.0f); + ctx->meshPosition.sample.position = lm_add3(ctx->meshPosition.sample.position, lm_scale3(ctx->meshPosition.sample.direction, cameraToSurfaceDistance)); + + if (!lm_finite3(ctx->meshPosition.sample.position) || + !lm_finite3(ctx->meshPosition.sample.direction) || + lm_length3sq(ctx->meshPosition.sample.direction) < 0.5f) // don't allow 0.0f. should always be ~1.0f + return LM_FALSE; + + lm_vec3 up = lm_v3(0.0f, 1.0f, 0.0f); + if (lm_absf(lm_dot3(up, ctx->meshPosition.sample.direction)) > 0.8f) + up = lm_v3(0.0f, 0.0f, 1.0f); + +#if 0 + // triangle-consistent up vector + ctx->meshPosition.sample.up = lm_normalize3(lm_cross3(up, ctx->meshPosition.sample.direction)); + return LM_TRUE; +#else + // "randomized" rotation with pattern + lm_vec3 side = lm_normalize3(lm_cross3(up, ctx->meshPosition.sample.direction)); + up = lm_normalize3(lm_cross3(side, ctx->meshPosition.sample.direction)); + int rx = ctx->meshPosition.rasterizer.x % 3; + int ry = ctx->meshPosition.rasterizer.y % 3; + static const float lm_pi = 3.14159265358979f; + float phi = 2.0f * lm_pi * lm_baseAngles[ry][rx] + 0.1f * ((float)rand() / (float)RAND_MAX); + ctx->meshPosition.sample.up = lm_normalize3(lm_add3(lm_scale3(side, cosf(phi)), lm_scale3(up, sinf(phi)))); + return LM_TRUE; +#endif +} + +// returns true if a sampling position was found and +// false if we finished rasterizing the current triangle +static lm_bool lm_findFirstConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + while (!lm_trySamplingConservativeTriangleRasterizerPosition(ctx)) + { + lm_moveToNextPotentialConservativeTriangleRasterizerPosition(ctx); + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + return LM_FALSE; + } + return LM_TRUE; +} + +static lm_bool lm_findNextConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + lm_moveToNextPotentialConservativeTriangleRasterizerPosition(ctx); + return lm_findFirstConservativeTriangleRasterizerPosition(ctx); +} + +static void lm_integrateHemisphereBatch(lm_context *ctx) +{ + if (!ctx->hemisphere.fbHemiIndex) + return; // nothing to do + + glDisable(GL_DEPTH_TEST); + glBindVertexArray(ctx->hemisphere.vao); + + int fbRead = 0; + int fbWrite = 1; + + // weighted downsampling pass + int outHemiSize = ctx->hemisphere.size / 2; + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbWrite], 0); + glViewport(0, 0, outHemiSize * ctx->hemisphere.fbHemiCountX, outHemiSize * ctx->hemisphere.fbHemiCountY); + glUseProgram(ctx->hemisphere.firstPass.programID); + glUniform1i(ctx->hemisphere.firstPass.hemispheresTextureID, 0); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbRead]); + glUniform1i(ctx->hemisphere.firstPass.weightsTextureID, 1); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.firstPass.weightsTexture); + glActiveTexture(GL_TEXTURE0); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + //glBindTexture(GL_TEXTURE_2D, 0); + +#if 0 + // debug output + int w = outHemiSize * ctx->hemisphere.fbHemiCountX, h = outHemiSize * ctx->hemisphere.fbHemiCountY; + glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glReadBuffer(GL_COLOR_ATTACHMENT0); + float *image = new float[3 * w * h]; + glReadPixels(0, 0, w, h, GL_RGB, GL_FLOAT, image); + lmImageSaveTGAf("firstpass.png", image, w, h, 3); + delete[] image; +#endif + + // downsampling passes + glUseProgram(ctx->hemisphere.downsamplePass.programID); + glUniform1i(ctx->hemisphere.downsamplePass.hemispheresTextureID, 0); + while (outHemiSize > 1) + { + LM_SWAP(int, fbRead, fbWrite); + outHemiSize /= 2; + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glViewport(0, 0, outHemiSize * ctx->hemisphere.fbHemiCountX, outHemiSize * ctx->hemisphere.fbHemiCountY); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbRead]); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + //glBindTexture(GL_TEXTURE_2D, 0); + } + + // copy results to storage texture + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glCopyTexSubImage2D(GL_TEXTURE_2D, 0, + ctx->hemisphere.storage.writePosition.x, ctx->hemisphere.storage.writePosition.y, + 0, 0, ctx->hemisphere.fbHemiCountX, ctx->hemisphere.fbHemiCountY); + glBindTexture(GL_TEXTURE_2D, 0); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindVertexArray(0); + glEnable(GL_DEPTH_TEST); + + // copy position mapping to storage + for (unsigned int y = 0; y < ctx->hemisphere.fbHemiCountY; y++) + { + int sy = ctx->hemisphere.storage.writePosition.y + y; + for (unsigned int x = 0; x < ctx->hemisphere.fbHemiCountX; x++) + { + int sx = ctx->hemisphere.storage.writePosition.x + x; + unsigned int hemiIndex = y * ctx->hemisphere.fbHemiCountX + x; + if (hemiIndex >= ctx->hemisphere.fbHemiIndex) + ctx->hemisphere.storage.toLightmapLocation[sy * ctx->lightmap.width + sx] = lm_i2(-1, -1); + else + ctx->hemisphere.storage.toLightmapLocation[sy * ctx->lightmap.width + sx] = ctx->hemisphere.fbHemiToLightmapLocation[hemiIndex]; + } + } + + // advance storage texture write position + ctx->hemisphere.storage.writePosition.x += ctx->hemisphere.fbHemiCountX; + if (ctx->hemisphere.storage.writePosition.x + (int)ctx->hemisphere.fbHemiCountX > ctx->lightmap.width) + { + ctx->hemisphere.storage.writePosition.x = 0; + ctx->hemisphere.storage.writePosition.y += ctx->hemisphere.fbHemiCountY; + assert(ctx->hemisphere.storage.writePosition.y + (int)ctx->hemisphere.fbHemiCountY < ctx->lightmap.height); + } + + ctx->hemisphere.fbHemiIndex = 0; +} + +static void lm_writeResultsToLightmap(lm_context *ctx) +{ + // do the GPU->CPU transfer of downsampled hemispheres + float *hemi = (float*)LM_CALLOC(ctx->lightmap.width * ctx->lightmap.height, 4 * sizeof(float)); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_FLOAT, hemi); + + // write results to lightmap texture + for (int y = 0; y < ctx->hemisphere.storage.writePosition.y + (int)ctx->hemisphere.fbHemiCountY; y++) + { + for (int x = 0; x < ctx->lightmap.width; x++) + { + lm_ivec2 lmUV = ctx->hemisphere.storage.toLightmapLocation[y * ctx->lightmap.width + x]; + if (lmUV.x >= 0) + { + float *c = hemi + (y * ctx->lightmap.width + x) * 4; + float validity = c[3]; + float *lm = ctx->lightmap.data + (lmUV.y * ctx->lightmap.width + lmUV.x) * ctx->lightmap.channels; + if (!lm[0] && validity > 0.9) + { + float scale = 1.0f / validity; + switch (ctx->lightmap.channels) + { + case 1: + lm[0] = lm_maxf((c[0] + c[1] + c[2]) * scale / 3.0f, FLT_MIN); + break; + case 2: + lm[0] = lm_maxf((c[0] + c[1] + c[2]) * scale / 3.0f, FLT_MIN); + lm[1] = 1.0f; // do we want to support this format? + break; + case 3: + lm[0] = lm_maxf(c[0] * scale, FLT_MIN); + lm[1] = lm_maxf(c[1] * scale, FLT_MIN); + lm[2] = lm_maxf(c[2] * scale, FLT_MIN); + break; + case 4: + lm[0] = lm_maxf(c[0] * scale, FLT_MIN); + lm[1] = lm_maxf(c[1] * scale, FLT_MIN); + lm[2] = lm_maxf(c[2] * scale, FLT_MIN); + lm[3] = 1.0f; + break; + default: + assert(LM_FALSE); + break; + } + +#ifdef LM_DEBUG_INTERPOLATION + // set sampled pixel to red in debug output + ctx->lightmap.debug[(lmUV.y * ctx->lightmap.width + lmUV.x) * 3 + 0] = 255; +#endif + } + } + ctx->hemisphere.storage.toLightmapLocation[y * ctx->lightmap.width + x].x = -1; // reset + } + } + + LM_FREE(hemi); + ctx->hemisphere.storage.writePosition = lm_i2(0, 0); +} + +static void lm_setView( + int* viewport, int x, int y, int w, int h, + float* view, lm_vec3 pos, lm_vec3 dir, lm_vec3 up, + float* proj, float l, float r, float b, float t, float n, float f) +{ + // viewport + viewport[0] = x; viewport[1] = y; viewport[2] = w; viewport[3] = h; + + // view matrix: lookAt(pos, pos + dir, up) + lm_vec3 side = lm_cross3(dir, up); + //up = cross(side, dir); + dir = lm_negate3(dir); pos = lm_negate3(pos); + view[ 0] = side.x; view[ 1] = up.x; view[ 2] = dir.x; view[ 3] = 0.0f; + view[ 4] = side.y; view[ 5] = up.y; view[ 6] = dir.y; view[ 7] = 0.0f; + view[ 8] = side.z; view[ 9] = up.z; view[10] = dir.z; view[11] = 0.0f; + view[12] = lm_dot3(side, pos); view[13] = lm_dot3(up, pos); view[14] = lm_dot3(dir, pos); view[15] = 1.0f; + + // projection matrix: frustum(l, r, b, t, n, f) + float ilr = 1.0f / (r - l), ibt = 1.0f / (t - b), ninf = -1.0f / (f - n), n2 = 2.0f * n; + proj[ 0] = n2 * ilr; proj[ 1] = 0.0f; proj[ 2] = 0.0f; proj[ 3] = 0.0f; + proj[ 4] = 0.0f; proj[ 5] = n2 * ibt; proj[ 6] = 0.0f; proj[ 7] = 0.0f; + proj[ 8] = (r + l) * ilr; proj[ 9] = (t + b) * ibt; proj[10] = (f + n) * ninf; proj[11] = -1.0f; + proj[12] = 0.0f; proj[13] = 0.0f; proj[14] = f * n2 * ninf; proj[15] = 0.0f; +} + +// returns true if a hemisphere side was prepared for rendering and +// false if we finished the current hemisphere +static lm_bool lm_beginSampleHemisphere(lm_context *ctx, int* viewport, float* view, float* proj) +{ + if (ctx->meshPosition.hemisphere.side >= 5) + return LM_FALSE; + + if (ctx->meshPosition.hemisphere.side == 0) + { + // prepare hemisphere + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[0]); + if (ctx->hemisphere.fbHemiIndex == 0) + { + // prepare hemisphere batch + glClearColor( // clear to valid background pixels! + ctx->hemisphere.clearColor.r, + ctx->hemisphere.clearColor.g, + ctx->hemisphere.clearColor.b, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + } + ctx->hemisphere.fbHemiToLightmapLocation[ctx->hemisphere.fbHemiIndex] = + lm_i2(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + } + + // find the target position in the batch + int x = (ctx->hemisphere.fbHemiIndex % ctx->hemisphere.fbHemiCountX) * ctx->hemisphere.size * 3; + int y = (ctx->hemisphere.fbHemiIndex / ctx->hemisphere.fbHemiCountX) * ctx->hemisphere.size; + + int size = ctx->hemisphere.size; + float zNear = ctx->hemisphere.zNear; + float zFar = ctx->hemisphere.zFar; + + lm_vec3 pos = ctx->meshPosition.sample.position; + lm_vec3 dir = ctx->meshPosition.sample.direction; + lm_vec3 up = ctx->meshPosition.sample.up; + lm_vec3 right = lm_cross3(dir, up); + + // find the view parameters of the hemisphere side that we will render next + // hemisphere layout in the framebuffer: + // +-------+---+---+-------+ + // | | | | D | + // | C | R | L +-------+ + // | | | | U | + // +-------+---+---+-------+ + switch (ctx->meshPosition.hemisphere.side) + { + case 0: // center + lm_setView(viewport, x, y, size, size, + view, pos, dir, up, + proj, -zNear, zNear, -zNear, zNear, zNear, zFar); + break; + case 1: // right + lm_setView(viewport, size + x, y, size / 2, size, + view, pos, right, up, + proj, -zNear, 0.0f, -zNear, zNear, zNear, zFar); + break; + case 2: // left + lm_setView(viewport, size + x + size / 2, y, size / 2, size, + view, pos, lm_negate3(right), up, + proj, 0.0f, zNear, -zNear, zNear, zNear, zFar); + break; + case 3: // down + lm_setView(viewport, 2 * size + x, y + size / 2, size, size / 2, + view, pos, lm_negate3(up), dir, + proj, -zNear, zNear, 0.0f, zNear, zNear, zFar); + break; + case 4: // up + lm_setView(viewport, 2 * size + x, y, size, size / 2, + view, pos, up, lm_negate3(dir), + proj, -zNear, zNear, -zNear, 0.0f, zNear, zFar); + break; + default: + assert(LM_FALSE); + break; + } + + return LM_TRUE; +} + +static void lm_endSampleHemisphere(lm_context *ctx) +{ + if (++ctx->meshPosition.hemisphere.side == 5) + { + // finish hemisphere + glBindFramebuffer(GL_FRAMEBUFFER, 0); + if (++ctx->hemisphere.fbHemiIndex == ctx->hemisphere.fbHemiCountX * ctx->hemisphere.fbHemiCountY) + { + // downsample new hemisphere batch and store the results + lm_integrateHemisphereBatch(ctx); + } + } +} + +static void lm_inverseTranspose(const float *m44, float *n33) +{ + if (!m44) + { + n33[0] = 1.0f; n33[1] = 0.0f; n33[2] = 0.0f; + n33[3] = 0.0f; n33[4] = 1.0f; n33[5] = 0.0f; + n33[6] = 0.0f; n33[7] = 0.0f; n33[8] = 1.0f; + return; + } + + float determinant = m44[ 0] * (m44[ 5] * m44[10] - m44[ 9] * m44[ 6]) + - m44[ 1] * (m44[ 4] * m44[10] - m44[ 6] * m44[ 8]) + + m44[ 2] * (m44[ 4] * m44[ 9] - m44[ 5] * m44[ 8]); + + assert(fabs(determinant) > FLT_EPSILON); + float rcpDeterminant = 1.0f / determinant; + + n33[0] = (m44[ 5] * m44[10] - m44[ 9] * m44[ 6]) * rcpDeterminant; + n33[3] = -(m44[ 1] * m44[10] - m44[ 2] * m44[ 9]) * rcpDeterminant; + n33[6] = (m44[ 1] * m44[ 6] - m44[ 2] * m44[ 5]) * rcpDeterminant; + n33[1] = -(m44[ 4] * m44[10] - m44[ 6] * m44[ 8]) * rcpDeterminant; + n33[4] = (m44[ 0] * m44[10] - m44[ 2] * m44[ 8]) * rcpDeterminant; + n33[7] = -(m44[ 0] * m44[ 6] - m44[ 4] * m44[ 2]) * rcpDeterminant; + n33[2] = (m44[ 4] * m44[ 9] - m44[ 8] * m44[ 5]) * rcpDeterminant; + n33[5] = -(m44[ 0] * m44[ 9] - m44[ 8] * m44[ 1]) * rcpDeterminant; + n33[8] = (m44[ 0] * m44[ 5] - m44[ 4] * m44[ 1]) * rcpDeterminant; +} + +static lm_vec3 lm_transformNormal(const float *m, lm_vec3 n) +{ + lm_vec3 r; + r.x = m[0] * n.x + m[3] * n.y + m[6] * n.z; + r.y = m[1] * n.x + m[4] * n.y + m[7] * n.z; + r.z = m[2] * n.x + m[5] * n.y + m[8] * n.z; + return r; +} + +static lm_vec3 lm_transformPosition(const float *m, lm_vec3 v) +{ + if (!m) + return v; + lm_vec3 r; + r.x = m[0] * v.x + m[4] * v.y + m[ 8] * v.z + m[12]; + r.y = m[1] * v.x + m[5] * v.y + m[ 9] * v.z + m[13]; + r.z = m[2] * v.x + m[6] * v.y + m[10] * v.z + m[14]; + float d = m[3] * v.x + m[7] * v.y + m[11] * v.z + m[15]; + assert(lm_absf(d - 1.0f) < 0.00001f); // could divide by d, but this shouldn't be a projection transform! + return r; +} + +static void lm_setMeshPosition(lm_context *ctx, unsigned int indicesTriangleBaseIndex) +{ + // fetch triangle at the specified indicesTriangleBaseIndex + ctx->meshPosition.triangle.baseIndex = indicesTriangleBaseIndex; + + // load and transform triangle to process next + lm_vec2 uvMin = lm_v2(FLT_MAX, FLT_MAX), uvMax = lm_v2(-FLT_MAX, -FLT_MAX); + lm_vec2 uvScale = lm_v2i(ctx->lightmap.width, ctx->lightmap.height); + unsigned int vIndices[3]; + for (int i = 0; i < 3; i++) + { + // decode index + unsigned int vIndex; + switch (ctx->mesh.indicesType) + { + case LM_NONE: + vIndex = ctx->meshPosition.triangle.baseIndex + i; + break; + case LM_UNSIGNED_BYTE: + vIndex = ((const unsigned char*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + case LM_UNSIGNED_SHORT: + vIndex = ((const unsigned short*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + case LM_UNSIGNED_INT: + vIndex = ((const unsigned int*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + default: + assert(LM_FALSE); + break; + } + vIndices[i] = vIndex; + + // decode and pre-transform vertex position + const void *pPtr = ctx->mesh.positions + vIndex * ctx->mesh.positionsStride; + lm_vec3 p; + switch (ctx->mesh.positionsType) + { + // TODO: signed formats + case LM_UNSIGNED_BYTE: { + const unsigned char *uc = (const unsigned char*)pPtr; + p = lm_v3(uc[0], uc[1], uc[2]); + } break; + case LM_UNSIGNED_SHORT: { + const unsigned short *us = (const unsigned short*)pPtr; + p = lm_v3(us[0], us[1], us[2]); + } break; + case LM_UNSIGNED_INT: { + const unsigned int *ui = (const unsigned int*)pPtr; + p = lm_v3((float)ui[0], (float)ui[1], (float)ui[2]); + } break; + case LM_FLOAT: { + p = *(const lm_vec3*)pPtr; + } break; + default: { + assert(LM_FALSE); + } break; + } + ctx->meshPosition.triangle.p[i] = lm_transformPosition(ctx->mesh.modelMatrix, p); + + // decode and scale (to lightmap resolution) vertex lightmap texture coords + const void *uvPtr = ctx->mesh.uvs + vIndex * ctx->mesh.uvsStride; + lm_vec2 uv; + switch (ctx->mesh.uvsType) + { + case LM_UNSIGNED_BYTE: { + const unsigned char *uc = (const unsigned char*)uvPtr; + uv = lm_v2(uc[0] / (float)UCHAR_MAX, uc[1] / (float)UCHAR_MAX); + } break; + case LM_UNSIGNED_SHORT: { + const unsigned short *us = (const unsigned short*)uvPtr; + uv = lm_v2(us[0] / (float)USHRT_MAX, us[1] / (float)USHRT_MAX); + } break; + case LM_UNSIGNED_INT: { + const unsigned int *ui = (const unsigned int*)uvPtr; + uv = lm_v2(ui[0] / (float)UINT_MAX, ui[1] / (float)UINT_MAX); + } break; + case LM_FLOAT: { + uv = *(const lm_vec2*)uvPtr; + } break; + default: { + assert(LM_FALSE); + } break; + } + + ctx->meshPosition.triangle.uv[i] = lm_mul2(lm_pmod2(uv, 1.0f), uvScale); // maybe clamp to 0.0-1.0 instead of pmod? + + // update bounds on lightmap + uvMin = lm_min2(uvMin, ctx->meshPosition.triangle.uv[i]); + uvMax = lm_max2(uvMax, ctx->meshPosition.triangle.uv[i]); + } + + lm_vec3 flatNormal = lm_cross3( + lm_sub3(ctx->meshPosition.triangle.p[1], ctx->meshPosition.triangle.p[0]), + lm_sub3(ctx->meshPosition.triangle.p[2], ctx->meshPosition.triangle.p[0])); + + for (int i = 0; i < 3; i++) + { + // decode and pre-transform vertex normal + const void *nPtr = ctx->mesh.normals + vIndices[i] * ctx->mesh.normalsStride; + lm_vec3 n; + switch (ctx->mesh.normalsType) + { + // TODO: signed formats + case LM_FLOAT: { + n = *(const lm_vec3*)nPtr; + } break; + case LM_NONE: { + n = flatNormal; + } break; + default: { + assert(LM_FALSE); + } break; + } + ctx->meshPosition.triangle.n[i] = lm_normalize3(lm_transformNormal(ctx->mesh.normalMatrix, n)); + } + + // calculate area of interest (on lightmap) for conservative rasterization + lm_vec2 bbMin = lm_floor2(uvMin); + lm_vec2 bbMax = lm_ceil2 (uvMax); + ctx->meshPosition.rasterizer.minx = lm_maxi((int)bbMin.x - 1, 0); + ctx->meshPosition.rasterizer.miny = lm_maxi((int)bbMin.y - 1, 0); + ctx->meshPosition.rasterizer.maxx = lm_mini((int)bbMax.x + 1, ctx->lightmap.width - 1); + ctx->meshPosition.rasterizer.maxy = lm_mini((int)bbMax.y + 1, ctx->lightmap.height - 1); + assert(ctx->meshPosition.rasterizer.minx <= ctx->meshPosition.rasterizer.maxx && + ctx->meshPosition.rasterizer.miny <= ctx->meshPosition.rasterizer.maxy); + ctx->meshPosition.rasterizer.x = ctx->meshPosition.rasterizer.minx + lm_passOffsetX(ctx); + ctx->meshPosition.rasterizer.y = ctx->meshPosition.rasterizer.miny + lm_passOffsetY(ctx); + + // try moving to first valid sample position + if (ctx->meshPosition.rasterizer.x <= ctx->meshPosition.rasterizer.maxx && + ctx->meshPosition.rasterizer.y <= ctx->meshPosition.rasterizer.maxy && + lm_findFirstConservativeTriangleRasterizerPosition(ctx)) + ctx->meshPosition.hemisphere.side = 0; // we can start sampling the hemisphere + else + ctx->meshPosition.hemisphere.side = 5; // no samples on this triangle! put hemisphere sampler into finished state +} + +static GLuint lm_LoadShader(GLenum type, const char *source) +{ + GLuint shader = glCreateShader(type); + if (shader == 0) + { + fprintf(stderr, "Could not create shader!\n"); + return 0; + } + glShaderSource(shader, 1, &source, NULL); + glCompileShader(shader); + GLint compiled; + glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); + if (!compiled) + { + fprintf(stderr, "Could not compile shader!\n"); + GLint infoLen = 0; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); + if (infoLen) + { + char* infoLog = (char*)malloc(infoLen); + glGetShaderInfoLog(shader, infoLen, NULL, infoLog); + fprintf(stderr, "%s\n", infoLog); + free(infoLog); + } + glDeleteShader(shader); + return 0; + } + return shader; +} + +static GLuint lm_LoadProgram(const char *vp, const char *fp) +{ + GLuint program = glCreateProgram(); + if (program == 0) + { + fprintf(stderr, "Could not create program!\n"); + return 0; + } + GLuint vertexShader = lm_LoadShader(GL_VERTEX_SHADER, vp); + GLuint fragmentShader = lm_LoadShader(GL_FRAGMENT_SHADER, fp); + glAttachShader(program, vertexShader); + glAttachShader(program, fragmentShader); + glLinkProgram(program); + glDeleteShader(vertexShader); + glDeleteShader(fragmentShader); + GLint linked; + glGetProgramiv(program, GL_LINK_STATUS, &linked); + if (!linked) + { + fprintf(stderr, "Could not link program!\n"); + GLint infoLen = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &infoLen); + if (infoLen) + { + char* infoLog = (char*)malloc(sizeof(char) * infoLen); + glGetProgramInfoLog(program, infoLen, NULL, infoLog); + fprintf(stderr, "%s\n", infoLog); + free(infoLog); + } + glDeleteProgram(program); + return 0; + } + return program; +} + +static float lm_defaultWeights(float cos_theta, void *userdata) +{ + return 1.0f; +} + +lm_context *lmCreate(int hemisphereSize, float zNear, float zFar, + float clearR, float clearG, float clearB, + int interpolationPasses, float interpolationThreshold, + float cameraToSurfaceDistanceModifier) +{ + assert(hemisphereSize == 512 || hemisphereSize == 256 || hemisphereSize == 128 || + hemisphereSize == 64 || hemisphereSize == 32 || hemisphereSize == 16); + assert(zNear < zFar && zNear > 0.0f); + assert(cameraToSurfaceDistanceModifier >= -1.0f); + assert(interpolationPasses >= 0 && interpolationPasses <= 8); + assert(interpolationThreshold >= 0.0f); + + lm_context *ctx = (lm_context*)LM_CALLOC(1, sizeof(lm_context)); + + ctx->meshPosition.passCount = 1 + 3 * interpolationPasses; + ctx->interpolationThreshold = interpolationThreshold; + ctx->hemisphere.size = hemisphereSize; + ctx->hemisphere.zNear = zNear; + ctx->hemisphere.zFar = zFar; + ctx->hemisphere.cameraToSurfaceDistanceModifier = cameraToSurfaceDistanceModifier; + ctx->hemisphere.clearColor.r = clearR; + ctx->hemisphere.clearColor.g = clearG; + ctx->hemisphere.clearColor.b = clearB; + + // calculate hemisphere batch size + ctx->hemisphere.fbHemiCountX = 1536 / (3 * ctx->hemisphere.size); + ctx->hemisphere.fbHemiCountY = 512 / ctx->hemisphere.size; + + // hemisphere batch framebuffers + unsigned int w[] = { + ctx->hemisphere.fbHemiCountX * ctx->hemisphere.size * 3, + ctx->hemisphere.fbHemiCountX * ctx->hemisphere.size / 2 }; + unsigned int h[] = { + ctx->hemisphere.fbHemiCountY * ctx->hemisphere.size, + ctx->hemisphere.fbHemiCountY * ctx->hemisphere.size / 2 }; + + glGenTextures(2, ctx->hemisphere.fbTexture); + glGenFramebuffers(2, ctx->hemisphere.fb); + glGenRenderbuffers(1, &ctx->hemisphere.fbDepth); + + glBindRenderbuffer(GL_RENDERBUFFER, ctx->hemisphere.fbDepth); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, w[0], h[0]); + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[0]); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, ctx->hemisphere.fbDepth); + for (int i = 0; i < 2; i++) + { + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[i]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, w[i], h[i], 0, GL_RGBA, GL_FLOAT, 0); + + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[i]); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, ctx->hemisphere.fbTexture[i], 0); + GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + if (status != GL_FRAMEBUFFER_COMPLETE) + { + fprintf(stderr, "Could not create framebuffer!\n"); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + } + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + // dummy vao for fullscreen quad rendering + glGenVertexArrays(1, &ctx->hemisphere.vao); + + // hemisphere shader (weighted downsampling of the 3x1 hemisphere layout to a 0.5x0.5 square) + { + const char *vs = + "#version 150 core\n" + "const vec2 ps[4] = vec2[](vec2(1, -1), vec2(1, 1), vec2(-1, -1), vec2(-1, 1));\n" + "void main()\n" + "{\n" + "gl_Position = vec4(ps[gl_VertexID], 0, 1);\n" + "}\n"; + const char *fs = + "#version 150 core\n" + "uniform sampler2D hemispheres;\n" + "uniform sampler2D weights;\n" + + "layout(pixel_center_integer) in vec4 gl_FragCoord;\n" // whole integer values represent pixel centers, GL_ARB_fragment_coord_conventions + + "out vec4 outColor;\n" + + "vec4 weightedSample(ivec2 h_uv, ivec2 w_uv, ivec2 quadrant)\n" + "{\n" + "vec4 sample = texelFetch(hemispheres, h_uv + quadrant, 0);\n" + "vec2 weight = texelFetch(weights, w_uv + quadrant, 0).rg;\n" + "return vec4(sample.rgb * weight.r, sample.a * weight.g);\n" + "}\n" + + "vec4 threeWeightedSamples(ivec2 h_uv, ivec2 w_uv, ivec2 offset)\n" + "{\n" // horizontal triple sum + "vec4 sum = weightedSample(h_uv, w_uv, offset);\n" + "sum += weightedSample(h_uv, w_uv, offset + ivec2(2, 0));\n" + "sum += weightedSample(h_uv, w_uv, offset + ivec2(4, 0));\n" + "return sum;\n" + "}\n" + + "void main()\n" + "{\n" // this is a weighted sum downsampling pass (alpha component contains the weighted valid sample count) + "vec2 in_uv = gl_FragCoord.xy * vec2(6.0, 2.0) + vec2(0.5);\n" + "ivec2 h_uv = ivec2(in_uv);\n" + "ivec2 w_uv = ivec2(mod(in_uv, vec2(textureSize(weights, 0))));\n" // there's no integer modulo :( + "vec4 lb = threeWeightedSamples(h_uv, w_uv, ivec2(0, 0));\n" + "vec4 rb = threeWeightedSamples(h_uv, w_uv, ivec2(1, 0));\n" + "vec4 lt = threeWeightedSamples(h_uv, w_uv, ivec2(0, 1));\n" + "vec4 rt = threeWeightedSamples(h_uv, w_uv, ivec2(1, 1));\n" + "outColor = lb + rb + lt + rt;\n" + "}\n"; + ctx->hemisphere.firstPass.programID = lm_LoadProgram(vs, fs); + if (!ctx->hemisphere.firstPass.programID) + { + fprintf(stderr, "Error loading the hemisphere first pass shader program... leaving!\n"); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + ctx->hemisphere.firstPass.hemispheresTextureID = glGetUniformLocation(ctx->hemisphere.firstPass.programID, "hemispheres"); + ctx->hemisphere.firstPass.weightsTextureID = glGetUniformLocation(ctx->hemisphere.firstPass.programID, "weights"); + } + + // downsample shader + { + const char *vs = + "#version 150 core\n" + "const vec2 ps[4] = vec2[](vec2(1, -1), vec2(1, 1), vec2(-1, -1), vec2(-1, 1));\n" + "void main()\n" + "{\n" + "gl_Position = vec4(ps[gl_VertexID], 0, 1);\n" + "}\n"; + const char *fs = + "#version 150 core\n" + "uniform sampler2D hemispheres;\n" + + "layout(pixel_center_integer) in vec4 gl_FragCoord;\n" // whole integer values represent pixel centers, GL_ARB_fragment_coord_conventions + + "out vec4 outColor;\n" + + "void main()\n" + "{\n" // this is a sum downsampling pass (alpha component contains the weighted valid sample count) + "ivec2 h_uv = ivec2(gl_FragCoord.xy) * 2;\n" + "vec4 lb = texelFetch(hemispheres, h_uv + ivec2(0, 0), 0);\n" + "vec4 rb = texelFetch(hemispheres, h_uv + ivec2(1, 0), 0);\n" + "vec4 lt = texelFetch(hemispheres, h_uv + ivec2(0, 1), 0);\n" + "vec4 rt = texelFetch(hemispheres, h_uv + ivec2(1, 1), 0);\n" + "outColor = lb + rb + lt + rt;\n" + "}\n"; + ctx->hemisphere.downsamplePass.programID = lm_LoadProgram(vs, fs); + if (!ctx->hemisphere.downsamplePass.programID) + { + fprintf(stderr, "Error loading the hemisphere downsample pass shader program... leaving!\n"); + glDeleteProgram(ctx->hemisphere.firstPass.programID); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + ctx->hemisphere.downsamplePass.hemispheresTextureID = glGetUniformLocation(ctx->hemisphere.downsamplePass.programID, "hemispheres"); + } + + // hemisphere weights texture + glGenTextures(1, &ctx->hemisphere.firstPass.weightsTexture); + lmSetHemisphereWeights(ctx, lm_defaultWeights, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + + // allocate batchPosition-to-lightmapPosition map + ctx->hemisphere.fbHemiToLightmapLocation = (lm_ivec2*)LM_CALLOC(ctx->hemisphere.fbHemiCountX * ctx->hemisphere.fbHemiCountY, sizeof(lm_ivec2)); + + return ctx; +} + +void lmDestroy(lm_context *ctx) +{ + // reset state + glUseProgram(0); + glBindTexture(GL_TEXTURE_2D, 0); + glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); + glBindVertexArray(0); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + + // delete gl objects + glDeleteTextures(1, &ctx->hemisphere.firstPass.weightsTexture); + glDeleteTextures(1, &ctx->hemisphere.storage.texture); + glDeleteProgram(ctx->hemisphere.downsamplePass.programID); + glDeleteProgram(ctx->hemisphere.firstPass.programID); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + glDeleteTextures(1, &ctx->hemisphere.storage.texture); + + // free memory + LM_FREE(ctx->hemisphere.storage.toLightmapLocation); + LM_FREE(ctx->hemisphere.fbHemiToLightmapLocation); +#ifdef LM_DEBUG_INTERPOLATION + LM_FREE(ctx->lightmap.debug); +#endif + LM_FREE(ctx); +} + +void lmSetHemisphereWeights(lm_context *ctx, lm_weight_func f, void *userdata) +{ + // hemisphere weights texture. bakes in material dependent attenuation behaviour. + float *weights = (float*)LM_CALLOC(2 * 3 * ctx->hemisphere.size * ctx->hemisphere.size, sizeof(float)); + float center = (ctx->hemisphere.size - 1) * 0.5f; + double sum = 0.0; + for (unsigned int y = 0; y < ctx->hemisphere.size; y++) + { + float dy = 2.0f * (y - center) / (float)ctx->hemisphere.size; + for (unsigned int x = 0; x < ctx->hemisphere.size; x++) + { + float dx = 2.0f * (x - center) / (float)ctx->hemisphere.size; + lm_vec3 v = lm_normalize3(lm_v3(dx, dy, 1.0f)); + + float solidAngle = v.z * v.z * v.z; + + float *w0 = weights + 2 * (y * (3 * ctx->hemisphere.size) + x); + float *w1 = w0 + 2 * ctx->hemisphere.size; + float *w2 = w1 + 2 * ctx->hemisphere.size; + + // center weights + w0[0] = solidAngle * f(v.z, userdata); + w0[1] = solidAngle; + + // left/right side weights + w1[0] = solidAngle * f(lm_absf(v.x), userdata); + w1[1] = solidAngle; + + // up/down side weights + w2[0] = solidAngle * f(lm_absf(v.y), userdata); + w2[1] = solidAngle; + + sum += 3.0 * (double)solidAngle; + } + } + + // normalize weights + float weightScale = (float)(1.0 / sum); + for (unsigned int i = 0; i < 2 * 3 * ctx->hemisphere.size * ctx->hemisphere.size; i++) + weights[i] *= weightScale; + + // upload weight texture + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.firstPass.weightsTexture); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RG32F, 3 * ctx->hemisphere.size, ctx->hemisphere.size, 0, GL_RG, GL_FLOAT, weights); + LM_FREE(weights); +} + +void lmSetTargetLightmap(lm_context *ctx, float *outLightmap, int w, int h, int c) +{ + ctx->lightmap.data = outLightmap; + ctx->lightmap.width = w; + ctx->lightmap.height = h; + ctx->lightmap.channels = c; + + // allocate storage texture + if (!ctx->hemisphere.storage.texture) + glGenTextures(1, &ctx->hemisphere.storage.texture); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, w, h, 0, GL_RGBA, GL_FLOAT, 0); + + // allocate storage position to lightmap position map + if (ctx->hemisphere.storage.toLightmapLocation) + LM_FREE(ctx->hemisphere.storage.toLightmapLocation); + ctx->hemisphere.storage.toLightmapLocation = (lm_ivec2*)LM_CALLOC(w * h, sizeof(lm_ivec2)); + // invalidate all positions + for (int i = 0; i < w * h; i++) + ctx->hemisphere.storage.toLightmapLocation[i].x = -1; + +#ifdef LM_DEBUG_INTERPOLATION + if (ctx->lightmap.debug) + LM_FREE(ctx->lightmap.debug); + ctx->lightmap.debug = (unsigned char*)LM_CALLOC(ctx->lightmap.width * ctx->lightmap.height, 3); +#endif +} + +void lmSetGeometry(lm_context *ctx, + const float *transformationMatrix, + lm_type positionsType, const void *positionsXYZ, int positionsStride, + lm_type normalsType, const void *normalsXYZ, int normalsStride, + lm_type lightmapCoordsType, const void *lightmapCoordsUV, int lightmapCoordsStride, + int count, lm_type indicesType, const void *indices) +{ + ctx->mesh.modelMatrix = transformationMatrix; + ctx->mesh.positions = (const unsigned char*)positionsXYZ; + ctx->mesh.positionsType = positionsType; + ctx->mesh.positionsStride = positionsStride == 0 ? sizeof(lm_vec3) : positionsStride; + ctx->mesh.normals = (const unsigned char*)normalsXYZ; + ctx->mesh.normalsType = normalsType; + ctx->mesh.normalsStride = normalsStride == 0 ? sizeof(lm_vec3) : normalsStride; + ctx->mesh.uvs = (const unsigned char*)lightmapCoordsUV; + ctx->mesh.uvsType = lightmapCoordsType; + ctx->mesh.uvsStride = lightmapCoordsStride == 0 ? sizeof(lm_vec2) : lightmapCoordsStride; + ctx->mesh.indicesType = indicesType; + ctx->mesh.indices = (const unsigned char*)indices; + ctx->mesh.count = count; + + lm_inverseTranspose(transformationMatrix, ctx->mesh.normalMatrix); + + ctx->meshPosition.pass = 0; + lm_setMeshPosition(ctx, 0); +} + +lm_bool lmBegin(lm_context *ctx, int* outViewport4, float* outView4x4, float* outProjection4x4) +{ + assert(ctx->meshPosition.triangle.baseIndex < ctx->mesh.count); + while (!lm_beginSampleHemisphere(ctx, outViewport4, outView4x4, outProjection4x4)) + { // as long as there are no hemisphere sides to render... + // try moving to the next rasterizer position + if (lm_findNextConservativeTriangleRasterizerPosition(ctx)) + { // if we successfully moved to the next sample position on the current triangle... + ctx->meshPosition.hemisphere.side = 0; // start sampling a hemisphere there + } + else + { // if there are no valid sample positions on the current triangle... + if (ctx->meshPosition.triangle.baseIndex + 3 < ctx->mesh.count) + { // ...and there are triangles left: move to the next triangle and continue sampling. + lm_setMeshPosition(ctx, ctx->meshPosition.triangle.baseIndex + 3); + } + else + { // ...and there are no triangles left: finish + lm_integrateHemisphereBatch(ctx); // integrate and store last batch + lm_writeResultsToLightmap(ctx); // read storage data from gpu memory and write it to the lightmap + + if (++ctx->meshPosition.pass == ctx->meshPosition.passCount) + { + ctx->meshPosition.pass = 0; + ctx->meshPosition.triangle.baseIndex = ctx->mesh.count; // set end condition (in case someone accidentally calls lmBegin again) + +#ifdef LM_DEBUG_INTERPOLATION + lmImageSaveTGAub("debug_interpolation.tga", ctx->lightmap.debug, ctx->lightmap.width, ctx->lightmap.height, 3); + + // lightmap texel statistics + int rendered = 0, interpolated = 0, wasted = 0; + for (int y = 0; y < ctx->lightmap.height; y++) + { + for (int x = 0; x < ctx->lightmap.width; x++) + { + if (ctx->lightmap.debug[(y * ctx->lightmap.width + x) * 3 + 0]) + rendered++; + else if (ctx->lightmap.debug[(y * ctx->lightmap.width + x) * 3 + 1]) + interpolated++; + else + wasted++; + } + } + int used = rendered + interpolated; + int total = used + wasted; + printf("\n#######################################################################\n"); + printf("%10d %6.2f%% rendered hemicubes integrated to lightmap texels.\n", rendered, 100.0f * (float)rendered / (float)total); + printf("%10d %6.2f%% interpolated lightmap texels.\n", interpolated, 100.0f * (float)interpolated / (float)total); + printf("%10d %6.2f%% wasted lightmap texels.\n", wasted, 100.0f * (float)wasted / (float)total); + printf("\n%17.2f%% of used texels were rendered.\n", 100.0f * (float)rendered / (float)used); + printf("#######################################################################\n"); +#endif + + return LM_FALSE; + } + + lm_setMeshPosition(ctx, 0); // start over with the next pass + } + } + } + return LM_TRUE; +} + +float lmProgress(lm_context *ctx) +{ + float passProgress = (float)ctx->meshPosition.triangle.baseIndex / (float)ctx->mesh.count; + return ((float)ctx->meshPosition.pass + passProgress) / (float)ctx->meshPosition.passCount; +} + +void lmEnd(lm_context *ctx) +{ + lm_endSampleHemisphere(ctx); +} + +// these are not performance tuned since their impact on the whole lightmapping duration is insignificant +float lmImageMin(const float *image, int w, int h, int c, int m) +{ + assert(c > 0 && m); + float minValue = FLT_MAX; + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + minValue = lm_minf(minValue, image[i * c + j]); + return minValue; +} + +float lmImageMax(const float *image, int w, int h, int c, int m) +{ + assert(c > 0 && m); + float maxValue = 0.0f; + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + maxValue = lm_maxf(maxValue, image[i * c + j]); + return maxValue; +} + +void lmImageAdd(float *image, int w, int h, int c, float value, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] += value; +} + +void lmImageScale(float *image, int w, int h, int c, float factor, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] *= factor; +} + +void lmImagePower(float *image, int w, int h, int c, float exponent, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] = powf(image[i * c + j], exponent); +} + +void lmImageDilate(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h; y++) + { + for (int x = 0; x < w; x++) + { + float color[4]; + lm_bool valid = LM_FALSE; + for (int i = 0; i < c; i++) + { + color[i] = image[(y * w + x) * c + i]; + valid |= color[i] > 0.0f; + } + if (!valid) + { + int n = 0; + const int dx[] = { -1, 0, 1, 0 }; + const int dy[] = { 0, 1, 0, -1 }; + for (int d = 0; d < 4; d++) + { + int cx = x + dx[d]; + int cy = y + dy[d]; + if (cx >= 0 && cx < w && cy >= 0 && cy < h) + { + float dcolor[4]; + lm_bool dvalid = LM_FALSE; + for (int i = 0; i < c; i++) + { + dcolor[i] = image[(cy * w + cx) * c + i]; + dvalid |= dcolor[i] > 0.0f; + } + if (dvalid) + { + for (int i = 0; i < c; i++) + color[i] += dcolor[i]; + n++; + } + } + } + if (n) + { + float in = 1.0f / n; + for (int i = 0; i < c; i++) + color[i] *= in; + } + } + for (int i = 0; i < c; i++) + outImage[(y * w + x) * c + i] = color[i]; + } + } +} + +void lmImageSmooth(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h; y++) + { + for (int x = 0; x < w; x++) + { + float color[4] = {0}; + int n = 0; + for (int dy = -1; dy <= 1; dy++) + { + int cy = y + dy; + for (int dx = -1; dx <= 1; dx++) + { + int cx = x + dx; + if (cx >= 0 && cx < w && cy >= 0 && cy < h) + { + lm_bool valid = LM_FALSE; + for (int i = 0; i < c; i++) + valid |= image[(cy * w + cx) * c + i] > 0.0f; + if (valid) + { + for (int i = 0; i < c; i++) + color[i] += image[(cy * w + cx) * c + i]; + n++; + } + } + } + } + for (int i = 0; i < c; i++) + outImage[(y * w + x) * c + i] = n ? color[i] / n : 0.0f; + } + } +} + +void lmImageDownsample(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h / 2; y++) + { + for (int x = 0; x < w / 2; x++) + { + int p0 = 2 * (y * w + x) * c; + int p1 = p0 + w * c; + int valid[2][2] = {0}; + float sums[4] = {0}; + for (int i = 0; i < c; i++) + { + valid[0][0] |= image[p0 + i] != 0.0f ? 1 : 0; + valid[0][1] |= image[p0 + c + i] != 0.0f ? 1 : 0; + valid[1][0] |= image[p1 + i] != 0.0f ? 1 : 0; + valid[1][1] |= image[p1 + c + i] != 0.0f ? 1 : 0; + sums[i] += image[p0 + i] + image[p0 + c + i] + image[p1 + i] + image[p1 + c + i]; + } + int n = valid[0][0] + valid[0][1] + valid[1][0] + valid[1][1]; + int p = (y * w / 2 + x) * c; + for (int i = 0; i < c; i++) + outImage[p + i] = n ? sums[i] / n : 0.0f; + } + } +} + +void lmImageFtoUB(const float *image, unsigned char *outImage, int w, int h, int c, float max) +{ + assert(c > 0); + float scale = 255.0f / (max != 0.0f ? max : lmImageMax(image, w, h, c, LM_ALL_CHANNELS)); + for (int i = 0; i < w * h * c; i++) + outImage[i] = (unsigned char)lm_minf(lm_maxf(image[i] * scale, 0.0f), 255.0f); +} + +// TGA output helpers +static void lm_swapRandBub(unsigned char *image, int w, int h, int c) +{ + assert(c >= 3); + for (int i = 0; i < w * h * c; i += c) + LM_SWAP(unsigned char, image[i], image[i + 2]); +} + +lm_bool lmImageSaveTGAub(const char *filename, const unsigned char *image, int w, int h, int c) +{ + assert(c == 1 || c == 3 || c == 4); + lm_bool isGreyscale = c == 1; + lm_bool hasAlpha = c == 4; + unsigned char header[18] = { + 0, 0, (unsigned char)(isGreyscale ? 3 : 2), 0, 0, 0, 0, 0, 0, 0, 0, 0, + (unsigned char)(w & 0xff), (unsigned char)((w >> 8) & 0xff), (unsigned char)(h & 0xff), (unsigned char)((h >> 8) & 0xff), + (unsigned char)(8 * c), (unsigned char)(hasAlpha ? 8 : 0) + }; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + FILE *file; + if (fopen_s(&file, filename, "wb") != 0) return LM_FALSE; +#else + FILE *file = fopen(filename, "wb"); + if (!file) return LM_FALSE; +#endif + fwrite(header, 1, sizeof(header), file); + + // we make sure to swap it back! trust me. :) + if (!isGreyscale) + lm_swapRandBub((unsigned char*)image, w, h, c); + fwrite(image, 1, w * h * c , file); + if (!isGreyscale) + lm_swapRandBub((unsigned char*)image, w, h, c); + + fclose(file); + return LM_TRUE; +} + +lm_bool lmImageSaveTGAf(const char *filename, const float *image, int w, int h, int c, float max) +{ + unsigned char *temp = (unsigned char*)LM_CALLOC(w * h * c, sizeof(unsigned char)); + lmImageFtoUB(image, temp, w, h, c, max); + lm_bool success = lmImageSaveTGAub(filename, temp, w, h, c); + LM_FREE(temp); + return success; +} + +#endif // LIGHTMAPPER_IMPLEMENTATION diff --git a/demos/99-gui.c b/demos/99-gui.c index 4933586..ddae7d4 100644 --- a/demos/99-gui.c +++ b/demos/99-gui.c @@ -45,13 +45,13 @@ int main() { gui_rect(vec4(40,240, 240, 20*skinned->scale), "vial"); gui_rect(vec4(40,240, 160, 14*skinned->scale), "mp"); - vec2 badge_size = gui_getskinsize("badge"); + vec2 badge_size = gui_getskinsize("badge", 0); badge_size.x += 2; // padding gui_rect(vec4(60+badge_size.x*0,320, 1, 1), "badge"); gui_rect(vec4(60+badge_size.x*1,320, 1, 1), "badge"); gui_rect(vec4(60+badge_size.x*2,320, 1, 1), "badge_empty"); - vec2 slider_size = gui_getskinsize("slider"); + vec2 slider_size = gui_getskinsize("slider", 0); gui_slider(vec4(60, 480, 80*skinned->scale, 1), 0, 0.0f, 15.0f, 1.0f, &testval); gui_slider_label(va(FONT_H1 "%.02f", testval2), vec4(60, 480+slider_size.y+10, 120*skinned->scale, 1), 0, -5.0f, 20.0f, 0.0f, &testval2); gui_panel_end(); diff --git a/demos/99-lmap.c b/demos/99-lmap.c new file mode 100644 index 0000000..306c2d2 --- /dev/null +++ b/demos/99-lmap.c @@ -0,0 +1,407 @@ +#include "v4k.h" + +#define LIGHTMAPPER_IMPLEMENTATION +// #define LM_DEBUG_INTERPOLATION +#include "3rd_lightmapper.h" + +#define scene_t scene_t2 + +typedef struct { + float p[3]; + float t[2]; +} vertex_t; + +typedef struct +{ + GLuint program; + GLint u_lightmap; + GLint u_projection; + GLint u_view; + + GLuint lightmap; + int w, h; + + GLuint vao, vbo, ibo; + vertex_t *vertices; + unsigned short *indices; + unsigned int vertexCount, indexCount; +} scene_t; + +static int initScene(scene_t *scene); +static void drawScene(scene_t *scene, float *view, float *projection); +static void destroyScene(scene_t *scene); + +static int bake(scene_t *scene) +{ + lm_context *ctx = lmCreate( + 64, // hemisphere resolution (power of two, max=512) + 0.001f, 100.0f, // zNear, zFar of hemisphere cameras + 1.0f, 1.0f, 1.0f, // background color (white for ambient occlusion) + 2, 0.01f, // lightmap interpolation threshold (small differences are interpolated rather than sampled) + // check debug_interpolation.tga for an overview of sampled (red) vs interpolated (green) pixels. + 0.0f); // modifier for camera-to-surface distance for hemisphere rendering. + // tweak this to trade-off between interpolated normals quality and other artifacts (see declaration). + + if (!ctx) + { + fprintf(stderr, "Error: Could not initialize lightmapper.\n"); + return 0; + } + + int w = scene->w, h = scene->h; + float *data = CALLOC(w * h * 4, sizeof(float)); + for (int b = 0; b < 1; b++) { + memset(data, 0, w*h*4); + lmSetTargetLightmap(ctx, data, w, h, 4); + + lmSetGeometry(ctx, NULL, // no transformation in this example + LM_FLOAT, (unsigned char*)scene->vertices + offsetof(vertex_t, p), sizeof(vertex_t), + LM_NONE , NULL , 0 , // no interpolated normals in this example + LM_FLOAT, (unsigned char*)scene->vertices + offsetof(vertex_t, t), sizeof(vertex_t), + scene->indexCount, LM_UNSIGNED_SHORT, scene->indices); + + glDisable(GL_BLEND); + + int vp[4]; + float view[16], projection[16]; + double lastUpdateTime = 0.0; + while (lmBegin(ctx, vp, view, projection)) + { + // render to lightmapper framebuffer + glViewport(vp[0], vp[1], vp[2], vp[3]); + drawScene(scene, view, projection); + + // display progress every second (printf is expensive) + double time = time_ms() / 1000.0; + if (time - lastUpdateTime > 1.0) + { + lastUpdateTime = time; + printf("\r%6.2f%%", lmProgress(ctx) * 100.0f); + fflush(stdout); + } + + lmEnd(ctx); + // window_swap(); + } + printf("\rFinished baking %d triangles.\n", scene->indexCount / 3); + } + + lmDestroy(ctx); + + // postprocess texture + float *temp = CALLOC(w * h * 4, sizeof(float)); + for (int i = 0; i < 16; i++) + { + lmImageDilate(data, temp, w, h, 4); + lmImageDilate(temp, data, w, h, 4); + } + lmImageSmooth(data, temp, w, h, 4); + lmImageDilate(temp, data, w, h, 4); + lmImagePower(data, w, h, 4, 1.0f / 2.2f, 0x7); // gamma correct color channels + FREE(temp); + + // save result to a file + if (lmImageSaveTGAf("result.tga", data, w, h, 4, 1.0f)) + printf("Saved result.tga\n"); + + // upload result + glBindTexture(GL_TEXTURE_2D, scene->lightmap); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_FLOAT, data); + FREE(data); + + return 1; +} + +static void fpsCameraViewMatrix(float *view); + +static void mainLoop(scene_t *scene) +{ + glViewport(0, 0, window_width(), window_height()); + + // camera for glfw window + float view[16], projection[16]; + fpsCameraViewMatrix(view); + perspective44(projection, 45.0f, window_aspect(), 0.01f, 100.0f); + + // draw to screen with a blueish sky + glClearColor(0.6f, 0.8f, 1.0f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + drawScene(scene, view, projection); +} + +int main() +{ + window_create(0.5, WINDOW_VSYNC_DISABLED); + + scene_t scene = {0}; + if (!initScene(&scene)) + { + fprintf(stderr, "Could not initialize scene.\n"); + return EXIT_FAILURE; + } + + window_title("AO Baking demo"); + + while (window_swap()) + { + mainLoop(&scene); + + if( ui_panel("Lightmapper", PANEL_OPEN) ) { + ui_label2("Freecam", "Mouse + W/A/S/D/E/Q keys"); + ui_label("Warning " ICON_MD_WARNING "@This will take a few seconds and bake a lightmap illuminated by: The mesh itself (initially black) + A white sky (1.0f, 1.0f, 1.0f)"); + if( ui_button("Bake 1 light bounce") ) { + bake(&scene); + } + ui_panel_end(); + } + } + + destroyScene(&scene); +} + +// helpers //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +static int loadSimpleObjFile(const char *filename, vertex_t **vertices, unsigned int *vertexCount, unsigned short **indices, unsigned int *indexCount); + +static int initScene(scene_t *scene) +{ + // load mesh + if (!loadSimpleObjFile("demos/art/meshes/gazebo.obj", &scene->vertices, &scene->vertexCount, &scene->indices, &scene->indexCount)) + { + fprintf(stderr, "Error loading obj file\n"); + return 0; + } + + glGenVertexArrays(1, &scene->vao); + glBindVertexArray(scene->vao); + + glGenBuffers(1, &scene->vbo); + glBindBuffer(GL_ARRAY_BUFFER, scene->vbo); + glBufferData(GL_ARRAY_BUFFER, scene->vertexCount * sizeof(vertex_t), scene->vertices, GL_STATIC_DRAW); + + glGenBuffers(1, &scene->ibo); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, scene->ibo); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, scene->indexCount * sizeof(unsigned short), scene->indices, GL_STATIC_DRAW); + + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(vertex_t), (void*)offsetof(vertex_t, p)); + glEnableVertexAttribArray(1); + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(vertex_t), (void*)offsetof(vertex_t, t)); + + // create lightmap texture + scene->w = 654; + scene->h = 654; + glGenTextures(1, &scene->lightmap); + glBindTexture(GL_TEXTURE_2D, scene->lightmap); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + unsigned char emissive[] = { 0, 0, 0, 255 }; + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, emissive); + + // load shader + const char *vp = + "in vec3 a_position;\n" + "in vec2 a_texcoord;\n" + "uniform mat4 u_view;\n" + "uniform mat4 u_projection;\n" + "out vec2 v_texcoord;\n" + + "void main()\n" + "{\n" + "gl_Position = u_projection * (u_view * vec4(a_position, 1.0));\n" + "v_texcoord = a_texcoord;\n" + "}\n"; + + const char *fp = + "in vec2 v_texcoord;\n" + "uniform sampler2D u_lightmap;\n" + "out vec4 o_color;\n" + + "void main()\n" + "{\n" + "o_color = vec4(texture(u_lightmap, v_texcoord).rgb, gl_FrontFacing ? 1.0 : 0.0);\n" + "}\n"; + + scene->program = shader(vp, fp, "a_position,a_texcoord", "o_color", NULL); + if (!scene->program) + { + fprintf(stderr, "Error loading shader\n"); + return 0; + } + scene->u_view = glGetUniformLocation(scene->program, "u_view"); + scene->u_projection = glGetUniformLocation(scene->program, "u_projection"); + scene->u_lightmap = glGetUniformLocation(scene->program, "u_lightmap"); + + return 1; +} + +static void drawScene(scene_t *scene, float *view, float *projection) +{ + glEnable(GL_DEPTH_TEST); + + glUseProgram(scene->program); + glUniform1i(scene->u_lightmap, 0); + glUniformMatrix4fv(scene->u_projection, 1, GL_FALSE, projection); + glUniformMatrix4fv(scene->u_view, 1, GL_FALSE, view); + + glBindTexture(GL_TEXTURE_2D, scene->lightmap); + + glBindVertexArray(scene->vao); + glDrawElements(GL_TRIANGLES, scene->indexCount, GL_UNSIGNED_SHORT, 0); +} + +static void destroyScene(scene_t *scene) +{ + FREE(scene->vertices); + FREE(scene->indices); + glDeleteVertexArrays(1, &scene->vao); + glDeleteBuffers(1, &scene->vbo); + glDeleteBuffers(1, &scene->ibo); + glDeleteTextures(1, &scene->lightmap); + glDeleteProgram(scene->program); +} + +static int loadSimpleObjFile(const char *filename, vertex_t **vertices, unsigned int *vertexCount, unsigned short **indices, unsigned int *indexCount) +{ + FILE *file = fopen(filename, "rt"); + if (!file) + return 0; + char line[1024]; + + // first pass + unsigned int np = 0, nn = 0, nt = 0, nf = 0; + while (!feof(file)) + { + fgets(line, 1024, file); + if (line[0] == '#') continue; + if (line[0] == 'v') + { + if (line[1] == ' ') { np++; continue; } + if (line[1] == 'n') { nn++; continue; } + if (line[1] == 't') { nt++; continue; } + assert(!"unknown vertex attribute"); + } + if (line[0] == 'f') { nf++; continue; } + assert(!"unknown identifier"); + } + assert(np && np == nn && np == nt && nf); // only supports obj files without separately indexed vertex attributes + + // allocate memory + *vertexCount = np; + *vertices = CALLOC(np, sizeof(vertex_t)); + *indexCount = nf * 3; + *indices = CALLOC(nf * 3, sizeof(unsigned short)); + + // second pass + fseek(file, 0, SEEK_SET); + unsigned int cp = 0, cn = 0, ct = 0, cf = 0; + while (!feof(file)) + { + fgets(line, 1024, file); + if (line[0] == '#') continue; + if (line[0] == 'v') + { + if (line[1] == ' ') { float *p = (*vertices)[cp++].p; char *e1, *e2; p[0] = (float)strtod(line + 2, &e1); p[1] = (float)strtod(e1, &e2); p[2] = (float)strtod(e2, 0); continue; } + if (line[1] == 'n') { /*float *n = (*vertices)[cn++].n; char *e1, *e2; n[0] = (float)strtod(line + 3, &e1); n[1] = (float)strtod(e1, &e2); n[2] = (float)strtod(e2, 0);*/ continue; } // no normals needed + if (line[1] == 't') { float *t = (*vertices)[ct++].t; char *e1; t[0] = (float)strtod(line + 3, &e1); t[1] = (float)strtod(e1, 0); continue; } + assert(!"unknown vertex attribute"); + } + if (line[0] == 'f') + { + unsigned short *tri = (*indices) + cf; + cf += 3; + char *e1, *e2, *e3 = line + 1; + for (int i = 0; i < 3; i++) + { + unsigned long pi = strtoul(e3 + 1, &e1, 10); + assert(e1[0] == '/'); + unsigned long ti = strtoul(e1 + 1, &e2, 10); + assert(e2[0] == '/'); + unsigned long ni = strtoul(e2 + 1, &e3, 10); + assert(pi == ti && pi == ni); + tri[i] = (unsigned short)(pi - 1); + } + continue; + } + assert(!"unknown identifier"); + } + + fclose(file); + return 1; +} + + + +static void fpsCameraViewMatrix(float *view) +{ + // initial camera config + static float position[] = { 0.0f, 0.3f, 1.5f }; + static float rotation[] = { 0.0f, 0.0f }; + + // mouse look + static double lastMouse[] = { 0.0, 0.0 }; + double mouse_coord[2]; + mouse_coord[0] = input(MOUSE_X); + mouse_coord[1] = input(MOUSE_Y); + if (input(MOUSE_L)) + { + rotation[0] += (float)(mouse_coord[1] - lastMouse[1]) * -0.2f; + rotation[1] += (float)(mouse_coord[0] - lastMouse[0]) * -0.2f; + } + lastMouse[0] = mouse_coord[0]; + lastMouse[1] = mouse_coord[1]; + + float rotationY[16], rotationX[16], rotationYX[16]; + rotation44(rotationX, rotation[0], 1.0f, 0.0f, 0.0f); + rotation44(rotationY, rotation[1], 0.0f, 1.0f, 0.0f); + multiply44x2(rotationYX, rotationY, rotationX); + + // keyboard movement (WSADEQ) + float speed = input(KEY_SHIFT) ? 0.1f : 0.01f; + vec3 movement = {0}; + if (input(KEY_W)) movement.z -= speed; + if (input(KEY_S)) movement.z += speed; + if (input(KEY_A)) movement.x -= speed; + if (input(KEY_D)) movement.x += speed; + if (input(KEY_E)) movement.y -= speed; + if (input(KEY_Q)) movement.y += speed; + + vec3 worldMovement = transform344(rotationYX, movement); + position[0] += worldMovement.x; + position[1] += worldMovement.y; + position[2] += worldMovement.z; + + // construct view matrix + float inverseRotation[16], inverseTranslation[16]; + transpose44(inverseRotation, rotationYX); + translation44(inverseTranslation, -position[0], -position[1], -position[2]); + multiply44x2(view, inverseRotation, inverseTranslation); // = inverse(translation(position) * rotationYX); +} + +#if 0 + +####################################################################### + 76702 17.93% rendered hemicubes integrated to lightmap texels. + 179388 41.94% interpolated lightmap texels. + 171626 40.13% wasted lightmap texels. + + 29.95% of used texels were rendered. +####################################################################### +Finished baking 731 triangles. +Saved result.tga + +vs + +####################################################################### + 124 0.05% rendered hemicubes integrated to lightmap texels. + 201 0.08% interpolated lightmap texels. + 261947 99.88% wasted lightmap texels. + + 38.15% of used texels were rendered. +####################################################################### +Finished baking 731 triangles. +Saved result.tga + +#endif + diff --git a/demos/99-tls.c b/demos/99-tls.c deleted file mode 100644 index 47fab1b..0000000 --- a/demos/99-tls.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "v4k.h" // Minimal C sample - -__thread int foo=0; - -int worker(void *ud) { - printf("thread:%d\n", foo); - return 0; -} - -int main() { - foo=1; - printf("main:%d\n", foo); - thread_destroy(thread(worker, NULL)); - return 0; -} \ No newline at end of file diff --git a/engine/joint/v4k.h b/engine/joint/v4k.h index c6eac10..48dc983 100644 --- a/engine/joint/v4k.h +++ b/engine/joint/v4k.h @@ -17571,6 +17571,13 @@ typedef struct anims_t { API anims_t animations(const char *pathfile, int flags); +// ----------------------------------------------------------------------------- +// lightmapping utils + +typedef struct lightmap_t { + struct lm_context *ctx; // private +} lightmap_t; + // ----------------------------------------------------------------------------- // skyboxes @@ -18117,18 +18124,19 @@ API void sprite_setanim(sprite_t *s, unsigned name); // game ui typedef struct guiskin_t { - void (*drawrect)(void* userdata, const char *skin, vec4 rect); - void (*getskinsize)(void* userdata, const char *skin, vec2 *size); - void (*getscissorrect)(void* userdata, const char *skin, vec4 rect, vec4 *dims); - bool (*ismouseinrect)(void* userdata, const char *skin, vec4 rect); + void (*drawrect)(void* userdata, const char *skin, const char *fallback, vec4 rect); + void (*getskinsize)(void* userdata, const char *skin, const char *fallback, vec2 *size); + void (*getscissorrect)(void* userdata, const char *skin, const char *fallback, vec4 rect, vec4 *dims); + bool (*ismouseinrect)(void* userdata, const char *skin, const char *fallback, vec4 rect); void (*free)(void* userdata); void *userdata; } guiskin_t; API void gui_pushskin(guiskin_t skin); API void* gui_userdata(); -API vec2 gui_getskinsize(const char *skin); -API bool gui_ismouseinrect(const char *skin, vec4 rect); +API vec2 gui_getskinsize(const char *skin, const char *fallback); +API bool gui_ismouseinrect(const char *skin, const char *fallback, vec4 rect); +API vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect); // -- API void gui_panel_id(int id, vec4 rect, const char *skin); API void gui_rect_id(int id, vec4 rect, const char *skin); @@ -32793,6 +32801,7 @@ int gladLoadGL( GLADloadfunc load) { #define BQ_PLATFORM_IMPLEMENTATION // websocket #define BQ_WEBSOCKET_IMPLEMENTATION // websocket #define XML_C // xml +#define LIGHTMAPPER_IMPLEMENTATION // lightmapper #ifdef __APPLE__ #define MA_NO_RUNTIME_LINKING // miniaudio osx #define _GLFW_COCOA // glfw osx @@ -347855,6 +347864,1770 @@ void lt_tick(struct lua_State *L) { } #line 0 +#line 1 "3rd_lightmapper.h" +/*********************************************************** +* A single header file OpenGL lightmapping library * +* https://github.com/ands/lightmapper * +* no warranty implied | use at your own risk * +* author: Andreas Mantler (ands) | last change: 10.05.2018 * +* * +* License: * +* This software is in the public domain. * +* Where that dedication is not recognized, * +* you are granted a perpetual, irrevocable license to copy * +* and modify this file however you want. * +***********************************************************/ + +#ifndef LIGHTMAPPER_H +#define LIGHTMAPPER_H + +#ifdef __cplusplus +#define LM_DEFAULT_VALUE(value) = value +#else +#define LM_DEFAULT_VALUE(value) +#endif + +#ifndef LM_CALLOC +#define LM_CALLOC(count, size) calloc(count, size) +#endif + +#ifndef LM_FREE +#define LM_FREE(ptr) free(ptr) +#endif + +typedef int lm_bool; +#define LM_FALSE 0 +#define LM_TRUE 1 + +typedef int lm_type; +#define LM_NONE 0 +#define LM_UNSIGNED_BYTE GL_UNSIGNED_BYTE +#define LM_UNSIGNED_SHORT GL_UNSIGNED_SHORT +#define LM_UNSIGNED_INT GL_UNSIGNED_INT +#define LM_FLOAT GL_FLOAT + +typedef struct lm_context lm_context; + +// creates a lightmapper instance. it can be used to render multiple lightmaps. +lm_context *lmCreate( + int hemisphereSize, // hemisphereSize: resolution of the hemisphere renderings. must be a power of two! typical: 64. + float zNear, float zFar, // zNear/zFar: hemisphere min/max draw distances. + float clearR, float clearG, float clearB, // clear color / background color / sky color. + int interpolationPasses, float interpolationThreshold, // passes: hierarchical selective interpolation passes (0-8; initial step size = 2^passes). + // threshold: error value below which lightmap pixels are interpolated instead of rendered. + // use output image from LM_DEBUG_INTERPOLATION to determine a good value. + // values around and below 0.01 are probably ok. + // the lower the value, the more hemispheres are rendered -> slower, but possibly better quality. + float cameraToSurfaceDistanceModifier LM_DEFAULT_VALUE(0.0f)); // modifier for the height of the rendered hemispheres above the surface + // -1.0f => stick to surface, 0.0f => minimum height for interpolated surface normals, + // > 0.0f => improves gradients on surfaces with interpolated normals due to the flat surface horizon, + // but may introduce other artifacts. + +// optional: set material characteristics by specifying cos(theta)-dependent weights for incoming light. +typedef float (*lm_weight_func)(float cos_theta, void *userdata); +void lmSetHemisphereWeights(lm_context *ctx, lm_weight_func f, void *userdata); // precalculates weights for incoming light depending on its angle. (default: all weights are 1.0f) + +// specify an output lightmap image buffer with w * h * c * sizeof(float) bytes of memory. +void lmSetTargetLightmap(lm_context *ctx, float *outLightmap, int w, int h, int c); // output HDR lightmap (linear 32bit float channels; c: 1->Greyscale, 2->Greyscale+Alpha, 3->RGB, 4->RGBA). + +// set the geometry to map to the currently set target lightmap (set the target lightmap before calling this!). +void lmSetGeometry(lm_context *ctx, + const float *transformationMatrix, // 4x4 object-to-world transform for the geometry or NULL (no transformation). + lm_type positionsType, const void *positionsXYZ, int positionsStride, // triangle mesh in object space. + lm_type normalsType, const void *normalsXYZ, int normalsStride, // optional normals for the mesh in object space (Use LM_NONE type in case you only need flat surfaces). + lm_type lightmapCoordsType, const void *lightmapCoordsUV, int lightmapCoordsStride, // lightmap atlas texture coordinates for the mesh [0..1]x[0..1] (integer types are normalized to 0..1 range). + int count, lm_type indicesType LM_DEFAULT_VALUE(LM_NONE), const void *indices LM_DEFAULT_VALUE(0));// if mesh indices are used, count = number of indices else count = number of vertices. + + +// as long as lmBegin returns true, the scene has to be rendered with the +// returned camera and view parameters to the currently bound framebuffer. +// if lmBegin returns true, it must be followed by lmEnd after rendering! +lm_bool lmBegin(lm_context *ctx, + int* outViewport4, // output of the current viewport: { x, y, w, h }. use these to call glViewport()! + float* outView4x4, // output of the current camera view matrix. + float* outProjection4x4); // output of the current camera projection matrix. + +float lmProgress(lm_context *ctx); // should only be called between lmBegin/lmEnd! + // provides the light mapping progress as a value increasing from 0.0 to 1.0. + +void lmEnd(lm_context *ctx); + +// destroys the lightmapper instance. should be called to free resources. +void lmDestroy(lm_context *ctx); + + +// image based post processing (c is the number of color channels in the image, m a channel mask for the operation) +#define LM_ALL_CHANNELS 0x0f +float lmImageMin(const float *image, int w, int h, int c, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // find the minimum value (across the specified channels) +float lmImageMax(const float *image, int w, int h, int c, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // find the maximum value (across the specified channels) +void lmImageAdd(float *image, int w, int h, int c, float value, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place add to the specified channels +void lmImageScale(float *image, int w, int h, int c, float factor, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place scaling of the specified channels +void lmImagePower(float *image, int w, int h, int c, float exponent, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place powf(v, exponent) of the specified channels (for gamma) +void lmImageDilate(const float *image, float *outImage, int w, int h, int c); // widen the populated non-zero areas by 1 pixel. +void lmImageSmooth(const float *image, float *outImage, int w, int h, int c); // simple box filter on only the non-zero values. +void lmImageDownsample(const float *image, float *outImage, int w, int h, int c); // downsamples [0..w]x[0..h] to [0..w/2]x[0..h/2] by avereging only the non-zero values +void lmImageFtoUB(const float *image, unsigned char *outImage, int w, int h, int c, float max LM_DEFAULT_VALUE(0.0f)); // casts a floating point image to an 8bit/channel image + +// TGA file output helpers +lm_bool lmImageSaveTGAub(const char *filename, const unsigned char *image, int w, int h, int c); +lm_bool lmImageSaveTGAf(const char *filename, const float *image, int w, int h, int c, float max LM_DEFAULT_VALUE(0.0f)); + +#endif +////////////////////// END OF HEADER ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#ifdef LIGHTMAPPER_IMPLEMENTATION +#undef LIGHTMAPPER_IMPLEMENTATION + +#include +#include +#include +#include +#include +#include + +#define LM_SWAP(type, a, b) { type tmp = (a); (a) = (b); (b) = tmp; } + +#if defined(_MSC_VER) && !defined(__cplusplus) +#define inline __inline +#endif + +#if defined(_MSC_VER) && (_MSC_VER <= 1700) +static inline lm_bool lm_finite(float a) { return _finite(a); } +#else +static inline lm_bool lm_finite(float a) { return isfinite(a); } +#endif + +static inline int lm_mini (int a, int b) { return a < b ? a : b; } +static inline int lm_maxi (int a, int b) { return a > b ? a : b; } +static inline int lm_absi (int a ) { return a < 0 ? -a : a; } +static inline float lm_minf (float a, float b) { return a < b ? a : b; } +static inline float lm_maxf (float a, float b) { return a > b ? a : b; } +static inline float lm_absf (float a ) { return a < 0.0f ? -a : a; } +static inline float lm_pmodf (float a, float b) { return (a < 0.0f ? 1.0f : 0.0f) + (float)fmod(a, b); } // positive mod + +typedef struct lm_ivec2 { int x, y; } lm_ivec2; +static inline lm_ivec2 lm_i2 (int x, int y) { lm_ivec2 v = { x, y }; return v; } + +typedef struct lm_vec2 { float x, y; } lm_vec2; +static inline lm_vec2 lm_v2i (int x, int y) { lm_vec2 v = { (float)x, (float)y }; return v; } +static inline lm_vec2 lm_v2 (float x, float y) { lm_vec2 v = { x, y }; return v; } +static inline lm_vec2 lm_negate2 (lm_vec2 a ) { return lm_v2(-a.x, -a.y); } +static inline lm_vec2 lm_add2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x + b.x, a.y + b.y); } +static inline lm_vec2 lm_sub2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x - b.x, a.y - b.y); } +static inline lm_vec2 lm_mul2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x * b.x, a.y * b.y); } +static inline lm_vec2 lm_scale2 (lm_vec2 a, float b) { return lm_v2(a.x * b, a.y * b); } +static inline lm_vec2 lm_div2 (lm_vec2 a, float b) { return lm_scale2(a, 1.0f / b); } +static inline lm_vec2 lm_pmod2 (lm_vec2 a, float b) { return lm_v2(lm_pmodf(a.x, b), lm_pmodf(a.y, b)); } +static inline lm_vec2 lm_min2 (lm_vec2 a, lm_vec2 b) { return lm_v2(lm_minf(a.x, b.x), lm_minf(a.y, b.y)); } +static inline lm_vec2 lm_max2 (lm_vec2 a, lm_vec2 b) { return lm_v2(lm_maxf(a.x, b.x), lm_maxf(a.y, b.y)); } +static inline lm_vec2 lm_abs2 (lm_vec2 a ) { return lm_v2(lm_absf(a.x), lm_absf(a.y)); } +static inline lm_vec2 lm_floor2 (lm_vec2 a ) { return lm_v2(floorf(a.x), floorf(a.y)); } +static inline lm_vec2 lm_ceil2 (lm_vec2 a ) { return lm_v2(ceilf (a.x), ceilf (a.y)); } +static inline float lm_dot2 (lm_vec2 a, lm_vec2 b) { return a.x * b.x + a.y * b.y; } +static inline float lm_cross2 (lm_vec2 a, lm_vec2 b) { return a.x * b.y - a.y * b.x; } // pseudo cross product +static inline float lm_length2sq (lm_vec2 a ) { return a.x * a.x + a.y * a.y; } +static inline float lm_length2 (lm_vec2 a ) { return sqrtf(lm_length2sq(a)); } +static inline lm_vec2 lm_normalize2(lm_vec2 a ) { return lm_div2(a, lm_length2(a)); } +static inline lm_bool lm_finite2 (lm_vec2 a ) { return lm_finite(a.x) && lm_finite(a.y); } + +typedef struct lm_vec3 { float x, y, z; } lm_vec3; +static inline lm_vec3 lm_v3 (float x, float y, float z) { lm_vec3 v = { x, y, z }; return v; } +static inline lm_vec3 lm_negate3 (lm_vec3 a ) { return lm_v3(-a.x, -a.y, -a.z); } +static inline lm_vec3 lm_add3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x + b.x, a.y + b.y, a.z + b.z); } +static inline lm_vec3 lm_sub3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x - b.x, a.y - b.y, a.z - b.z); } +static inline lm_vec3 lm_mul3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x * b.x, a.y * b.y, a.z * b.z); } +static inline lm_vec3 lm_scale3 (lm_vec3 a, float b) { return lm_v3(a.x * b, a.y * b, a.z * b); } +static inline lm_vec3 lm_div3 (lm_vec3 a, float b) { return lm_scale3(a, 1.0f / b); } +static inline lm_vec3 lm_pmod3 (lm_vec3 a, float b) { return lm_v3(lm_pmodf(a.x, b), lm_pmodf(a.y, b), lm_pmodf(a.z, b)); } +static inline lm_vec3 lm_min3 (lm_vec3 a, lm_vec3 b) { return lm_v3(lm_minf(a.x, b.x), lm_minf(a.y, b.y), lm_minf(a.z, b.z)); } +static inline lm_vec3 lm_max3 (lm_vec3 a, lm_vec3 b) { return lm_v3(lm_maxf(a.x, b.x), lm_maxf(a.y, b.y), lm_maxf(a.z, b.z)); } +static inline lm_vec3 lm_abs3 (lm_vec3 a ) { return lm_v3(lm_absf(a.x), lm_absf(a.y), lm_absf(a.z)); } +static inline lm_vec3 lm_floor3 (lm_vec3 a ) { return lm_v3(floorf(a.x), floorf(a.y), floorf(a.z)); } +static inline lm_vec3 lm_ceil3 (lm_vec3 a ) { return lm_v3(ceilf (a.x), ceilf (a.y), ceilf (a.z)); } +static inline float lm_dot3 (lm_vec3 a, lm_vec3 b) { return a.x * b.x + a.y * b.y + a.z * b.z; } +static inline lm_vec3 lm_cross3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.y * b.z - b.y * a.z, a.z * b.x - b.z * a.x, a.x * b.y - b.x * a.y); } +static inline float lm_length3sq (lm_vec3 a ) { return a.x * a.x + a.y * a.y + a.z * a.z; } +static inline float lm_length3 (lm_vec3 a ) { return sqrtf(lm_length3sq(a)); } +static inline lm_vec3 lm_normalize3(lm_vec3 a ) { return lm_div3(a, lm_length3(a)); } +static inline lm_bool lm_finite3 (lm_vec3 a ) { return lm_finite(a.x) && lm_finite(a.y) && lm_finite(a.z); } + +static lm_vec2 lm_toBarycentric(lm_vec2 p1, lm_vec2 p2, lm_vec2 p3, lm_vec2 p) +{ + // http://www.blackpawn.com/texts/pointinpoly/ + // Compute vectors + lm_vec2 v0 = lm_sub2(p3, p1); + lm_vec2 v1 = lm_sub2(p2, p1); + lm_vec2 v2 = lm_sub2(p, p1); + // Compute dot products + float dot00 = lm_dot2(v0, v0); + float dot01 = lm_dot2(v0, v1); + float dot02 = lm_dot2(v0, v2); + float dot11 = lm_dot2(v1, v1); + float dot12 = lm_dot2(v1, v2); + // Compute barycentric coordinates + float invDenom = 1.0f / (dot00 * dot11 - dot01 * dot01); + float u = (dot11 * dot02 - dot01 * dot12) * invDenom; + float v = (dot00 * dot12 - dot01 * dot02) * invDenom; + return lm_v2(u, v); +} + +static inline int lm_leftOf(lm_vec2 a, lm_vec2 b, lm_vec2 c) +{ + float x = lm_cross2(lm_sub2(b, a), lm_sub2(c, b)); + return x < 0 ? -1 : x > 0; +} + +static lm_bool lm_lineIntersection(lm_vec2 x0, lm_vec2 x1, lm_vec2 y0, lm_vec2 y1, lm_vec2* res) +{ + lm_vec2 dx = lm_sub2(x1, x0); + lm_vec2 dy = lm_sub2(y1, y0); + lm_vec2 d = lm_sub2(x0, y0); + float dyx = lm_cross2(dy, dx); + if (dyx == 0.0f) + return LM_FALSE; + dyx = lm_cross2(d, dx) / dyx; + if (dyx <= 0 || dyx >= 1) + return LM_FALSE; + res->x = y0.x + dyx * dy.x; + res->y = y0.y + dyx * dy.y; + return LM_TRUE; +} + +// this modifies the poly array! the poly array must be big enough to hold the result! +// res must be big enough to hold the result! +static int lm_convexClip(lm_vec2 *poly, int nPoly, const lm_vec2 *clip, int nClip, lm_vec2 *res) +{ + int nRes = nPoly; + int dir = lm_leftOf(clip[0], clip[1], clip[2]); + for (int i = 0, j = nClip - 1; i < nClip && nRes; j = i++) + { + if (i != 0) + for (nPoly = 0; nPoly < nRes; nPoly++) + poly[nPoly] = res[nPoly]; + nRes = 0; + lm_vec2 v0 = poly[nPoly - 1]; + int side0 = lm_leftOf(clip[j], clip[i], v0); + if (side0 != -dir) + res[nRes++] = v0; + for (int k = 0; k < nPoly; k++) + { + lm_vec2 v1 = poly[k], x; + int side1 = lm_leftOf(clip[j], clip[i], v1); + if (side0 + side1 == 0 && side0 && lm_lineIntersection(clip[j], clip[i], v0, v1, &x)) + res[nRes++] = x; + if (k == nPoly - 1) + break; + if (side1 != -dir) + res[nRes++] = v1; + v0 = v1; + side0 = side1; + } + } + + return nRes; +} + +struct lm_context +{ + struct + { + const float *modelMatrix; + float normalMatrix[9]; + + const unsigned char *positions; + lm_type positionsType; + int positionsStride; + const unsigned char *normals; + lm_type normalsType; + int normalsStride; + const unsigned char *uvs; + lm_type uvsType; + int uvsStride; + const unsigned char *indices; + lm_type indicesType; + unsigned int count; + } mesh; + + struct + { + int pass; + int passCount; + + struct + { + unsigned int baseIndex; + lm_vec3 p[3]; + lm_vec3 n[3]; + lm_vec2 uv[3]; + } triangle; + + struct + { + int minx, miny; + int maxx, maxy; + int x, y; + } rasterizer; + + struct + { + lm_vec3 position; + lm_vec3 direction; + lm_vec3 up; + } sample; + + struct + { + int side; + } hemisphere; + } meshPosition; + + struct + { + int width; + int height; + int channels; + float *data; + +#ifdef LM_DEBUG_INTERPOLATION + unsigned char *debug; +#endif + } lightmap; + + struct + { + unsigned int size; + float zNear, zFar; + float cameraToSurfaceDistanceModifier; + struct { float r, g, b; } clearColor; + + unsigned int fbHemiCountX; + unsigned int fbHemiCountY; + unsigned int fbHemiIndex; + lm_ivec2 *fbHemiToLightmapLocation; + GLuint fbTexture[2]; + GLuint fb[2]; + GLuint fbDepth; + GLuint vao; + struct + { + GLuint programID; + GLuint hemispheresTextureID; + GLuint weightsTextureID; + GLuint weightsTexture; + } firstPass; + struct + { + GLuint programID; + GLuint hemispheresTextureID; + } downsamplePass; + struct + { + GLuint texture; + lm_ivec2 writePosition; + lm_ivec2 *toLightmapLocation; + } storage; + } hemisphere; + + float interpolationThreshold; +}; + +// pass order of one 4x4 interpolation patch for two interpolation steps (and the next neighbors right of/below it) +// 0 4 1 4 0 +// 5 6 5 6 5 +// 2 4 3 4 2 +// 5 6 5 6 5 +// 0 4 1 4 0 + +static unsigned int lm_passStepSize(lm_context *ctx) +{ + unsigned int shift = ctx->meshPosition.passCount / 3 - (ctx->meshPosition.pass - 1) / 3; + unsigned int step = (1 << shift); + assert(step > 0); + return step; +} + +static unsigned int lm_passOffsetX(lm_context *ctx) +{ + if (!ctx->meshPosition.pass) + return 0; + int passType = (ctx->meshPosition.pass - 1) % 3; + unsigned int halfStep = lm_passStepSize(ctx) >> 1; + return passType != 1 ? halfStep : 0; +} + +static unsigned int lm_passOffsetY(lm_context *ctx) +{ + if (!ctx->meshPosition.pass) + return 0; + int passType = (ctx->meshPosition.pass - 1) % 3; + unsigned int halfStep = lm_passStepSize(ctx) >> 1; + return passType != 0 ? halfStep : 0; +} + +static lm_bool lm_hasConservativeTriangleRasterizerFinished(lm_context *ctx) +{ + return ctx->meshPosition.rasterizer.y >= ctx->meshPosition.rasterizer.maxy; +} + +static void lm_moveToNextPotentialConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + unsigned int step = lm_passStepSize(ctx); + ctx->meshPosition.rasterizer.x += step; + while (ctx->meshPosition.rasterizer.x >= ctx->meshPosition.rasterizer.maxx) + { + ctx->meshPosition.rasterizer.x = ctx->meshPosition.rasterizer.minx + lm_passOffsetX(ctx); + ctx->meshPosition.rasterizer.y += step; + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + break; + } +} + +static float *lm_getLightmapPixel(lm_context *ctx, int x, int y) +{ + assert(x >= 0 && x < ctx->lightmap.width && y >= 0 && y < ctx->lightmap.height); + return ctx->lightmap.data + (y * ctx->lightmap.width + x) * ctx->lightmap.channels; +} + +static void lm_setLightmapPixel(lm_context *ctx, int x, int y, float *in) +{ + assert(x >= 0 && x < ctx->lightmap.width && y >= 0 && y < ctx->lightmap.height); + float *p = ctx->lightmap.data + (y * ctx->lightmap.width + x) * ctx->lightmap.channels; + for (int j = 0; j < ctx->lightmap.channels; j++) + *p++ = *in++; +} + +#define lm_baseAngle 0.1f +static const float lm_baseAngles[3][3] = { + { lm_baseAngle, lm_baseAngle + 1.0f / 3.0f, lm_baseAngle + 2.0f / 3.0f }, + { lm_baseAngle + 1.0f / 3.0f, lm_baseAngle + 2.0f / 3.0f, lm_baseAngle }, + { lm_baseAngle + 2.0f / 3.0f, lm_baseAngle, lm_baseAngle + 1.0f / 3.0f } +}; + +static lm_bool lm_trySamplingConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + return LM_FALSE; + + // check if lightmap pixel was already set + float *pixelValue = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + for (int j = 0; j < ctx->lightmap.channels; j++) + if (pixelValue[j] != 0.0f) + return LM_FALSE; + + // try calculating centroid by clipping the pixel against the triangle + lm_vec2 pixel[16]; + pixel[0] = lm_v2i(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + pixel[1] = lm_v2i(ctx->meshPosition.rasterizer.x + 1, ctx->meshPosition.rasterizer.y); + pixel[2] = lm_v2i(ctx->meshPosition.rasterizer.x + 1, ctx->meshPosition.rasterizer.y + 1); + pixel[3] = lm_v2i(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y + 1); + + lm_vec2 res[16]; + int nRes = lm_convexClip(pixel, 4, ctx->meshPosition.triangle.uv, 3, res); + if (nRes == 0) + return LM_FALSE; // nothing left + + // calculate centroid position and area + lm_vec2 centroid = res[0]; + float area = res[nRes - 1].x * res[0].y - res[nRes - 1].y * res[0].x; + for (int i = 1; i < nRes; i++) + { + centroid = lm_add2(centroid, res[i]); + area += res[i - 1].x * res[i].y - res[i - 1].y * res[i].x; + } + centroid = lm_div2(centroid, (float)nRes); + area = lm_absf(area / 2.0f); + + if (area <= 0.0f) + return LM_FALSE; // no area left + + // calculate barycentric coords + lm_vec2 uv = lm_toBarycentric( + ctx->meshPosition.triangle.uv[0], + ctx->meshPosition.triangle.uv[1], + ctx->meshPosition.triangle.uv[2], + centroid); + + if (!lm_finite2(uv)) + return LM_FALSE; // degenerate + + // try to interpolate color from neighbors: + if (ctx->meshPosition.pass > 0) + { + float *neighbors[4]; + int neighborCount = 0; + int neighborsExpected = 0; + int d = (int)lm_passStepSize(ctx) / 2; + int dirs = ((ctx->meshPosition.pass - 1) % 3) + 1; + if (dirs & 1) // check x-neighbors with distance d + { + neighborsExpected += 2; + if (ctx->meshPosition.rasterizer.x - d >= ctx->meshPosition.rasterizer.minx && + ctx->meshPosition.rasterizer.x + d <= ctx->meshPosition.rasterizer.maxx) + { + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x - d, ctx->meshPosition.rasterizer.y); + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x + d, ctx->meshPosition.rasterizer.y); + } + } + if (dirs & 2) // check y-neighbors with distance d + { + neighborsExpected += 2; + if (ctx->meshPosition.rasterizer.y - d >= ctx->meshPosition.rasterizer.miny && + ctx->meshPosition.rasterizer.y + d <= ctx->meshPosition.rasterizer.maxy) + { + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y - d); + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y + d); + } + } + if (neighborCount == neighborsExpected) // are all interpolation neighbors available? + { + // calculate average neighbor pixel value + float avg[4] = { 0 }; + for (int i = 0; i < neighborCount; i++) + for (int j = 0; j < ctx->lightmap.channels; j++) + avg[j] += neighbors[i][j]; + float ni = 1.0f / neighborCount; + for (int j = 0; j < ctx->lightmap.channels; j++) + avg[j] *= ni; + + // check if error from average pixel to neighbors is above the interpolation threshold + lm_bool interpolate = LM_TRUE; + for (int i = 0; i < neighborCount; i++) + { + lm_bool zero = LM_TRUE; + for (int j = 0; j < ctx->lightmap.channels; j++) + { + if (neighbors[i][j] != 0.0f) + zero = LM_FALSE; + if (fabs(neighbors[i][j] - avg[j]) > ctx->interpolationThreshold) + interpolate = LM_FALSE; + } + if (zero) + interpolate = LM_FALSE; + if (!interpolate) + break; + } + + // set interpolated value and return if interpolation is acceptable + if (interpolate) + { + lm_setLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y, avg); +#ifdef LM_DEBUG_INTERPOLATION + // set interpolated pixel to green in debug output + ctx->lightmap.debug[(ctx->meshPosition.rasterizer.y * ctx->lightmap.width + ctx->meshPosition.rasterizer.x) * 3 + 1] = 255; +#endif + return LM_FALSE; + } + } + } + + // could not interpolate. must render a hemisphere. + // calculate 3D sample position and orientation + lm_vec3 p0 = ctx->meshPosition.triangle.p[0]; + lm_vec3 p1 = ctx->meshPosition.triangle.p[1]; + lm_vec3 p2 = ctx->meshPosition.triangle.p[2]; + lm_vec3 v1 = lm_sub3(p1, p0); + lm_vec3 v2 = lm_sub3(p2, p0); + ctx->meshPosition.sample.position = lm_add3(p0, lm_add3(lm_scale3(v2, uv.x), lm_scale3(v1, uv.y))); + + lm_vec3 n0 = ctx->meshPosition.triangle.n[0]; + lm_vec3 n1 = ctx->meshPosition.triangle.n[1]; + lm_vec3 n2 = ctx->meshPosition.triangle.n[2]; + lm_vec3 nv1 = lm_sub3(n1, n0); + lm_vec3 nv2 = lm_sub3(n2, n0); + ctx->meshPosition.sample.direction = lm_normalize3(lm_add3(n0, lm_add3(lm_scale3(nv2, uv.x), lm_scale3(nv1, uv.y)))); + ctx->meshPosition.sample.direction = lm_normalize3(ctx->meshPosition.sample.direction); + float cameraToSurfaceDistance = (1.0f + ctx->hemisphere.cameraToSurfaceDistanceModifier) * ctx->hemisphere.zNear * sqrtf(2.0f); + ctx->meshPosition.sample.position = lm_add3(ctx->meshPosition.sample.position, lm_scale3(ctx->meshPosition.sample.direction, cameraToSurfaceDistance)); + + if (!lm_finite3(ctx->meshPosition.sample.position) || + !lm_finite3(ctx->meshPosition.sample.direction) || + lm_length3sq(ctx->meshPosition.sample.direction) < 0.5f) // don't allow 0.0f. should always be ~1.0f + return LM_FALSE; + + lm_vec3 up = lm_v3(0.0f, 1.0f, 0.0f); + if (lm_absf(lm_dot3(up, ctx->meshPosition.sample.direction)) > 0.8f) + up = lm_v3(0.0f, 0.0f, 1.0f); + +#if 0 + // triangle-consistent up vector + ctx->meshPosition.sample.up = lm_normalize3(lm_cross3(up, ctx->meshPosition.sample.direction)); + return LM_TRUE; +#else + // "randomized" rotation with pattern + lm_vec3 side = lm_normalize3(lm_cross3(up, ctx->meshPosition.sample.direction)); + up = lm_normalize3(lm_cross3(side, ctx->meshPosition.sample.direction)); + int rx = ctx->meshPosition.rasterizer.x % 3; + int ry = ctx->meshPosition.rasterizer.y % 3; + static const float lm_pi = 3.14159265358979f; + float phi = 2.0f * lm_pi * lm_baseAngles[ry][rx] + 0.1f * ((float)rand() / (float)RAND_MAX); + ctx->meshPosition.sample.up = lm_normalize3(lm_add3(lm_scale3(side, cosf(phi)), lm_scale3(up, sinf(phi)))); + return LM_TRUE; +#endif +} + +// returns true if a sampling position was found and +// false if we finished rasterizing the current triangle +static lm_bool lm_findFirstConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + while (!lm_trySamplingConservativeTriangleRasterizerPosition(ctx)) + { + lm_moveToNextPotentialConservativeTriangleRasterizerPosition(ctx); + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + return LM_FALSE; + } + return LM_TRUE; +} + +static lm_bool lm_findNextConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + lm_moveToNextPotentialConservativeTriangleRasterizerPosition(ctx); + return lm_findFirstConservativeTriangleRasterizerPosition(ctx); +} + +static void lm_integrateHemisphereBatch(lm_context *ctx) +{ + if (!ctx->hemisphere.fbHemiIndex) + return; // nothing to do + + glDisable(GL_DEPTH_TEST); + glBindVertexArray(ctx->hemisphere.vao); + + int fbRead = 0; + int fbWrite = 1; + + // weighted downsampling pass + int outHemiSize = ctx->hemisphere.size / 2; + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbWrite], 0); + glViewport(0, 0, outHemiSize * ctx->hemisphere.fbHemiCountX, outHemiSize * ctx->hemisphere.fbHemiCountY); + glUseProgram(ctx->hemisphere.firstPass.programID); + glUniform1i(ctx->hemisphere.firstPass.hemispheresTextureID, 0); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbRead]); + glUniform1i(ctx->hemisphere.firstPass.weightsTextureID, 1); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.firstPass.weightsTexture); + glActiveTexture(GL_TEXTURE0); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + //glBindTexture(GL_TEXTURE_2D, 0); + +#if 0 + // debug output + int w = outHemiSize * ctx->hemisphere.fbHemiCountX, h = outHemiSize * ctx->hemisphere.fbHemiCountY; + glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glReadBuffer(GL_COLOR_ATTACHMENT0); + float *image = new float[3 * w * h]; + glReadPixels(0, 0, w, h, GL_RGB, GL_FLOAT, image); + lmImageSaveTGAf("firstpass.png", image, w, h, 3); + delete[] image; +#endif + + // downsampling passes + glUseProgram(ctx->hemisphere.downsamplePass.programID); + glUniform1i(ctx->hemisphere.downsamplePass.hemispheresTextureID, 0); + while (outHemiSize > 1) + { + LM_SWAP(int, fbRead, fbWrite); + outHemiSize /= 2; + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glViewport(0, 0, outHemiSize * ctx->hemisphere.fbHemiCountX, outHemiSize * ctx->hemisphere.fbHemiCountY); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbRead]); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + //glBindTexture(GL_TEXTURE_2D, 0); + } + + // copy results to storage texture + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glCopyTexSubImage2D(GL_TEXTURE_2D, 0, + ctx->hemisphere.storage.writePosition.x, ctx->hemisphere.storage.writePosition.y, + 0, 0, ctx->hemisphere.fbHemiCountX, ctx->hemisphere.fbHemiCountY); + glBindTexture(GL_TEXTURE_2D, 0); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindVertexArray(0); + glEnable(GL_DEPTH_TEST); + + // copy position mapping to storage + for (unsigned int y = 0; y < ctx->hemisphere.fbHemiCountY; y++) + { + int sy = ctx->hemisphere.storage.writePosition.y + y; + for (unsigned int x = 0; x < ctx->hemisphere.fbHemiCountX; x++) + { + int sx = ctx->hemisphere.storage.writePosition.x + x; + unsigned int hemiIndex = y * ctx->hemisphere.fbHemiCountX + x; + if (hemiIndex >= ctx->hemisphere.fbHemiIndex) + ctx->hemisphere.storage.toLightmapLocation[sy * ctx->lightmap.width + sx] = lm_i2(-1, -1); + else + ctx->hemisphere.storage.toLightmapLocation[sy * ctx->lightmap.width + sx] = ctx->hemisphere.fbHemiToLightmapLocation[hemiIndex]; + } + } + + // advance storage texture write position + ctx->hemisphere.storage.writePosition.x += ctx->hemisphere.fbHemiCountX; + if (ctx->hemisphere.storage.writePosition.x + (int)ctx->hemisphere.fbHemiCountX > ctx->lightmap.width) + { + ctx->hemisphere.storage.writePosition.x = 0; + ctx->hemisphere.storage.writePosition.y += ctx->hemisphere.fbHemiCountY; + assert(ctx->hemisphere.storage.writePosition.y + (int)ctx->hemisphere.fbHemiCountY < ctx->lightmap.height); + } + + ctx->hemisphere.fbHemiIndex = 0; +} + +static void lm_writeResultsToLightmap(lm_context *ctx) +{ + // do the GPU->CPU transfer of downsampled hemispheres + float *hemi = (float*)LM_CALLOC(ctx->lightmap.width * ctx->lightmap.height, 4 * sizeof(float)); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_FLOAT, hemi); + + // write results to lightmap texture + for (int y = 0; y < ctx->hemisphere.storage.writePosition.y + (int)ctx->hemisphere.fbHemiCountY; y++) + { + for (int x = 0; x < ctx->lightmap.width; x++) + { + lm_ivec2 lmUV = ctx->hemisphere.storage.toLightmapLocation[y * ctx->lightmap.width + x]; + if (lmUV.x >= 0) + { + float *c = hemi + (y * ctx->lightmap.width + x) * 4; + float validity = c[3]; + float *lm = ctx->lightmap.data + (lmUV.y * ctx->lightmap.width + lmUV.x) * ctx->lightmap.channels; + if (!lm[0] && validity > 0.9) + { + float scale = 1.0f / validity; + switch (ctx->lightmap.channels) + { + case 1: + lm[0] = lm_maxf((c[0] + c[1] + c[2]) * scale / 3.0f, FLT_MIN); + break; + case 2: + lm[0] = lm_maxf((c[0] + c[1] + c[2]) * scale / 3.0f, FLT_MIN); + lm[1] = 1.0f; // do we want to support this format? + break; + case 3: + lm[0] = lm_maxf(c[0] * scale, FLT_MIN); + lm[1] = lm_maxf(c[1] * scale, FLT_MIN); + lm[2] = lm_maxf(c[2] * scale, FLT_MIN); + break; + case 4: + lm[0] = lm_maxf(c[0] * scale, FLT_MIN); + lm[1] = lm_maxf(c[1] * scale, FLT_MIN); + lm[2] = lm_maxf(c[2] * scale, FLT_MIN); + lm[3] = 1.0f; + break; + default: + assert(LM_FALSE); + break; + } + +#ifdef LM_DEBUG_INTERPOLATION + // set sampled pixel to red in debug output + ctx->lightmap.debug[(lmUV.y * ctx->lightmap.width + lmUV.x) * 3 + 0] = 255; +#endif + } + } + ctx->hemisphere.storage.toLightmapLocation[y * ctx->lightmap.width + x].x = -1; // reset + } + } + + LM_FREE(hemi); + ctx->hemisphere.storage.writePosition = lm_i2(0, 0); +} + +static void lm_setView( + int* viewport, int x, int y, int w, int h, + float* view, lm_vec3 pos, lm_vec3 dir, lm_vec3 up, + float* proj, float l, float r, float b, float t, float n, float f) +{ + // viewport + viewport[0] = x; viewport[1] = y; viewport[2] = w; viewport[3] = h; + + // view matrix: lookAt(pos, pos + dir, up) + lm_vec3 side = lm_cross3(dir, up); + //up = cross(side, dir); + dir = lm_negate3(dir); pos = lm_negate3(pos); + view[ 0] = side.x; view[ 1] = up.x; view[ 2] = dir.x; view[ 3] = 0.0f; + view[ 4] = side.y; view[ 5] = up.y; view[ 6] = dir.y; view[ 7] = 0.0f; + view[ 8] = side.z; view[ 9] = up.z; view[10] = dir.z; view[11] = 0.0f; + view[12] = lm_dot3(side, pos); view[13] = lm_dot3(up, pos); view[14] = lm_dot3(dir, pos); view[15] = 1.0f; + + // projection matrix: frustum(l, r, b, t, n, f) + float ilr = 1.0f / (r - l), ibt = 1.0f / (t - b), ninf = -1.0f / (f - n), n2 = 2.0f * n; + proj[ 0] = n2 * ilr; proj[ 1] = 0.0f; proj[ 2] = 0.0f; proj[ 3] = 0.0f; + proj[ 4] = 0.0f; proj[ 5] = n2 * ibt; proj[ 6] = 0.0f; proj[ 7] = 0.0f; + proj[ 8] = (r + l) * ilr; proj[ 9] = (t + b) * ibt; proj[10] = (f + n) * ninf; proj[11] = -1.0f; + proj[12] = 0.0f; proj[13] = 0.0f; proj[14] = f * n2 * ninf; proj[15] = 0.0f; +} + +// returns true if a hemisphere side was prepared for rendering and +// false if we finished the current hemisphere +static lm_bool lm_beginSampleHemisphere(lm_context *ctx, int* viewport, float* view, float* proj) +{ + if (ctx->meshPosition.hemisphere.side >= 5) + return LM_FALSE; + + if (ctx->meshPosition.hemisphere.side == 0) + { + // prepare hemisphere + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[0]); + if (ctx->hemisphere.fbHemiIndex == 0) + { + // prepare hemisphere batch + glClearColor( // clear to valid background pixels! + ctx->hemisphere.clearColor.r, + ctx->hemisphere.clearColor.g, + ctx->hemisphere.clearColor.b, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + } + ctx->hemisphere.fbHemiToLightmapLocation[ctx->hemisphere.fbHemiIndex] = + lm_i2(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + } + + // find the target position in the batch + int x = (ctx->hemisphere.fbHemiIndex % ctx->hemisphere.fbHemiCountX) * ctx->hemisphere.size * 3; + int y = (ctx->hemisphere.fbHemiIndex / ctx->hemisphere.fbHemiCountX) * ctx->hemisphere.size; + + int size = ctx->hemisphere.size; + float zNear = ctx->hemisphere.zNear; + float zFar = ctx->hemisphere.zFar; + + lm_vec3 pos = ctx->meshPosition.sample.position; + lm_vec3 dir = ctx->meshPosition.sample.direction; + lm_vec3 up = ctx->meshPosition.sample.up; + lm_vec3 right = lm_cross3(dir, up); + + // find the view parameters of the hemisphere side that we will render next + // hemisphere layout in the framebuffer: + // +-------+---+---+-------+ + // | | | | D | + // | C | R | L +-------+ + // | | | | U | + // +-------+---+---+-------+ + switch (ctx->meshPosition.hemisphere.side) + { + case 0: // center + lm_setView(viewport, x, y, size, size, + view, pos, dir, up, + proj, -zNear, zNear, -zNear, zNear, zNear, zFar); + break; + case 1: // right + lm_setView(viewport, size + x, y, size / 2, size, + view, pos, right, up, + proj, -zNear, 0.0f, -zNear, zNear, zNear, zFar); + break; + case 2: // left + lm_setView(viewport, size + x + size / 2, y, size / 2, size, + view, pos, lm_negate3(right), up, + proj, 0.0f, zNear, -zNear, zNear, zNear, zFar); + break; + case 3: // down + lm_setView(viewport, 2 * size + x, y + size / 2, size, size / 2, + view, pos, lm_negate3(up), dir, + proj, -zNear, zNear, 0.0f, zNear, zNear, zFar); + break; + case 4: // up + lm_setView(viewport, 2 * size + x, y, size, size / 2, + view, pos, up, lm_negate3(dir), + proj, -zNear, zNear, -zNear, 0.0f, zNear, zFar); + break; + default: + assert(LM_FALSE); + break; + } + + return LM_TRUE; +} + +static void lm_endSampleHemisphere(lm_context *ctx) +{ + if (++ctx->meshPosition.hemisphere.side == 5) + { + // finish hemisphere + glBindFramebuffer(GL_FRAMEBUFFER, 0); + if (++ctx->hemisphere.fbHemiIndex == ctx->hemisphere.fbHemiCountX * ctx->hemisphere.fbHemiCountY) + { + // downsample new hemisphere batch and store the results + lm_integrateHemisphereBatch(ctx); + } + } +} + +static void lm_inverseTranspose(const float *m44, float *n33) +{ + if (!m44) + { + n33[0] = 1.0f; n33[1] = 0.0f; n33[2] = 0.0f; + n33[3] = 0.0f; n33[4] = 1.0f; n33[5] = 0.0f; + n33[6] = 0.0f; n33[7] = 0.0f; n33[8] = 1.0f; + return; + } + + float determinant = m44[ 0] * (m44[ 5] * m44[10] - m44[ 9] * m44[ 6]) + - m44[ 1] * (m44[ 4] * m44[10] - m44[ 6] * m44[ 8]) + + m44[ 2] * (m44[ 4] * m44[ 9] - m44[ 5] * m44[ 8]); + + assert(fabs(determinant) > FLT_EPSILON); + float rcpDeterminant = 1.0f / determinant; + + n33[0] = (m44[ 5] * m44[10] - m44[ 9] * m44[ 6]) * rcpDeterminant; + n33[3] = -(m44[ 1] * m44[10] - m44[ 2] * m44[ 9]) * rcpDeterminant; + n33[6] = (m44[ 1] * m44[ 6] - m44[ 2] * m44[ 5]) * rcpDeterminant; + n33[1] = -(m44[ 4] * m44[10] - m44[ 6] * m44[ 8]) * rcpDeterminant; + n33[4] = (m44[ 0] * m44[10] - m44[ 2] * m44[ 8]) * rcpDeterminant; + n33[7] = -(m44[ 0] * m44[ 6] - m44[ 4] * m44[ 2]) * rcpDeterminant; + n33[2] = (m44[ 4] * m44[ 9] - m44[ 8] * m44[ 5]) * rcpDeterminant; + n33[5] = -(m44[ 0] * m44[ 9] - m44[ 8] * m44[ 1]) * rcpDeterminant; + n33[8] = (m44[ 0] * m44[ 5] - m44[ 4] * m44[ 1]) * rcpDeterminant; +} + +static lm_vec3 lm_transformNormal(const float *m, lm_vec3 n) +{ + lm_vec3 r; + r.x = m[0] * n.x + m[3] * n.y + m[6] * n.z; + r.y = m[1] * n.x + m[4] * n.y + m[7] * n.z; + r.z = m[2] * n.x + m[5] * n.y + m[8] * n.z; + return r; +} + +static lm_vec3 lm_transformPosition(const float *m, lm_vec3 v) +{ + if (!m) + return v; + lm_vec3 r; + r.x = m[0] * v.x + m[4] * v.y + m[ 8] * v.z + m[12]; + r.y = m[1] * v.x + m[5] * v.y + m[ 9] * v.z + m[13]; + r.z = m[2] * v.x + m[6] * v.y + m[10] * v.z + m[14]; + float d = m[3] * v.x + m[7] * v.y + m[11] * v.z + m[15]; + assert(lm_absf(d - 1.0f) < 0.00001f); // could divide by d, but this shouldn't be a projection transform! + return r; +} + +static void lm_setMeshPosition(lm_context *ctx, unsigned int indicesTriangleBaseIndex) +{ + // fetch triangle at the specified indicesTriangleBaseIndex + ctx->meshPosition.triangle.baseIndex = indicesTriangleBaseIndex; + + // load and transform triangle to process next + lm_vec2 uvMin = lm_v2(FLT_MAX, FLT_MAX), uvMax = lm_v2(-FLT_MAX, -FLT_MAX); + lm_vec2 uvScale = lm_v2i(ctx->lightmap.width, ctx->lightmap.height); + unsigned int vIndices[3]; + for (int i = 0; i < 3; i++) + { + // decode index + unsigned int vIndex; + switch (ctx->mesh.indicesType) + { + case LM_NONE: + vIndex = ctx->meshPosition.triangle.baseIndex + i; + break; + case LM_UNSIGNED_BYTE: + vIndex = ((const unsigned char*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + case LM_UNSIGNED_SHORT: + vIndex = ((const unsigned short*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + case LM_UNSIGNED_INT: + vIndex = ((const unsigned int*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + default: + assert(LM_FALSE); + break; + } + vIndices[i] = vIndex; + + // decode and pre-transform vertex position + const void *pPtr = ctx->mesh.positions + vIndex * ctx->mesh.positionsStride; + lm_vec3 p; + switch (ctx->mesh.positionsType) + { + // TODO: signed formats + case LM_UNSIGNED_BYTE: { + const unsigned char *uc = (const unsigned char*)pPtr; + p = lm_v3(uc[0], uc[1], uc[2]); + } break; + case LM_UNSIGNED_SHORT: { + const unsigned short *us = (const unsigned short*)pPtr; + p = lm_v3(us[0], us[1], us[2]); + } break; + case LM_UNSIGNED_INT: { + const unsigned int *ui = (const unsigned int*)pPtr; + p = lm_v3((float)ui[0], (float)ui[1], (float)ui[2]); + } break; + case LM_FLOAT: { + p = *(const lm_vec3*)pPtr; + } break; + default: { + assert(LM_FALSE); + } break; + } + ctx->meshPosition.triangle.p[i] = lm_transformPosition(ctx->mesh.modelMatrix, p); + + // decode and scale (to lightmap resolution) vertex lightmap texture coords + const void *uvPtr = ctx->mesh.uvs + vIndex * ctx->mesh.uvsStride; + lm_vec2 uv; + switch (ctx->mesh.uvsType) + { + case LM_UNSIGNED_BYTE: { + const unsigned char *uc = (const unsigned char*)uvPtr; + uv = lm_v2(uc[0] / (float)UCHAR_MAX, uc[1] / (float)UCHAR_MAX); + } break; + case LM_UNSIGNED_SHORT: { + const unsigned short *us = (const unsigned short*)uvPtr; + uv = lm_v2(us[0] / (float)USHRT_MAX, us[1] / (float)USHRT_MAX); + } break; + case LM_UNSIGNED_INT: { + const unsigned int *ui = (const unsigned int*)uvPtr; + uv = lm_v2(ui[0] / (float)UINT_MAX, ui[1] / (float)UINT_MAX); + } break; + case LM_FLOAT: { + uv = *(const lm_vec2*)uvPtr; + } break; + default: { + assert(LM_FALSE); + } break; + } + + ctx->meshPosition.triangle.uv[i] = lm_mul2(lm_pmod2(uv, 1.0f), uvScale); // maybe clamp to 0.0-1.0 instead of pmod? + + // update bounds on lightmap + uvMin = lm_min2(uvMin, ctx->meshPosition.triangle.uv[i]); + uvMax = lm_max2(uvMax, ctx->meshPosition.triangle.uv[i]); + } + + lm_vec3 flatNormal = lm_cross3( + lm_sub3(ctx->meshPosition.triangle.p[1], ctx->meshPosition.triangle.p[0]), + lm_sub3(ctx->meshPosition.triangle.p[2], ctx->meshPosition.triangle.p[0])); + + for (int i = 0; i < 3; i++) + { + // decode and pre-transform vertex normal + const void *nPtr = ctx->mesh.normals + vIndices[i] * ctx->mesh.normalsStride; + lm_vec3 n; + switch (ctx->mesh.normalsType) + { + // TODO: signed formats + case LM_FLOAT: { + n = *(const lm_vec3*)nPtr; + } break; + case LM_NONE: { + n = flatNormal; + } break; + default: { + assert(LM_FALSE); + } break; + } + ctx->meshPosition.triangle.n[i] = lm_normalize3(lm_transformNormal(ctx->mesh.normalMatrix, n)); + } + + // calculate area of interest (on lightmap) for conservative rasterization + lm_vec2 bbMin = lm_floor2(uvMin); + lm_vec2 bbMax = lm_ceil2 (uvMax); + ctx->meshPosition.rasterizer.minx = lm_maxi((int)bbMin.x - 1, 0); + ctx->meshPosition.rasterizer.miny = lm_maxi((int)bbMin.y - 1, 0); + ctx->meshPosition.rasterizer.maxx = lm_mini((int)bbMax.x + 1, ctx->lightmap.width - 1); + ctx->meshPosition.rasterizer.maxy = lm_mini((int)bbMax.y + 1, ctx->lightmap.height - 1); + assert(ctx->meshPosition.rasterizer.minx <= ctx->meshPosition.rasterizer.maxx && + ctx->meshPosition.rasterizer.miny <= ctx->meshPosition.rasterizer.maxy); + ctx->meshPosition.rasterizer.x = ctx->meshPosition.rasterizer.minx + lm_passOffsetX(ctx); + ctx->meshPosition.rasterizer.y = ctx->meshPosition.rasterizer.miny + lm_passOffsetY(ctx); + + // try moving to first valid sample position + if (ctx->meshPosition.rasterizer.x <= ctx->meshPosition.rasterizer.maxx && + ctx->meshPosition.rasterizer.y <= ctx->meshPosition.rasterizer.maxy && + lm_findFirstConservativeTriangleRasterizerPosition(ctx)) + ctx->meshPosition.hemisphere.side = 0; // we can start sampling the hemisphere + else + ctx->meshPosition.hemisphere.side = 5; // no samples on this triangle! put hemisphere sampler into finished state +} + +static GLuint lm_LoadShader(GLenum type, const char *source) +{ + GLuint shader = glCreateShader(type); + if (shader == 0) + { + fprintf(stderr, "Could not create shader!\n"); + return 0; + } + glShaderSource(shader, 1, &source, NULL); + glCompileShader(shader); + GLint compiled; + glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); + if (!compiled) + { + fprintf(stderr, "Could not compile shader!\n"); + GLint infoLen = 0; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); + if (infoLen) + { + char* infoLog = (char*)malloc(infoLen); + glGetShaderInfoLog(shader, infoLen, NULL, infoLog); + fprintf(stderr, "%s\n", infoLog); + free(infoLog); + } + glDeleteShader(shader); + return 0; + } + return shader; +} + +static GLuint lm_LoadProgram(const char *vp, const char *fp) +{ + GLuint program = glCreateProgram(); + if (program == 0) + { + fprintf(stderr, "Could not create program!\n"); + return 0; + } + GLuint vertexShader = lm_LoadShader(GL_VERTEX_SHADER, vp); + GLuint fragmentShader = lm_LoadShader(GL_FRAGMENT_SHADER, fp); + glAttachShader(program, vertexShader); + glAttachShader(program, fragmentShader); + glLinkProgram(program); + glDeleteShader(vertexShader); + glDeleteShader(fragmentShader); + GLint linked; + glGetProgramiv(program, GL_LINK_STATUS, &linked); + if (!linked) + { + fprintf(stderr, "Could not link program!\n"); + GLint infoLen = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &infoLen); + if (infoLen) + { + char* infoLog = (char*)malloc(sizeof(char) * infoLen); + glGetProgramInfoLog(program, infoLen, NULL, infoLog); + fprintf(stderr, "%s\n", infoLog); + free(infoLog); + } + glDeleteProgram(program); + return 0; + } + return program; +} + +static float lm_defaultWeights(float cos_theta, void *userdata) +{ + return 1.0f; +} + +lm_context *lmCreate(int hemisphereSize, float zNear, float zFar, + float clearR, float clearG, float clearB, + int interpolationPasses, float interpolationThreshold, + float cameraToSurfaceDistanceModifier) +{ + assert(hemisphereSize == 512 || hemisphereSize == 256 || hemisphereSize == 128 || + hemisphereSize == 64 || hemisphereSize == 32 || hemisphereSize == 16); + assert(zNear < zFar && zNear > 0.0f); + assert(cameraToSurfaceDistanceModifier >= -1.0f); + assert(interpolationPasses >= 0 && interpolationPasses <= 8); + assert(interpolationThreshold >= 0.0f); + + lm_context *ctx = (lm_context*)LM_CALLOC(1, sizeof(lm_context)); + + ctx->meshPosition.passCount = 1 + 3 * interpolationPasses; + ctx->interpolationThreshold = interpolationThreshold; + ctx->hemisphere.size = hemisphereSize; + ctx->hemisphere.zNear = zNear; + ctx->hemisphere.zFar = zFar; + ctx->hemisphere.cameraToSurfaceDistanceModifier = cameraToSurfaceDistanceModifier; + ctx->hemisphere.clearColor.r = clearR; + ctx->hemisphere.clearColor.g = clearG; + ctx->hemisphere.clearColor.b = clearB; + + // calculate hemisphere batch size + ctx->hemisphere.fbHemiCountX = 1536 / (3 * ctx->hemisphere.size); + ctx->hemisphere.fbHemiCountY = 512 / ctx->hemisphere.size; + + // hemisphere batch framebuffers + unsigned int w[] = { + ctx->hemisphere.fbHemiCountX * ctx->hemisphere.size * 3, + ctx->hemisphere.fbHemiCountX * ctx->hemisphere.size / 2 }; + unsigned int h[] = { + ctx->hemisphere.fbHemiCountY * ctx->hemisphere.size, + ctx->hemisphere.fbHemiCountY * ctx->hemisphere.size / 2 }; + + glGenTextures(2, ctx->hemisphere.fbTexture); + glGenFramebuffers(2, ctx->hemisphere.fb); + glGenRenderbuffers(1, &ctx->hemisphere.fbDepth); + + glBindRenderbuffer(GL_RENDERBUFFER, ctx->hemisphere.fbDepth); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, w[0], h[0]); + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[0]); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, ctx->hemisphere.fbDepth); + for (int i = 0; i < 2; i++) + { + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[i]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, w[i], h[i], 0, GL_RGBA, GL_FLOAT, 0); + + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[i]); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, ctx->hemisphere.fbTexture[i], 0); + GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + if (status != GL_FRAMEBUFFER_COMPLETE) + { + fprintf(stderr, "Could not create framebuffer!\n"); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + } + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + // dummy vao for fullscreen quad rendering + glGenVertexArrays(1, &ctx->hemisphere.vao); + + // hemisphere shader (weighted downsampling of the 3x1 hemisphere layout to a 0.5x0.5 square) + { + const char *vs = + "#version 150 core\n" + "const vec2 ps[4] = vec2[](vec2(1, -1), vec2(1, 1), vec2(-1, -1), vec2(-1, 1));\n" + "void main()\n" + "{\n" + "gl_Position = vec4(ps[gl_VertexID], 0, 1);\n" + "}\n"; + const char *fs = + "#version 150 core\n" + "uniform sampler2D hemispheres;\n" + "uniform sampler2D weights;\n" + + "layout(pixel_center_integer) in vec4 gl_FragCoord;\n" // whole integer values represent pixel centers, GL_ARB_fragment_coord_conventions + + "out vec4 outColor;\n" + + "vec4 weightedSample(ivec2 h_uv, ivec2 w_uv, ivec2 quadrant)\n" + "{\n" + "vec4 sample = texelFetch(hemispheres, h_uv + quadrant, 0);\n" + "vec2 weight = texelFetch(weights, w_uv + quadrant, 0).rg;\n" + "return vec4(sample.rgb * weight.r, sample.a * weight.g);\n" + "}\n" + + "vec4 threeWeightedSamples(ivec2 h_uv, ivec2 w_uv, ivec2 offset)\n" + "{\n" // horizontal triple sum + "vec4 sum = weightedSample(h_uv, w_uv, offset);\n" + "sum += weightedSample(h_uv, w_uv, offset + ivec2(2, 0));\n" + "sum += weightedSample(h_uv, w_uv, offset + ivec2(4, 0));\n" + "return sum;\n" + "}\n" + + "void main()\n" + "{\n" // this is a weighted sum downsampling pass (alpha component contains the weighted valid sample count) + "vec2 in_uv = gl_FragCoord.xy * vec2(6.0, 2.0) + vec2(0.5);\n" + "ivec2 h_uv = ivec2(in_uv);\n" + "ivec2 w_uv = ivec2(mod(in_uv, vec2(textureSize(weights, 0))));\n" // there's no integer modulo :( + "vec4 lb = threeWeightedSamples(h_uv, w_uv, ivec2(0, 0));\n" + "vec4 rb = threeWeightedSamples(h_uv, w_uv, ivec2(1, 0));\n" + "vec4 lt = threeWeightedSamples(h_uv, w_uv, ivec2(0, 1));\n" + "vec4 rt = threeWeightedSamples(h_uv, w_uv, ivec2(1, 1));\n" + "outColor = lb + rb + lt + rt;\n" + "}\n"; + ctx->hemisphere.firstPass.programID = lm_LoadProgram(vs, fs); + if (!ctx->hemisphere.firstPass.programID) + { + fprintf(stderr, "Error loading the hemisphere first pass shader program... leaving!\n"); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + ctx->hemisphere.firstPass.hemispheresTextureID = glGetUniformLocation(ctx->hemisphere.firstPass.programID, "hemispheres"); + ctx->hemisphere.firstPass.weightsTextureID = glGetUniformLocation(ctx->hemisphere.firstPass.programID, "weights"); + } + + // downsample shader + { + const char *vs = + "#version 150 core\n" + "const vec2 ps[4] = vec2[](vec2(1, -1), vec2(1, 1), vec2(-1, -1), vec2(-1, 1));\n" + "void main()\n" + "{\n" + "gl_Position = vec4(ps[gl_VertexID], 0, 1);\n" + "}\n"; + const char *fs = + "#version 150 core\n" + "uniform sampler2D hemispheres;\n" + + "layout(pixel_center_integer) in vec4 gl_FragCoord;\n" // whole integer values represent pixel centers, GL_ARB_fragment_coord_conventions + + "out vec4 outColor;\n" + + "void main()\n" + "{\n" // this is a sum downsampling pass (alpha component contains the weighted valid sample count) + "ivec2 h_uv = ivec2(gl_FragCoord.xy) * 2;\n" + "vec4 lb = texelFetch(hemispheres, h_uv + ivec2(0, 0), 0);\n" + "vec4 rb = texelFetch(hemispheres, h_uv + ivec2(1, 0), 0);\n" + "vec4 lt = texelFetch(hemispheres, h_uv + ivec2(0, 1), 0);\n" + "vec4 rt = texelFetch(hemispheres, h_uv + ivec2(1, 1), 0);\n" + "outColor = lb + rb + lt + rt;\n" + "}\n"; + ctx->hemisphere.downsamplePass.programID = lm_LoadProgram(vs, fs); + if (!ctx->hemisphere.downsamplePass.programID) + { + fprintf(stderr, "Error loading the hemisphere downsample pass shader program... leaving!\n"); + glDeleteProgram(ctx->hemisphere.firstPass.programID); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + ctx->hemisphere.downsamplePass.hemispheresTextureID = glGetUniformLocation(ctx->hemisphere.downsamplePass.programID, "hemispheres"); + } + + // hemisphere weights texture + glGenTextures(1, &ctx->hemisphere.firstPass.weightsTexture); + lmSetHemisphereWeights(ctx, lm_defaultWeights, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + + // allocate batchPosition-to-lightmapPosition map + ctx->hemisphere.fbHemiToLightmapLocation = (lm_ivec2*)LM_CALLOC(ctx->hemisphere.fbHemiCountX * ctx->hemisphere.fbHemiCountY, sizeof(lm_ivec2)); + + return ctx; +} + +void lmDestroy(lm_context *ctx) +{ + // reset state + glUseProgram(0); + glBindTexture(GL_TEXTURE_2D, 0); + glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); + glBindVertexArray(0); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + + // delete gl objects + glDeleteTextures(1, &ctx->hemisphere.firstPass.weightsTexture); + glDeleteTextures(1, &ctx->hemisphere.storage.texture); + glDeleteProgram(ctx->hemisphere.downsamplePass.programID); + glDeleteProgram(ctx->hemisphere.firstPass.programID); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + glDeleteTextures(1, &ctx->hemisphere.storage.texture); + + // free memory + LM_FREE(ctx->hemisphere.storage.toLightmapLocation); + LM_FREE(ctx->hemisphere.fbHemiToLightmapLocation); +#ifdef LM_DEBUG_INTERPOLATION + LM_FREE(ctx->lightmap.debug); +#endif + LM_FREE(ctx); +} + +void lmSetHemisphereWeights(lm_context *ctx, lm_weight_func f, void *userdata) +{ + // hemisphere weights texture. bakes in material dependent attenuation behaviour. + float *weights = (float*)LM_CALLOC(2 * 3 * ctx->hemisphere.size * ctx->hemisphere.size, sizeof(float)); + float center = (ctx->hemisphere.size - 1) * 0.5f; + double sum = 0.0; + for (unsigned int y = 0; y < ctx->hemisphere.size; y++) + { + float dy = 2.0f * (y - center) / (float)ctx->hemisphere.size; + for (unsigned int x = 0; x < ctx->hemisphere.size; x++) + { + float dx = 2.0f * (x - center) / (float)ctx->hemisphere.size; + lm_vec3 v = lm_normalize3(lm_v3(dx, dy, 1.0f)); + + float solidAngle = v.z * v.z * v.z; + + float *w0 = weights + 2 * (y * (3 * ctx->hemisphere.size) + x); + float *w1 = w0 + 2 * ctx->hemisphere.size; + float *w2 = w1 + 2 * ctx->hemisphere.size; + + // center weights + w0[0] = solidAngle * f(v.z, userdata); + w0[1] = solidAngle; + + // left/right side weights + w1[0] = solidAngle * f(lm_absf(v.x), userdata); + w1[1] = solidAngle; + + // up/down side weights + w2[0] = solidAngle * f(lm_absf(v.y), userdata); + w2[1] = solidAngle; + + sum += 3.0 * (double)solidAngle; + } + } + + // normalize weights + float weightScale = (float)(1.0 / sum); + for (unsigned int i = 0; i < 2 * 3 * ctx->hemisphere.size * ctx->hemisphere.size; i++) + weights[i] *= weightScale; + + // upload weight texture + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.firstPass.weightsTexture); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RG32F, 3 * ctx->hemisphere.size, ctx->hemisphere.size, 0, GL_RG, GL_FLOAT, weights); + LM_FREE(weights); +} + +void lmSetTargetLightmap(lm_context *ctx, float *outLightmap, int w, int h, int c) +{ + ctx->lightmap.data = outLightmap; + ctx->lightmap.width = w; + ctx->lightmap.height = h; + ctx->lightmap.channels = c; + + // allocate storage texture + if (!ctx->hemisphere.storage.texture) + glGenTextures(1, &ctx->hemisphere.storage.texture); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, w, h, 0, GL_RGBA, GL_FLOAT, 0); + + // allocate storage position to lightmap position map + if (ctx->hemisphere.storage.toLightmapLocation) + LM_FREE(ctx->hemisphere.storage.toLightmapLocation); + ctx->hemisphere.storage.toLightmapLocation = (lm_ivec2*)LM_CALLOC(w * h, sizeof(lm_ivec2)); + // invalidate all positions + for (int i = 0; i < w * h; i++) + ctx->hemisphere.storage.toLightmapLocation[i].x = -1; + +#ifdef LM_DEBUG_INTERPOLATION + if (ctx->lightmap.debug) + LM_FREE(ctx->lightmap.debug); + ctx->lightmap.debug = (unsigned char*)LM_CALLOC(ctx->lightmap.width * ctx->lightmap.height, 3); +#endif +} + +void lmSetGeometry(lm_context *ctx, + const float *transformationMatrix, + lm_type positionsType, const void *positionsXYZ, int positionsStride, + lm_type normalsType, const void *normalsXYZ, int normalsStride, + lm_type lightmapCoordsType, const void *lightmapCoordsUV, int lightmapCoordsStride, + int count, lm_type indicesType, const void *indices) +{ + ctx->mesh.modelMatrix = transformationMatrix; + ctx->mesh.positions = (const unsigned char*)positionsXYZ; + ctx->mesh.positionsType = positionsType; + ctx->mesh.positionsStride = positionsStride == 0 ? sizeof(lm_vec3) : positionsStride; + ctx->mesh.normals = (const unsigned char*)normalsXYZ; + ctx->mesh.normalsType = normalsType; + ctx->mesh.normalsStride = normalsStride == 0 ? sizeof(lm_vec3) : normalsStride; + ctx->mesh.uvs = (const unsigned char*)lightmapCoordsUV; + ctx->mesh.uvsType = lightmapCoordsType; + ctx->mesh.uvsStride = lightmapCoordsStride == 0 ? sizeof(lm_vec2) : lightmapCoordsStride; + ctx->mesh.indicesType = indicesType; + ctx->mesh.indices = (const unsigned char*)indices; + ctx->mesh.count = count; + + lm_inverseTranspose(transformationMatrix, ctx->mesh.normalMatrix); + + ctx->meshPosition.pass = 0; + lm_setMeshPosition(ctx, 0); +} + +lm_bool lmBegin(lm_context *ctx, int* outViewport4, float* outView4x4, float* outProjection4x4) +{ + assert(ctx->meshPosition.triangle.baseIndex < ctx->mesh.count); + while (!lm_beginSampleHemisphere(ctx, outViewport4, outView4x4, outProjection4x4)) + { // as long as there are no hemisphere sides to render... + // try moving to the next rasterizer position + if (lm_findNextConservativeTriangleRasterizerPosition(ctx)) + { // if we successfully moved to the next sample position on the current triangle... + ctx->meshPosition.hemisphere.side = 0; // start sampling a hemisphere there + } + else + { // if there are no valid sample positions on the current triangle... + if (ctx->meshPosition.triangle.baseIndex + 3 < ctx->mesh.count) + { // ...and there are triangles left: move to the next triangle and continue sampling. + lm_setMeshPosition(ctx, ctx->meshPosition.triangle.baseIndex + 3); + } + else + { // ...and there are no triangles left: finish + lm_integrateHemisphereBatch(ctx); // integrate and store last batch + lm_writeResultsToLightmap(ctx); // read storage data from gpu memory and write it to the lightmap + + if (++ctx->meshPosition.pass == ctx->meshPosition.passCount) + { + ctx->meshPosition.pass = 0; + ctx->meshPosition.triangle.baseIndex = ctx->mesh.count; // set end condition (in case someone accidentally calls lmBegin again) + +#ifdef LM_DEBUG_INTERPOLATION + lmImageSaveTGAub("debug_interpolation.tga", ctx->lightmap.debug, ctx->lightmap.width, ctx->lightmap.height, 3); + + // lightmap texel statistics + int rendered = 0, interpolated = 0, wasted = 0; + for (int y = 0; y < ctx->lightmap.height; y++) + { + for (int x = 0; x < ctx->lightmap.width; x++) + { + if (ctx->lightmap.debug[(y * ctx->lightmap.width + x) * 3 + 0]) + rendered++; + else if (ctx->lightmap.debug[(y * ctx->lightmap.width + x) * 3 + 1]) + interpolated++; + else + wasted++; + } + } + int used = rendered + interpolated; + int total = used + wasted; + printf("\n#######################################################################\n"); + printf("%10d %6.2f%% rendered hemicubes integrated to lightmap texels.\n", rendered, 100.0f * (float)rendered / (float)total); + printf("%10d %6.2f%% interpolated lightmap texels.\n", interpolated, 100.0f * (float)interpolated / (float)total); + printf("%10d %6.2f%% wasted lightmap texels.\n", wasted, 100.0f * (float)wasted / (float)total); + printf("\n%17.2f%% of used texels were rendered.\n", 100.0f * (float)rendered / (float)used); + printf("#######################################################################\n"); +#endif + + return LM_FALSE; + } + + lm_setMeshPosition(ctx, 0); // start over with the next pass + } + } + } + return LM_TRUE; +} + +float lmProgress(lm_context *ctx) +{ + float passProgress = (float)ctx->meshPosition.triangle.baseIndex / (float)ctx->mesh.count; + return ((float)ctx->meshPosition.pass + passProgress) / (float)ctx->meshPosition.passCount; +} + +void lmEnd(lm_context *ctx) +{ + lm_endSampleHemisphere(ctx); +} + +// these are not performance tuned since their impact on the whole lightmapping duration is insignificant +float lmImageMin(const float *image, int w, int h, int c, int m) +{ + assert(c > 0 && m); + float minValue = FLT_MAX; + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + minValue = lm_minf(minValue, image[i * c + j]); + return minValue; +} + +float lmImageMax(const float *image, int w, int h, int c, int m) +{ + assert(c > 0 && m); + float maxValue = 0.0f; + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + maxValue = lm_maxf(maxValue, image[i * c + j]); + return maxValue; +} + +void lmImageAdd(float *image, int w, int h, int c, float value, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] += value; +} + +void lmImageScale(float *image, int w, int h, int c, float factor, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] *= factor; +} + +void lmImagePower(float *image, int w, int h, int c, float exponent, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] = powf(image[i * c + j], exponent); +} + +void lmImageDilate(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h; y++) + { + for (int x = 0; x < w; x++) + { + float color[4]; + lm_bool valid = LM_FALSE; + for (int i = 0; i < c; i++) + { + color[i] = image[(y * w + x) * c + i]; + valid |= color[i] > 0.0f; + } + if (!valid) + { + int n = 0; + const int dx[] = { -1, 0, 1, 0 }; + const int dy[] = { 0, 1, 0, -1 }; + for (int d = 0; d < 4; d++) + { + int cx = x + dx[d]; + int cy = y + dy[d]; + if (cx >= 0 && cx < w && cy >= 0 && cy < h) + { + float dcolor[4]; + lm_bool dvalid = LM_FALSE; + for (int i = 0; i < c; i++) + { + dcolor[i] = image[(cy * w + cx) * c + i]; + dvalid |= dcolor[i] > 0.0f; + } + if (dvalid) + { + for (int i = 0; i < c; i++) + color[i] += dcolor[i]; + n++; + } + } + } + if (n) + { + float in = 1.0f / n; + for (int i = 0; i < c; i++) + color[i] *= in; + } + } + for (int i = 0; i < c; i++) + outImage[(y * w + x) * c + i] = color[i]; + } + } +} + +void lmImageSmooth(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h; y++) + { + for (int x = 0; x < w; x++) + { + float color[4] = {0}; + int n = 0; + for (int dy = -1; dy <= 1; dy++) + { + int cy = y + dy; + for (int dx = -1; dx <= 1; dx++) + { + int cx = x + dx; + if (cx >= 0 && cx < w && cy >= 0 && cy < h) + { + lm_bool valid = LM_FALSE; + for (int i = 0; i < c; i++) + valid |= image[(cy * w + cx) * c + i] > 0.0f; + if (valid) + { + for (int i = 0; i < c; i++) + color[i] += image[(cy * w + cx) * c + i]; + n++; + } + } + } + } + for (int i = 0; i < c; i++) + outImage[(y * w + x) * c + i] = n ? color[i] / n : 0.0f; + } + } +} + +void lmImageDownsample(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h / 2; y++) + { + for (int x = 0; x < w / 2; x++) + { + int p0 = 2 * (y * w + x) * c; + int p1 = p0 + w * c; + int valid[2][2] = {0}; + float sums[4] = {0}; + for (int i = 0; i < c; i++) + { + valid[0][0] |= image[p0 + i] != 0.0f ? 1 : 0; + valid[0][1] |= image[p0 + c + i] != 0.0f ? 1 : 0; + valid[1][0] |= image[p1 + i] != 0.0f ? 1 : 0; + valid[1][1] |= image[p1 + c + i] != 0.0f ? 1 : 0; + sums[i] += image[p0 + i] + image[p0 + c + i] + image[p1 + i] + image[p1 + c + i]; + } + int n = valid[0][0] + valid[0][1] + valid[1][0] + valid[1][1]; + int p = (y * w / 2 + x) * c; + for (int i = 0; i < c; i++) + outImage[p + i] = n ? sums[i] / n : 0.0f; + } + } +} + +void lmImageFtoUB(const float *image, unsigned char *outImage, int w, int h, int c, float max) +{ + assert(c > 0); + float scale = 255.0f / (max != 0.0f ? max : lmImageMax(image, w, h, c, LM_ALL_CHANNELS)); + for (int i = 0; i < w * h * c; i++) + outImage[i] = (unsigned char)lm_minf(lm_maxf(image[i] * scale, 0.0f), 255.0f); +} + +// TGA output helpers +static void lm_swapRandBub(unsigned char *image, int w, int h, int c) +{ + assert(c >= 3); + for (int i = 0; i < w * h * c; i += c) + LM_SWAP(unsigned char, image[i], image[i + 2]); +} + +lm_bool lmImageSaveTGAub(const char *filename, const unsigned char *image, int w, int h, int c) +{ + assert(c == 1 || c == 3 || c == 4); + lm_bool isGreyscale = c == 1; + lm_bool hasAlpha = c == 4; + unsigned char header[18] = { + 0, 0, (unsigned char)(isGreyscale ? 3 : 2), 0, 0, 0, 0, 0, 0, 0, 0, 0, + (unsigned char)(w & 0xff), (unsigned char)((w >> 8) & 0xff), (unsigned char)(h & 0xff), (unsigned char)((h >> 8) & 0xff), + (unsigned char)(8 * c), (unsigned char)(hasAlpha ? 8 : 0) + }; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + FILE *file; + if (fopen_s(&file, filename, "wb") != 0) return LM_FALSE; +#else + FILE *file = fopen(filename, "wb"); + if (!file) return LM_FALSE; +#endif + fwrite(header, 1, sizeof(header), file); + + // we make sure to swap it back! trust me. :) + if (!isGreyscale) + lm_swapRandBub((unsigned char*)image, w, h, c); + fwrite(image, 1, w * h * c , file); + if (!isGreyscale) + lm_swapRandBub((unsigned char*)image, w, h, c); + + fclose(file); + return LM_TRUE; +} + +lm_bool lmImageSaveTGAf(const char *filename, const float *image, int w, int h, int c, float max) +{ + unsigned char *temp = (unsigned char*)LM_CALLOC(w * h * c, sizeof(unsigned char)); + lmImageFtoUB(image, temp, w, h, c, max); + lm_bool success = lmImageSaveTGAub(filename, temp, w, h, c); + LM_FREE(temp); + return success; +} + +#endif // LIGHTMAPPER_IMPLEMENTATION +#line 0 + #endif // V4K_3RD /* game framework. * - rlyeh, public domain @@ -358986,17 +360759,23 @@ void *gui_userdata() { return last_skin->userdata; } -vec2 gui_getskinsize(const char *skin) { +vec2 gui_getskinsize(const char *skin, const char *fallback) { vec2 size={0}; - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &size); + if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, fallback, &size); return size; } -bool gui_ismouseinrect(const char *skin, vec4 rect) { - if (last_skin->ismouseinrect) return last_skin->ismouseinrect(last_skin->userdata, skin, rect); +bool gui_ismouseinrect(const char *skin, const char *fallback, vec4 rect) { + if (last_skin->ismouseinrect) return last_skin->ismouseinrect(last_skin->userdata, skin, fallback, rect); return false; } +vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect) { + vec4 scissor = rect; + if (last_skin->getscissorrect) last_skin->getscissorrect(last_skin->userdata, skin, fallback, rect, &scissor); + return scissor; +} + static gui_state_t *gui_getstate(int id) { if (!ctl_states) map_init(ctl_states, less_int, hash_int); @@ -359006,8 +360785,8 @@ gui_state_t *gui_getstate(int id) { void gui_panel_id(int id, vec4 rect, const char *skin) { (void)id; vec4 scissor={0, 0, window_width(), window_height()}; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, rect); - if (last_skin->getscissorrect) last_skin->getscissorrect(last_skin->userdata, skin, rect, &scissor); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, NULL, rect); + scissor = gui_getscissorrect(skin, NULL, rect); if (!array_count(scissor_rects)) glEnable(GL_SCISSOR_TEST); @@ -359032,7 +360811,7 @@ bool gui_button_id(int id, vec4 r, const char *skin) { skin=skin?skin:"button"; char *btn = va("%s%s", skin, entry->held?"_press":entry->hover?"_hover":""); - if (gui_ismouseinrect(btn, r)) { + if (gui_ismouseinrect(btn, skin, r)) { if (input_up(MOUSE_L) && entry->held) { was_clicked=1; } @@ -359042,24 +360821,27 @@ bool gui_button_id(int id, vec4 r, const char *skin) { entry->hover = true; } } - else if (input_up(MOUSE_L) && entry->held) { - entry->held = false; - any_widget_used = false; - } else { entry->hover = false; } - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, btn, r); + if (input_up(MOUSE_L) && entry->held) { + entry->held = false; + any_widget_used = false; + } + + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, btn, skin, r); return was_clicked; } bool gui_button_label_id(int id, const char *text, vec4 rect, const char *skin) { + gui_state_t *entry = gui_getstate(id); bool state = gui_button_id(id, rect, skin); vec2 buttonsize={0}; skin=skin?skin:"button"; - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &buttonsize); + char *btn = va("%s%s", skin, entry->held?"_press":entry->hover?"_hover":""); + buttonsize = gui_getskinsize(btn, skin); vec2 textsize = font_rect(text); vec2 pos; @@ -359092,7 +360874,8 @@ bool gui_slider_id(int id, vec4 rect, const char *skin, float min, float max, fl skin = skin?skin:"slider"; char *cursorskin = va("%s_cursor%s", skin, entry->held?"_press":entry->hover?"_hover":""); - if (gui_ismouseinrect(skin, rect) && !any_widget_used) { + char *fbcursor = va("%s_cursor", skin); + if (gui_ismouseinrect(skin, NULL, rect) && !any_widget_used) { any_widget_used = entry->held = input_held(MOUSE_L); entry->hover = true; } @@ -359105,13 +360888,12 @@ bool gui_slider_id(int id, vec4 rect, const char *skin, float min, float max, fl } float old_value = *value; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, rect); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, NULL, rect); vec2 slidersize={0}, cursorsize={0}; - vec4 usablerect=rect; - if (last_skin->getscissorrect) last_skin->getscissorrect(last_skin->userdata, skin, rect, &usablerect); - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &slidersize); - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, cursorskin, &cursorsize); + vec4 usablerect = gui_getscissorrect(skin, NULL, rect); + slidersize = gui_getskinsize(skin, NULL); + cursorsize = gui_getskinsize(cursorskin, fbcursor); if (entry->held) { *value = posx2slider(usablerect, min, max, input(MOUSE_X), step); } @@ -359122,7 +360904,7 @@ bool gui_slider_id(int id, vec4 rect, const char *skin, float min, float max, fl cursorrect.y += cursorpos.y; cursorrect.z = cursorsize.x; cursorrect.w = cursorsize.y; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, cursorskin, cursorrect); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, cursorskin, fbcursor, cursorrect); return entry->held && (old_value!=*value); } @@ -359131,7 +360913,7 @@ bool gui_slider_label_id(int id, const char *text, vec4 rect, const char *skin, bool state = gui_slider_id(id, rect, skin, min, max, step, value); vec2 slidersize={0}; skin=skin?skin:"slider"; - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &slidersize); + slidersize = gui_getskinsize(skin, NULL); vec2 textsize = font_rect(text); vec2 pos; @@ -359144,7 +360926,7 @@ bool gui_slider_label_id(int id, const char *text, vec4 rect, const char *skin, void gui_rect_id(int id, vec4 r, const char *skin) { (void)id; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, r); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, NULL, r); } void gui_label_id(int id, const char *text, vec4 rect) { @@ -359168,7 +360950,7 @@ atlas_slice_frame_t *skinned_getsliceframe(atlas_t *a, const char *name) { for (int i = 0; i < array_count(a->slices); i++) if (!strcmp(quark_string(&a->db, a->slices[i].name), name)) return &a->slice_frames[a->slices[i].frames[0]]; - PRINTF("slice name: '%s' is missing in atlas!\n", name); + // PRINTF("slice name: '%s' is missing in atlas!\n", name); return NULL; } @@ -359179,9 +360961,10 @@ void skinned_draw_missing_rect(vec4 r) { } static -bool skinned_ismouseinrect(void *userdata, const char *skin, vec4 r) { +bool skinned_ismouseinrect(void *userdata, const char *skin, const char *fallback, vec4 r) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (!f) return false; vec4 outer = f->bounds; @@ -359264,18 +361047,20 @@ void skinned_draw_sprite(float scale, atlas_t *a, atlas_slice_frame_t *f, vec4 r } static -void skinned_draw_rect(void* userdata, const char *skin, vec4 r) { +void skinned_draw_rect(void* userdata, const char *skin, const char *fallback, vec4 r) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (!f) skinned_draw_missing_rect(r); else skinned_draw_sprite(a->scale, &a->atlas, f, r); } -void skinned_getskinsize(void *userdata, const char *skin, vec2 *size) { +void skinned_getskinsize(void *userdata, const char *skin, const char *fallback, vec2 *size) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (f) { size->x = (f->bounds.z-f->bounds.x)*a->scale; size->y = (f->bounds.w-f->bounds.y)*a->scale; @@ -359283,9 +361068,10 @@ void skinned_getskinsize(void *userdata, const char *skin, vec2 *size) { } static -void skinned_getscissorrect(void* userdata, const char *skin, vec4 rect, vec4 *dims) { +void skinned_getscissorrect(void* userdata, const char *skin, const char *fallback, vec4 rect, vec4 *dims) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (!f) return; *dims = rect; diff --git a/engine/split/3rd_lightmapper.h b/engine/split/3rd_lightmapper.h new file mode 100644 index 0000000..671db74 --- /dev/null +++ b/engine/split/3rd_lightmapper.h @@ -0,0 +1,1761 @@ +/*********************************************************** +* A single header file OpenGL lightmapping library * +* https://github.com/ands/lightmapper * +* no warranty implied | use at your own risk * +* author: Andreas Mantler (ands) | last change: 10.05.2018 * +* * +* License: * +* This software is in the public domain. * +* Where that dedication is not recognized, * +* you are granted a perpetual, irrevocable license to copy * +* and modify this file however you want. * +***********************************************************/ + +#ifndef LIGHTMAPPER_H +#define LIGHTMAPPER_H + +#ifdef __cplusplus +#define LM_DEFAULT_VALUE(value) = value +#else +#define LM_DEFAULT_VALUE(value) +#endif + +#ifndef LM_CALLOC +#define LM_CALLOC(count, size) calloc(count, size) +#endif + +#ifndef LM_FREE +#define LM_FREE(ptr) free(ptr) +#endif + +typedef int lm_bool; +#define LM_FALSE 0 +#define LM_TRUE 1 + +typedef int lm_type; +#define LM_NONE 0 +#define LM_UNSIGNED_BYTE GL_UNSIGNED_BYTE +#define LM_UNSIGNED_SHORT GL_UNSIGNED_SHORT +#define LM_UNSIGNED_INT GL_UNSIGNED_INT +#define LM_FLOAT GL_FLOAT + +typedef struct lm_context lm_context; + +// creates a lightmapper instance. it can be used to render multiple lightmaps. +lm_context *lmCreate( + int hemisphereSize, // hemisphereSize: resolution of the hemisphere renderings. must be a power of two! typical: 64. + float zNear, float zFar, // zNear/zFar: hemisphere min/max draw distances. + float clearR, float clearG, float clearB, // clear color / background color / sky color. + int interpolationPasses, float interpolationThreshold, // passes: hierarchical selective interpolation passes (0-8; initial step size = 2^passes). + // threshold: error value below which lightmap pixels are interpolated instead of rendered. + // use output image from LM_DEBUG_INTERPOLATION to determine a good value. + // values around and below 0.01 are probably ok. + // the lower the value, the more hemispheres are rendered -> slower, but possibly better quality. + float cameraToSurfaceDistanceModifier LM_DEFAULT_VALUE(0.0f)); // modifier for the height of the rendered hemispheres above the surface + // -1.0f => stick to surface, 0.0f => minimum height for interpolated surface normals, + // > 0.0f => improves gradients on surfaces with interpolated normals due to the flat surface horizon, + // but may introduce other artifacts. + +// optional: set material characteristics by specifying cos(theta)-dependent weights for incoming light. +typedef float (*lm_weight_func)(float cos_theta, void *userdata); +void lmSetHemisphereWeights(lm_context *ctx, lm_weight_func f, void *userdata); // precalculates weights for incoming light depending on its angle. (default: all weights are 1.0f) + +// specify an output lightmap image buffer with w * h * c * sizeof(float) bytes of memory. +void lmSetTargetLightmap(lm_context *ctx, float *outLightmap, int w, int h, int c); // output HDR lightmap (linear 32bit float channels; c: 1->Greyscale, 2->Greyscale+Alpha, 3->RGB, 4->RGBA). + +// set the geometry to map to the currently set target lightmap (set the target lightmap before calling this!). +void lmSetGeometry(lm_context *ctx, + const float *transformationMatrix, // 4x4 object-to-world transform for the geometry or NULL (no transformation). + lm_type positionsType, const void *positionsXYZ, int positionsStride, // triangle mesh in object space. + lm_type normalsType, const void *normalsXYZ, int normalsStride, // optional normals for the mesh in object space (Use LM_NONE type in case you only need flat surfaces). + lm_type lightmapCoordsType, const void *lightmapCoordsUV, int lightmapCoordsStride, // lightmap atlas texture coordinates for the mesh [0..1]x[0..1] (integer types are normalized to 0..1 range). + int count, lm_type indicesType LM_DEFAULT_VALUE(LM_NONE), const void *indices LM_DEFAULT_VALUE(0));// if mesh indices are used, count = number of indices else count = number of vertices. + + +// as long as lmBegin returns true, the scene has to be rendered with the +// returned camera and view parameters to the currently bound framebuffer. +// if lmBegin returns true, it must be followed by lmEnd after rendering! +lm_bool lmBegin(lm_context *ctx, + int* outViewport4, // output of the current viewport: { x, y, w, h }. use these to call glViewport()! + float* outView4x4, // output of the current camera view matrix. + float* outProjection4x4); // output of the current camera projection matrix. + +float lmProgress(lm_context *ctx); // should only be called between lmBegin/lmEnd! + // provides the light mapping progress as a value increasing from 0.0 to 1.0. + +void lmEnd(lm_context *ctx); + +// destroys the lightmapper instance. should be called to free resources. +void lmDestroy(lm_context *ctx); + + +// image based post processing (c is the number of color channels in the image, m a channel mask for the operation) +#define LM_ALL_CHANNELS 0x0f +float lmImageMin(const float *image, int w, int h, int c, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // find the minimum value (across the specified channels) +float lmImageMax(const float *image, int w, int h, int c, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // find the maximum value (across the specified channels) +void lmImageAdd(float *image, int w, int h, int c, float value, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place add to the specified channels +void lmImageScale(float *image, int w, int h, int c, float factor, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place scaling of the specified channels +void lmImagePower(float *image, int w, int h, int c, float exponent, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place powf(v, exponent) of the specified channels (for gamma) +void lmImageDilate(const float *image, float *outImage, int w, int h, int c); // widen the populated non-zero areas by 1 pixel. +void lmImageSmooth(const float *image, float *outImage, int w, int h, int c); // simple box filter on only the non-zero values. +void lmImageDownsample(const float *image, float *outImage, int w, int h, int c); // downsamples [0..w]x[0..h] to [0..w/2]x[0..h/2] by avereging only the non-zero values +void lmImageFtoUB(const float *image, unsigned char *outImage, int w, int h, int c, float max LM_DEFAULT_VALUE(0.0f)); // casts a floating point image to an 8bit/channel image + +// TGA file output helpers +lm_bool lmImageSaveTGAub(const char *filename, const unsigned char *image, int w, int h, int c); +lm_bool lmImageSaveTGAf(const char *filename, const float *image, int w, int h, int c, float max LM_DEFAULT_VALUE(0.0f)); + +#endif +////////////////////// END OF HEADER ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#ifdef LIGHTMAPPER_IMPLEMENTATION +#undef LIGHTMAPPER_IMPLEMENTATION + +#include +#include +#include +#include +#include +#include + +#define LM_SWAP(type, a, b) { type tmp = (a); (a) = (b); (b) = tmp; } + +#if defined(_MSC_VER) && !defined(__cplusplus) +#define inline __inline +#endif + +#if defined(_MSC_VER) && (_MSC_VER <= 1700) +static inline lm_bool lm_finite(float a) { return _finite(a); } +#else +static inline lm_bool lm_finite(float a) { return isfinite(a); } +#endif + +static inline int lm_mini (int a, int b) { return a < b ? a : b; } +static inline int lm_maxi (int a, int b) { return a > b ? a : b; } +static inline int lm_absi (int a ) { return a < 0 ? -a : a; } +static inline float lm_minf (float a, float b) { return a < b ? a : b; } +static inline float lm_maxf (float a, float b) { return a > b ? a : b; } +static inline float lm_absf (float a ) { return a < 0.0f ? -a : a; } +static inline float lm_pmodf (float a, float b) { return (a < 0.0f ? 1.0f : 0.0f) + (float)fmod(a, b); } // positive mod + +typedef struct lm_ivec2 { int x, y; } lm_ivec2; +static inline lm_ivec2 lm_i2 (int x, int y) { lm_ivec2 v = { x, y }; return v; } + +typedef struct lm_vec2 { float x, y; } lm_vec2; +static inline lm_vec2 lm_v2i (int x, int y) { lm_vec2 v = { (float)x, (float)y }; return v; } +static inline lm_vec2 lm_v2 (float x, float y) { lm_vec2 v = { x, y }; return v; } +static inline lm_vec2 lm_negate2 (lm_vec2 a ) { return lm_v2(-a.x, -a.y); } +static inline lm_vec2 lm_add2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x + b.x, a.y + b.y); } +static inline lm_vec2 lm_sub2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x - b.x, a.y - b.y); } +static inline lm_vec2 lm_mul2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x * b.x, a.y * b.y); } +static inline lm_vec2 lm_scale2 (lm_vec2 a, float b) { return lm_v2(a.x * b, a.y * b); } +static inline lm_vec2 lm_div2 (lm_vec2 a, float b) { return lm_scale2(a, 1.0f / b); } +static inline lm_vec2 lm_pmod2 (lm_vec2 a, float b) { return lm_v2(lm_pmodf(a.x, b), lm_pmodf(a.y, b)); } +static inline lm_vec2 lm_min2 (lm_vec2 a, lm_vec2 b) { return lm_v2(lm_minf(a.x, b.x), lm_minf(a.y, b.y)); } +static inline lm_vec2 lm_max2 (lm_vec2 a, lm_vec2 b) { return lm_v2(lm_maxf(a.x, b.x), lm_maxf(a.y, b.y)); } +static inline lm_vec2 lm_abs2 (lm_vec2 a ) { return lm_v2(lm_absf(a.x), lm_absf(a.y)); } +static inline lm_vec2 lm_floor2 (lm_vec2 a ) { return lm_v2(floorf(a.x), floorf(a.y)); } +static inline lm_vec2 lm_ceil2 (lm_vec2 a ) { return lm_v2(ceilf (a.x), ceilf (a.y)); } +static inline float lm_dot2 (lm_vec2 a, lm_vec2 b) { return a.x * b.x + a.y * b.y; } +static inline float lm_cross2 (lm_vec2 a, lm_vec2 b) { return a.x * b.y - a.y * b.x; } // pseudo cross product +static inline float lm_length2sq (lm_vec2 a ) { return a.x * a.x + a.y * a.y; } +static inline float lm_length2 (lm_vec2 a ) { return sqrtf(lm_length2sq(a)); } +static inline lm_vec2 lm_normalize2(lm_vec2 a ) { return lm_div2(a, lm_length2(a)); } +static inline lm_bool lm_finite2 (lm_vec2 a ) { return lm_finite(a.x) && lm_finite(a.y); } + +typedef struct lm_vec3 { float x, y, z; } lm_vec3; +static inline lm_vec3 lm_v3 (float x, float y, float z) { lm_vec3 v = { x, y, z }; return v; } +static inline lm_vec3 lm_negate3 (lm_vec3 a ) { return lm_v3(-a.x, -a.y, -a.z); } +static inline lm_vec3 lm_add3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x + b.x, a.y + b.y, a.z + b.z); } +static inline lm_vec3 lm_sub3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x - b.x, a.y - b.y, a.z - b.z); } +static inline lm_vec3 lm_mul3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x * b.x, a.y * b.y, a.z * b.z); } +static inline lm_vec3 lm_scale3 (lm_vec3 a, float b) { return lm_v3(a.x * b, a.y * b, a.z * b); } +static inline lm_vec3 lm_div3 (lm_vec3 a, float b) { return lm_scale3(a, 1.0f / b); } +static inline lm_vec3 lm_pmod3 (lm_vec3 a, float b) { return lm_v3(lm_pmodf(a.x, b), lm_pmodf(a.y, b), lm_pmodf(a.z, b)); } +static inline lm_vec3 lm_min3 (lm_vec3 a, lm_vec3 b) { return lm_v3(lm_minf(a.x, b.x), lm_minf(a.y, b.y), lm_minf(a.z, b.z)); } +static inline lm_vec3 lm_max3 (lm_vec3 a, lm_vec3 b) { return lm_v3(lm_maxf(a.x, b.x), lm_maxf(a.y, b.y), lm_maxf(a.z, b.z)); } +static inline lm_vec3 lm_abs3 (lm_vec3 a ) { return lm_v3(lm_absf(a.x), lm_absf(a.y), lm_absf(a.z)); } +static inline lm_vec3 lm_floor3 (lm_vec3 a ) { return lm_v3(floorf(a.x), floorf(a.y), floorf(a.z)); } +static inline lm_vec3 lm_ceil3 (lm_vec3 a ) { return lm_v3(ceilf (a.x), ceilf (a.y), ceilf (a.z)); } +static inline float lm_dot3 (lm_vec3 a, lm_vec3 b) { return a.x * b.x + a.y * b.y + a.z * b.z; } +static inline lm_vec3 lm_cross3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.y * b.z - b.y * a.z, a.z * b.x - b.z * a.x, a.x * b.y - b.x * a.y); } +static inline float lm_length3sq (lm_vec3 a ) { return a.x * a.x + a.y * a.y + a.z * a.z; } +static inline float lm_length3 (lm_vec3 a ) { return sqrtf(lm_length3sq(a)); } +static inline lm_vec3 lm_normalize3(lm_vec3 a ) { return lm_div3(a, lm_length3(a)); } +static inline lm_bool lm_finite3 (lm_vec3 a ) { return lm_finite(a.x) && lm_finite(a.y) && lm_finite(a.z); } + +static lm_vec2 lm_toBarycentric(lm_vec2 p1, lm_vec2 p2, lm_vec2 p3, lm_vec2 p) +{ + // http://www.blackpawn.com/texts/pointinpoly/ + // Compute vectors + lm_vec2 v0 = lm_sub2(p3, p1); + lm_vec2 v1 = lm_sub2(p2, p1); + lm_vec2 v2 = lm_sub2(p, p1); + // Compute dot products + float dot00 = lm_dot2(v0, v0); + float dot01 = lm_dot2(v0, v1); + float dot02 = lm_dot2(v0, v2); + float dot11 = lm_dot2(v1, v1); + float dot12 = lm_dot2(v1, v2); + // Compute barycentric coordinates + float invDenom = 1.0f / (dot00 * dot11 - dot01 * dot01); + float u = (dot11 * dot02 - dot01 * dot12) * invDenom; + float v = (dot00 * dot12 - dot01 * dot02) * invDenom; + return lm_v2(u, v); +} + +static inline int lm_leftOf(lm_vec2 a, lm_vec2 b, lm_vec2 c) +{ + float x = lm_cross2(lm_sub2(b, a), lm_sub2(c, b)); + return x < 0 ? -1 : x > 0; +} + +static lm_bool lm_lineIntersection(lm_vec2 x0, lm_vec2 x1, lm_vec2 y0, lm_vec2 y1, lm_vec2* res) +{ + lm_vec2 dx = lm_sub2(x1, x0); + lm_vec2 dy = lm_sub2(y1, y0); + lm_vec2 d = lm_sub2(x0, y0); + float dyx = lm_cross2(dy, dx); + if (dyx == 0.0f) + return LM_FALSE; + dyx = lm_cross2(d, dx) / dyx; + if (dyx <= 0 || dyx >= 1) + return LM_FALSE; + res->x = y0.x + dyx * dy.x; + res->y = y0.y + dyx * dy.y; + return LM_TRUE; +} + +// this modifies the poly array! the poly array must be big enough to hold the result! +// res must be big enough to hold the result! +static int lm_convexClip(lm_vec2 *poly, int nPoly, const lm_vec2 *clip, int nClip, lm_vec2 *res) +{ + int nRes = nPoly; + int dir = lm_leftOf(clip[0], clip[1], clip[2]); + for (int i = 0, j = nClip - 1; i < nClip && nRes; j = i++) + { + if (i != 0) + for (nPoly = 0; nPoly < nRes; nPoly++) + poly[nPoly] = res[nPoly]; + nRes = 0; + lm_vec2 v0 = poly[nPoly - 1]; + int side0 = lm_leftOf(clip[j], clip[i], v0); + if (side0 != -dir) + res[nRes++] = v0; + for (int k = 0; k < nPoly; k++) + { + lm_vec2 v1 = poly[k], x; + int side1 = lm_leftOf(clip[j], clip[i], v1); + if (side0 + side1 == 0 && side0 && lm_lineIntersection(clip[j], clip[i], v0, v1, &x)) + res[nRes++] = x; + if (k == nPoly - 1) + break; + if (side1 != -dir) + res[nRes++] = v1; + v0 = v1; + side0 = side1; + } + } + + return nRes; +} + +struct lm_context +{ + struct + { + const float *modelMatrix; + float normalMatrix[9]; + + const unsigned char *positions; + lm_type positionsType; + int positionsStride; + const unsigned char *normals; + lm_type normalsType; + int normalsStride; + const unsigned char *uvs; + lm_type uvsType; + int uvsStride; + const unsigned char *indices; + lm_type indicesType; + unsigned int count; + } mesh; + + struct + { + int pass; + int passCount; + + struct + { + unsigned int baseIndex; + lm_vec3 p[3]; + lm_vec3 n[3]; + lm_vec2 uv[3]; + } triangle; + + struct + { + int minx, miny; + int maxx, maxy; + int x, y; + } rasterizer; + + struct + { + lm_vec3 position; + lm_vec3 direction; + lm_vec3 up; + } sample; + + struct + { + int side; + } hemisphere; + } meshPosition; + + struct + { + int width; + int height; + int channels; + float *data; + +#ifdef LM_DEBUG_INTERPOLATION + unsigned char *debug; +#endif + } lightmap; + + struct + { + unsigned int size; + float zNear, zFar; + float cameraToSurfaceDistanceModifier; + struct { float r, g, b; } clearColor; + + unsigned int fbHemiCountX; + unsigned int fbHemiCountY; + unsigned int fbHemiIndex; + lm_ivec2 *fbHemiToLightmapLocation; + GLuint fbTexture[2]; + GLuint fb[2]; + GLuint fbDepth; + GLuint vao; + struct + { + GLuint programID; + GLuint hemispheresTextureID; + GLuint weightsTextureID; + GLuint weightsTexture; + } firstPass; + struct + { + GLuint programID; + GLuint hemispheresTextureID; + } downsamplePass; + struct + { + GLuint texture; + lm_ivec2 writePosition; + lm_ivec2 *toLightmapLocation; + } storage; + } hemisphere; + + float interpolationThreshold; +}; + +// pass order of one 4x4 interpolation patch for two interpolation steps (and the next neighbors right of/below it) +// 0 4 1 4 0 +// 5 6 5 6 5 +// 2 4 3 4 2 +// 5 6 5 6 5 +// 0 4 1 4 0 + +static unsigned int lm_passStepSize(lm_context *ctx) +{ + unsigned int shift = ctx->meshPosition.passCount / 3 - (ctx->meshPosition.pass - 1) / 3; + unsigned int step = (1 << shift); + assert(step > 0); + return step; +} + +static unsigned int lm_passOffsetX(lm_context *ctx) +{ + if (!ctx->meshPosition.pass) + return 0; + int passType = (ctx->meshPosition.pass - 1) % 3; + unsigned int halfStep = lm_passStepSize(ctx) >> 1; + return passType != 1 ? halfStep : 0; +} + +static unsigned int lm_passOffsetY(lm_context *ctx) +{ + if (!ctx->meshPosition.pass) + return 0; + int passType = (ctx->meshPosition.pass - 1) % 3; + unsigned int halfStep = lm_passStepSize(ctx) >> 1; + return passType != 0 ? halfStep : 0; +} + +static lm_bool lm_hasConservativeTriangleRasterizerFinished(lm_context *ctx) +{ + return ctx->meshPosition.rasterizer.y >= ctx->meshPosition.rasterizer.maxy; +} + +static void lm_moveToNextPotentialConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + unsigned int step = lm_passStepSize(ctx); + ctx->meshPosition.rasterizer.x += step; + while (ctx->meshPosition.rasterizer.x >= ctx->meshPosition.rasterizer.maxx) + { + ctx->meshPosition.rasterizer.x = ctx->meshPosition.rasterizer.minx + lm_passOffsetX(ctx); + ctx->meshPosition.rasterizer.y += step; + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + break; + } +} + +static float *lm_getLightmapPixel(lm_context *ctx, int x, int y) +{ + assert(x >= 0 && x < ctx->lightmap.width && y >= 0 && y < ctx->lightmap.height); + return ctx->lightmap.data + (y * ctx->lightmap.width + x) * ctx->lightmap.channels; +} + +static void lm_setLightmapPixel(lm_context *ctx, int x, int y, float *in) +{ + assert(x >= 0 && x < ctx->lightmap.width && y >= 0 && y < ctx->lightmap.height); + float *p = ctx->lightmap.data + (y * ctx->lightmap.width + x) * ctx->lightmap.channels; + for (int j = 0; j < ctx->lightmap.channels; j++) + *p++ = *in++; +} + +#define lm_baseAngle 0.1f +static const float lm_baseAngles[3][3] = { + { lm_baseAngle, lm_baseAngle + 1.0f / 3.0f, lm_baseAngle + 2.0f / 3.0f }, + { lm_baseAngle + 1.0f / 3.0f, lm_baseAngle + 2.0f / 3.0f, lm_baseAngle }, + { lm_baseAngle + 2.0f / 3.0f, lm_baseAngle, lm_baseAngle + 1.0f / 3.0f } +}; + +static lm_bool lm_trySamplingConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + return LM_FALSE; + + // check if lightmap pixel was already set + float *pixelValue = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + for (int j = 0; j < ctx->lightmap.channels; j++) + if (pixelValue[j] != 0.0f) + return LM_FALSE; + + // try calculating centroid by clipping the pixel against the triangle + lm_vec2 pixel[16]; + pixel[0] = lm_v2i(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + pixel[1] = lm_v2i(ctx->meshPosition.rasterizer.x + 1, ctx->meshPosition.rasterizer.y); + pixel[2] = lm_v2i(ctx->meshPosition.rasterizer.x + 1, ctx->meshPosition.rasterizer.y + 1); + pixel[3] = lm_v2i(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y + 1); + + lm_vec2 res[16]; + int nRes = lm_convexClip(pixel, 4, ctx->meshPosition.triangle.uv, 3, res); + if (nRes == 0) + return LM_FALSE; // nothing left + + // calculate centroid position and area + lm_vec2 centroid = res[0]; + float area = res[nRes - 1].x * res[0].y - res[nRes - 1].y * res[0].x; + for (int i = 1; i < nRes; i++) + { + centroid = lm_add2(centroid, res[i]); + area += res[i - 1].x * res[i].y - res[i - 1].y * res[i].x; + } + centroid = lm_div2(centroid, (float)nRes); + area = lm_absf(area / 2.0f); + + if (area <= 0.0f) + return LM_FALSE; // no area left + + // calculate barycentric coords + lm_vec2 uv = lm_toBarycentric( + ctx->meshPosition.triangle.uv[0], + ctx->meshPosition.triangle.uv[1], + ctx->meshPosition.triangle.uv[2], + centroid); + + if (!lm_finite2(uv)) + return LM_FALSE; // degenerate + + // try to interpolate color from neighbors: + if (ctx->meshPosition.pass > 0) + { + float *neighbors[4]; + int neighborCount = 0; + int neighborsExpected = 0; + int d = (int)lm_passStepSize(ctx) / 2; + int dirs = ((ctx->meshPosition.pass - 1) % 3) + 1; + if (dirs & 1) // check x-neighbors with distance d + { + neighborsExpected += 2; + if (ctx->meshPosition.rasterizer.x - d >= ctx->meshPosition.rasterizer.minx && + ctx->meshPosition.rasterizer.x + d <= ctx->meshPosition.rasterizer.maxx) + { + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x - d, ctx->meshPosition.rasterizer.y); + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x + d, ctx->meshPosition.rasterizer.y); + } + } + if (dirs & 2) // check y-neighbors with distance d + { + neighborsExpected += 2; + if (ctx->meshPosition.rasterizer.y - d >= ctx->meshPosition.rasterizer.miny && + ctx->meshPosition.rasterizer.y + d <= ctx->meshPosition.rasterizer.maxy) + { + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y - d); + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y + d); + } + } + if (neighborCount == neighborsExpected) // are all interpolation neighbors available? + { + // calculate average neighbor pixel value + float avg[4] = { 0 }; + for (int i = 0; i < neighborCount; i++) + for (int j = 0; j < ctx->lightmap.channels; j++) + avg[j] += neighbors[i][j]; + float ni = 1.0f / neighborCount; + for (int j = 0; j < ctx->lightmap.channels; j++) + avg[j] *= ni; + + // check if error from average pixel to neighbors is above the interpolation threshold + lm_bool interpolate = LM_TRUE; + for (int i = 0; i < neighborCount; i++) + { + lm_bool zero = LM_TRUE; + for (int j = 0; j < ctx->lightmap.channels; j++) + { + if (neighbors[i][j] != 0.0f) + zero = LM_FALSE; + if (fabs(neighbors[i][j] - avg[j]) > ctx->interpolationThreshold) + interpolate = LM_FALSE; + } + if (zero) + interpolate = LM_FALSE; + if (!interpolate) + break; + } + + // set interpolated value and return if interpolation is acceptable + if (interpolate) + { + lm_setLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y, avg); +#ifdef LM_DEBUG_INTERPOLATION + // set interpolated pixel to green in debug output + ctx->lightmap.debug[(ctx->meshPosition.rasterizer.y * ctx->lightmap.width + ctx->meshPosition.rasterizer.x) * 3 + 1] = 255; +#endif + return LM_FALSE; + } + } + } + + // could not interpolate. must render a hemisphere. + // calculate 3D sample position and orientation + lm_vec3 p0 = ctx->meshPosition.triangle.p[0]; + lm_vec3 p1 = ctx->meshPosition.triangle.p[1]; + lm_vec3 p2 = ctx->meshPosition.triangle.p[2]; + lm_vec3 v1 = lm_sub3(p1, p0); + lm_vec3 v2 = lm_sub3(p2, p0); + ctx->meshPosition.sample.position = lm_add3(p0, lm_add3(lm_scale3(v2, uv.x), lm_scale3(v1, uv.y))); + + lm_vec3 n0 = ctx->meshPosition.triangle.n[0]; + lm_vec3 n1 = ctx->meshPosition.triangle.n[1]; + lm_vec3 n2 = ctx->meshPosition.triangle.n[2]; + lm_vec3 nv1 = lm_sub3(n1, n0); + lm_vec3 nv2 = lm_sub3(n2, n0); + ctx->meshPosition.sample.direction = lm_normalize3(lm_add3(n0, lm_add3(lm_scale3(nv2, uv.x), lm_scale3(nv1, uv.y)))); + ctx->meshPosition.sample.direction = lm_normalize3(ctx->meshPosition.sample.direction); + float cameraToSurfaceDistance = (1.0f + ctx->hemisphere.cameraToSurfaceDistanceModifier) * ctx->hemisphere.zNear * sqrtf(2.0f); + ctx->meshPosition.sample.position = lm_add3(ctx->meshPosition.sample.position, lm_scale3(ctx->meshPosition.sample.direction, cameraToSurfaceDistance)); + + if (!lm_finite3(ctx->meshPosition.sample.position) || + !lm_finite3(ctx->meshPosition.sample.direction) || + lm_length3sq(ctx->meshPosition.sample.direction) < 0.5f) // don't allow 0.0f. should always be ~1.0f + return LM_FALSE; + + lm_vec3 up = lm_v3(0.0f, 1.0f, 0.0f); + if (lm_absf(lm_dot3(up, ctx->meshPosition.sample.direction)) > 0.8f) + up = lm_v3(0.0f, 0.0f, 1.0f); + +#if 0 + // triangle-consistent up vector + ctx->meshPosition.sample.up = lm_normalize3(lm_cross3(up, ctx->meshPosition.sample.direction)); + return LM_TRUE; +#else + // "randomized" rotation with pattern + lm_vec3 side = lm_normalize3(lm_cross3(up, ctx->meshPosition.sample.direction)); + up = lm_normalize3(lm_cross3(side, ctx->meshPosition.sample.direction)); + int rx = ctx->meshPosition.rasterizer.x % 3; + int ry = ctx->meshPosition.rasterizer.y % 3; + static const float lm_pi = 3.14159265358979f; + float phi = 2.0f * lm_pi * lm_baseAngles[ry][rx] + 0.1f * ((float)rand() / (float)RAND_MAX); + ctx->meshPosition.sample.up = lm_normalize3(lm_add3(lm_scale3(side, cosf(phi)), lm_scale3(up, sinf(phi)))); + return LM_TRUE; +#endif +} + +// returns true if a sampling position was found and +// false if we finished rasterizing the current triangle +static lm_bool lm_findFirstConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + while (!lm_trySamplingConservativeTriangleRasterizerPosition(ctx)) + { + lm_moveToNextPotentialConservativeTriangleRasterizerPosition(ctx); + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + return LM_FALSE; + } + return LM_TRUE; +} + +static lm_bool lm_findNextConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + lm_moveToNextPotentialConservativeTriangleRasterizerPosition(ctx); + return lm_findFirstConservativeTriangleRasterizerPosition(ctx); +} + +static void lm_integrateHemisphereBatch(lm_context *ctx) +{ + if (!ctx->hemisphere.fbHemiIndex) + return; // nothing to do + + glDisable(GL_DEPTH_TEST); + glBindVertexArray(ctx->hemisphere.vao); + + int fbRead = 0; + int fbWrite = 1; + + // weighted downsampling pass + int outHemiSize = ctx->hemisphere.size / 2; + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbWrite], 0); + glViewport(0, 0, outHemiSize * ctx->hemisphere.fbHemiCountX, outHemiSize * ctx->hemisphere.fbHemiCountY); + glUseProgram(ctx->hemisphere.firstPass.programID); + glUniform1i(ctx->hemisphere.firstPass.hemispheresTextureID, 0); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbRead]); + glUniform1i(ctx->hemisphere.firstPass.weightsTextureID, 1); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.firstPass.weightsTexture); + glActiveTexture(GL_TEXTURE0); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + //glBindTexture(GL_TEXTURE_2D, 0); + +#if 0 + // debug output + int w = outHemiSize * ctx->hemisphere.fbHemiCountX, h = outHemiSize * ctx->hemisphere.fbHemiCountY; + glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glReadBuffer(GL_COLOR_ATTACHMENT0); + float *image = new float[3 * w * h]; + glReadPixels(0, 0, w, h, GL_RGB, GL_FLOAT, image); + lmImageSaveTGAf("firstpass.png", image, w, h, 3); + delete[] image; +#endif + + // downsampling passes + glUseProgram(ctx->hemisphere.downsamplePass.programID); + glUniform1i(ctx->hemisphere.downsamplePass.hemispheresTextureID, 0); + while (outHemiSize > 1) + { + LM_SWAP(int, fbRead, fbWrite); + outHemiSize /= 2; + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glViewport(0, 0, outHemiSize * ctx->hemisphere.fbHemiCountX, outHemiSize * ctx->hemisphere.fbHemiCountY); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbRead]); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + //glBindTexture(GL_TEXTURE_2D, 0); + } + + // copy results to storage texture + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glCopyTexSubImage2D(GL_TEXTURE_2D, 0, + ctx->hemisphere.storage.writePosition.x, ctx->hemisphere.storage.writePosition.y, + 0, 0, ctx->hemisphere.fbHemiCountX, ctx->hemisphere.fbHemiCountY); + glBindTexture(GL_TEXTURE_2D, 0); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindVertexArray(0); + glEnable(GL_DEPTH_TEST); + + // copy position mapping to storage + for (unsigned int y = 0; y < ctx->hemisphere.fbHemiCountY; y++) + { + int sy = ctx->hemisphere.storage.writePosition.y + y; + for (unsigned int x = 0; x < ctx->hemisphere.fbHemiCountX; x++) + { + int sx = ctx->hemisphere.storage.writePosition.x + x; + unsigned int hemiIndex = y * ctx->hemisphere.fbHemiCountX + x; + if (hemiIndex >= ctx->hemisphere.fbHemiIndex) + ctx->hemisphere.storage.toLightmapLocation[sy * ctx->lightmap.width + sx] = lm_i2(-1, -1); + else + ctx->hemisphere.storage.toLightmapLocation[sy * ctx->lightmap.width + sx] = ctx->hemisphere.fbHemiToLightmapLocation[hemiIndex]; + } + } + + // advance storage texture write position + ctx->hemisphere.storage.writePosition.x += ctx->hemisphere.fbHemiCountX; + if (ctx->hemisphere.storage.writePosition.x + (int)ctx->hemisphere.fbHemiCountX > ctx->lightmap.width) + { + ctx->hemisphere.storage.writePosition.x = 0; + ctx->hemisphere.storage.writePosition.y += ctx->hemisphere.fbHemiCountY; + assert(ctx->hemisphere.storage.writePosition.y + (int)ctx->hemisphere.fbHemiCountY < ctx->lightmap.height); + } + + ctx->hemisphere.fbHemiIndex = 0; +} + +static void lm_writeResultsToLightmap(lm_context *ctx) +{ + // do the GPU->CPU transfer of downsampled hemispheres + float *hemi = (float*)LM_CALLOC(ctx->lightmap.width * ctx->lightmap.height, 4 * sizeof(float)); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_FLOAT, hemi); + + // write results to lightmap texture + for (int y = 0; y < ctx->hemisphere.storage.writePosition.y + (int)ctx->hemisphere.fbHemiCountY; y++) + { + for (int x = 0; x < ctx->lightmap.width; x++) + { + lm_ivec2 lmUV = ctx->hemisphere.storage.toLightmapLocation[y * ctx->lightmap.width + x]; + if (lmUV.x >= 0) + { + float *c = hemi + (y * ctx->lightmap.width + x) * 4; + float validity = c[3]; + float *lm = ctx->lightmap.data + (lmUV.y * ctx->lightmap.width + lmUV.x) * ctx->lightmap.channels; + if (!lm[0] && validity > 0.9) + { + float scale = 1.0f / validity; + switch (ctx->lightmap.channels) + { + case 1: + lm[0] = lm_maxf((c[0] + c[1] + c[2]) * scale / 3.0f, FLT_MIN); + break; + case 2: + lm[0] = lm_maxf((c[0] + c[1] + c[2]) * scale / 3.0f, FLT_MIN); + lm[1] = 1.0f; // do we want to support this format? + break; + case 3: + lm[0] = lm_maxf(c[0] * scale, FLT_MIN); + lm[1] = lm_maxf(c[1] * scale, FLT_MIN); + lm[2] = lm_maxf(c[2] * scale, FLT_MIN); + break; + case 4: + lm[0] = lm_maxf(c[0] * scale, FLT_MIN); + lm[1] = lm_maxf(c[1] * scale, FLT_MIN); + lm[2] = lm_maxf(c[2] * scale, FLT_MIN); + lm[3] = 1.0f; + break; + default: + assert(LM_FALSE); + break; + } + +#ifdef LM_DEBUG_INTERPOLATION + // set sampled pixel to red in debug output + ctx->lightmap.debug[(lmUV.y * ctx->lightmap.width + lmUV.x) * 3 + 0] = 255; +#endif + } + } + ctx->hemisphere.storage.toLightmapLocation[y * ctx->lightmap.width + x].x = -1; // reset + } + } + + LM_FREE(hemi); + ctx->hemisphere.storage.writePosition = lm_i2(0, 0); +} + +static void lm_setView( + int* viewport, int x, int y, int w, int h, + float* view, lm_vec3 pos, lm_vec3 dir, lm_vec3 up, + float* proj, float l, float r, float b, float t, float n, float f) +{ + // viewport + viewport[0] = x; viewport[1] = y; viewport[2] = w; viewport[3] = h; + + // view matrix: lookAt(pos, pos + dir, up) + lm_vec3 side = lm_cross3(dir, up); + //up = cross(side, dir); + dir = lm_negate3(dir); pos = lm_negate3(pos); + view[ 0] = side.x; view[ 1] = up.x; view[ 2] = dir.x; view[ 3] = 0.0f; + view[ 4] = side.y; view[ 5] = up.y; view[ 6] = dir.y; view[ 7] = 0.0f; + view[ 8] = side.z; view[ 9] = up.z; view[10] = dir.z; view[11] = 0.0f; + view[12] = lm_dot3(side, pos); view[13] = lm_dot3(up, pos); view[14] = lm_dot3(dir, pos); view[15] = 1.0f; + + // projection matrix: frustum(l, r, b, t, n, f) + float ilr = 1.0f / (r - l), ibt = 1.0f / (t - b), ninf = -1.0f / (f - n), n2 = 2.0f * n; + proj[ 0] = n2 * ilr; proj[ 1] = 0.0f; proj[ 2] = 0.0f; proj[ 3] = 0.0f; + proj[ 4] = 0.0f; proj[ 5] = n2 * ibt; proj[ 6] = 0.0f; proj[ 7] = 0.0f; + proj[ 8] = (r + l) * ilr; proj[ 9] = (t + b) * ibt; proj[10] = (f + n) * ninf; proj[11] = -1.0f; + proj[12] = 0.0f; proj[13] = 0.0f; proj[14] = f * n2 * ninf; proj[15] = 0.0f; +} + +// returns true if a hemisphere side was prepared for rendering and +// false if we finished the current hemisphere +static lm_bool lm_beginSampleHemisphere(lm_context *ctx, int* viewport, float* view, float* proj) +{ + if (ctx->meshPosition.hemisphere.side >= 5) + return LM_FALSE; + + if (ctx->meshPosition.hemisphere.side == 0) + { + // prepare hemisphere + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[0]); + if (ctx->hemisphere.fbHemiIndex == 0) + { + // prepare hemisphere batch + glClearColor( // clear to valid background pixels! + ctx->hemisphere.clearColor.r, + ctx->hemisphere.clearColor.g, + ctx->hemisphere.clearColor.b, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + } + ctx->hemisphere.fbHemiToLightmapLocation[ctx->hemisphere.fbHemiIndex] = + lm_i2(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + } + + // find the target position in the batch + int x = (ctx->hemisphere.fbHemiIndex % ctx->hemisphere.fbHemiCountX) * ctx->hemisphere.size * 3; + int y = (ctx->hemisphere.fbHemiIndex / ctx->hemisphere.fbHemiCountX) * ctx->hemisphere.size; + + int size = ctx->hemisphere.size; + float zNear = ctx->hemisphere.zNear; + float zFar = ctx->hemisphere.zFar; + + lm_vec3 pos = ctx->meshPosition.sample.position; + lm_vec3 dir = ctx->meshPosition.sample.direction; + lm_vec3 up = ctx->meshPosition.sample.up; + lm_vec3 right = lm_cross3(dir, up); + + // find the view parameters of the hemisphere side that we will render next + // hemisphere layout in the framebuffer: + // +-------+---+---+-------+ + // | | | | D | + // | C | R | L +-------+ + // | | | | U | + // +-------+---+---+-------+ + switch (ctx->meshPosition.hemisphere.side) + { + case 0: // center + lm_setView(viewport, x, y, size, size, + view, pos, dir, up, + proj, -zNear, zNear, -zNear, zNear, zNear, zFar); + break; + case 1: // right + lm_setView(viewport, size + x, y, size / 2, size, + view, pos, right, up, + proj, -zNear, 0.0f, -zNear, zNear, zNear, zFar); + break; + case 2: // left + lm_setView(viewport, size + x + size / 2, y, size / 2, size, + view, pos, lm_negate3(right), up, + proj, 0.0f, zNear, -zNear, zNear, zNear, zFar); + break; + case 3: // down + lm_setView(viewport, 2 * size + x, y + size / 2, size, size / 2, + view, pos, lm_negate3(up), dir, + proj, -zNear, zNear, 0.0f, zNear, zNear, zFar); + break; + case 4: // up + lm_setView(viewport, 2 * size + x, y, size, size / 2, + view, pos, up, lm_negate3(dir), + proj, -zNear, zNear, -zNear, 0.0f, zNear, zFar); + break; + default: + assert(LM_FALSE); + break; + } + + return LM_TRUE; +} + +static void lm_endSampleHemisphere(lm_context *ctx) +{ + if (++ctx->meshPosition.hemisphere.side == 5) + { + // finish hemisphere + glBindFramebuffer(GL_FRAMEBUFFER, 0); + if (++ctx->hemisphere.fbHemiIndex == ctx->hemisphere.fbHemiCountX * ctx->hemisphere.fbHemiCountY) + { + // downsample new hemisphere batch and store the results + lm_integrateHemisphereBatch(ctx); + } + } +} + +static void lm_inverseTranspose(const float *m44, float *n33) +{ + if (!m44) + { + n33[0] = 1.0f; n33[1] = 0.0f; n33[2] = 0.0f; + n33[3] = 0.0f; n33[4] = 1.0f; n33[5] = 0.0f; + n33[6] = 0.0f; n33[7] = 0.0f; n33[8] = 1.0f; + return; + } + + float determinant = m44[ 0] * (m44[ 5] * m44[10] - m44[ 9] * m44[ 6]) + - m44[ 1] * (m44[ 4] * m44[10] - m44[ 6] * m44[ 8]) + + m44[ 2] * (m44[ 4] * m44[ 9] - m44[ 5] * m44[ 8]); + + assert(fabs(determinant) > FLT_EPSILON); + float rcpDeterminant = 1.0f / determinant; + + n33[0] = (m44[ 5] * m44[10] - m44[ 9] * m44[ 6]) * rcpDeterminant; + n33[3] = -(m44[ 1] * m44[10] - m44[ 2] * m44[ 9]) * rcpDeterminant; + n33[6] = (m44[ 1] * m44[ 6] - m44[ 2] * m44[ 5]) * rcpDeterminant; + n33[1] = -(m44[ 4] * m44[10] - m44[ 6] * m44[ 8]) * rcpDeterminant; + n33[4] = (m44[ 0] * m44[10] - m44[ 2] * m44[ 8]) * rcpDeterminant; + n33[7] = -(m44[ 0] * m44[ 6] - m44[ 4] * m44[ 2]) * rcpDeterminant; + n33[2] = (m44[ 4] * m44[ 9] - m44[ 8] * m44[ 5]) * rcpDeterminant; + n33[5] = -(m44[ 0] * m44[ 9] - m44[ 8] * m44[ 1]) * rcpDeterminant; + n33[8] = (m44[ 0] * m44[ 5] - m44[ 4] * m44[ 1]) * rcpDeterminant; +} + +static lm_vec3 lm_transformNormal(const float *m, lm_vec3 n) +{ + lm_vec3 r; + r.x = m[0] * n.x + m[3] * n.y + m[6] * n.z; + r.y = m[1] * n.x + m[4] * n.y + m[7] * n.z; + r.z = m[2] * n.x + m[5] * n.y + m[8] * n.z; + return r; +} + +static lm_vec3 lm_transformPosition(const float *m, lm_vec3 v) +{ + if (!m) + return v; + lm_vec3 r; + r.x = m[0] * v.x + m[4] * v.y + m[ 8] * v.z + m[12]; + r.y = m[1] * v.x + m[5] * v.y + m[ 9] * v.z + m[13]; + r.z = m[2] * v.x + m[6] * v.y + m[10] * v.z + m[14]; + float d = m[3] * v.x + m[7] * v.y + m[11] * v.z + m[15]; + assert(lm_absf(d - 1.0f) < 0.00001f); // could divide by d, but this shouldn't be a projection transform! + return r; +} + +static void lm_setMeshPosition(lm_context *ctx, unsigned int indicesTriangleBaseIndex) +{ + // fetch triangle at the specified indicesTriangleBaseIndex + ctx->meshPosition.triangle.baseIndex = indicesTriangleBaseIndex; + + // load and transform triangle to process next + lm_vec2 uvMin = lm_v2(FLT_MAX, FLT_MAX), uvMax = lm_v2(-FLT_MAX, -FLT_MAX); + lm_vec2 uvScale = lm_v2i(ctx->lightmap.width, ctx->lightmap.height); + unsigned int vIndices[3]; + for (int i = 0; i < 3; i++) + { + // decode index + unsigned int vIndex; + switch (ctx->mesh.indicesType) + { + case LM_NONE: + vIndex = ctx->meshPosition.triangle.baseIndex + i; + break; + case LM_UNSIGNED_BYTE: + vIndex = ((const unsigned char*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + case LM_UNSIGNED_SHORT: + vIndex = ((const unsigned short*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + case LM_UNSIGNED_INT: + vIndex = ((const unsigned int*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + default: + assert(LM_FALSE); + break; + } + vIndices[i] = vIndex; + + // decode and pre-transform vertex position + const void *pPtr = ctx->mesh.positions + vIndex * ctx->mesh.positionsStride; + lm_vec3 p; + switch (ctx->mesh.positionsType) + { + // TODO: signed formats + case LM_UNSIGNED_BYTE: { + const unsigned char *uc = (const unsigned char*)pPtr; + p = lm_v3(uc[0], uc[1], uc[2]); + } break; + case LM_UNSIGNED_SHORT: { + const unsigned short *us = (const unsigned short*)pPtr; + p = lm_v3(us[0], us[1], us[2]); + } break; + case LM_UNSIGNED_INT: { + const unsigned int *ui = (const unsigned int*)pPtr; + p = lm_v3((float)ui[0], (float)ui[1], (float)ui[2]); + } break; + case LM_FLOAT: { + p = *(const lm_vec3*)pPtr; + } break; + default: { + assert(LM_FALSE); + } break; + } + ctx->meshPosition.triangle.p[i] = lm_transformPosition(ctx->mesh.modelMatrix, p); + + // decode and scale (to lightmap resolution) vertex lightmap texture coords + const void *uvPtr = ctx->mesh.uvs + vIndex * ctx->mesh.uvsStride; + lm_vec2 uv; + switch (ctx->mesh.uvsType) + { + case LM_UNSIGNED_BYTE: { + const unsigned char *uc = (const unsigned char*)uvPtr; + uv = lm_v2(uc[0] / (float)UCHAR_MAX, uc[1] / (float)UCHAR_MAX); + } break; + case LM_UNSIGNED_SHORT: { + const unsigned short *us = (const unsigned short*)uvPtr; + uv = lm_v2(us[0] / (float)USHRT_MAX, us[1] / (float)USHRT_MAX); + } break; + case LM_UNSIGNED_INT: { + const unsigned int *ui = (const unsigned int*)uvPtr; + uv = lm_v2(ui[0] / (float)UINT_MAX, ui[1] / (float)UINT_MAX); + } break; + case LM_FLOAT: { + uv = *(const lm_vec2*)uvPtr; + } break; + default: { + assert(LM_FALSE); + } break; + } + + ctx->meshPosition.triangle.uv[i] = lm_mul2(lm_pmod2(uv, 1.0f), uvScale); // maybe clamp to 0.0-1.0 instead of pmod? + + // update bounds on lightmap + uvMin = lm_min2(uvMin, ctx->meshPosition.triangle.uv[i]); + uvMax = lm_max2(uvMax, ctx->meshPosition.triangle.uv[i]); + } + + lm_vec3 flatNormal = lm_cross3( + lm_sub3(ctx->meshPosition.triangle.p[1], ctx->meshPosition.triangle.p[0]), + lm_sub3(ctx->meshPosition.triangle.p[2], ctx->meshPosition.triangle.p[0])); + + for (int i = 0; i < 3; i++) + { + // decode and pre-transform vertex normal + const void *nPtr = ctx->mesh.normals + vIndices[i] * ctx->mesh.normalsStride; + lm_vec3 n; + switch (ctx->mesh.normalsType) + { + // TODO: signed formats + case LM_FLOAT: { + n = *(const lm_vec3*)nPtr; + } break; + case LM_NONE: { + n = flatNormal; + } break; + default: { + assert(LM_FALSE); + } break; + } + ctx->meshPosition.triangle.n[i] = lm_normalize3(lm_transformNormal(ctx->mesh.normalMatrix, n)); + } + + // calculate area of interest (on lightmap) for conservative rasterization + lm_vec2 bbMin = lm_floor2(uvMin); + lm_vec2 bbMax = lm_ceil2 (uvMax); + ctx->meshPosition.rasterizer.minx = lm_maxi((int)bbMin.x - 1, 0); + ctx->meshPosition.rasterizer.miny = lm_maxi((int)bbMin.y - 1, 0); + ctx->meshPosition.rasterizer.maxx = lm_mini((int)bbMax.x + 1, ctx->lightmap.width - 1); + ctx->meshPosition.rasterizer.maxy = lm_mini((int)bbMax.y + 1, ctx->lightmap.height - 1); + assert(ctx->meshPosition.rasterizer.minx <= ctx->meshPosition.rasterizer.maxx && + ctx->meshPosition.rasterizer.miny <= ctx->meshPosition.rasterizer.maxy); + ctx->meshPosition.rasterizer.x = ctx->meshPosition.rasterizer.minx + lm_passOffsetX(ctx); + ctx->meshPosition.rasterizer.y = ctx->meshPosition.rasterizer.miny + lm_passOffsetY(ctx); + + // try moving to first valid sample position + if (ctx->meshPosition.rasterizer.x <= ctx->meshPosition.rasterizer.maxx && + ctx->meshPosition.rasterizer.y <= ctx->meshPosition.rasterizer.maxy && + lm_findFirstConservativeTriangleRasterizerPosition(ctx)) + ctx->meshPosition.hemisphere.side = 0; // we can start sampling the hemisphere + else + ctx->meshPosition.hemisphere.side = 5; // no samples on this triangle! put hemisphere sampler into finished state +} + +static GLuint lm_LoadShader(GLenum type, const char *source) +{ + GLuint shader = glCreateShader(type); + if (shader == 0) + { + fprintf(stderr, "Could not create shader!\n"); + return 0; + } + glShaderSource(shader, 1, &source, NULL); + glCompileShader(shader); + GLint compiled; + glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); + if (!compiled) + { + fprintf(stderr, "Could not compile shader!\n"); + GLint infoLen = 0; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); + if (infoLen) + { + char* infoLog = (char*)malloc(infoLen); + glGetShaderInfoLog(shader, infoLen, NULL, infoLog); + fprintf(stderr, "%s\n", infoLog); + free(infoLog); + } + glDeleteShader(shader); + return 0; + } + return shader; +} + +static GLuint lm_LoadProgram(const char *vp, const char *fp) +{ + GLuint program = glCreateProgram(); + if (program == 0) + { + fprintf(stderr, "Could not create program!\n"); + return 0; + } + GLuint vertexShader = lm_LoadShader(GL_VERTEX_SHADER, vp); + GLuint fragmentShader = lm_LoadShader(GL_FRAGMENT_SHADER, fp); + glAttachShader(program, vertexShader); + glAttachShader(program, fragmentShader); + glLinkProgram(program); + glDeleteShader(vertexShader); + glDeleteShader(fragmentShader); + GLint linked; + glGetProgramiv(program, GL_LINK_STATUS, &linked); + if (!linked) + { + fprintf(stderr, "Could not link program!\n"); + GLint infoLen = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &infoLen); + if (infoLen) + { + char* infoLog = (char*)malloc(sizeof(char) * infoLen); + glGetProgramInfoLog(program, infoLen, NULL, infoLog); + fprintf(stderr, "%s\n", infoLog); + free(infoLog); + } + glDeleteProgram(program); + return 0; + } + return program; +} + +static float lm_defaultWeights(float cos_theta, void *userdata) +{ + return 1.0f; +} + +lm_context *lmCreate(int hemisphereSize, float zNear, float zFar, + float clearR, float clearG, float clearB, + int interpolationPasses, float interpolationThreshold, + float cameraToSurfaceDistanceModifier) +{ + assert(hemisphereSize == 512 || hemisphereSize == 256 || hemisphereSize == 128 || + hemisphereSize == 64 || hemisphereSize == 32 || hemisphereSize == 16); + assert(zNear < zFar && zNear > 0.0f); + assert(cameraToSurfaceDistanceModifier >= -1.0f); + assert(interpolationPasses >= 0 && interpolationPasses <= 8); + assert(interpolationThreshold >= 0.0f); + + lm_context *ctx = (lm_context*)LM_CALLOC(1, sizeof(lm_context)); + + ctx->meshPosition.passCount = 1 + 3 * interpolationPasses; + ctx->interpolationThreshold = interpolationThreshold; + ctx->hemisphere.size = hemisphereSize; + ctx->hemisphere.zNear = zNear; + ctx->hemisphere.zFar = zFar; + ctx->hemisphere.cameraToSurfaceDistanceModifier = cameraToSurfaceDistanceModifier; + ctx->hemisphere.clearColor.r = clearR; + ctx->hemisphere.clearColor.g = clearG; + ctx->hemisphere.clearColor.b = clearB; + + // calculate hemisphere batch size + ctx->hemisphere.fbHemiCountX = 1536 / (3 * ctx->hemisphere.size); + ctx->hemisphere.fbHemiCountY = 512 / ctx->hemisphere.size; + + // hemisphere batch framebuffers + unsigned int w[] = { + ctx->hemisphere.fbHemiCountX * ctx->hemisphere.size * 3, + ctx->hemisphere.fbHemiCountX * ctx->hemisphere.size / 2 }; + unsigned int h[] = { + ctx->hemisphere.fbHemiCountY * ctx->hemisphere.size, + ctx->hemisphere.fbHemiCountY * ctx->hemisphere.size / 2 }; + + glGenTextures(2, ctx->hemisphere.fbTexture); + glGenFramebuffers(2, ctx->hemisphere.fb); + glGenRenderbuffers(1, &ctx->hemisphere.fbDepth); + + glBindRenderbuffer(GL_RENDERBUFFER, ctx->hemisphere.fbDepth); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, w[0], h[0]); + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[0]); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, ctx->hemisphere.fbDepth); + for (int i = 0; i < 2; i++) + { + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[i]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, w[i], h[i], 0, GL_RGBA, GL_FLOAT, 0); + + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[i]); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, ctx->hemisphere.fbTexture[i], 0); + GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + if (status != GL_FRAMEBUFFER_COMPLETE) + { + fprintf(stderr, "Could not create framebuffer!\n"); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + } + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + // dummy vao for fullscreen quad rendering + glGenVertexArrays(1, &ctx->hemisphere.vao); + + // hemisphere shader (weighted downsampling of the 3x1 hemisphere layout to a 0.5x0.5 square) + { + const char *vs = + "#version 150 core\n" + "const vec2 ps[4] = vec2[](vec2(1, -1), vec2(1, 1), vec2(-1, -1), vec2(-1, 1));\n" + "void main()\n" + "{\n" + "gl_Position = vec4(ps[gl_VertexID], 0, 1);\n" + "}\n"; + const char *fs = + "#version 150 core\n" + "uniform sampler2D hemispheres;\n" + "uniform sampler2D weights;\n" + + "layout(pixel_center_integer) in vec4 gl_FragCoord;\n" // whole integer values represent pixel centers, GL_ARB_fragment_coord_conventions + + "out vec4 outColor;\n" + + "vec4 weightedSample(ivec2 h_uv, ivec2 w_uv, ivec2 quadrant)\n" + "{\n" + "vec4 sample = texelFetch(hemispheres, h_uv + quadrant, 0);\n" + "vec2 weight = texelFetch(weights, w_uv + quadrant, 0).rg;\n" + "return vec4(sample.rgb * weight.r, sample.a * weight.g);\n" + "}\n" + + "vec4 threeWeightedSamples(ivec2 h_uv, ivec2 w_uv, ivec2 offset)\n" + "{\n" // horizontal triple sum + "vec4 sum = weightedSample(h_uv, w_uv, offset);\n" + "sum += weightedSample(h_uv, w_uv, offset + ivec2(2, 0));\n" + "sum += weightedSample(h_uv, w_uv, offset + ivec2(4, 0));\n" + "return sum;\n" + "}\n" + + "void main()\n" + "{\n" // this is a weighted sum downsampling pass (alpha component contains the weighted valid sample count) + "vec2 in_uv = gl_FragCoord.xy * vec2(6.0, 2.0) + vec2(0.5);\n" + "ivec2 h_uv = ivec2(in_uv);\n" + "ivec2 w_uv = ivec2(mod(in_uv, vec2(textureSize(weights, 0))));\n" // there's no integer modulo :( + "vec4 lb = threeWeightedSamples(h_uv, w_uv, ivec2(0, 0));\n" + "vec4 rb = threeWeightedSamples(h_uv, w_uv, ivec2(1, 0));\n" + "vec4 lt = threeWeightedSamples(h_uv, w_uv, ivec2(0, 1));\n" + "vec4 rt = threeWeightedSamples(h_uv, w_uv, ivec2(1, 1));\n" + "outColor = lb + rb + lt + rt;\n" + "}\n"; + ctx->hemisphere.firstPass.programID = lm_LoadProgram(vs, fs); + if (!ctx->hemisphere.firstPass.programID) + { + fprintf(stderr, "Error loading the hemisphere first pass shader program... leaving!\n"); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + ctx->hemisphere.firstPass.hemispheresTextureID = glGetUniformLocation(ctx->hemisphere.firstPass.programID, "hemispheres"); + ctx->hemisphere.firstPass.weightsTextureID = glGetUniformLocation(ctx->hemisphere.firstPass.programID, "weights"); + } + + // downsample shader + { + const char *vs = + "#version 150 core\n" + "const vec2 ps[4] = vec2[](vec2(1, -1), vec2(1, 1), vec2(-1, -1), vec2(-1, 1));\n" + "void main()\n" + "{\n" + "gl_Position = vec4(ps[gl_VertexID], 0, 1);\n" + "}\n"; + const char *fs = + "#version 150 core\n" + "uniform sampler2D hemispheres;\n" + + "layout(pixel_center_integer) in vec4 gl_FragCoord;\n" // whole integer values represent pixel centers, GL_ARB_fragment_coord_conventions + + "out vec4 outColor;\n" + + "void main()\n" + "{\n" // this is a sum downsampling pass (alpha component contains the weighted valid sample count) + "ivec2 h_uv = ivec2(gl_FragCoord.xy) * 2;\n" + "vec4 lb = texelFetch(hemispheres, h_uv + ivec2(0, 0), 0);\n" + "vec4 rb = texelFetch(hemispheres, h_uv + ivec2(1, 0), 0);\n" + "vec4 lt = texelFetch(hemispheres, h_uv + ivec2(0, 1), 0);\n" + "vec4 rt = texelFetch(hemispheres, h_uv + ivec2(1, 1), 0);\n" + "outColor = lb + rb + lt + rt;\n" + "}\n"; + ctx->hemisphere.downsamplePass.programID = lm_LoadProgram(vs, fs); + if (!ctx->hemisphere.downsamplePass.programID) + { + fprintf(stderr, "Error loading the hemisphere downsample pass shader program... leaving!\n"); + glDeleteProgram(ctx->hemisphere.firstPass.programID); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + ctx->hemisphere.downsamplePass.hemispheresTextureID = glGetUniformLocation(ctx->hemisphere.downsamplePass.programID, "hemispheres"); + } + + // hemisphere weights texture + glGenTextures(1, &ctx->hemisphere.firstPass.weightsTexture); + lmSetHemisphereWeights(ctx, lm_defaultWeights, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + + // allocate batchPosition-to-lightmapPosition map + ctx->hemisphere.fbHemiToLightmapLocation = (lm_ivec2*)LM_CALLOC(ctx->hemisphere.fbHemiCountX * ctx->hemisphere.fbHemiCountY, sizeof(lm_ivec2)); + + return ctx; +} + +void lmDestroy(lm_context *ctx) +{ + // reset state + glUseProgram(0); + glBindTexture(GL_TEXTURE_2D, 0); + glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); + glBindVertexArray(0); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + + // delete gl objects + glDeleteTextures(1, &ctx->hemisphere.firstPass.weightsTexture); + glDeleteTextures(1, &ctx->hemisphere.storage.texture); + glDeleteProgram(ctx->hemisphere.downsamplePass.programID); + glDeleteProgram(ctx->hemisphere.firstPass.programID); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + glDeleteTextures(1, &ctx->hemisphere.storage.texture); + + // free memory + LM_FREE(ctx->hemisphere.storage.toLightmapLocation); + LM_FREE(ctx->hemisphere.fbHemiToLightmapLocation); +#ifdef LM_DEBUG_INTERPOLATION + LM_FREE(ctx->lightmap.debug); +#endif + LM_FREE(ctx); +} + +void lmSetHemisphereWeights(lm_context *ctx, lm_weight_func f, void *userdata) +{ + // hemisphere weights texture. bakes in material dependent attenuation behaviour. + float *weights = (float*)LM_CALLOC(2 * 3 * ctx->hemisphere.size * ctx->hemisphere.size, sizeof(float)); + float center = (ctx->hemisphere.size - 1) * 0.5f; + double sum = 0.0; + for (unsigned int y = 0; y < ctx->hemisphere.size; y++) + { + float dy = 2.0f * (y - center) / (float)ctx->hemisphere.size; + for (unsigned int x = 0; x < ctx->hemisphere.size; x++) + { + float dx = 2.0f * (x - center) / (float)ctx->hemisphere.size; + lm_vec3 v = lm_normalize3(lm_v3(dx, dy, 1.0f)); + + float solidAngle = v.z * v.z * v.z; + + float *w0 = weights + 2 * (y * (3 * ctx->hemisphere.size) + x); + float *w1 = w0 + 2 * ctx->hemisphere.size; + float *w2 = w1 + 2 * ctx->hemisphere.size; + + // center weights + w0[0] = solidAngle * f(v.z, userdata); + w0[1] = solidAngle; + + // left/right side weights + w1[0] = solidAngle * f(lm_absf(v.x), userdata); + w1[1] = solidAngle; + + // up/down side weights + w2[0] = solidAngle * f(lm_absf(v.y), userdata); + w2[1] = solidAngle; + + sum += 3.0 * (double)solidAngle; + } + } + + // normalize weights + float weightScale = (float)(1.0 / sum); + for (unsigned int i = 0; i < 2 * 3 * ctx->hemisphere.size * ctx->hemisphere.size; i++) + weights[i] *= weightScale; + + // upload weight texture + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.firstPass.weightsTexture); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RG32F, 3 * ctx->hemisphere.size, ctx->hemisphere.size, 0, GL_RG, GL_FLOAT, weights); + LM_FREE(weights); +} + +void lmSetTargetLightmap(lm_context *ctx, float *outLightmap, int w, int h, int c) +{ + ctx->lightmap.data = outLightmap; + ctx->lightmap.width = w; + ctx->lightmap.height = h; + ctx->lightmap.channels = c; + + // allocate storage texture + if (!ctx->hemisphere.storage.texture) + glGenTextures(1, &ctx->hemisphere.storage.texture); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, w, h, 0, GL_RGBA, GL_FLOAT, 0); + + // allocate storage position to lightmap position map + if (ctx->hemisphere.storage.toLightmapLocation) + LM_FREE(ctx->hemisphere.storage.toLightmapLocation); + ctx->hemisphere.storage.toLightmapLocation = (lm_ivec2*)LM_CALLOC(w * h, sizeof(lm_ivec2)); + // invalidate all positions + for (int i = 0; i < w * h; i++) + ctx->hemisphere.storage.toLightmapLocation[i].x = -1; + +#ifdef LM_DEBUG_INTERPOLATION + if (ctx->lightmap.debug) + LM_FREE(ctx->lightmap.debug); + ctx->lightmap.debug = (unsigned char*)LM_CALLOC(ctx->lightmap.width * ctx->lightmap.height, 3); +#endif +} + +void lmSetGeometry(lm_context *ctx, + const float *transformationMatrix, + lm_type positionsType, const void *positionsXYZ, int positionsStride, + lm_type normalsType, const void *normalsXYZ, int normalsStride, + lm_type lightmapCoordsType, const void *lightmapCoordsUV, int lightmapCoordsStride, + int count, lm_type indicesType, const void *indices) +{ + ctx->mesh.modelMatrix = transformationMatrix; + ctx->mesh.positions = (const unsigned char*)positionsXYZ; + ctx->mesh.positionsType = positionsType; + ctx->mesh.positionsStride = positionsStride == 0 ? sizeof(lm_vec3) : positionsStride; + ctx->mesh.normals = (const unsigned char*)normalsXYZ; + ctx->mesh.normalsType = normalsType; + ctx->mesh.normalsStride = normalsStride == 0 ? sizeof(lm_vec3) : normalsStride; + ctx->mesh.uvs = (const unsigned char*)lightmapCoordsUV; + ctx->mesh.uvsType = lightmapCoordsType; + ctx->mesh.uvsStride = lightmapCoordsStride == 0 ? sizeof(lm_vec2) : lightmapCoordsStride; + ctx->mesh.indicesType = indicesType; + ctx->mesh.indices = (const unsigned char*)indices; + ctx->mesh.count = count; + + lm_inverseTranspose(transformationMatrix, ctx->mesh.normalMatrix); + + ctx->meshPosition.pass = 0; + lm_setMeshPosition(ctx, 0); +} + +lm_bool lmBegin(lm_context *ctx, int* outViewport4, float* outView4x4, float* outProjection4x4) +{ + assert(ctx->meshPosition.triangle.baseIndex < ctx->mesh.count); + while (!lm_beginSampleHemisphere(ctx, outViewport4, outView4x4, outProjection4x4)) + { // as long as there are no hemisphere sides to render... + // try moving to the next rasterizer position + if (lm_findNextConservativeTriangleRasterizerPosition(ctx)) + { // if we successfully moved to the next sample position on the current triangle... + ctx->meshPosition.hemisphere.side = 0; // start sampling a hemisphere there + } + else + { // if there are no valid sample positions on the current triangle... + if (ctx->meshPosition.triangle.baseIndex + 3 < ctx->mesh.count) + { // ...and there are triangles left: move to the next triangle and continue sampling. + lm_setMeshPosition(ctx, ctx->meshPosition.triangle.baseIndex + 3); + } + else + { // ...and there are no triangles left: finish + lm_integrateHemisphereBatch(ctx); // integrate and store last batch + lm_writeResultsToLightmap(ctx); // read storage data from gpu memory and write it to the lightmap + + if (++ctx->meshPosition.pass == ctx->meshPosition.passCount) + { + ctx->meshPosition.pass = 0; + ctx->meshPosition.triangle.baseIndex = ctx->mesh.count; // set end condition (in case someone accidentally calls lmBegin again) + +#ifdef LM_DEBUG_INTERPOLATION + lmImageSaveTGAub("debug_interpolation.tga", ctx->lightmap.debug, ctx->lightmap.width, ctx->lightmap.height, 3); + + // lightmap texel statistics + int rendered = 0, interpolated = 0, wasted = 0; + for (int y = 0; y < ctx->lightmap.height; y++) + { + for (int x = 0; x < ctx->lightmap.width; x++) + { + if (ctx->lightmap.debug[(y * ctx->lightmap.width + x) * 3 + 0]) + rendered++; + else if (ctx->lightmap.debug[(y * ctx->lightmap.width + x) * 3 + 1]) + interpolated++; + else + wasted++; + } + } + int used = rendered + interpolated; + int total = used + wasted; + printf("\n#######################################################################\n"); + printf("%10d %6.2f%% rendered hemicubes integrated to lightmap texels.\n", rendered, 100.0f * (float)rendered / (float)total); + printf("%10d %6.2f%% interpolated lightmap texels.\n", interpolated, 100.0f * (float)interpolated / (float)total); + printf("%10d %6.2f%% wasted lightmap texels.\n", wasted, 100.0f * (float)wasted / (float)total); + printf("\n%17.2f%% of used texels were rendered.\n", 100.0f * (float)rendered / (float)used); + printf("#######################################################################\n"); +#endif + + return LM_FALSE; + } + + lm_setMeshPosition(ctx, 0); // start over with the next pass + } + } + } + return LM_TRUE; +} + +float lmProgress(lm_context *ctx) +{ + float passProgress = (float)ctx->meshPosition.triangle.baseIndex / (float)ctx->mesh.count; + return ((float)ctx->meshPosition.pass + passProgress) / (float)ctx->meshPosition.passCount; +} + +void lmEnd(lm_context *ctx) +{ + lm_endSampleHemisphere(ctx); +} + +// these are not performance tuned since their impact on the whole lightmapping duration is insignificant +float lmImageMin(const float *image, int w, int h, int c, int m) +{ + assert(c > 0 && m); + float minValue = FLT_MAX; + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + minValue = lm_minf(minValue, image[i * c + j]); + return minValue; +} + +float lmImageMax(const float *image, int w, int h, int c, int m) +{ + assert(c > 0 && m); + float maxValue = 0.0f; + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + maxValue = lm_maxf(maxValue, image[i * c + j]); + return maxValue; +} + +void lmImageAdd(float *image, int w, int h, int c, float value, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] += value; +} + +void lmImageScale(float *image, int w, int h, int c, float factor, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] *= factor; +} + +void lmImagePower(float *image, int w, int h, int c, float exponent, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] = powf(image[i * c + j], exponent); +} + +void lmImageDilate(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h; y++) + { + for (int x = 0; x < w; x++) + { + float color[4]; + lm_bool valid = LM_FALSE; + for (int i = 0; i < c; i++) + { + color[i] = image[(y * w + x) * c + i]; + valid |= color[i] > 0.0f; + } + if (!valid) + { + int n = 0; + const int dx[] = { -1, 0, 1, 0 }; + const int dy[] = { 0, 1, 0, -1 }; + for (int d = 0; d < 4; d++) + { + int cx = x + dx[d]; + int cy = y + dy[d]; + if (cx >= 0 && cx < w && cy >= 0 && cy < h) + { + float dcolor[4]; + lm_bool dvalid = LM_FALSE; + for (int i = 0; i < c; i++) + { + dcolor[i] = image[(cy * w + cx) * c + i]; + dvalid |= dcolor[i] > 0.0f; + } + if (dvalid) + { + for (int i = 0; i < c; i++) + color[i] += dcolor[i]; + n++; + } + } + } + if (n) + { + float in = 1.0f / n; + for (int i = 0; i < c; i++) + color[i] *= in; + } + } + for (int i = 0; i < c; i++) + outImage[(y * w + x) * c + i] = color[i]; + } + } +} + +void lmImageSmooth(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h; y++) + { + for (int x = 0; x < w; x++) + { + float color[4] = {0}; + int n = 0; + for (int dy = -1; dy <= 1; dy++) + { + int cy = y + dy; + for (int dx = -1; dx <= 1; dx++) + { + int cx = x + dx; + if (cx >= 0 && cx < w && cy >= 0 && cy < h) + { + lm_bool valid = LM_FALSE; + for (int i = 0; i < c; i++) + valid |= image[(cy * w + cx) * c + i] > 0.0f; + if (valid) + { + for (int i = 0; i < c; i++) + color[i] += image[(cy * w + cx) * c + i]; + n++; + } + } + } + } + for (int i = 0; i < c; i++) + outImage[(y * w + x) * c + i] = n ? color[i] / n : 0.0f; + } + } +} + +void lmImageDownsample(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h / 2; y++) + { + for (int x = 0; x < w / 2; x++) + { + int p0 = 2 * (y * w + x) * c; + int p1 = p0 + w * c; + int valid[2][2] = {0}; + float sums[4] = {0}; + for (int i = 0; i < c; i++) + { + valid[0][0] |= image[p0 + i] != 0.0f ? 1 : 0; + valid[0][1] |= image[p0 + c + i] != 0.0f ? 1 : 0; + valid[1][0] |= image[p1 + i] != 0.0f ? 1 : 0; + valid[1][1] |= image[p1 + c + i] != 0.0f ? 1 : 0; + sums[i] += image[p0 + i] + image[p0 + c + i] + image[p1 + i] + image[p1 + c + i]; + } + int n = valid[0][0] + valid[0][1] + valid[1][0] + valid[1][1]; + int p = (y * w / 2 + x) * c; + for (int i = 0; i < c; i++) + outImage[p + i] = n ? sums[i] / n : 0.0f; + } + } +} + +void lmImageFtoUB(const float *image, unsigned char *outImage, int w, int h, int c, float max) +{ + assert(c > 0); + float scale = 255.0f / (max != 0.0f ? max : lmImageMax(image, w, h, c, LM_ALL_CHANNELS)); + for (int i = 0; i < w * h * c; i++) + outImage[i] = (unsigned char)lm_minf(lm_maxf(image[i] * scale, 0.0f), 255.0f); +} + +// TGA output helpers +static void lm_swapRandBub(unsigned char *image, int w, int h, int c) +{ + assert(c >= 3); + for (int i = 0; i < w * h * c; i += c) + LM_SWAP(unsigned char, image[i], image[i + 2]); +} + +lm_bool lmImageSaveTGAub(const char *filename, const unsigned char *image, int w, int h, int c) +{ + assert(c == 1 || c == 3 || c == 4); + lm_bool isGreyscale = c == 1; + lm_bool hasAlpha = c == 4; + unsigned char header[18] = { + 0, 0, (unsigned char)(isGreyscale ? 3 : 2), 0, 0, 0, 0, 0, 0, 0, 0, 0, + (unsigned char)(w & 0xff), (unsigned char)((w >> 8) & 0xff), (unsigned char)(h & 0xff), (unsigned char)((h >> 8) & 0xff), + (unsigned char)(8 * c), (unsigned char)(hasAlpha ? 8 : 0) + }; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + FILE *file; + if (fopen_s(&file, filename, "wb") != 0) return LM_FALSE; +#else + FILE *file = fopen(filename, "wb"); + if (!file) return LM_FALSE; +#endif + fwrite(header, 1, sizeof(header), file); + + // we make sure to swap it back! trust me. :) + if (!isGreyscale) + lm_swapRandBub((unsigned char*)image, w, h, c); + fwrite(image, 1, w * h * c , file); + if (!isGreyscale) + lm_swapRandBub((unsigned char*)image, w, h, c); + + fclose(file); + return LM_TRUE; +} + +lm_bool lmImageSaveTGAf(const char *filename, const float *image, int w, int h, int c, float max) +{ + unsigned char *temp = (unsigned char*)LM_CALLOC(w * h * c, sizeof(unsigned char)); + lmImageFtoUB(image, temp, w, h, c, max); + lm_bool success = lmImageSaveTGAub(filename, temp, w, h, c); + LM_FREE(temp); + return success; +} + +#endif // LIGHTMAPPER_IMPLEMENTATION diff --git a/engine/split/v4k.x.inl b/engine/split/v4k.x.inl index 578ae18..bd140e9 100644 --- a/engine/split/v4k.x.inl +++ b/engine/split/v4k.x.inl @@ -53,6 +53,7 @@ #define BQ_PLATFORM_IMPLEMENTATION // websocket #define BQ_WEBSOCKET_IMPLEMENTATION // websocket #define XML_C // xml +#define LIGHTMAPPER_IMPLEMENTATION // lightmapper #ifdef __APPLE__ #define MA_NO_RUNTIME_LINKING // miniaudio osx #define _GLFW_COCOA // glfw osx @@ -217,4 +218,6 @@ static char *ui_filter = 0; {{FILE:3rd_lite_sys.h}} {{FILE:3rd_lite.h}} +{{FILE:3rd_lightmapper.h}} + #endif // V4K_3RD diff --git a/engine/split/v4k_gui.c b/engine/split/v4k_gui.c index c170636..80d252b 100644 --- a/engine/split/v4k_gui.c +++ b/engine/split/v4k_gui.c @@ -118,17 +118,23 @@ void *gui_userdata() { return last_skin->userdata; } -vec2 gui_getskinsize(const char *skin) { +vec2 gui_getskinsize(const char *skin, const char *fallback) { vec2 size={0}; - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &size); + if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, fallback, &size); return size; } -bool gui_ismouseinrect(const char *skin, vec4 rect) { - if (last_skin->ismouseinrect) return last_skin->ismouseinrect(last_skin->userdata, skin, rect); +bool gui_ismouseinrect(const char *skin, const char *fallback, vec4 rect) { + if (last_skin->ismouseinrect) return last_skin->ismouseinrect(last_skin->userdata, skin, fallback, rect); return false; } +vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect) { + vec4 scissor = rect; + if (last_skin->getscissorrect) last_skin->getscissorrect(last_skin->userdata, skin, fallback, rect, &scissor); + return scissor; +} + static gui_state_t *gui_getstate(int id) { if (!ctl_states) map_init(ctl_states, less_int, hash_int); @@ -138,8 +144,8 @@ gui_state_t *gui_getstate(int id) { void gui_panel_id(int id, vec4 rect, const char *skin) { (void)id; vec4 scissor={0, 0, window_width(), window_height()}; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, rect); - if (last_skin->getscissorrect) last_skin->getscissorrect(last_skin->userdata, skin, rect, &scissor); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, NULL, rect); + scissor = gui_getscissorrect(skin, NULL, rect); if (!array_count(scissor_rects)) glEnable(GL_SCISSOR_TEST); @@ -164,7 +170,7 @@ bool gui_button_id(int id, vec4 r, const char *skin) { skin=skin?skin:"button"; char *btn = va("%s%s", skin, entry->held?"_press":entry->hover?"_hover":""); - if (gui_ismouseinrect(btn, r)) { + if (gui_ismouseinrect(btn, skin, r)) { if (input_up(MOUSE_L) && entry->held) { was_clicked=1; } @@ -174,24 +180,27 @@ bool gui_button_id(int id, vec4 r, const char *skin) { entry->hover = true; } } - else if (input_up(MOUSE_L) && entry->held) { - entry->held = false; - any_widget_used = false; - } else { entry->hover = false; } - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, btn, r); + if (input_up(MOUSE_L) && entry->held) { + entry->held = false; + any_widget_used = false; + } + + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, btn, skin, r); return was_clicked; } bool gui_button_label_id(int id, const char *text, vec4 rect, const char *skin) { + gui_state_t *entry = gui_getstate(id); bool state = gui_button_id(id, rect, skin); vec2 buttonsize={0}; skin=skin?skin:"button"; - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &buttonsize); + char *btn = va("%s%s", skin, entry->held?"_press":entry->hover?"_hover":""); + buttonsize = gui_getskinsize(btn, skin); vec2 textsize = font_rect(text); vec2 pos; @@ -224,7 +233,8 @@ bool gui_slider_id(int id, vec4 rect, const char *skin, float min, float max, fl skin = skin?skin:"slider"; char *cursorskin = va("%s_cursor%s", skin, entry->held?"_press":entry->hover?"_hover":""); - if (gui_ismouseinrect(skin, rect) && !any_widget_used) { + char *fbcursor = va("%s_cursor", skin); + if (gui_ismouseinrect(skin, NULL, rect) && !any_widget_used) { any_widget_used = entry->held = input_held(MOUSE_L); entry->hover = true; } @@ -237,13 +247,12 @@ bool gui_slider_id(int id, vec4 rect, const char *skin, float min, float max, fl } float old_value = *value; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, rect); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, NULL, rect); vec2 slidersize={0}, cursorsize={0}; - vec4 usablerect=rect; - if (last_skin->getscissorrect) last_skin->getscissorrect(last_skin->userdata, skin, rect, &usablerect); - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &slidersize); - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, cursorskin, &cursorsize); + vec4 usablerect = gui_getscissorrect(skin, NULL, rect); + slidersize = gui_getskinsize(skin, NULL); + cursorsize = gui_getskinsize(cursorskin, fbcursor); if (entry->held) { *value = posx2slider(usablerect, min, max, input(MOUSE_X), step); } @@ -254,7 +263,7 @@ bool gui_slider_id(int id, vec4 rect, const char *skin, float min, float max, fl cursorrect.y += cursorpos.y; cursorrect.z = cursorsize.x; cursorrect.w = cursorsize.y; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, cursorskin, cursorrect); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, cursorskin, fbcursor, cursorrect); return entry->held && (old_value!=*value); } @@ -263,7 +272,7 @@ bool gui_slider_label_id(int id, const char *text, vec4 rect, const char *skin, bool state = gui_slider_id(id, rect, skin, min, max, step, value); vec2 slidersize={0}; skin=skin?skin:"slider"; - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &slidersize); + slidersize = gui_getskinsize(skin, NULL); vec2 textsize = font_rect(text); vec2 pos; @@ -276,7 +285,7 @@ bool gui_slider_label_id(int id, const char *text, vec4 rect, const char *skin, void gui_rect_id(int id, vec4 r, const char *skin) { (void)id; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, r); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, NULL, r); } void gui_label_id(int id, const char *text, vec4 rect) { @@ -300,7 +309,7 @@ atlas_slice_frame_t *skinned_getsliceframe(atlas_t *a, const char *name) { for (int i = 0; i < array_count(a->slices); i++) if (!strcmp(quark_string(&a->db, a->slices[i].name), name)) return &a->slice_frames[a->slices[i].frames[0]]; - PRINTF("slice name: '%s' is missing in atlas!\n", name); + // PRINTF("slice name: '%s' is missing in atlas!\n", name); return NULL; } @@ -311,9 +320,10 @@ void skinned_draw_missing_rect(vec4 r) { } static -bool skinned_ismouseinrect(void *userdata, const char *skin, vec4 r) { +bool skinned_ismouseinrect(void *userdata, const char *skin, const char *fallback, vec4 r) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (!f) return false; vec4 outer = f->bounds; @@ -396,18 +406,20 @@ void skinned_draw_sprite(float scale, atlas_t *a, atlas_slice_frame_t *f, vec4 r } static -void skinned_draw_rect(void* userdata, const char *skin, vec4 r) { +void skinned_draw_rect(void* userdata, const char *skin, const char *fallback, vec4 r) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (!f) skinned_draw_missing_rect(r); else skinned_draw_sprite(a->scale, &a->atlas, f, r); } -void skinned_getskinsize(void *userdata, const char *skin, vec2 *size) { +void skinned_getskinsize(void *userdata, const char *skin, const char *fallback, vec2 *size) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (f) { size->x = (f->bounds.z-f->bounds.x)*a->scale; size->y = (f->bounds.w-f->bounds.y)*a->scale; @@ -415,9 +427,10 @@ void skinned_getskinsize(void *userdata, const char *skin, vec2 *size) { } static -void skinned_getscissorrect(void* userdata, const char *skin, vec4 rect, vec4 *dims) { +void skinned_getscissorrect(void* userdata, const char *skin, const char *fallback, vec4 rect, vec4 *dims) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (!f) return; *dims = rect; diff --git a/engine/split/v4k_gui.h b/engine/split/v4k_gui.h index 4d6b40c..28377bd 100644 --- a/engine/split/v4k_gui.h +++ b/engine/split/v4k_gui.h @@ -2,18 +2,19 @@ // game ui typedef struct guiskin_t { - void (*drawrect)(void* userdata, const char *skin, vec4 rect); - void (*getskinsize)(void* userdata, const char *skin, vec2 *size); - void (*getscissorrect)(void* userdata, const char *skin, vec4 rect, vec4 *dims); - bool (*ismouseinrect)(void* userdata, const char *skin, vec4 rect); + void (*drawrect)(void* userdata, const char *skin, const char *fallback, vec4 rect); + void (*getskinsize)(void* userdata, const char *skin, const char *fallback, vec2 *size); + void (*getscissorrect)(void* userdata, const char *skin, const char *fallback, vec4 rect, vec4 *dims); + bool (*ismouseinrect)(void* userdata, const char *skin, const char *fallback, vec4 rect); void (*free)(void* userdata); void *userdata; } guiskin_t; API void gui_pushskin(guiskin_t skin); API void* gui_userdata(); -API vec2 gui_getskinsize(const char *skin); -API bool gui_ismouseinrect(const char *skin, vec4 rect); +API vec2 gui_getskinsize(const char *skin, const char *fallback); +API bool gui_ismouseinrect(const char *skin, const char *fallback, vec4 rect); +API vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect); // -- API void gui_panel_id(int id, vec4 rect, const char *skin); API void gui_rect_id(int id, vec4 rect, const char *skin); diff --git a/engine/split/v4k_render.h b/engine/split/v4k_render.h index 4f62d92..e784c97 100644 --- a/engine/split/v4k_render.h +++ b/engine/split/v4k_render.h @@ -577,6 +577,13 @@ typedef struct anims_t { API anims_t animations(const char *pathfile, int flags); +// ----------------------------------------------------------------------------- +// lightmapping utils + +typedef struct lightmap_t { + struct lm_context *ctx; // private +} lightmap_t; + // ----------------------------------------------------------------------------- // skyboxes diff --git a/engine/v4k b/engine/v4k index 7852c92..55b771d 100644 --- a/engine/v4k +++ b/engine/v4k @@ -13981,6 +13981,7 @@ int gladLoadGL( GLADloadfunc load) { #define BQ_PLATFORM_IMPLEMENTATION // websocket #define BQ_WEBSOCKET_IMPLEMENTATION // websocket #define XML_C // xml +#define LIGHTMAPPER_IMPLEMENTATION // lightmapper #ifdef __APPLE__ #define MA_NO_RUNTIME_LINKING // miniaudio osx #define _GLFW_COCOA // glfw osx @@ -329043,4 +329044,1768 @@ void lt_tick(struct lua_State *L) { } #line 0 +#line 1 "3rd_lightmapper.h" +/*********************************************************** +* A single header file OpenGL lightmapping library * +* https://github.com/ands/lightmapper * +* no warranty implied | use at your own risk * +* author: Andreas Mantler (ands) | last change: 10.05.2018 * +* * +* License: * +* This software is in the public domain. * +* Where that dedication is not recognized, * +* you are granted a perpetual, irrevocable license to copy * +* and modify this file however you want. * +***********************************************************/ + +#ifndef LIGHTMAPPER_H +#define LIGHTMAPPER_H + +#ifdef __cplusplus +#define LM_DEFAULT_VALUE(value) = value +#else +#define LM_DEFAULT_VALUE(value) +#endif + +#ifndef LM_CALLOC +#define LM_CALLOC(count, size) calloc(count, size) +#endif + +#ifndef LM_FREE +#define LM_FREE(ptr) free(ptr) +#endif + +typedef int lm_bool; +#define LM_FALSE 0 +#define LM_TRUE 1 + +typedef int lm_type; +#define LM_NONE 0 +#define LM_UNSIGNED_BYTE GL_UNSIGNED_BYTE +#define LM_UNSIGNED_SHORT GL_UNSIGNED_SHORT +#define LM_UNSIGNED_INT GL_UNSIGNED_INT +#define LM_FLOAT GL_FLOAT + +typedef struct lm_context lm_context; + +// creates a lightmapper instance. it can be used to render multiple lightmaps. +lm_context *lmCreate( + int hemisphereSize, // hemisphereSize: resolution of the hemisphere renderings. must be a power of two! typical: 64. + float zNear, float zFar, // zNear/zFar: hemisphere min/max draw distances. + float clearR, float clearG, float clearB, // clear color / background color / sky color. + int interpolationPasses, float interpolationThreshold, // passes: hierarchical selective interpolation passes (0-8; initial step size = 2^passes). + // threshold: error value below which lightmap pixels are interpolated instead of rendered. + // use output image from LM_DEBUG_INTERPOLATION to determine a good value. + // values around and below 0.01 are probably ok. + // the lower the value, the more hemispheres are rendered -> slower, but possibly better quality. + float cameraToSurfaceDistanceModifier LM_DEFAULT_VALUE(0.0f)); // modifier for the height of the rendered hemispheres above the surface + // -1.0f => stick to surface, 0.0f => minimum height for interpolated surface normals, + // > 0.0f => improves gradients on surfaces with interpolated normals due to the flat surface horizon, + // but may introduce other artifacts. + +// optional: set material characteristics by specifying cos(theta)-dependent weights for incoming light. +typedef float (*lm_weight_func)(float cos_theta, void *userdata); +void lmSetHemisphereWeights(lm_context *ctx, lm_weight_func f, void *userdata); // precalculates weights for incoming light depending on its angle. (default: all weights are 1.0f) + +// specify an output lightmap image buffer with w * h * c * sizeof(float) bytes of memory. +void lmSetTargetLightmap(lm_context *ctx, float *outLightmap, int w, int h, int c); // output HDR lightmap (linear 32bit float channels; c: 1->Greyscale, 2->Greyscale+Alpha, 3->RGB, 4->RGBA). + +// set the geometry to map to the currently set target lightmap (set the target lightmap before calling this!). +void lmSetGeometry(lm_context *ctx, + const float *transformationMatrix, // 4x4 object-to-world transform for the geometry or NULL (no transformation). + lm_type positionsType, const void *positionsXYZ, int positionsStride, // triangle mesh in object space. + lm_type normalsType, const void *normalsXYZ, int normalsStride, // optional normals for the mesh in object space (Use LM_NONE type in case you only need flat surfaces). + lm_type lightmapCoordsType, const void *lightmapCoordsUV, int lightmapCoordsStride, // lightmap atlas texture coordinates for the mesh [0..1]x[0..1] (integer types are normalized to 0..1 range). + int count, lm_type indicesType LM_DEFAULT_VALUE(LM_NONE), const void *indices LM_DEFAULT_VALUE(0));// if mesh indices are used, count = number of indices else count = number of vertices. + + +// as long as lmBegin returns true, the scene has to be rendered with the +// returned camera and view parameters to the currently bound framebuffer. +// if lmBegin returns true, it must be followed by lmEnd after rendering! +lm_bool lmBegin(lm_context *ctx, + int* outViewport4, // output of the current viewport: { x, y, w, h }. use these to call glViewport()! + float* outView4x4, // output of the current camera view matrix. + float* outProjection4x4); // output of the current camera projection matrix. + +float lmProgress(lm_context *ctx); // should only be called between lmBegin/lmEnd! + // provides the light mapping progress as a value increasing from 0.0 to 1.0. + +void lmEnd(lm_context *ctx); + +// destroys the lightmapper instance. should be called to free resources. +void lmDestroy(lm_context *ctx); + + +// image based post processing (c is the number of color channels in the image, m a channel mask for the operation) +#define LM_ALL_CHANNELS 0x0f +float lmImageMin(const float *image, int w, int h, int c, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // find the minimum value (across the specified channels) +float lmImageMax(const float *image, int w, int h, int c, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // find the maximum value (across the specified channels) +void lmImageAdd(float *image, int w, int h, int c, float value, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place add to the specified channels +void lmImageScale(float *image, int w, int h, int c, float factor, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place scaling of the specified channels +void lmImagePower(float *image, int w, int h, int c, float exponent, int m LM_DEFAULT_VALUE(LM_ALL_CHANNELS)); // in-place powf(v, exponent) of the specified channels (for gamma) +void lmImageDilate(const float *image, float *outImage, int w, int h, int c); // widen the populated non-zero areas by 1 pixel. +void lmImageSmooth(const float *image, float *outImage, int w, int h, int c); // simple box filter on only the non-zero values. +void lmImageDownsample(const float *image, float *outImage, int w, int h, int c); // downsamples [0..w]x[0..h] to [0..w/2]x[0..h/2] by avereging only the non-zero values +void lmImageFtoUB(const float *image, unsigned char *outImage, int w, int h, int c, float max LM_DEFAULT_VALUE(0.0f)); // casts a floating point image to an 8bit/channel image + +// TGA file output helpers +lm_bool lmImageSaveTGAub(const char *filename, const unsigned char *image, int w, int h, int c); +lm_bool lmImageSaveTGAf(const char *filename, const float *image, int w, int h, int c, float max LM_DEFAULT_VALUE(0.0f)); + +#endif +////////////////////// END OF HEADER ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#ifdef LIGHTMAPPER_IMPLEMENTATION +#undef LIGHTMAPPER_IMPLEMENTATION + +#include +#include +#include +#include +#include +#include + +#define LM_SWAP(type, a, b) { type tmp = (a); (a) = (b); (b) = tmp; } + +#if defined(_MSC_VER) && !defined(__cplusplus) +#define inline __inline +#endif + +#if defined(_MSC_VER) && (_MSC_VER <= 1700) +static inline lm_bool lm_finite(float a) { return _finite(a); } +#else +static inline lm_bool lm_finite(float a) { return isfinite(a); } +#endif + +static inline int lm_mini (int a, int b) { return a < b ? a : b; } +static inline int lm_maxi (int a, int b) { return a > b ? a : b; } +static inline int lm_absi (int a ) { return a < 0 ? -a : a; } +static inline float lm_minf (float a, float b) { return a < b ? a : b; } +static inline float lm_maxf (float a, float b) { return a > b ? a : b; } +static inline float lm_absf (float a ) { return a < 0.0f ? -a : a; } +static inline float lm_pmodf (float a, float b) { return (a < 0.0f ? 1.0f : 0.0f) + (float)fmod(a, b); } // positive mod + +typedef struct lm_ivec2 { int x, y; } lm_ivec2; +static inline lm_ivec2 lm_i2 (int x, int y) { lm_ivec2 v = { x, y }; return v; } + +typedef struct lm_vec2 { float x, y; } lm_vec2; +static inline lm_vec2 lm_v2i (int x, int y) { lm_vec2 v = { (float)x, (float)y }; return v; } +static inline lm_vec2 lm_v2 (float x, float y) { lm_vec2 v = { x, y }; return v; } +static inline lm_vec2 lm_negate2 (lm_vec2 a ) { return lm_v2(-a.x, -a.y); } +static inline lm_vec2 lm_add2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x + b.x, a.y + b.y); } +static inline lm_vec2 lm_sub2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x - b.x, a.y - b.y); } +static inline lm_vec2 lm_mul2 (lm_vec2 a, lm_vec2 b) { return lm_v2(a.x * b.x, a.y * b.y); } +static inline lm_vec2 lm_scale2 (lm_vec2 a, float b) { return lm_v2(a.x * b, a.y * b); } +static inline lm_vec2 lm_div2 (lm_vec2 a, float b) { return lm_scale2(a, 1.0f / b); } +static inline lm_vec2 lm_pmod2 (lm_vec2 a, float b) { return lm_v2(lm_pmodf(a.x, b), lm_pmodf(a.y, b)); } +static inline lm_vec2 lm_min2 (lm_vec2 a, lm_vec2 b) { return lm_v2(lm_minf(a.x, b.x), lm_minf(a.y, b.y)); } +static inline lm_vec2 lm_max2 (lm_vec2 a, lm_vec2 b) { return lm_v2(lm_maxf(a.x, b.x), lm_maxf(a.y, b.y)); } +static inline lm_vec2 lm_abs2 (lm_vec2 a ) { return lm_v2(lm_absf(a.x), lm_absf(a.y)); } +static inline lm_vec2 lm_floor2 (lm_vec2 a ) { return lm_v2(floorf(a.x), floorf(a.y)); } +static inline lm_vec2 lm_ceil2 (lm_vec2 a ) { return lm_v2(ceilf (a.x), ceilf (a.y)); } +static inline float lm_dot2 (lm_vec2 a, lm_vec2 b) { return a.x * b.x + a.y * b.y; } +static inline float lm_cross2 (lm_vec2 a, lm_vec2 b) { return a.x * b.y - a.y * b.x; } // pseudo cross product +static inline float lm_length2sq (lm_vec2 a ) { return a.x * a.x + a.y * a.y; } +static inline float lm_length2 (lm_vec2 a ) { return sqrtf(lm_length2sq(a)); } +static inline lm_vec2 lm_normalize2(lm_vec2 a ) { return lm_div2(a, lm_length2(a)); } +static inline lm_bool lm_finite2 (lm_vec2 a ) { return lm_finite(a.x) && lm_finite(a.y); } + +typedef struct lm_vec3 { float x, y, z; } lm_vec3; +static inline lm_vec3 lm_v3 (float x, float y, float z) { lm_vec3 v = { x, y, z }; return v; } +static inline lm_vec3 lm_negate3 (lm_vec3 a ) { return lm_v3(-a.x, -a.y, -a.z); } +static inline lm_vec3 lm_add3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x + b.x, a.y + b.y, a.z + b.z); } +static inline lm_vec3 lm_sub3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x - b.x, a.y - b.y, a.z - b.z); } +static inline lm_vec3 lm_mul3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.x * b.x, a.y * b.y, a.z * b.z); } +static inline lm_vec3 lm_scale3 (lm_vec3 a, float b) { return lm_v3(a.x * b, a.y * b, a.z * b); } +static inline lm_vec3 lm_div3 (lm_vec3 a, float b) { return lm_scale3(a, 1.0f / b); } +static inline lm_vec3 lm_pmod3 (lm_vec3 a, float b) { return lm_v3(lm_pmodf(a.x, b), lm_pmodf(a.y, b), lm_pmodf(a.z, b)); } +static inline lm_vec3 lm_min3 (lm_vec3 a, lm_vec3 b) { return lm_v3(lm_minf(a.x, b.x), lm_minf(a.y, b.y), lm_minf(a.z, b.z)); } +static inline lm_vec3 lm_max3 (lm_vec3 a, lm_vec3 b) { return lm_v3(lm_maxf(a.x, b.x), lm_maxf(a.y, b.y), lm_maxf(a.z, b.z)); } +static inline lm_vec3 lm_abs3 (lm_vec3 a ) { return lm_v3(lm_absf(a.x), lm_absf(a.y), lm_absf(a.z)); } +static inline lm_vec3 lm_floor3 (lm_vec3 a ) { return lm_v3(floorf(a.x), floorf(a.y), floorf(a.z)); } +static inline lm_vec3 lm_ceil3 (lm_vec3 a ) { return lm_v3(ceilf (a.x), ceilf (a.y), ceilf (a.z)); } +static inline float lm_dot3 (lm_vec3 a, lm_vec3 b) { return a.x * b.x + a.y * b.y + a.z * b.z; } +static inline lm_vec3 lm_cross3 (lm_vec3 a, lm_vec3 b) { return lm_v3(a.y * b.z - b.y * a.z, a.z * b.x - b.z * a.x, a.x * b.y - b.x * a.y); } +static inline float lm_length3sq (lm_vec3 a ) { return a.x * a.x + a.y * a.y + a.z * a.z; } +static inline float lm_length3 (lm_vec3 a ) { return sqrtf(lm_length3sq(a)); } +static inline lm_vec3 lm_normalize3(lm_vec3 a ) { return lm_div3(a, lm_length3(a)); } +static inline lm_bool lm_finite3 (lm_vec3 a ) { return lm_finite(a.x) && lm_finite(a.y) && lm_finite(a.z); } + +static lm_vec2 lm_toBarycentric(lm_vec2 p1, lm_vec2 p2, lm_vec2 p3, lm_vec2 p) +{ + // http://www.blackpawn.com/texts/pointinpoly/ + // Compute vectors + lm_vec2 v0 = lm_sub2(p3, p1); + lm_vec2 v1 = lm_sub2(p2, p1); + lm_vec2 v2 = lm_sub2(p, p1); + // Compute dot products + float dot00 = lm_dot2(v0, v0); + float dot01 = lm_dot2(v0, v1); + float dot02 = lm_dot2(v0, v2); + float dot11 = lm_dot2(v1, v1); + float dot12 = lm_dot2(v1, v2); + // Compute barycentric coordinates + float invDenom = 1.0f / (dot00 * dot11 - dot01 * dot01); + float u = (dot11 * dot02 - dot01 * dot12) * invDenom; + float v = (dot00 * dot12 - dot01 * dot02) * invDenom; + return lm_v2(u, v); +} + +static inline int lm_leftOf(lm_vec2 a, lm_vec2 b, lm_vec2 c) +{ + float x = lm_cross2(lm_sub2(b, a), lm_sub2(c, b)); + return x < 0 ? -1 : x > 0; +} + +static lm_bool lm_lineIntersection(lm_vec2 x0, lm_vec2 x1, lm_vec2 y0, lm_vec2 y1, lm_vec2* res) +{ + lm_vec2 dx = lm_sub2(x1, x0); + lm_vec2 dy = lm_sub2(y1, y0); + lm_vec2 d = lm_sub2(x0, y0); + float dyx = lm_cross2(dy, dx); + if (dyx == 0.0f) + return LM_FALSE; + dyx = lm_cross2(d, dx) / dyx; + if (dyx <= 0 || dyx >= 1) + return LM_FALSE; + res->x = y0.x + dyx * dy.x; + res->y = y0.y + dyx * dy.y; + return LM_TRUE; +} + +// this modifies the poly array! the poly array must be big enough to hold the result! +// res must be big enough to hold the result! +static int lm_convexClip(lm_vec2 *poly, int nPoly, const lm_vec2 *clip, int nClip, lm_vec2 *res) +{ + int nRes = nPoly; + int dir = lm_leftOf(clip[0], clip[1], clip[2]); + for (int i = 0, j = nClip - 1; i < nClip && nRes; j = i++) + { + if (i != 0) + for (nPoly = 0; nPoly < nRes; nPoly++) + poly[nPoly] = res[nPoly]; + nRes = 0; + lm_vec2 v0 = poly[nPoly - 1]; + int side0 = lm_leftOf(clip[j], clip[i], v0); + if (side0 != -dir) + res[nRes++] = v0; + for (int k = 0; k < nPoly; k++) + { + lm_vec2 v1 = poly[k], x; + int side1 = lm_leftOf(clip[j], clip[i], v1); + if (side0 + side1 == 0 && side0 && lm_lineIntersection(clip[j], clip[i], v0, v1, &x)) + res[nRes++] = x; + if (k == nPoly - 1) + break; + if (side1 != -dir) + res[nRes++] = v1; + v0 = v1; + side0 = side1; + } + } + + return nRes; +} + +struct lm_context +{ + struct + { + const float *modelMatrix; + float normalMatrix[9]; + + const unsigned char *positions; + lm_type positionsType; + int positionsStride; + const unsigned char *normals; + lm_type normalsType; + int normalsStride; + const unsigned char *uvs; + lm_type uvsType; + int uvsStride; + const unsigned char *indices; + lm_type indicesType; + unsigned int count; + } mesh; + + struct + { + int pass; + int passCount; + + struct + { + unsigned int baseIndex; + lm_vec3 p[3]; + lm_vec3 n[3]; + lm_vec2 uv[3]; + } triangle; + + struct + { + int minx, miny; + int maxx, maxy; + int x, y; + } rasterizer; + + struct + { + lm_vec3 position; + lm_vec3 direction; + lm_vec3 up; + } sample; + + struct + { + int side; + } hemisphere; + } meshPosition; + + struct + { + int width; + int height; + int channels; + float *data; + +#ifdef LM_DEBUG_INTERPOLATION + unsigned char *debug; +#endif + } lightmap; + + struct + { + unsigned int size; + float zNear, zFar; + float cameraToSurfaceDistanceModifier; + struct { float r, g, b; } clearColor; + + unsigned int fbHemiCountX; + unsigned int fbHemiCountY; + unsigned int fbHemiIndex; + lm_ivec2 *fbHemiToLightmapLocation; + GLuint fbTexture[2]; + GLuint fb[2]; + GLuint fbDepth; + GLuint vao; + struct + { + GLuint programID; + GLuint hemispheresTextureID; + GLuint weightsTextureID; + GLuint weightsTexture; + } firstPass; + struct + { + GLuint programID; + GLuint hemispheresTextureID; + } downsamplePass; + struct + { + GLuint texture; + lm_ivec2 writePosition; + lm_ivec2 *toLightmapLocation; + } storage; + } hemisphere; + + float interpolationThreshold; +}; + +// pass order of one 4x4 interpolation patch for two interpolation steps (and the next neighbors right of/below it) +// 0 4 1 4 0 +// 5 6 5 6 5 +// 2 4 3 4 2 +// 5 6 5 6 5 +// 0 4 1 4 0 + +static unsigned int lm_passStepSize(lm_context *ctx) +{ + unsigned int shift = ctx->meshPosition.passCount / 3 - (ctx->meshPosition.pass - 1) / 3; + unsigned int step = (1 << shift); + assert(step > 0); + return step; +} + +static unsigned int lm_passOffsetX(lm_context *ctx) +{ + if (!ctx->meshPosition.pass) + return 0; + int passType = (ctx->meshPosition.pass - 1) % 3; + unsigned int halfStep = lm_passStepSize(ctx) >> 1; + return passType != 1 ? halfStep : 0; +} + +static unsigned int lm_passOffsetY(lm_context *ctx) +{ + if (!ctx->meshPosition.pass) + return 0; + int passType = (ctx->meshPosition.pass - 1) % 3; + unsigned int halfStep = lm_passStepSize(ctx) >> 1; + return passType != 0 ? halfStep : 0; +} + +static lm_bool lm_hasConservativeTriangleRasterizerFinished(lm_context *ctx) +{ + return ctx->meshPosition.rasterizer.y >= ctx->meshPosition.rasterizer.maxy; +} + +static void lm_moveToNextPotentialConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + unsigned int step = lm_passStepSize(ctx); + ctx->meshPosition.rasterizer.x += step; + while (ctx->meshPosition.rasterizer.x >= ctx->meshPosition.rasterizer.maxx) + { + ctx->meshPosition.rasterizer.x = ctx->meshPosition.rasterizer.minx + lm_passOffsetX(ctx); + ctx->meshPosition.rasterizer.y += step; + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + break; + } +} + +static float *lm_getLightmapPixel(lm_context *ctx, int x, int y) +{ + assert(x >= 0 && x < ctx->lightmap.width && y >= 0 && y < ctx->lightmap.height); + return ctx->lightmap.data + (y * ctx->lightmap.width + x) * ctx->lightmap.channels; +} + +static void lm_setLightmapPixel(lm_context *ctx, int x, int y, float *in) +{ + assert(x >= 0 && x < ctx->lightmap.width && y >= 0 && y < ctx->lightmap.height); + float *p = ctx->lightmap.data + (y * ctx->lightmap.width + x) * ctx->lightmap.channels; + for (int j = 0; j < ctx->lightmap.channels; j++) + *p++ = *in++; +} + +#define lm_baseAngle 0.1f +static const float lm_baseAngles[3][3] = { + { lm_baseAngle, lm_baseAngle + 1.0f / 3.0f, lm_baseAngle + 2.0f / 3.0f }, + { lm_baseAngle + 1.0f / 3.0f, lm_baseAngle + 2.0f / 3.0f, lm_baseAngle }, + { lm_baseAngle + 2.0f / 3.0f, lm_baseAngle, lm_baseAngle + 1.0f / 3.0f } +}; + +static lm_bool lm_trySamplingConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + return LM_FALSE; + + // check if lightmap pixel was already set + float *pixelValue = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + for (int j = 0; j < ctx->lightmap.channels; j++) + if (pixelValue[j] != 0.0f) + return LM_FALSE; + + // try calculating centroid by clipping the pixel against the triangle + lm_vec2 pixel[16]; + pixel[0] = lm_v2i(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + pixel[1] = lm_v2i(ctx->meshPosition.rasterizer.x + 1, ctx->meshPosition.rasterizer.y); + pixel[2] = lm_v2i(ctx->meshPosition.rasterizer.x + 1, ctx->meshPosition.rasterizer.y + 1); + pixel[3] = lm_v2i(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y + 1); + + lm_vec2 res[16]; + int nRes = lm_convexClip(pixel, 4, ctx->meshPosition.triangle.uv, 3, res); + if (nRes == 0) + return LM_FALSE; // nothing left + + // calculate centroid position and area + lm_vec2 centroid = res[0]; + float area = res[nRes - 1].x * res[0].y - res[nRes - 1].y * res[0].x; + for (int i = 1; i < nRes; i++) + { + centroid = lm_add2(centroid, res[i]); + area += res[i - 1].x * res[i].y - res[i - 1].y * res[i].x; + } + centroid = lm_div2(centroid, (float)nRes); + area = lm_absf(area / 2.0f); + + if (area <= 0.0f) + return LM_FALSE; // no area left + + // calculate barycentric coords + lm_vec2 uv = lm_toBarycentric( + ctx->meshPosition.triangle.uv[0], + ctx->meshPosition.triangle.uv[1], + ctx->meshPosition.triangle.uv[2], + centroid); + + if (!lm_finite2(uv)) + return LM_FALSE; // degenerate + + // try to interpolate color from neighbors: + if (ctx->meshPosition.pass > 0) + { + float *neighbors[4]; + int neighborCount = 0; + int neighborsExpected = 0; + int d = (int)lm_passStepSize(ctx) / 2; + int dirs = ((ctx->meshPosition.pass - 1) % 3) + 1; + if (dirs & 1) // check x-neighbors with distance d + { + neighborsExpected += 2; + if (ctx->meshPosition.rasterizer.x - d >= ctx->meshPosition.rasterizer.minx && + ctx->meshPosition.rasterizer.x + d <= ctx->meshPosition.rasterizer.maxx) + { + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x - d, ctx->meshPosition.rasterizer.y); + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x + d, ctx->meshPosition.rasterizer.y); + } + } + if (dirs & 2) // check y-neighbors with distance d + { + neighborsExpected += 2; + if (ctx->meshPosition.rasterizer.y - d >= ctx->meshPosition.rasterizer.miny && + ctx->meshPosition.rasterizer.y + d <= ctx->meshPosition.rasterizer.maxy) + { + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y - d); + neighbors[neighborCount++] = lm_getLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y + d); + } + } + if (neighborCount == neighborsExpected) // are all interpolation neighbors available? + { + // calculate average neighbor pixel value + float avg[4] = { 0 }; + for (int i = 0; i < neighborCount; i++) + for (int j = 0; j < ctx->lightmap.channels; j++) + avg[j] += neighbors[i][j]; + float ni = 1.0f / neighborCount; + for (int j = 0; j < ctx->lightmap.channels; j++) + avg[j] *= ni; + + // check if error from average pixel to neighbors is above the interpolation threshold + lm_bool interpolate = LM_TRUE; + for (int i = 0; i < neighborCount; i++) + { + lm_bool zero = LM_TRUE; + for (int j = 0; j < ctx->lightmap.channels; j++) + { + if (neighbors[i][j] != 0.0f) + zero = LM_FALSE; + if (fabs(neighbors[i][j] - avg[j]) > ctx->interpolationThreshold) + interpolate = LM_FALSE; + } + if (zero) + interpolate = LM_FALSE; + if (!interpolate) + break; + } + + // set interpolated value and return if interpolation is acceptable + if (interpolate) + { + lm_setLightmapPixel(ctx, ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y, avg); +#ifdef LM_DEBUG_INTERPOLATION + // set interpolated pixel to green in debug output + ctx->lightmap.debug[(ctx->meshPosition.rasterizer.y * ctx->lightmap.width + ctx->meshPosition.rasterizer.x) * 3 + 1] = 255; +#endif + return LM_FALSE; + } + } + } + + // could not interpolate. must render a hemisphere. + // calculate 3D sample position and orientation + lm_vec3 p0 = ctx->meshPosition.triangle.p[0]; + lm_vec3 p1 = ctx->meshPosition.triangle.p[1]; + lm_vec3 p2 = ctx->meshPosition.triangle.p[2]; + lm_vec3 v1 = lm_sub3(p1, p0); + lm_vec3 v2 = lm_sub3(p2, p0); + ctx->meshPosition.sample.position = lm_add3(p0, lm_add3(lm_scale3(v2, uv.x), lm_scale3(v1, uv.y))); + + lm_vec3 n0 = ctx->meshPosition.triangle.n[0]; + lm_vec3 n1 = ctx->meshPosition.triangle.n[1]; + lm_vec3 n2 = ctx->meshPosition.triangle.n[2]; + lm_vec3 nv1 = lm_sub3(n1, n0); + lm_vec3 nv2 = lm_sub3(n2, n0); + ctx->meshPosition.sample.direction = lm_normalize3(lm_add3(n0, lm_add3(lm_scale3(nv2, uv.x), lm_scale3(nv1, uv.y)))); + ctx->meshPosition.sample.direction = lm_normalize3(ctx->meshPosition.sample.direction); + float cameraToSurfaceDistance = (1.0f + ctx->hemisphere.cameraToSurfaceDistanceModifier) * ctx->hemisphere.zNear * sqrtf(2.0f); + ctx->meshPosition.sample.position = lm_add3(ctx->meshPosition.sample.position, lm_scale3(ctx->meshPosition.sample.direction, cameraToSurfaceDistance)); + + if (!lm_finite3(ctx->meshPosition.sample.position) || + !lm_finite3(ctx->meshPosition.sample.direction) || + lm_length3sq(ctx->meshPosition.sample.direction) < 0.5f) // don't allow 0.0f. should always be ~1.0f + return LM_FALSE; + + lm_vec3 up = lm_v3(0.0f, 1.0f, 0.0f); + if (lm_absf(lm_dot3(up, ctx->meshPosition.sample.direction)) > 0.8f) + up = lm_v3(0.0f, 0.0f, 1.0f); + +#if 0 + // triangle-consistent up vector + ctx->meshPosition.sample.up = lm_normalize3(lm_cross3(up, ctx->meshPosition.sample.direction)); + return LM_TRUE; +#else + // "randomized" rotation with pattern + lm_vec3 side = lm_normalize3(lm_cross3(up, ctx->meshPosition.sample.direction)); + up = lm_normalize3(lm_cross3(side, ctx->meshPosition.sample.direction)); + int rx = ctx->meshPosition.rasterizer.x % 3; + int ry = ctx->meshPosition.rasterizer.y % 3; + static const float lm_pi = 3.14159265358979f; + float phi = 2.0f * lm_pi * lm_baseAngles[ry][rx] + 0.1f * ((float)rand() / (float)RAND_MAX); + ctx->meshPosition.sample.up = lm_normalize3(lm_add3(lm_scale3(side, cosf(phi)), lm_scale3(up, sinf(phi)))); + return LM_TRUE; +#endif +} + +// returns true if a sampling position was found and +// false if we finished rasterizing the current triangle +static lm_bool lm_findFirstConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + while (!lm_trySamplingConservativeTriangleRasterizerPosition(ctx)) + { + lm_moveToNextPotentialConservativeTriangleRasterizerPosition(ctx); + if (lm_hasConservativeTriangleRasterizerFinished(ctx)) + return LM_FALSE; + } + return LM_TRUE; +} + +static lm_bool lm_findNextConservativeTriangleRasterizerPosition(lm_context *ctx) +{ + lm_moveToNextPotentialConservativeTriangleRasterizerPosition(ctx); + return lm_findFirstConservativeTriangleRasterizerPosition(ctx); +} + +static void lm_integrateHemisphereBatch(lm_context *ctx) +{ + if (!ctx->hemisphere.fbHemiIndex) + return; // nothing to do + + glDisable(GL_DEPTH_TEST); + glBindVertexArray(ctx->hemisphere.vao); + + int fbRead = 0; + int fbWrite = 1; + + // weighted downsampling pass + int outHemiSize = ctx->hemisphere.size / 2; + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbWrite], 0); + glViewport(0, 0, outHemiSize * ctx->hemisphere.fbHemiCountX, outHemiSize * ctx->hemisphere.fbHemiCountY); + glUseProgram(ctx->hemisphere.firstPass.programID); + glUniform1i(ctx->hemisphere.firstPass.hemispheresTextureID, 0); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbRead]); + glUniform1i(ctx->hemisphere.firstPass.weightsTextureID, 1); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.firstPass.weightsTexture); + glActiveTexture(GL_TEXTURE0); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + //glBindTexture(GL_TEXTURE_2D, 0); + +#if 0 + // debug output + int w = outHemiSize * ctx->hemisphere.fbHemiCountX, h = outHemiSize * ctx->hemisphere.fbHemiCountY; + glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glReadBuffer(GL_COLOR_ATTACHMENT0); + float *image = new float[3 * w * h]; + glReadPixels(0, 0, w, h, GL_RGB, GL_FLOAT, image); + lmImageSaveTGAf("firstpass.png", image, w, h, 3); + delete[] image; +#endif + + // downsampling passes + glUseProgram(ctx->hemisphere.downsamplePass.programID); + glUniform1i(ctx->hemisphere.downsamplePass.hemispheresTextureID, 0); + while (outHemiSize > 1) + { + LM_SWAP(int, fbRead, fbWrite); + outHemiSize /= 2; + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[fbWrite]); + glViewport(0, 0, outHemiSize * ctx->hemisphere.fbHemiCountX, outHemiSize * ctx->hemisphere.fbHemiCountY); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[fbRead]); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + //glBindTexture(GL_TEXTURE_2D, 0); + } + + // copy results to storage texture + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glCopyTexSubImage2D(GL_TEXTURE_2D, 0, + ctx->hemisphere.storage.writePosition.x, ctx->hemisphere.storage.writePosition.y, + 0, 0, ctx->hemisphere.fbHemiCountX, ctx->hemisphere.fbHemiCountY); + glBindTexture(GL_TEXTURE_2D, 0); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindVertexArray(0); + glEnable(GL_DEPTH_TEST); + + // copy position mapping to storage + for (unsigned int y = 0; y < ctx->hemisphere.fbHemiCountY; y++) + { + int sy = ctx->hemisphere.storage.writePosition.y + y; + for (unsigned int x = 0; x < ctx->hemisphere.fbHemiCountX; x++) + { + int sx = ctx->hemisphere.storage.writePosition.x + x; + unsigned int hemiIndex = y * ctx->hemisphere.fbHemiCountX + x; + if (hemiIndex >= ctx->hemisphere.fbHemiIndex) + ctx->hemisphere.storage.toLightmapLocation[sy * ctx->lightmap.width + sx] = lm_i2(-1, -1); + else + ctx->hemisphere.storage.toLightmapLocation[sy * ctx->lightmap.width + sx] = ctx->hemisphere.fbHemiToLightmapLocation[hemiIndex]; + } + } + + // advance storage texture write position + ctx->hemisphere.storage.writePosition.x += ctx->hemisphere.fbHemiCountX; + if (ctx->hemisphere.storage.writePosition.x + (int)ctx->hemisphere.fbHemiCountX > ctx->lightmap.width) + { + ctx->hemisphere.storage.writePosition.x = 0; + ctx->hemisphere.storage.writePosition.y += ctx->hemisphere.fbHemiCountY; + assert(ctx->hemisphere.storage.writePosition.y + (int)ctx->hemisphere.fbHemiCountY < ctx->lightmap.height); + } + + ctx->hemisphere.fbHemiIndex = 0; +} + +static void lm_writeResultsToLightmap(lm_context *ctx) +{ + // do the GPU->CPU transfer of downsampled hemispheres + float *hemi = (float*)LM_CALLOC(ctx->lightmap.width * ctx->lightmap.height, 4 * sizeof(float)); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_FLOAT, hemi); + + // write results to lightmap texture + for (int y = 0; y < ctx->hemisphere.storage.writePosition.y + (int)ctx->hemisphere.fbHemiCountY; y++) + { + for (int x = 0; x < ctx->lightmap.width; x++) + { + lm_ivec2 lmUV = ctx->hemisphere.storage.toLightmapLocation[y * ctx->lightmap.width + x]; + if (lmUV.x >= 0) + { + float *c = hemi + (y * ctx->lightmap.width + x) * 4; + float validity = c[3]; + float *lm = ctx->lightmap.data + (lmUV.y * ctx->lightmap.width + lmUV.x) * ctx->lightmap.channels; + if (!lm[0] && validity > 0.9) + { + float scale = 1.0f / validity; + switch (ctx->lightmap.channels) + { + case 1: + lm[0] = lm_maxf((c[0] + c[1] + c[2]) * scale / 3.0f, FLT_MIN); + break; + case 2: + lm[0] = lm_maxf((c[0] + c[1] + c[2]) * scale / 3.0f, FLT_MIN); + lm[1] = 1.0f; // do we want to support this format? + break; + case 3: + lm[0] = lm_maxf(c[0] * scale, FLT_MIN); + lm[1] = lm_maxf(c[1] * scale, FLT_MIN); + lm[2] = lm_maxf(c[2] * scale, FLT_MIN); + break; + case 4: + lm[0] = lm_maxf(c[0] * scale, FLT_MIN); + lm[1] = lm_maxf(c[1] * scale, FLT_MIN); + lm[2] = lm_maxf(c[2] * scale, FLT_MIN); + lm[3] = 1.0f; + break; + default: + assert(LM_FALSE); + break; + } + +#ifdef LM_DEBUG_INTERPOLATION + // set sampled pixel to red in debug output + ctx->lightmap.debug[(lmUV.y * ctx->lightmap.width + lmUV.x) * 3 + 0] = 255; +#endif + } + } + ctx->hemisphere.storage.toLightmapLocation[y * ctx->lightmap.width + x].x = -1; // reset + } + } + + LM_FREE(hemi); + ctx->hemisphere.storage.writePosition = lm_i2(0, 0); +} + +static void lm_setView( + int* viewport, int x, int y, int w, int h, + float* view, lm_vec3 pos, lm_vec3 dir, lm_vec3 up, + float* proj, float l, float r, float b, float t, float n, float f) +{ + // viewport + viewport[0] = x; viewport[1] = y; viewport[2] = w; viewport[3] = h; + + // view matrix: lookAt(pos, pos + dir, up) + lm_vec3 side = lm_cross3(dir, up); + //up = cross(side, dir); + dir = lm_negate3(dir); pos = lm_negate3(pos); + view[ 0] = side.x; view[ 1] = up.x; view[ 2] = dir.x; view[ 3] = 0.0f; + view[ 4] = side.y; view[ 5] = up.y; view[ 6] = dir.y; view[ 7] = 0.0f; + view[ 8] = side.z; view[ 9] = up.z; view[10] = dir.z; view[11] = 0.0f; + view[12] = lm_dot3(side, pos); view[13] = lm_dot3(up, pos); view[14] = lm_dot3(dir, pos); view[15] = 1.0f; + + // projection matrix: frustum(l, r, b, t, n, f) + float ilr = 1.0f / (r - l), ibt = 1.0f / (t - b), ninf = -1.0f / (f - n), n2 = 2.0f * n; + proj[ 0] = n2 * ilr; proj[ 1] = 0.0f; proj[ 2] = 0.0f; proj[ 3] = 0.0f; + proj[ 4] = 0.0f; proj[ 5] = n2 * ibt; proj[ 6] = 0.0f; proj[ 7] = 0.0f; + proj[ 8] = (r + l) * ilr; proj[ 9] = (t + b) * ibt; proj[10] = (f + n) * ninf; proj[11] = -1.0f; + proj[12] = 0.0f; proj[13] = 0.0f; proj[14] = f * n2 * ninf; proj[15] = 0.0f; +} + +// returns true if a hemisphere side was prepared for rendering and +// false if we finished the current hemisphere +static lm_bool lm_beginSampleHemisphere(lm_context *ctx, int* viewport, float* view, float* proj) +{ + if (ctx->meshPosition.hemisphere.side >= 5) + return LM_FALSE; + + if (ctx->meshPosition.hemisphere.side == 0) + { + // prepare hemisphere + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[0]); + if (ctx->hemisphere.fbHemiIndex == 0) + { + // prepare hemisphere batch + glClearColor( // clear to valid background pixels! + ctx->hemisphere.clearColor.r, + ctx->hemisphere.clearColor.g, + ctx->hemisphere.clearColor.b, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + } + ctx->hemisphere.fbHemiToLightmapLocation[ctx->hemisphere.fbHemiIndex] = + lm_i2(ctx->meshPosition.rasterizer.x, ctx->meshPosition.rasterizer.y); + } + + // find the target position in the batch + int x = (ctx->hemisphere.fbHemiIndex % ctx->hemisphere.fbHemiCountX) * ctx->hemisphere.size * 3; + int y = (ctx->hemisphere.fbHemiIndex / ctx->hemisphere.fbHemiCountX) * ctx->hemisphere.size; + + int size = ctx->hemisphere.size; + float zNear = ctx->hemisphere.zNear; + float zFar = ctx->hemisphere.zFar; + + lm_vec3 pos = ctx->meshPosition.sample.position; + lm_vec3 dir = ctx->meshPosition.sample.direction; + lm_vec3 up = ctx->meshPosition.sample.up; + lm_vec3 right = lm_cross3(dir, up); + + // find the view parameters of the hemisphere side that we will render next + // hemisphere layout in the framebuffer: + // +-------+---+---+-------+ + // | | | | D | + // | C | R | L +-------+ + // | | | | U | + // +-------+---+---+-------+ + switch (ctx->meshPosition.hemisphere.side) + { + case 0: // center + lm_setView(viewport, x, y, size, size, + view, pos, dir, up, + proj, -zNear, zNear, -zNear, zNear, zNear, zFar); + break; + case 1: // right + lm_setView(viewport, size + x, y, size / 2, size, + view, pos, right, up, + proj, -zNear, 0.0f, -zNear, zNear, zNear, zFar); + break; + case 2: // left + lm_setView(viewport, size + x + size / 2, y, size / 2, size, + view, pos, lm_negate3(right), up, + proj, 0.0f, zNear, -zNear, zNear, zNear, zFar); + break; + case 3: // down + lm_setView(viewport, 2 * size + x, y + size / 2, size, size / 2, + view, pos, lm_negate3(up), dir, + proj, -zNear, zNear, 0.0f, zNear, zNear, zFar); + break; + case 4: // up + lm_setView(viewport, 2 * size + x, y, size, size / 2, + view, pos, up, lm_negate3(dir), + proj, -zNear, zNear, -zNear, 0.0f, zNear, zFar); + break; + default: + assert(LM_FALSE); + break; + } + + return LM_TRUE; +} + +static void lm_endSampleHemisphere(lm_context *ctx) +{ + if (++ctx->meshPosition.hemisphere.side == 5) + { + // finish hemisphere + glBindFramebuffer(GL_FRAMEBUFFER, 0); + if (++ctx->hemisphere.fbHemiIndex == ctx->hemisphere.fbHemiCountX * ctx->hemisphere.fbHemiCountY) + { + // downsample new hemisphere batch and store the results + lm_integrateHemisphereBatch(ctx); + } + } +} + +static void lm_inverseTranspose(const float *m44, float *n33) +{ + if (!m44) + { + n33[0] = 1.0f; n33[1] = 0.0f; n33[2] = 0.0f; + n33[3] = 0.0f; n33[4] = 1.0f; n33[5] = 0.0f; + n33[6] = 0.0f; n33[7] = 0.0f; n33[8] = 1.0f; + return; + } + + float determinant = m44[ 0] * (m44[ 5] * m44[10] - m44[ 9] * m44[ 6]) + - m44[ 1] * (m44[ 4] * m44[10] - m44[ 6] * m44[ 8]) + + m44[ 2] * (m44[ 4] * m44[ 9] - m44[ 5] * m44[ 8]); + + assert(fabs(determinant) > FLT_EPSILON); + float rcpDeterminant = 1.0f / determinant; + + n33[0] = (m44[ 5] * m44[10] - m44[ 9] * m44[ 6]) * rcpDeterminant; + n33[3] = -(m44[ 1] * m44[10] - m44[ 2] * m44[ 9]) * rcpDeterminant; + n33[6] = (m44[ 1] * m44[ 6] - m44[ 2] * m44[ 5]) * rcpDeterminant; + n33[1] = -(m44[ 4] * m44[10] - m44[ 6] * m44[ 8]) * rcpDeterminant; + n33[4] = (m44[ 0] * m44[10] - m44[ 2] * m44[ 8]) * rcpDeterminant; + n33[7] = -(m44[ 0] * m44[ 6] - m44[ 4] * m44[ 2]) * rcpDeterminant; + n33[2] = (m44[ 4] * m44[ 9] - m44[ 8] * m44[ 5]) * rcpDeterminant; + n33[5] = -(m44[ 0] * m44[ 9] - m44[ 8] * m44[ 1]) * rcpDeterminant; + n33[8] = (m44[ 0] * m44[ 5] - m44[ 4] * m44[ 1]) * rcpDeterminant; +} + +static lm_vec3 lm_transformNormal(const float *m, lm_vec3 n) +{ + lm_vec3 r; + r.x = m[0] * n.x + m[3] * n.y + m[6] * n.z; + r.y = m[1] * n.x + m[4] * n.y + m[7] * n.z; + r.z = m[2] * n.x + m[5] * n.y + m[8] * n.z; + return r; +} + +static lm_vec3 lm_transformPosition(const float *m, lm_vec3 v) +{ + if (!m) + return v; + lm_vec3 r; + r.x = m[0] * v.x + m[4] * v.y + m[ 8] * v.z + m[12]; + r.y = m[1] * v.x + m[5] * v.y + m[ 9] * v.z + m[13]; + r.z = m[2] * v.x + m[6] * v.y + m[10] * v.z + m[14]; + float d = m[3] * v.x + m[7] * v.y + m[11] * v.z + m[15]; + assert(lm_absf(d - 1.0f) < 0.00001f); // could divide by d, but this shouldn't be a projection transform! + return r; +} + +static void lm_setMeshPosition(lm_context *ctx, unsigned int indicesTriangleBaseIndex) +{ + // fetch triangle at the specified indicesTriangleBaseIndex + ctx->meshPosition.triangle.baseIndex = indicesTriangleBaseIndex; + + // load and transform triangle to process next + lm_vec2 uvMin = lm_v2(FLT_MAX, FLT_MAX), uvMax = lm_v2(-FLT_MAX, -FLT_MAX); + lm_vec2 uvScale = lm_v2i(ctx->lightmap.width, ctx->lightmap.height); + unsigned int vIndices[3]; + for (int i = 0; i < 3; i++) + { + // decode index + unsigned int vIndex; + switch (ctx->mesh.indicesType) + { + case LM_NONE: + vIndex = ctx->meshPosition.triangle.baseIndex + i; + break; + case LM_UNSIGNED_BYTE: + vIndex = ((const unsigned char*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + case LM_UNSIGNED_SHORT: + vIndex = ((const unsigned short*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + case LM_UNSIGNED_INT: + vIndex = ((const unsigned int*)ctx->mesh.indices + ctx->meshPosition.triangle.baseIndex)[i]; + break; + default: + assert(LM_FALSE); + break; + } + vIndices[i] = vIndex; + + // decode and pre-transform vertex position + const void *pPtr = ctx->mesh.positions + vIndex * ctx->mesh.positionsStride; + lm_vec3 p; + switch (ctx->mesh.positionsType) + { + // TODO: signed formats + case LM_UNSIGNED_BYTE: { + const unsigned char *uc = (const unsigned char*)pPtr; + p = lm_v3(uc[0], uc[1], uc[2]); + } break; + case LM_UNSIGNED_SHORT: { + const unsigned short *us = (const unsigned short*)pPtr; + p = lm_v3(us[0], us[1], us[2]); + } break; + case LM_UNSIGNED_INT: { + const unsigned int *ui = (const unsigned int*)pPtr; + p = lm_v3((float)ui[0], (float)ui[1], (float)ui[2]); + } break; + case LM_FLOAT: { + p = *(const lm_vec3*)pPtr; + } break; + default: { + assert(LM_FALSE); + } break; + } + ctx->meshPosition.triangle.p[i] = lm_transformPosition(ctx->mesh.modelMatrix, p); + + // decode and scale (to lightmap resolution) vertex lightmap texture coords + const void *uvPtr = ctx->mesh.uvs + vIndex * ctx->mesh.uvsStride; + lm_vec2 uv; + switch (ctx->mesh.uvsType) + { + case LM_UNSIGNED_BYTE: { + const unsigned char *uc = (const unsigned char*)uvPtr; + uv = lm_v2(uc[0] / (float)UCHAR_MAX, uc[1] / (float)UCHAR_MAX); + } break; + case LM_UNSIGNED_SHORT: { + const unsigned short *us = (const unsigned short*)uvPtr; + uv = lm_v2(us[0] / (float)USHRT_MAX, us[1] / (float)USHRT_MAX); + } break; + case LM_UNSIGNED_INT: { + const unsigned int *ui = (const unsigned int*)uvPtr; + uv = lm_v2(ui[0] / (float)UINT_MAX, ui[1] / (float)UINT_MAX); + } break; + case LM_FLOAT: { + uv = *(const lm_vec2*)uvPtr; + } break; + default: { + assert(LM_FALSE); + } break; + } + + ctx->meshPosition.triangle.uv[i] = lm_mul2(lm_pmod2(uv, 1.0f), uvScale); // maybe clamp to 0.0-1.0 instead of pmod? + + // update bounds on lightmap + uvMin = lm_min2(uvMin, ctx->meshPosition.triangle.uv[i]); + uvMax = lm_max2(uvMax, ctx->meshPosition.triangle.uv[i]); + } + + lm_vec3 flatNormal = lm_cross3( + lm_sub3(ctx->meshPosition.triangle.p[1], ctx->meshPosition.triangle.p[0]), + lm_sub3(ctx->meshPosition.triangle.p[2], ctx->meshPosition.triangle.p[0])); + + for (int i = 0; i < 3; i++) + { + // decode and pre-transform vertex normal + const void *nPtr = ctx->mesh.normals + vIndices[i] * ctx->mesh.normalsStride; + lm_vec3 n; + switch (ctx->mesh.normalsType) + { + // TODO: signed formats + case LM_FLOAT: { + n = *(const lm_vec3*)nPtr; + } break; + case LM_NONE: { + n = flatNormal; + } break; + default: { + assert(LM_FALSE); + } break; + } + ctx->meshPosition.triangle.n[i] = lm_normalize3(lm_transformNormal(ctx->mesh.normalMatrix, n)); + } + + // calculate area of interest (on lightmap) for conservative rasterization + lm_vec2 bbMin = lm_floor2(uvMin); + lm_vec2 bbMax = lm_ceil2 (uvMax); + ctx->meshPosition.rasterizer.minx = lm_maxi((int)bbMin.x - 1, 0); + ctx->meshPosition.rasterizer.miny = lm_maxi((int)bbMin.y - 1, 0); + ctx->meshPosition.rasterizer.maxx = lm_mini((int)bbMax.x + 1, ctx->lightmap.width - 1); + ctx->meshPosition.rasterizer.maxy = lm_mini((int)bbMax.y + 1, ctx->lightmap.height - 1); + assert(ctx->meshPosition.rasterizer.minx <= ctx->meshPosition.rasterizer.maxx && + ctx->meshPosition.rasterizer.miny <= ctx->meshPosition.rasterizer.maxy); + ctx->meshPosition.rasterizer.x = ctx->meshPosition.rasterizer.minx + lm_passOffsetX(ctx); + ctx->meshPosition.rasterizer.y = ctx->meshPosition.rasterizer.miny + lm_passOffsetY(ctx); + + // try moving to first valid sample position + if (ctx->meshPosition.rasterizer.x <= ctx->meshPosition.rasterizer.maxx && + ctx->meshPosition.rasterizer.y <= ctx->meshPosition.rasterizer.maxy && + lm_findFirstConservativeTriangleRasterizerPosition(ctx)) + ctx->meshPosition.hemisphere.side = 0; // we can start sampling the hemisphere + else + ctx->meshPosition.hemisphere.side = 5; // no samples on this triangle! put hemisphere sampler into finished state +} + +static GLuint lm_LoadShader(GLenum type, const char *source) +{ + GLuint shader = glCreateShader(type); + if (shader == 0) + { + fprintf(stderr, "Could not create shader!\n"); + return 0; + } + glShaderSource(shader, 1, &source, NULL); + glCompileShader(shader); + GLint compiled; + glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); + if (!compiled) + { + fprintf(stderr, "Could not compile shader!\n"); + GLint infoLen = 0; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); + if (infoLen) + { + char* infoLog = (char*)malloc(infoLen); + glGetShaderInfoLog(shader, infoLen, NULL, infoLog); + fprintf(stderr, "%s\n", infoLog); + free(infoLog); + } + glDeleteShader(shader); + return 0; + } + return shader; +} + +static GLuint lm_LoadProgram(const char *vp, const char *fp) +{ + GLuint program = glCreateProgram(); + if (program == 0) + { + fprintf(stderr, "Could not create program!\n"); + return 0; + } + GLuint vertexShader = lm_LoadShader(GL_VERTEX_SHADER, vp); + GLuint fragmentShader = lm_LoadShader(GL_FRAGMENT_SHADER, fp); + glAttachShader(program, vertexShader); + glAttachShader(program, fragmentShader); + glLinkProgram(program); + glDeleteShader(vertexShader); + glDeleteShader(fragmentShader); + GLint linked; + glGetProgramiv(program, GL_LINK_STATUS, &linked); + if (!linked) + { + fprintf(stderr, "Could not link program!\n"); + GLint infoLen = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &infoLen); + if (infoLen) + { + char* infoLog = (char*)malloc(sizeof(char) * infoLen); + glGetProgramInfoLog(program, infoLen, NULL, infoLog); + fprintf(stderr, "%s\n", infoLog); + free(infoLog); + } + glDeleteProgram(program); + return 0; + } + return program; +} + +static float lm_defaultWeights(float cos_theta, void *userdata) +{ + return 1.0f; +} + +lm_context *lmCreate(int hemisphereSize, float zNear, float zFar, + float clearR, float clearG, float clearB, + int interpolationPasses, float interpolationThreshold, + float cameraToSurfaceDistanceModifier) +{ + assert(hemisphereSize == 512 || hemisphereSize == 256 || hemisphereSize == 128 || + hemisphereSize == 64 || hemisphereSize == 32 || hemisphereSize == 16); + assert(zNear < zFar && zNear > 0.0f); + assert(cameraToSurfaceDistanceModifier >= -1.0f); + assert(interpolationPasses >= 0 && interpolationPasses <= 8); + assert(interpolationThreshold >= 0.0f); + + lm_context *ctx = (lm_context*)LM_CALLOC(1, sizeof(lm_context)); + + ctx->meshPosition.passCount = 1 + 3 * interpolationPasses; + ctx->interpolationThreshold = interpolationThreshold; + ctx->hemisphere.size = hemisphereSize; + ctx->hemisphere.zNear = zNear; + ctx->hemisphere.zFar = zFar; + ctx->hemisphere.cameraToSurfaceDistanceModifier = cameraToSurfaceDistanceModifier; + ctx->hemisphere.clearColor.r = clearR; + ctx->hemisphere.clearColor.g = clearG; + ctx->hemisphere.clearColor.b = clearB; + + // calculate hemisphere batch size + ctx->hemisphere.fbHemiCountX = 1536 / (3 * ctx->hemisphere.size); + ctx->hemisphere.fbHemiCountY = 512 / ctx->hemisphere.size; + + // hemisphere batch framebuffers + unsigned int w[] = { + ctx->hemisphere.fbHemiCountX * ctx->hemisphere.size * 3, + ctx->hemisphere.fbHemiCountX * ctx->hemisphere.size / 2 }; + unsigned int h[] = { + ctx->hemisphere.fbHemiCountY * ctx->hemisphere.size, + ctx->hemisphere.fbHemiCountY * ctx->hemisphere.size / 2 }; + + glGenTextures(2, ctx->hemisphere.fbTexture); + glGenFramebuffers(2, ctx->hemisphere.fb); + glGenRenderbuffers(1, &ctx->hemisphere.fbDepth); + + glBindRenderbuffer(GL_RENDERBUFFER, ctx->hemisphere.fbDepth); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, w[0], h[0]); + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[0]); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, ctx->hemisphere.fbDepth); + for (int i = 0; i < 2; i++) + { + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.fbTexture[i]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, w[i], h[i], 0, GL_RGBA, GL_FLOAT, 0); + + glBindFramebuffer(GL_FRAMEBUFFER, ctx->hemisphere.fb[i]); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, ctx->hemisphere.fbTexture[i], 0); + GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + if (status != GL_FRAMEBUFFER_COMPLETE) + { + fprintf(stderr, "Could not create framebuffer!\n"); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + } + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + // dummy vao for fullscreen quad rendering + glGenVertexArrays(1, &ctx->hemisphere.vao); + + // hemisphere shader (weighted downsampling of the 3x1 hemisphere layout to a 0.5x0.5 square) + { + const char *vs = + "#version 150 core\n" + "const vec2 ps[4] = vec2[](vec2(1, -1), vec2(1, 1), vec2(-1, -1), vec2(-1, 1));\n" + "void main()\n" + "{\n" + "gl_Position = vec4(ps[gl_VertexID], 0, 1);\n" + "}\n"; + const char *fs = + "#version 150 core\n" + "uniform sampler2D hemispheres;\n" + "uniform sampler2D weights;\n" + + "layout(pixel_center_integer) in vec4 gl_FragCoord;\n" // whole integer values represent pixel centers, GL_ARB_fragment_coord_conventions + + "out vec4 outColor;\n" + + "vec4 weightedSample(ivec2 h_uv, ivec2 w_uv, ivec2 quadrant)\n" + "{\n" + "vec4 sample = texelFetch(hemispheres, h_uv + quadrant, 0);\n" + "vec2 weight = texelFetch(weights, w_uv + quadrant, 0).rg;\n" + "return vec4(sample.rgb * weight.r, sample.a * weight.g);\n" + "}\n" + + "vec4 threeWeightedSamples(ivec2 h_uv, ivec2 w_uv, ivec2 offset)\n" + "{\n" // horizontal triple sum + "vec4 sum = weightedSample(h_uv, w_uv, offset);\n" + "sum += weightedSample(h_uv, w_uv, offset + ivec2(2, 0));\n" + "sum += weightedSample(h_uv, w_uv, offset + ivec2(4, 0));\n" + "return sum;\n" + "}\n" + + "void main()\n" + "{\n" // this is a weighted sum downsampling pass (alpha component contains the weighted valid sample count) + "vec2 in_uv = gl_FragCoord.xy * vec2(6.0, 2.0) + vec2(0.5);\n" + "ivec2 h_uv = ivec2(in_uv);\n" + "ivec2 w_uv = ivec2(mod(in_uv, vec2(textureSize(weights, 0))));\n" // there's no integer modulo :( + "vec4 lb = threeWeightedSamples(h_uv, w_uv, ivec2(0, 0));\n" + "vec4 rb = threeWeightedSamples(h_uv, w_uv, ivec2(1, 0));\n" + "vec4 lt = threeWeightedSamples(h_uv, w_uv, ivec2(0, 1));\n" + "vec4 rt = threeWeightedSamples(h_uv, w_uv, ivec2(1, 1));\n" + "outColor = lb + rb + lt + rt;\n" + "}\n"; + ctx->hemisphere.firstPass.programID = lm_LoadProgram(vs, fs); + if (!ctx->hemisphere.firstPass.programID) + { + fprintf(stderr, "Error loading the hemisphere first pass shader program... leaving!\n"); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + ctx->hemisphere.firstPass.hemispheresTextureID = glGetUniformLocation(ctx->hemisphere.firstPass.programID, "hemispheres"); + ctx->hemisphere.firstPass.weightsTextureID = glGetUniformLocation(ctx->hemisphere.firstPass.programID, "weights"); + } + + // downsample shader + { + const char *vs = + "#version 150 core\n" + "const vec2 ps[4] = vec2[](vec2(1, -1), vec2(1, 1), vec2(-1, -1), vec2(-1, 1));\n" + "void main()\n" + "{\n" + "gl_Position = vec4(ps[gl_VertexID], 0, 1);\n" + "}\n"; + const char *fs = + "#version 150 core\n" + "uniform sampler2D hemispheres;\n" + + "layout(pixel_center_integer) in vec4 gl_FragCoord;\n" // whole integer values represent pixel centers, GL_ARB_fragment_coord_conventions + + "out vec4 outColor;\n" + + "void main()\n" + "{\n" // this is a sum downsampling pass (alpha component contains the weighted valid sample count) + "ivec2 h_uv = ivec2(gl_FragCoord.xy) * 2;\n" + "vec4 lb = texelFetch(hemispheres, h_uv + ivec2(0, 0), 0);\n" + "vec4 rb = texelFetch(hemispheres, h_uv + ivec2(1, 0), 0);\n" + "vec4 lt = texelFetch(hemispheres, h_uv + ivec2(0, 1), 0);\n" + "vec4 rt = texelFetch(hemispheres, h_uv + ivec2(1, 1), 0);\n" + "outColor = lb + rb + lt + rt;\n" + "}\n"; + ctx->hemisphere.downsamplePass.programID = lm_LoadProgram(vs, fs); + if (!ctx->hemisphere.downsamplePass.programID) + { + fprintf(stderr, "Error loading the hemisphere downsample pass shader program... leaving!\n"); + glDeleteProgram(ctx->hemisphere.firstPass.programID); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + LM_FREE(ctx); + return NULL; + } + ctx->hemisphere.downsamplePass.hemispheresTextureID = glGetUniformLocation(ctx->hemisphere.downsamplePass.programID, "hemispheres"); + } + + // hemisphere weights texture + glGenTextures(1, &ctx->hemisphere.firstPass.weightsTexture); + lmSetHemisphereWeights(ctx, lm_defaultWeights, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + + // allocate batchPosition-to-lightmapPosition map + ctx->hemisphere.fbHemiToLightmapLocation = (lm_ivec2*)LM_CALLOC(ctx->hemisphere.fbHemiCountX * ctx->hemisphere.fbHemiCountY, sizeof(lm_ivec2)); + + return ctx; +} + +void lmDestroy(lm_context *ctx) +{ + // reset state + glUseProgram(0); + glBindTexture(GL_TEXTURE_2D, 0); + glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); + glBindVertexArray(0); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + + // delete gl objects + glDeleteTextures(1, &ctx->hemisphere.firstPass.weightsTexture); + glDeleteTextures(1, &ctx->hemisphere.storage.texture); + glDeleteProgram(ctx->hemisphere.downsamplePass.programID); + glDeleteProgram(ctx->hemisphere.firstPass.programID); + glDeleteVertexArrays(1, &ctx->hemisphere.vao); + glDeleteRenderbuffers(1, &ctx->hemisphere.fbDepth); + glDeleteFramebuffers(2, ctx->hemisphere.fb); + glDeleteTextures(2, ctx->hemisphere.fbTexture); + glDeleteTextures(1, &ctx->hemisphere.storage.texture); + + // free memory + LM_FREE(ctx->hemisphere.storage.toLightmapLocation); + LM_FREE(ctx->hemisphere.fbHemiToLightmapLocation); +#ifdef LM_DEBUG_INTERPOLATION + LM_FREE(ctx->lightmap.debug); +#endif + LM_FREE(ctx); +} + +void lmSetHemisphereWeights(lm_context *ctx, lm_weight_func f, void *userdata) +{ + // hemisphere weights texture. bakes in material dependent attenuation behaviour. + float *weights = (float*)LM_CALLOC(2 * 3 * ctx->hemisphere.size * ctx->hemisphere.size, sizeof(float)); + float center = (ctx->hemisphere.size - 1) * 0.5f; + double sum = 0.0; + for (unsigned int y = 0; y < ctx->hemisphere.size; y++) + { + float dy = 2.0f * (y - center) / (float)ctx->hemisphere.size; + for (unsigned int x = 0; x < ctx->hemisphere.size; x++) + { + float dx = 2.0f * (x - center) / (float)ctx->hemisphere.size; + lm_vec3 v = lm_normalize3(lm_v3(dx, dy, 1.0f)); + + float solidAngle = v.z * v.z * v.z; + + float *w0 = weights + 2 * (y * (3 * ctx->hemisphere.size) + x); + float *w1 = w0 + 2 * ctx->hemisphere.size; + float *w2 = w1 + 2 * ctx->hemisphere.size; + + // center weights + w0[0] = solidAngle * f(v.z, userdata); + w0[1] = solidAngle; + + // left/right side weights + w1[0] = solidAngle * f(lm_absf(v.x), userdata); + w1[1] = solidAngle; + + // up/down side weights + w2[0] = solidAngle * f(lm_absf(v.y), userdata); + w2[1] = solidAngle; + + sum += 3.0 * (double)solidAngle; + } + } + + // normalize weights + float weightScale = (float)(1.0 / sum); + for (unsigned int i = 0; i < 2 * 3 * ctx->hemisphere.size * ctx->hemisphere.size; i++) + weights[i] *= weightScale; + + // upload weight texture + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.firstPass.weightsTexture); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RG32F, 3 * ctx->hemisphere.size, ctx->hemisphere.size, 0, GL_RG, GL_FLOAT, weights); + LM_FREE(weights); +} + +void lmSetTargetLightmap(lm_context *ctx, float *outLightmap, int w, int h, int c) +{ + ctx->lightmap.data = outLightmap; + ctx->lightmap.width = w; + ctx->lightmap.height = h; + ctx->lightmap.channels = c; + + // allocate storage texture + if (!ctx->hemisphere.storage.texture) + glGenTextures(1, &ctx->hemisphere.storage.texture); + glBindTexture(GL_TEXTURE_2D, ctx->hemisphere.storage.texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, w, h, 0, GL_RGBA, GL_FLOAT, 0); + + // allocate storage position to lightmap position map + if (ctx->hemisphere.storage.toLightmapLocation) + LM_FREE(ctx->hemisphere.storage.toLightmapLocation); + ctx->hemisphere.storage.toLightmapLocation = (lm_ivec2*)LM_CALLOC(w * h, sizeof(lm_ivec2)); + // invalidate all positions + for (int i = 0; i < w * h; i++) + ctx->hemisphere.storage.toLightmapLocation[i].x = -1; + +#ifdef LM_DEBUG_INTERPOLATION + if (ctx->lightmap.debug) + LM_FREE(ctx->lightmap.debug); + ctx->lightmap.debug = (unsigned char*)LM_CALLOC(ctx->lightmap.width * ctx->lightmap.height, 3); +#endif +} + +void lmSetGeometry(lm_context *ctx, + const float *transformationMatrix, + lm_type positionsType, const void *positionsXYZ, int positionsStride, + lm_type normalsType, const void *normalsXYZ, int normalsStride, + lm_type lightmapCoordsType, const void *lightmapCoordsUV, int lightmapCoordsStride, + int count, lm_type indicesType, const void *indices) +{ + ctx->mesh.modelMatrix = transformationMatrix; + ctx->mesh.positions = (const unsigned char*)positionsXYZ; + ctx->mesh.positionsType = positionsType; + ctx->mesh.positionsStride = positionsStride == 0 ? sizeof(lm_vec3) : positionsStride; + ctx->mesh.normals = (const unsigned char*)normalsXYZ; + ctx->mesh.normalsType = normalsType; + ctx->mesh.normalsStride = normalsStride == 0 ? sizeof(lm_vec3) : normalsStride; + ctx->mesh.uvs = (const unsigned char*)lightmapCoordsUV; + ctx->mesh.uvsType = lightmapCoordsType; + ctx->mesh.uvsStride = lightmapCoordsStride == 0 ? sizeof(lm_vec2) : lightmapCoordsStride; + ctx->mesh.indicesType = indicesType; + ctx->mesh.indices = (const unsigned char*)indices; + ctx->mesh.count = count; + + lm_inverseTranspose(transformationMatrix, ctx->mesh.normalMatrix); + + ctx->meshPosition.pass = 0; + lm_setMeshPosition(ctx, 0); +} + +lm_bool lmBegin(lm_context *ctx, int* outViewport4, float* outView4x4, float* outProjection4x4) +{ + assert(ctx->meshPosition.triangle.baseIndex < ctx->mesh.count); + while (!lm_beginSampleHemisphere(ctx, outViewport4, outView4x4, outProjection4x4)) + { // as long as there are no hemisphere sides to render... + // try moving to the next rasterizer position + if (lm_findNextConservativeTriangleRasterizerPosition(ctx)) + { // if we successfully moved to the next sample position on the current triangle... + ctx->meshPosition.hemisphere.side = 0; // start sampling a hemisphere there + } + else + { // if there are no valid sample positions on the current triangle... + if (ctx->meshPosition.triangle.baseIndex + 3 < ctx->mesh.count) + { // ...and there are triangles left: move to the next triangle and continue sampling. + lm_setMeshPosition(ctx, ctx->meshPosition.triangle.baseIndex + 3); + } + else + { // ...and there are no triangles left: finish + lm_integrateHemisphereBatch(ctx); // integrate and store last batch + lm_writeResultsToLightmap(ctx); // read storage data from gpu memory and write it to the lightmap + + if (++ctx->meshPosition.pass == ctx->meshPosition.passCount) + { + ctx->meshPosition.pass = 0; + ctx->meshPosition.triangle.baseIndex = ctx->mesh.count; // set end condition (in case someone accidentally calls lmBegin again) + +#ifdef LM_DEBUG_INTERPOLATION + lmImageSaveTGAub("debug_interpolation.tga", ctx->lightmap.debug, ctx->lightmap.width, ctx->lightmap.height, 3); + + // lightmap texel statistics + int rendered = 0, interpolated = 0, wasted = 0; + for (int y = 0; y < ctx->lightmap.height; y++) + { + for (int x = 0; x < ctx->lightmap.width; x++) + { + if (ctx->lightmap.debug[(y * ctx->lightmap.width + x) * 3 + 0]) + rendered++; + else if (ctx->lightmap.debug[(y * ctx->lightmap.width + x) * 3 + 1]) + interpolated++; + else + wasted++; + } + } + int used = rendered + interpolated; + int total = used + wasted; + printf("\n#######################################################################\n"); + printf("%10d %6.2f%% rendered hemicubes integrated to lightmap texels.\n", rendered, 100.0f * (float)rendered / (float)total); + printf("%10d %6.2f%% interpolated lightmap texels.\n", interpolated, 100.0f * (float)interpolated / (float)total); + printf("%10d %6.2f%% wasted lightmap texels.\n", wasted, 100.0f * (float)wasted / (float)total); + printf("\n%17.2f%% of used texels were rendered.\n", 100.0f * (float)rendered / (float)used); + printf("#######################################################################\n"); +#endif + + return LM_FALSE; + } + + lm_setMeshPosition(ctx, 0); // start over with the next pass + } + } + } + return LM_TRUE; +} + +float lmProgress(lm_context *ctx) +{ + float passProgress = (float)ctx->meshPosition.triangle.baseIndex / (float)ctx->mesh.count; + return ((float)ctx->meshPosition.pass + passProgress) / (float)ctx->meshPosition.passCount; +} + +void lmEnd(lm_context *ctx) +{ + lm_endSampleHemisphere(ctx); +} + +// these are not performance tuned since their impact on the whole lightmapping duration is insignificant +float lmImageMin(const float *image, int w, int h, int c, int m) +{ + assert(c > 0 && m); + float minValue = FLT_MAX; + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + minValue = lm_minf(minValue, image[i * c + j]); + return minValue; +} + +float lmImageMax(const float *image, int w, int h, int c, int m) +{ + assert(c > 0 && m); + float maxValue = 0.0f; + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + maxValue = lm_maxf(maxValue, image[i * c + j]); + return maxValue; +} + +void lmImageAdd(float *image, int w, int h, int c, float value, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] += value; +} + +void lmImageScale(float *image, int w, int h, int c, float factor, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] *= factor; +} + +void lmImagePower(float *image, int w, int h, int c, float exponent, int m) +{ + assert(c > 0 && m); + for (int i = 0; i < w * h; i++) + for (int j = 0; j < c; j++) + if (m & (1 << j)) + image[i * c + j] = powf(image[i * c + j], exponent); +} + +void lmImageDilate(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h; y++) + { + for (int x = 0; x < w; x++) + { + float color[4]; + lm_bool valid = LM_FALSE; + for (int i = 0; i < c; i++) + { + color[i] = image[(y * w + x) * c + i]; + valid |= color[i] > 0.0f; + } + if (!valid) + { + int n = 0; + const int dx[] = { -1, 0, 1, 0 }; + const int dy[] = { 0, 1, 0, -1 }; + for (int d = 0; d < 4; d++) + { + int cx = x + dx[d]; + int cy = y + dy[d]; + if (cx >= 0 && cx < w && cy >= 0 && cy < h) + { + float dcolor[4]; + lm_bool dvalid = LM_FALSE; + for (int i = 0; i < c; i++) + { + dcolor[i] = image[(cy * w + cx) * c + i]; + dvalid |= dcolor[i] > 0.0f; + } + if (dvalid) + { + for (int i = 0; i < c; i++) + color[i] += dcolor[i]; + n++; + } + } + } + if (n) + { + float in = 1.0f / n; + for (int i = 0; i < c; i++) + color[i] *= in; + } + } + for (int i = 0; i < c; i++) + outImage[(y * w + x) * c + i] = color[i]; + } + } +} + +void lmImageSmooth(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h; y++) + { + for (int x = 0; x < w; x++) + { + float color[4] = {0}; + int n = 0; + for (int dy = -1; dy <= 1; dy++) + { + int cy = y + dy; + for (int dx = -1; dx <= 1; dx++) + { + int cx = x + dx; + if (cx >= 0 && cx < w && cy >= 0 && cy < h) + { + lm_bool valid = LM_FALSE; + for (int i = 0; i < c; i++) + valid |= image[(cy * w + cx) * c + i] > 0.0f; + if (valid) + { + for (int i = 0; i < c; i++) + color[i] += image[(cy * w + cx) * c + i]; + n++; + } + } + } + } + for (int i = 0; i < c; i++) + outImage[(y * w + x) * c + i] = n ? color[i] / n : 0.0f; + } + } +} + +void lmImageDownsample(const float *image, float *outImage, int w, int h, int c) +{ + assert(c > 0 && c <= 4); + for (int y = 0; y < h / 2; y++) + { + for (int x = 0; x < w / 2; x++) + { + int p0 = 2 * (y * w + x) * c; + int p1 = p0 + w * c; + int valid[2][2] = {0}; + float sums[4] = {0}; + for (int i = 0; i < c; i++) + { + valid[0][0] |= image[p0 + i] != 0.0f ? 1 : 0; + valid[0][1] |= image[p0 + c + i] != 0.0f ? 1 : 0; + valid[1][0] |= image[p1 + i] != 0.0f ? 1 : 0; + valid[1][1] |= image[p1 + c + i] != 0.0f ? 1 : 0; + sums[i] += image[p0 + i] + image[p0 + c + i] + image[p1 + i] + image[p1 + c + i]; + } + int n = valid[0][0] + valid[0][1] + valid[1][0] + valid[1][1]; + int p = (y * w / 2 + x) * c; + for (int i = 0; i < c; i++) + outImage[p + i] = n ? sums[i] / n : 0.0f; + } + } +} + +void lmImageFtoUB(const float *image, unsigned char *outImage, int w, int h, int c, float max) +{ + assert(c > 0); + float scale = 255.0f / (max != 0.0f ? max : lmImageMax(image, w, h, c, LM_ALL_CHANNELS)); + for (int i = 0; i < w * h * c; i++) + outImage[i] = (unsigned char)lm_minf(lm_maxf(image[i] * scale, 0.0f), 255.0f); +} + +// TGA output helpers +static void lm_swapRandBub(unsigned char *image, int w, int h, int c) +{ + assert(c >= 3); + for (int i = 0; i < w * h * c; i += c) + LM_SWAP(unsigned char, image[i], image[i + 2]); +} + +lm_bool lmImageSaveTGAub(const char *filename, const unsigned char *image, int w, int h, int c) +{ + assert(c == 1 || c == 3 || c == 4); + lm_bool isGreyscale = c == 1; + lm_bool hasAlpha = c == 4; + unsigned char header[18] = { + 0, 0, (unsigned char)(isGreyscale ? 3 : 2), 0, 0, 0, 0, 0, 0, 0, 0, 0, + (unsigned char)(w & 0xff), (unsigned char)((w >> 8) & 0xff), (unsigned char)(h & 0xff), (unsigned char)((h >> 8) & 0xff), + (unsigned char)(8 * c), (unsigned char)(hasAlpha ? 8 : 0) + }; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + FILE *file; + if (fopen_s(&file, filename, "wb") != 0) return LM_FALSE; +#else + FILE *file = fopen(filename, "wb"); + if (!file) return LM_FALSE; +#endif + fwrite(header, 1, sizeof(header), file); + + // we make sure to swap it back! trust me. :) + if (!isGreyscale) + lm_swapRandBub((unsigned char*)image, w, h, c); + fwrite(image, 1, w * h * c , file); + if (!isGreyscale) + lm_swapRandBub((unsigned char*)image, w, h, c); + + fclose(file); + return LM_TRUE; +} + +lm_bool lmImageSaveTGAf(const char *filename, const float *image, int w, int h, int c, float max) +{ + unsigned char *temp = (unsigned char*)LM_CALLOC(w * h * c, sizeof(unsigned char)); + lmImageFtoUB(image, temp, w, h, c, max); + lm_bool success = lmImageSaveTGAub(filename, temp, w, h, c); + LM_FREE(temp); + return success; +} + +#endif // LIGHTMAPPER_IMPLEMENTATION +#line 0 + #endif // V4K_3RD diff --git a/engine/v4k.c b/engine/v4k.c index dc08b79..eb56f8d 100644 --- a/engine/v4k.c +++ b/engine/v4k.c @@ -11128,17 +11128,23 @@ void *gui_userdata() { return last_skin->userdata; } -vec2 gui_getskinsize(const char *skin) { +vec2 gui_getskinsize(const char *skin, const char *fallback) { vec2 size={0}; - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &size); + if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, fallback, &size); return size; } -bool gui_ismouseinrect(const char *skin, vec4 rect) { - if (last_skin->ismouseinrect) return last_skin->ismouseinrect(last_skin->userdata, skin, rect); +bool gui_ismouseinrect(const char *skin, const char *fallback, vec4 rect) { + if (last_skin->ismouseinrect) return last_skin->ismouseinrect(last_skin->userdata, skin, fallback, rect); return false; } +vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect) { + vec4 scissor = rect; + if (last_skin->getscissorrect) last_skin->getscissorrect(last_skin->userdata, skin, fallback, rect, &scissor); + return scissor; +} + static gui_state_t *gui_getstate(int id) { if (!ctl_states) map_init(ctl_states, less_int, hash_int); @@ -11148,8 +11154,8 @@ gui_state_t *gui_getstate(int id) { void gui_panel_id(int id, vec4 rect, const char *skin) { (void)id; vec4 scissor={0, 0, window_width(), window_height()}; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, rect); - if (last_skin->getscissorrect) last_skin->getscissorrect(last_skin->userdata, skin, rect, &scissor); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, NULL, rect); + scissor = gui_getscissorrect(skin, NULL, rect); if (!array_count(scissor_rects)) glEnable(GL_SCISSOR_TEST); @@ -11174,7 +11180,7 @@ bool gui_button_id(int id, vec4 r, const char *skin) { skin=skin?skin:"button"; char *btn = va("%s%s", skin, entry->held?"_press":entry->hover?"_hover":""); - if (gui_ismouseinrect(btn, r)) { + if (gui_ismouseinrect(btn, skin, r)) { if (input_up(MOUSE_L) && entry->held) { was_clicked=1; } @@ -11184,24 +11190,27 @@ bool gui_button_id(int id, vec4 r, const char *skin) { entry->hover = true; } } - else if (input_up(MOUSE_L) && entry->held) { - entry->held = false; - any_widget_used = false; - } else { entry->hover = false; } - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, btn, r); + if (input_up(MOUSE_L) && entry->held) { + entry->held = false; + any_widget_used = false; + } + + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, btn, skin, r); return was_clicked; } bool gui_button_label_id(int id, const char *text, vec4 rect, const char *skin) { + gui_state_t *entry = gui_getstate(id); bool state = gui_button_id(id, rect, skin); vec2 buttonsize={0}; skin=skin?skin:"button"; - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &buttonsize); + char *btn = va("%s%s", skin, entry->held?"_press":entry->hover?"_hover":""); + buttonsize = gui_getskinsize(btn, skin); vec2 textsize = font_rect(text); vec2 pos; @@ -11234,7 +11243,8 @@ bool gui_slider_id(int id, vec4 rect, const char *skin, float min, float max, fl skin = skin?skin:"slider"; char *cursorskin = va("%s_cursor%s", skin, entry->held?"_press":entry->hover?"_hover":""); - if (gui_ismouseinrect(skin, rect) && !any_widget_used) { + char *fbcursor = va("%s_cursor", skin); + if (gui_ismouseinrect(skin, NULL, rect) && !any_widget_used) { any_widget_used = entry->held = input_held(MOUSE_L); entry->hover = true; } @@ -11247,13 +11257,12 @@ bool gui_slider_id(int id, vec4 rect, const char *skin, float min, float max, fl } float old_value = *value; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, rect); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, NULL, rect); vec2 slidersize={0}, cursorsize={0}; - vec4 usablerect=rect; - if (last_skin->getscissorrect) last_skin->getscissorrect(last_skin->userdata, skin, rect, &usablerect); - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &slidersize); - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, cursorskin, &cursorsize); + vec4 usablerect = gui_getscissorrect(skin, NULL, rect); + slidersize = gui_getskinsize(skin, NULL); + cursorsize = gui_getskinsize(cursorskin, fbcursor); if (entry->held) { *value = posx2slider(usablerect, min, max, input(MOUSE_X), step); } @@ -11264,7 +11273,7 @@ bool gui_slider_id(int id, vec4 rect, const char *skin, float min, float max, fl cursorrect.y += cursorpos.y; cursorrect.z = cursorsize.x; cursorrect.w = cursorsize.y; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, cursorskin, cursorrect); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, cursorskin, fbcursor, cursorrect); return entry->held && (old_value!=*value); } @@ -11273,7 +11282,7 @@ bool gui_slider_label_id(int id, const char *text, vec4 rect, const char *skin, bool state = gui_slider_id(id, rect, skin, min, max, step, value); vec2 slidersize={0}; skin=skin?skin:"slider"; - if (last_skin->getskinsize) last_skin->getskinsize(last_skin->userdata, skin, &slidersize); + slidersize = gui_getskinsize(skin, NULL); vec2 textsize = font_rect(text); vec2 pos; @@ -11286,7 +11295,7 @@ bool gui_slider_label_id(int id, const char *text, vec4 rect, const char *skin, void gui_rect_id(int id, vec4 r, const char *skin) { (void)id; - if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, r); + if (last_skin->drawrect) last_skin->drawrect(last_skin->userdata, skin, NULL, r); } void gui_label_id(int id, const char *text, vec4 rect) { @@ -11310,7 +11319,7 @@ atlas_slice_frame_t *skinned_getsliceframe(atlas_t *a, const char *name) { for (int i = 0; i < array_count(a->slices); i++) if (!strcmp(quark_string(&a->db, a->slices[i].name), name)) return &a->slice_frames[a->slices[i].frames[0]]; - PRINTF("slice name: '%s' is missing in atlas!\n", name); + // PRINTF("slice name: '%s' is missing in atlas!\n", name); return NULL; } @@ -11321,9 +11330,10 @@ void skinned_draw_missing_rect(vec4 r) { } static -bool skinned_ismouseinrect(void *userdata, const char *skin, vec4 r) { +bool skinned_ismouseinrect(void *userdata, const char *skin, const char *fallback, vec4 r) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (!f) return false; vec4 outer = f->bounds; @@ -11406,18 +11416,20 @@ void skinned_draw_sprite(float scale, atlas_t *a, atlas_slice_frame_t *f, vec4 r } static -void skinned_draw_rect(void* userdata, const char *skin, vec4 r) { +void skinned_draw_rect(void* userdata, const char *skin, const char *fallback, vec4 r) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (!f) skinned_draw_missing_rect(r); else skinned_draw_sprite(a->scale, &a->atlas, f, r); } -void skinned_getskinsize(void *userdata, const char *skin, vec2 *size) { +void skinned_getskinsize(void *userdata, const char *skin, const char *fallback, vec2 *size) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (f) { size->x = (f->bounds.z-f->bounds.x)*a->scale; size->y = (f->bounds.w-f->bounds.y)*a->scale; @@ -11425,9 +11437,10 @@ void skinned_getskinsize(void *userdata, const char *skin, vec2 *size) { } static -void skinned_getscissorrect(void* userdata, const char *skin, vec4 rect, vec4 *dims) { +void skinned_getscissorrect(void* userdata, const char *skin, const char *fallback, vec4 rect, vec4 *dims) { skinned_t *a = C_CAST(skinned_t*, userdata); atlas_slice_frame_t *f = skinned_getsliceframe(&a->atlas, skin); + if (!f && fallback) f = skinned_getsliceframe(&a->atlas, fallback); if (!f) return; *dims = rect; diff --git a/engine/v4k.h b/engine/v4k.h index a4e6d53..f5253d9 100644 --- a/engine/v4k.h +++ b/engine/v4k.h @@ -3638,6 +3638,13 @@ typedef struct anims_t { API anims_t animations(const char *pathfile, int flags); +// ----------------------------------------------------------------------------- +// lightmapping utils + +typedef struct lightmap_t { + struct lm_context *ctx; // private +} lightmap_t; + // ----------------------------------------------------------------------------- // skyboxes @@ -4184,18 +4191,19 @@ API void sprite_setanim(sprite_t *s, unsigned name); // game ui typedef struct guiskin_t { - void (*drawrect)(void* userdata, const char *skin, vec4 rect); - void (*getskinsize)(void* userdata, const char *skin, vec2 *size); - void (*getscissorrect)(void* userdata, const char *skin, vec4 rect, vec4 *dims); - bool (*ismouseinrect)(void* userdata, const char *skin, vec4 rect); + void (*drawrect)(void* userdata, const char *skin, const char *fallback, vec4 rect); + void (*getskinsize)(void* userdata, const char *skin, const char *fallback, vec2 *size); + void (*getscissorrect)(void* userdata, const char *skin, const char *fallback, vec4 rect, vec4 *dims); + bool (*ismouseinrect)(void* userdata, const char *skin, const char *fallback, vec4 rect); void (*free)(void* userdata); void *userdata; } guiskin_t; API void gui_pushskin(guiskin_t skin); API void* gui_userdata(); -API vec2 gui_getskinsize(const char *skin); -API bool gui_ismouseinrect(const char *skin, vec4 rect); +API vec2 gui_getskinsize(const char *skin, const char *fallback); +API bool gui_ismouseinrect(const char *skin, const char *fallback, vec4 rect); +API vec4 gui_getscissorrect(const char *skin, const char *fallback, vec4 rect); // -- API void gui_panel_id(int id, vec4 rect, const char *skin); API void gui_rect_id(int id, vec4 rect, const char *skin); diff --git a/tools/linswap.c b/tools/linswap.c new file mode 100644 index 0000000..9f81cb6 --- /dev/null +++ b/tools/linswap.c @@ -0,0 +1,34 @@ +#include "v4k.c" + +int main(int argc, char **argv) { + if (argc != 2) { + fprintf(stderr, "usage: %s [file]\n", argv[0]); + fprintf(stderr, "file: %s\n", "source file to process"); + return 1; + } + + char *buf = file_read(argv[1]); + if (!buf) { + fprintf(stderr, "error: %s\n", "file does not exist!"); + return 2; + } + file_delete(argv[1]); + + // determine swap mode + char mode = strstri(buf, "//@#line 1 \"") == NULL; + char **lines = strsplit(buf, "\n"); + + for (int i = 0; i < array_count(lines); i++) { + char *line = STRDUP(lines[i]); + if (!mode) { + strrepl(&line, "//@#line 1 \"", "#line 1 \""); + } else { + strrepl(&line, "#line 1 \"", "//@#line 1 \""); + } + + // printf("%s\n", line); + file_append(argv[1], line, strlen(line)); + } + + return 0; +} diff --git a/tools/linswap.exe b/tools/linswap.exe new file mode 100644 index 0000000000000000000000000000000000000000..3f2e5ab0ee767958d2448b5cc1f2abd26fd181c0 GIT binary patch literal 7620608 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%0A06`S*P`pVGdj-J*y|AJ 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

1Q`-@Ch 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

TD7Z_G+7vT|mk{%Fn^){{7QsoiCP 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

vT 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

U~ZsC>L$`37$9aK5%L+CB_%edgFm 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 zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1pYU>_W!5ZRTl>Qb7!8JdFGk#Uv_t9caz=8m(7x37}uc&sImls z1Og1}64O>;41=%5qMd}%E;d3$%4-FLNd2<*W$T)1T~sti)L5;IxZ0>xM_gO%3)>ME ziHbVnT2srHe$IWK*?pb~)qmjq!+Fh|bI(2Z-1j~A-1FrjK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs 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 literal 0 HcmV?d00001 diff --git a/v4k.sublime-project b/v4k.sublime-project index ced448a..f697819 100644 --- a/v4k.sublime-project +++ b/v4k.sublime-project @@ -3,8 +3,8 @@ [ { "path": ".", - "file_exclude_patterns": ["*.exe.manifest", "*.zip", "*.ilk", "*.exp", "_mirror/", "engine/v4k", "engine/joint/", "engine/split/"], - "index_exclude_patterns": ["engine/joint/v4k.h", "engine/split/**", "_mirror/**"] + "file_exclude_patterns": ["*.exe.manifest", "*.zip", "*.ilk", "*.exp", "_mirror/", "engine/v4k", "engine/joint/", "engine/split/v4k_*"], + "index_exclude_patterns": ["engine/joint/v4k.h", "engine/split/v4k_**", "_mirror/**"] } ], "settings": {