33 lines
1.1 KiB
C++
Executable File
33 lines
1.1 KiB
C++
Executable File
#pragma once
|
|
#include "Deer/Voxel.h"
|
|
|
|
#define LIGHT_PROPAGATION_COMPLEX_DIRS 18
|
|
#define LIGHT_PROPAGATION_COMPLEX_DIR(id, dir) lightPropagationComplexDir[id + dir * 2]
|
|
#define LIGHT_PROPAGATION_SIMPLE_FALL 16
|
|
#define LIGHT_PROPAGATION_COMPLEX_FALL 23
|
|
|
|
#define NORMAL_VERTEX_POS(axis, id, normal) normalFacePositions[axis + id * 3 + normal * 3 * 4]
|
|
#define VERTEX_UV(axis, id) uvFace[axis + id * 2]
|
|
#define AMBIENT_OCCLUSION_VERTEX(axis, id, vertex, normal) ambientOcclusionVertex[axis + id * 3 + vertex * 3 * 2 + normal * 3 * 2 * 4]
|
|
#define LAYER_CHECK_DIRS(axis, id) layerCheckDirections[axis + id * 2]
|
|
|
|
namespace Deer {
|
|
struct VoxelLight;
|
|
extern VoxelLight lightVoxel;
|
|
|
|
extern int lightPropagationComplexDir[12 * 2];
|
|
extern int normalFacePositions[3 * 4 * 6];
|
|
extern int uvFace[2 * 4];
|
|
// 6 Dirs * 4 vertices * 2 checks * 3 dirs
|
|
extern int ambientOcclusionVertex[6 * 4 * 2 * 3];
|
|
extern int layerCheckDirections[2 * 8];
|
|
|
|
struct VoxelLight {
|
|
uint8_t r_light;
|
|
uint8_t g_light;
|
|
uint8_t b_light;
|
|
uint8_t ambient_light;
|
|
|
|
VoxelLight(uint8_t _ambient_light = 0) : r_light(0), g_light(0), b_light(0), ambient_light(_ambient_light) { }
|
|
};
|
|
} |