PCG-FPS  v2 m0.22.4
Simple First Person Shooter with Procedurally Generated Level
RoomGeometry.h
Go to the documentation of this file.
1 #ifndef SKR_FPS2_RENDERER_OPENGL_ROOM_H
2 #define SKR_FPS2_RENDERER_OPENGL_ROOM_H
3 
4 #include "..\..\pch.h"
5 #include "pcg\Room.h"
6 
7 #include "PointLight.h"
8 #include "Mesh.h"
9 #include "..\..\Collision\CollisionBox.h"
10 #include "TargetGeometry.h"
11 //#include "ShadowMap.h"
12 
13 namespace skr
14 {
15 namespace fps2
16 {
17 namespace Renderer
18 {
19 namespace OpenGL
20 {
24  {
25 
26  public:
27  skr::pcg::Room _room;
28  uint32_t _VAO;
29  uint32_t _VBO;
30  std::vector<PointLight> _PointLights;
31 
32  // Shadow Map
33  uint32_t _depthMapFBO;
34  uint32_t _depthCubeMap;
35 
36  uint32_t _numVertices;
37  std::vector<Mesh> _meshes;
40 
41  std::vector<skr::fps2::Collision::CollisionBox*> _collisionObjects;
42  std::vector<TargetGeometry> _targets;
43 
48  {};
49 
53  RoomGeometry(skr::pcg::Room room, ShaderType shadertype = ShaderType::Main);
54 
56  ~RoomGeometry();
57 
59  void PrepareDepthMaps();
60 
65  void RenderDepthMap(Shader shader, glm::vec3 light_movement, float currentTime = 0.0f);
66  };
67 }
68 }
69 }
70 }
71 
72 #endif
skr::fps2::Renderer::OpenGL::RoomGeometry::_material
MaterialParameters _material
material used to draw geometry
Definition: RoomGeometry.h:39
skr::fps2::Renderer::OpenGL::ShaderType::Main
@ Main
main shader
skr::fps2::Renderer::OpenGL::RoomGeometry::_targets
std::vector< TargetGeometry > _targets
list of targets in this room
Definition: RoomGeometry.h:42
skr::fps2::Renderer::OpenGL::RoomGeometry::_depthMapFBO
uint32_t _depthMapFBO
frame buffer to render depth map to, used in shadow mapping
Definition: RoomGeometry.h:33
skr::fps2::Renderer::OpenGL::RoomGeometry::_VBO
uint32_t _VBO
vertex buffer object
Definition: RoomGeometry.h:29
skr::fps2::Renderer::OpenGL::Shader
handles shader loading, compiling and linking. Also provides access to set uniform ids and usage.
Definition: Shader.h:31
skr::fps2::Renderer::OpenGL::RoomGeometry::_collisionObjects
std::vector< skr::fps2::Collision::CollisionBox * > _collisionObjects
list of collisions objects
Definition: RoomGeometry.h:41
skr::fps2::Renderer::OpenGL::RoomGeometry::_VAO
uint32_t _VAO
vertex array object
Definition: RoomGeometry.h:28
skr::fps2::Renderer::OpenGL::RoomGeometry::_shadertype
ShaderType _shadertype
type of shader used to draw geometry
Definition: RoomGeometry.h:38
skr::fps2::Renderer::OpenGL::RoomGeometry::_room
skr::pcg::Room _room
room from procedural generation
Definition: RoomGeometry.h:27
skr::fps2::Renderer::OpenGL::RoomGeometry::_PointLights
std::vector< PointLight > _PointLights
list of point lights in this room
Definition: RoomGeometry.h:30
skr::fps2::Renderer::OpenGL::ShaderType
ShaderType
shader type identifies. Used as keys in map keeping shaders
Definition: Shader.h:18
skr::fps2::Renderer::OpenGL::MaterialParameters
holding material parameters for objects without textures
Definition: MaterialParameters.h:18
skr::fps2::Renderer::OpenGL::RoomGeometry
holds geometry of a room
Definition: RoomGeometry.h:24
skr::fps2::Renderer::OpenGL::RoomGeometry::_meshes
std::vector< Mesh > _meshes
list of meshes
Definition: RoomGeometry.h:37
skr
Definition: AssetPath.h:10
skr::fps2::Renderer::OpenGL::RoomGeometry::RenderDepthMap
void RenderDepthMap(Shader shader, glm::vec3 light_movement, float currentTime=0.0f)
renders depthmap
Definition: RoomGeometry.cpp:76
Mesh.h
skr::fps2::Renderer::OpenGL::RoomGeometry::RoomGeometry
RoomGeometry()
default constructor default constructor is needed since OpenGL Renderer Object is a global object,...
Definition: RoomGeometry.h:46
skr::fps2::Renderer::OpenGL::RoomGeometry::~RoomGeometry
~RoomGeometry()
destructor
Definition: RoomGeometry.cpp:44
PointLight.h
skr::fps2::Renderer::OpenGL::RoomGeometry::PrepareDepthMaps
void PrepareDepthMaps()
initializes framebuffer and cubemap to render depthmap
Definition: RoomGeometry.cpp:50
TargetGeometry.h
skr::fps2::Renderer::OpenGL::RoomGeometry::_depthCubeMap
uint32_t _depthCubeMap
cube map texture for depth map, used in shadow mapping
Definition: RoomGeometry.h:34
skr::fps2::Renderer::OpenGL::RoomGeometry::_numVertices
uint32_t _numVertices
number of vertices of geometry
Definition: RoomGeometry.h:36