You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.3 KiB
HLSL

/******************************************************************************/
/*
Project - MudBun
Publisher - Long Bunny Labs
http://LongBunnyLabs.com
Author - Ming-Lun "Allen" Chou
http://AllenChou.net
*/
/******************************************************************************/
#ifndef MUDBUN_VOXEL_DEFS
#define MUDBUN_VOXEL_DEFS
#ifdef MUDBUN_IS_COMPUTE_SHADER
bool enable2dMode;
#endif
bool forceAllBrushes;
struct VoxelNode
{
float3 center;
float sdfValue; // only for leaf nodes
int iParent;
int iBrushMask;
uint key;
int padding;
};
#ifdef MUDBUN_IS_COMPUTE_SHADER
RWStructuredBuffer<VoxelNode> nodePool;
#else
StructuredBuffer<VoxelNode> nodePool;
#endif
uint nodePoolSize;
#ifdef MUDBUN_IS_COMPUTE_SHADER
RWStructuredBuffer<int> aNumNodesAllocated; //(total, L0, L1, ..., voxels)
#else
StructuredBuffer<int> aNumNodesAllocated; //(total, L0, L1, ..., voxels)
#endif
uint chunkVoxelDensity;
int currentNodeDepth;
int currentNodeBranchingFactor;
int maxNodeDepth;
float currentNodeSize;
float voxelSize;
uint voxelTreeBranchingFactorsCompressed;
float4 voxelNodeSizes;
uint4 get_voxel_tree_branching_factors()
{
uint4 factors = 1;
unpack_8888(voxelTreeBranchingFactorsCompressed, factors.x, factors.y, factors.z, factors.w);
return factors;
}
#endif