Program Listing for File constant_buffer.h¶
↰ Return to documentation for file (rootex/core/renderer/constant_buffer.h
)
#pragma once
#include "common/common.h"
#include "core/renderer/shaders/register_locations_pixel_shader.h"
#include "core/renderer/shaders/register_locations_vertex_shader.h"
struct PointLightInfo
{
Color ambientColor = { 0.0f, 0.0f, 0.0f, 0.0f };
Color diffuseColor = { 0.0f, 0.0f, 0.0f, 0.0f };
float diffuseIntensity = 0.0f;
float attConst = 1.0f;
float attLin = 0.045f;
float attQuad = 0.0075f;
Vector3 lightPos = { 0.0f, 0.0f, 0.0f };
float range = 0.0f;
};
struct DirectionalLightInfo
{
Vector3 direction = { 1.0f, 0.0f, 0.0f };
float diffuseIntensity = 0.0f;
Color ambientColor = { 0.05f, 0.05f, 0.05f, 1.0f };
Color diffuseColor = { 1.0f, 1.0f, 1.0f, 1.0f };
};
struct SpotLightInfo
{
Color ambientColor = { 0.05f, 0.05f, 0.05f, 1.0f };
Color diffuseColor = { 1.0f, 1.0f, 1.0f, 1.0f };
float diffuseIntensity = 0.0f;
float attConst = 1.0f;
float attLin = 0.045f;
float attQuad = 0.0075f;
Vector3 lightPos = { 0.0f, 0.0f, 0.0f };
float range = 0.0f;
Vector3 direction;
float spot;
float angleRange;
float pad[3];
};
struct StaticLightID
{
int id;
Vector3 pad;
};
struct PerModelPSCB
{
int staticPointsLightsAffectingCount = 0;
float pad[3];
StaticLightID staticPointsLightsAffecting[MAX_STATIC_POINT_LIGHTS_AFFECTING_1_OBJECT];
};
struct PerDecalPSCB
{
Vector3 decalRight;
float pad1;
Vector3 decalForward;
float pad2;
Vector3 decalUp;
float pad3;
Vector3 decalHalfScale;
float pad4;
Vector3 decalViewspacePosition;
float pad5;
};
struct StaticPointLightsInfo
{
PointLightInfo pointLightInfos[MAX_STATIC_POINT_LIGHTS];
};
struct LightsInfo
{
Vector3 cameraPos;
int pointLightCount = 0;
PointLightInfo pointLightInfos[MAX_DYNAMIC_POINT_LIGHTS];
int directionalLightPresent = 0;
float pad2[3];
DirectionalLightInfo directionalLightInfo;
int spotLightCount = 0;
float pad3[3];
SpotLightInfo spotLightInfos[MAX_DYNAMIC_SPOT_LIGHTS];
};
struct PerCameraChangePSCB
{
Vector2 DepthUnpackConsts;
Vector2 Viewport2xPixelSize;
Vector2 CameraTanHalfFOV;
Vector2 pad;
};
struct PerFramePSCB
{
LightsInfo lights;
Color fogColor;
};
struct PerFrameVSCB
{
Matrix view;
float fogStart;
float fogEnd;
LightsInfo light;
float pad[2];
};
struct PerScenePSCB
{
StaticPointLightsInfo staticLights;
};
struct PSFXAACB
{
Vector4 rcpFrame;
};
struct PSGodRaysCB
{
Vector3 sunScreenSpacePos;
int numSamples = 0;
float density;
float weight;
float decay;
float exposure;
};