29 using std::make_unique;
30 using std::unique_ptr;
55 unique_ptr<GeometryBuffer> EnvironmentMappingRenderer::geometryBuffer;
57 EnvironmentMappingRenderer::EnvironmentMappingRenderer(
Engine* engine, int32_t width, int32_t height)
66 {{ 1.0f, 0.0f, 0.0f }},
67 {{ -1.0f, 0.0f, 0.0f }},
68 {{ 0.0f, -1.0f, 0.0f }},
69 {{ 0.0f, 1.0f, 0.0f }},
70 {{ 0.0f, 0.0f, 1.0f }},
71 {{ 0.0f, 0.0f, -1.0f }}
74 {{ 0.0f, 0.0f, -1.0f }},
75 {{ 0.0f, 0.0f, 1.0f }},
76 {{ 1.0f, 0.0f, 0.0f }},
77 {{ 1.0f, 0.0f, 0.0f }},
78 {{ 1.0f, 0.0f, 0.0f }},
79 {{ -1.0f, 0.0f, 0.0f }}
83 {{ -1.0f, 0.0f, 0.0f }},
84 {{ 1.0f, 0.0f, 0.0f }},
85 {{ 0.0f, 1.0f, 0.0f }},
86 {{ 0.0f, -1.0f, 0.0f }},
87 {{ 0.0f, 0.0f, 1.0f }},
88 {{ 0.0f, 0.0f, -1.0f }}
91 {{ 0.0f, 0.0f, 1.0f }},
92 {{ 0.0f, 0.0f, -1.0f }},
93 {{ 1.0f, 0.0f, 0.0f }},
94 {{ 1.0f, 0.0f, 0.0f }},
95 {{ 1.0f, 0.0f, 0.0f }},
96 {{ -1.0f, 0.0f, 0.0f }}
122 Console::println(
"EnvironmentMappingRenderer::initialize(): " + to_string(
geometryBuffer->getId()) +
": geometry buffer width != width, height != height!");
144 auto now = Time::getCurrentMillis();
151 for (
auto runs = 0; runs < (
timeRenderLast == -1LL?2:1); runs++) {
162 camera->setZNear(engineCamera->getZNear());
163 camera->setZFar(engineCamera->getZFar());
165 camera->setLookFrom(position);
170 camera->getFrustum()->update();
202 EntityRenderer::RENDERTYPE_NORMALS |
203 EntityRenderer::RENDERTYPE_TEXTUREARRAYS |
204 EntityRenderer::RENDERTYPE_TEXTUREARRAYS_DIFFUSEMASKEDTRANSPARENCY |
205 EntityRenderer::RENDERTYPE_EFFECTCOLORS |
206 EntityRenderer::RENDERTYPE_MATERIALS |
207 EntityRenderer::RENDERTYPE_MATERIALS_DIFFUSEMASKEDTRANSPARENCY |
208 EntityRenderer::RENDERTYPE_TEXTURES |
209 EntityRenderer::RENDERTYPE_TEXTURES_DIFFUSEMASKEDTRANSPARENCY |
210 EntityRenderer::RENDERTYPE_LIGHTS,
static Renderer * getRenderer()
void render(FrameBuffer *renderFrameBuffer, GeometryBuffer *renderGeometryBuffer, Camera *rendererCamera, DecomposedEntities &visibleDecomposedEntities, int32_t effectPass, int32_t renderPassMask, const string &shaderPrefix, bool applyShadowMapping, bool applyPostProcessing, bool doRenderLightSource, bool doRenderParticleSystems, int32_t renderTypes, bool skyShaderEnabled)
Do a render/effect pass.
void resetLists(DecomposedEntities &decomposedEntites)
Reset lists.
void preRender(Camera *camera, DecomposedEntities &decomposedEntites, bool autoEmit, bool computeAnimations)
Computes visibility and animations and other pre render steps.
Entity hierarchy to be used with engine class.
static void disableFrameBuffer()
Switches back to non offscreen main frame buffer to be rendered.
static constexpr int32_t FRAMEBUFFER_COLORBUFFER
static constexpr int32_t FRAMEBUFFER_DEPTHBUFFER
LOD object to be used with engine class.
Object particle system entity to be used with engine class.
Object render group for static objects that might be animated by shaders.
Object to be used with engine class.
Axis aligned bounding box used for frustum, this is not directly connectable with physics engine.
int reflectionCubeMapTextureIdx
Engine::DecomposedEntities visibleDecomposedEntities
void reshape(int32_t width, int32_t height)
Reshape frame buffers.
array< Vector3, 6 > forwardVectors
void initialize()
Init frame buffer.
array< int32_t, 2 > cubeMapTextureIds
array< Vector3, 6 > sideVectors
int renderCubeMapTextureIdx
~EnvironmentMappingRenderer()
Destructor.
void dispose()
Disposes this shadow mapping.
int64_t timeRenderUpdateFrequency
array< array< unique_ptr< FrameBuffer >, 6 >, 2 > frameBuffers
unique_ptr< Camera > camera
static STATIC_DLL_IMPEXT unique_ptr< GeometryBuffer > geometryBuffer
void render(const Vector3 &position)
Renders given objects in to environment cube map.
virtual void setClearColor(float red, float green, float blue, float alpha)=0
Set up clear color.
int32_t CLEAR_COLOR_BUFFER_BIT
RendererType getRendererType()
virtual void disposeTexture(int32_t textureId)=0
Dispose a texture.
virtual int32_t createCubeMapTexture(int contextIdx, int32_t width, int32_t height)=0
Create cube map texture from frame buffers.
virtual void clear(int32_t mask)=0
Clear render buffer with given mask.
virtual bool isDeferredShadingAvailable()=0
int32_t CONTEXTINDEX_DEFAULT
int32_t CLEAR_DEPTH_BUFFER_BIT
Matrix4x4 class representing matrix4x4 mathematical structure and operations for 3d space.
Vector3 class representing vector3 mathematical structure and operations with x, y,...