Files
PhysX4.1/physx/samples/sampleframework/media/shaders/include/globals.cg
2025-11-28 23:13:44 +05:30

99 lines
2.5 KiB
Plaintext

#ifndef GLOBALS_CG
#define GLOBALS_CG
#define MAX_BONES 60
#if !defined(MAX_LIGHTS)
#define MAX_LIGHTS 1
#endif
#include <defines.cg>
BEGIN_CBUFFER(cbMesh0)
CONST_TYPE float4x4 g_MVP;
END_CBUFFER(cbMesh0)
BEGIN_CBUFFER(cbMesh)
CONST_TYPE float4x4 g_modelMatrix;
CONST_TYPE float4x4 g_modelViewMatrix;
CONST_TYPE float4x4 g_modelViewProjMatrix;
END_CBUFFER(cbMesh)
BEGIN_CBUFFER(cbFrame)
CONST_TYPE float4x4 g_viewMatrix;
CONST_TYPE float4x4 g_projMatrix;
CONST_TYPE float3 g_eyePosition;
CONST_TYPE float3 g_eyeDirection;
END_CBUFFER(cbFrame)
BEGIN_CBUFFER(cbFrameInv)
CONST_TYPE float4x4 g_invViewProjMatrix;
END_CBUFFER(cbFrameInv)
#if defined USE_VTF
CONST_TYPE sampler2D g_boneTexture; // Vertex texture to hold bone matrices
#endif
BEGIN_CBUFFER(cbBones)
CONST_TYPE float4x4 g_boneMatrices[MAX_BONES]; // TODO: change this to a float4x3 (a transposed 3x4) so we can pack more bones in...
#if defined USE_VTF
CONST_TYPE int g_boneTextureHeight; // Bone texture height
#endif
END_CBUFFER(cbBones)
BEGIN_CBUFFER(cbFog)
CONST_TYPE float4 g_fogColorAndDistance;
END_CBUFFER(cbFog)
BEGIN_CBUFFER(cbAmbient)
CONST_TYPE float3 g_ambientColor;
END_CBUFFER(cbAmbient)
BEGIN_CBUFFER(cbLight)
CONST_TYPE float3 g_lightColor;
CONST_TYPE float3 g_lightDirection;
CONST_TYPE float3 g_lightPosition;
CONST_TYPE float g_lightIntensity;
CONST_TYPE float g_lightInnerRadius;
CONST_TYPE float g_lightOuterRadius;
CONST_TYPE float g_lightInnerCone;
CONST_TYPE float g_lightOuterCone;
END_CBUFFER(cbLight)
BEGIN_CBUFFER(cbScale)
#if ENABLE_VFACE_SCALE
CONST_TYPE float g_vfaceScale;
#endif
END_CBUFFER(cbScale)
// D3D11 expects rgba
#if ENABLE_COLOR_SWIZZLE_SUPPORT
BEGIN_CBUFFER(cbSwizzleColor)
CONST_TYPE int g_bSwizzleColor;
END_CBUFFER(cbSwizzleColor)
half4 swizzle(half4 inColor) { return g_bSwizzleColor ? inColor.zyxw : inColor; }
#else
half4 swizzle(half4 inColor) { return inColor; }
#endif
#if defined(RENDERER_D3D11)
// D3D11 screen coordinates differ from GL/DX9
BEGIN_CBUFFER(cbView2D)
CONST_TYPE float4x4 g_viewMatrix2D;
END_CBUFFER(cbView2D)
#else
static const float4x4 g_viewMatrix2D = {{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}};
#endif
#if defined(PASS_SPOT_LIGHT)
// TODO: Make this less hacky, have a PASS_SUPPORTS_SHADOWS #define
#define PASS_SUPPORTS_SHADOWS
DECLARE_TEXTURE(g_lightShadowMap);
BEGIN_CBUFFER(cbLightShadow)
CONST_TYPE float4x4 g_lightShadowMatrix;
END_CBUFFER(cbLightShadow)
#endif
#endif