6#include <glm/mat4x4.hpp>
10#define COGS_SCENEFLAGS_NONE ( 0)
11#define COGS_SCENEFLAGS_OUTPUT_SRGB (1<<0)
12#define COGS_SCENEFLAGS_SUBMERGED (1<<1)
20 glm::mat4 projectionMatrix;
22 glm::mat4 inverseViewMatrix;
23 glm::mat4 inverseProjectionMatrix;
24 glm::mat4 worldToClipMatrix;
25 glm::mat4 viewFromViewportMatrix;
26 glm::mat4 viewportFromViewMatrix;
27 glm::vec4 projectionParameters;
28 glm::vec4 clippingPlanes[6];
31 glm::uvec4 blueNoiseOffset;
32 glm::vec2 viewportOrigin;
33 glm::vec2 viewportSize;
34 glm::vec2 viewportSizeRcp;
35 float shadowDepthClamp;
40 float numEnvironmentRadianceMips;
41 float numEnvironmentIrradianceMips;
49 glm::mat4 clipFromView;
50 glm::mat4 clipFromWorld;
51 glm::mat4 viewFromWorld;
52 glm::mat4 viewFromClip;
53 glm::mat4 worldFromView;
54 glm::mat4 viewFromViewport;
59 glm::vec4 _worldMatrix_row0;
60 glm::vec4 _worldMatrix_row1;
61 glm::vec4 _worldMatrix_row2;
67 void encodeWorldMatrix(
const glm::mat4& worldMatrix)
69 _worldMatrix_row0 = glm::vec4(worldMatrix[0][0], worldMatrix[1][0], worldMatrix[2][0], worldMatrix[3][0]);
70 _worldMatrix_row1 = glm::vec4(worldMatrix[0][1], worldMatrix[1][1], worldMatrix[2][1], worldMatrix[3][1]);
71 _worldMatrix_row2 = glm::vec4(worldMatrix[0][2], worldMatrix[1][2], worldMatrix[2][2], worldMatrix[3][2]);
74 void encodeObjectId(uint32_t objectId)
83 glm::mat4 boneTransforms[256];
88 glm::vec4 lightPositions[kMaxLights];
89 glm::vec4 lightDirections[kMaxLights];
90 glm::vec4 lightColorIntensity[kMaxLights];
91 glm::vec4 lightParameters[kMaxLights];
92 uint32_t numLights[4];
93 glm::vec4 eyePosition;
98 float ambientIntensity;
99 glm::vec3 ambientColor;
100 float environmentBrightness;
110 glm::vec4 cascadeLine;
111 glm::vec4 nearSplits;
113 glm::mat4 lightMatrix[Cogs::Core::kMaxCascades];
114 float shadowSampleBias;
115 uint32_t numCascades;
122 glm::vec4 softShadowJitter[36];
124 glm::uvec4 cascadeOffsets[kMaxLights];
Contains all Cogs related functionality.
unsigned clientFlags
Application defined, camera specific flags.