diff --git a/WickedEngine/shaders/ShaderInterop_Renderer.h b/WickedEngine/shaders/ShaderInterop_Renderer.h index 2b228e382..8002a89aa 100644 --- a/WickedEngine/shaders/ShaderInterop_Renderer.h +++ b/WickedEngine/shaders/ShaderInterop_Renderer.h @@ -593,18 +593,18 @@ struct ShaderMeshInstancePointer { data = 0; } - void Create(uint _instanceIndex, uint frustum_index = 0, float dither = 0) + void Create(uint _instanceIndex, uint camera_index = 0, float dither = 0) { data = 0; data |= _instanceIndex & 0xFFFFFF; - data |= (frustum_index & 0xF) << 24u; + data |= (camera_index & 0xF) << 24u; data |= (uint(dither * 15.0f) & 0xF) << 28u; } uint GetInstanceIndex() { return data & 0xFFFFFF; } - uint GetFrustumIndex() + uint GetCameraIndex() { return (data >> 24u) & 0xF; } diff --git a/WickedEngine/shaders/globals.hlsli b/WickedEngine/shaders/globals.hlsli index ebe64ef6f..ee1403b65 100644 --- a/WickedEngine/shaders/globals.hlsli +++ b/WickedEngine/shaders/globals.hlsli @@ -257,18 +257,17 @@ struct PrimitiveID #define texture_normal bindless_textures_float2[GetCamera().texture_normal_index] #define texture_roughness bindless_textures_float[GetCamera().texture_roughness_index] -#define PI 3.14159265358979323846 -#define SQRT2 1.41421356237309504880 -#define FLT_MAX 3.402823466e+38 -#define FLT_EPSILON 1.192092896e-07 -#define GOLDEN_RATIO 1.6180339887 +static const float PI = 3.14159265358979323846; +static const float SQRT2 = 1.41421356237309504880; +static const float FLT_MAX = 3.402823466e+38; +static const float FLT_EPSILON = 1.192092896e-07; +static const float GOLDEN_RATIO = 1.6180339887; +static const float M_TO_SKY_UNIT = 0.001f; // Engine units are in meters +static const float SKY_UNIT_TO_M = rcp(M_TO_SKY_UNIT); -#define sqr(a) ((a)*(a)) +#define sqr(a) ((a)*(a)) #define pow5(x) pow(x, 5) -#define M_TO_SKY_UNIT 0.001f // Engine units are in meters -#define SKY_UNIT_TO_M (1.0 / M_TO_SKY_UNIT) - // attribute computation with barycentric interpolation // a0 : attribute at triangle corner 0 // a1 : attribute at triangle corner 1 @@ -1358,7 +1357,7 @@ enum class ColorSpace }; -#define NUM_PARALLAX_OCCLUSION_STEPS 32 +static const uint NUM_PARALLAX_OCCLUSION_STEPS = 32; inline void ParallaxOcclusionMapping_Impl( inout float4 uvsets, // uvsets to modify in float3 V, // view vector (pointing towards camera) diff --git a/WickedEngine/shaders/objectHF.hlsli b/WickedEngine/shaders/objectHF.hlsli index b4e5ead0c..84cd0a3b3 100644 --- a/WickedEngine/shaders/objectHF.hlsli +++ b/WickedEngine/shaders/objectHF.hlsli @@ -361,7 +361,7 @@ PixelInput main(VertexInput input) #endif // OBJECTSHADER_USE_EMISSIVE #ifdef OBJECTSHADER_USE_RENDERTARGETARRAYINDEX - const uint frustum_index = input.GetInstancePointer().GetFrustumIndex(); + const uint frustum_index = input.GetInstancePointer().GetCameraIndex(); Out.RTIndex = GetCamera(frustum_index).output_index; #ifndef OBJECTSHADER_USE_NOCAMERA Out.pos = mul(GetCamera(frustum_index).view_projection, surface.position); @@ -369,7 +369,7 @@ PixelInput main(VertexInput input) #endif // OBJECTSHADER_USE_RENDERTARGETARRAYINDEX #ifdef OBJECTSHADER_USE_VIEWPORTARRAYINDEX - const uint frustum_index = input.GetInstancePointer().GetFrustumIndex(); + const uint frustum_index = input.GetInstancePointer().GetCameraIndex(); Out.VPIndex = GetCamera(frustum_index).output_index; #ifndef OBJECTSHADER_USE_NOCAMERA Out.pos = mul(GetCamera(frustum_index).view_projection, surface.position); diff --git a/WickedEngine/shaders/objectVS_voxelizer.hlsl b/WickedEngine/shaders/objectVS_voxelizer.hlsl index d873c7918..1c549cf9a 100644 --- a/WickedEngine/shaders/objectVS_voxelizer.hlsl +++ b/WickedEngine/shaders/objectVS_voxelizer.hlsl @@ -33,7 +33,7 @@ VSOut main(VertexInput input) Out.pos.xyz = (Out.pos.xyz - clipmap.center) / clipmap.voxelSize; // Project onto dominant axis: - const uint frustum_index = input.GetInstancePointer().GetFrustumIndex(); + const uint frustum_index = input.GetInstancePointer().GetCameraIndex(); switch (frustum_index) { default: diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index d01d7a525..878b9a97a 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wi::version // minor features, major updates, breaking compatibility changes const int minor = 71; // minor bug fixes, alterations, refactors, updates - const int revision = 221; + const int revision = 222; const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);