Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
Referencia de la clase ForwardRenderer

Ejecuta el pipeline de render forward del motor. Más...

#include <ForwardRenderer.h>

+ Diagrama de colaboración de ForwardRenderer:

Métodos públicos

void destroy ()
 Libera los recursos internos del renderer.
 
ID3D11ShaderResourceView * getPreShadowSRV () const
 
ID3D11ShaderResourceView * getShadowMapSRV () const
 
HRESULT init (Device &device)
 Inicializa buffers, shaders y estados del renderer.
 
void render (DeviceContext &deviceContext, const Camera &camera, RenderScene &scene, EditorViewportPass &viewportPass)
 Renderiza la escena completa sobre el EditorViewportPass.
 
void resize (Device &device, unsigned int width, unsigned int height)
 Reconstuye los recursos dependientes del tamano del viewport.
 
void updatePerFrame (const Camera &camera, const RenderScene &scene, DeviceContext &deviceContext)
 Actualiza constantes globales usadas por el frame actual.
 

Métodos privados

void buildQueues (RenderScene &scene, const Camera &camera)
 
HRESULT createBlendStates (Device &device)
 
HRESULT createShadowResources (Device &device)
 
void renderObject (DeviceContext &deviceContext, const RenderObject &object, RenderPassType passType)
 
void renderOpaquePass (DeviceContext &deviceContext)
 
void renderPreShadowDebugPass (DeviceContext &deviceContext, RenderScene &scene)
 
void renderShadowObject (DeviceContext &deviceContext, const RenderObject &object)
 
void renderShadowPass (DeviceContext &deviceContext)
 
void renderSkyboxPass (DeviceContext &deviceContext, RenderScene &scene)
 
void renderTransparentPass (DeviceContext &deviceContext)
 
ID3D11BlendState * resolveBlendState (const Material *material) const
 
void updateLightMatrices (const Camera &camera, const RenderScene &scene)
 

Atributos privados

ID3D11BlendState * m_additiveBlendState = nullptr
 
ID3D11BlendState * m_alphaBlendState = nullptr
 
bool m_applyShadows = true
 
float m_blendFactor [4] = { 0.0f, 0.0f, 0.0f, 0.0f }
 
CBPerFrame m_cbPerFrame {}
 
CBPerMaterial m_cbPerMaterial {}
 
CBPerObject m_cbPerObject {}
 
ID3D11BlendState * m_opaqueBlendState = nullptr
 
std::vector< const RenderObject * > m_opaqueQueue
 
Buffer m_perFrameBuffer
 
Buffer m_perMaterialBuffer
 
Buffer m_perObjectBuffer
 
ID3D11BlendState * m_premultipliedBlendState = nullptr
 
EditorViewportPass m_preShadowDebugPass
 
Texture m_shadowDepthSRV
 
Texture m_shadowDepthTexture
 
DepthStencilView m_shadowDSV
 
unsigned int m_shadowMapSize = 2048
 
RasterizerState m_shadowRasterizer
 
ShaderProgram m_shadowShader
 
DepthStencilState m_transparentDepthStencil
 
std::vector< const RenderObject * > m_transparentQueue
 

Descripción detallada

Esta clase construye colas opacas y transparentes, genera recursos de sombras, actualiza buffers por frame y compone el resultado final dentro del viewport del editor.

Definición en la línea 30 del archivo ForwardRenderer.h.

Documentación de funciones miembro

◆ buildQueues()

void ForwardRenderer::buildQueues ( RenderScene scene,
const Camera camera 
)
private

◆ createBlendStates()

HRESULT ForwardRenderer::createBlendStates ( Device device)
private

Definición en la línea 417 del archivo ForwardRenderer.cpp.

Hace referencia a m_additiveBlendState, m_alphaBlendState, Device::m_device, m_opaqueBlendState y m_premultipliedBlendState.

Referenciado por init().

◆ createShadowResources()

HRESULT ForwardRenderer::createShadowResources ( Device device)
private

◆ destroy()

◆ getPreShadowSRV()

ID3D11ShaderResourceView * ForwardRenderer::getPreShadowSRV ( ) const
inline

Definición en la línea 61 del archivo ForwardRenderer.h.

Referenciado por BaseApp::update().

◆ getShadowMapSRV()

ID3D11ShaderResourceView * ForwardRenderer::getShadowMapSRV ( ) const
inline

Definición en la línea 60 del archivo ForwardRenderer.h.

Referenciado por BaseApp::update().

◆ init()

◆ render()

◆ renderObject()

◆ renderOpaquePass()

◆ renderPreShadowDebugPass()

◆ renderShadowObject()

void ForwardRenderer::renderShadowObject ( DeviceContext deviceContext,
const RenderObject object 
)
private

◆ renderShadowPass()

◆ renderSkyboxPass()

void ForwardRenderer::renderSkyboxPass ( DeviceContext deviceContext,
RenderScene scene 
)
private

Definición en la línea 252 del archivo ForwardRenderer.cpp.

Hace referencia a Skybox::render() y RenderScene::skybox.

Referenciado por render() y renderPreShadowDebugPass().

◆ renderTransparentPass()

◆ resize()

void ForwardRenderer::resize ( Device device,
unsigned int  width,
unsigned int  height 
)

Definición en la línea 64 del archivo ForwardRenderer.cpp.

Hace referencia a m_preShadowDebugPass y EditorViewportPass::resize().

Referenciado por BaseApp::handleEditorViewportResize().

◆ resolveBlendState()

ID3D11BlendState * ForwardRenderer::resolveBlendState ( const Material material) const
private

◆ updateLightMatrices()

void ForwardRenderer::updateLightMatrices ( const Camera camera,
const RenderScene scene 
)
private

◆ updatePerFrame()

Documentación de datos miembro

◆ m_additiveBlendState

ID3D11BlendState* ForwardRenderer::m_additiveBlendState = nullptr
private

Definición en la línea 84 del archivo ForwardRenderer.h.

Referenciado por createBlendStates(), destroy() y resolveBlendState().

◆ m_alphaBlendState

ID3D11BlendState* ForwardRenderer::m_alphaBlendState = nullptr
private

Definición en la línea 82 del archivo ForwardRenderer.h.

Referenciado por createBlendStates(), destroy() y resolveBlendState().

◆ m_applyShadows

bool ForwardRenderer::m_applyShadows = true
private

Definición en la línea 94 del archivo ForwardRenderer.h.

Referenciado por renderOpaquePass(), renderPreShadowDebugPass() y renderTransparentPass().

◆ m_blendFactor

float ForwardRenderer::m_blendFactor[4] = { 0.0f, 0.0f, 0.0f, 0.0f }
private

Definición en la línea 86 del archivo ForwardRenderer.h.

Referenciado por renderOpaquePass() y renderTransparentPass().

◆ m_cbPerFrame

CBPerFrame ForwardRenderer::m_cbPerFrame {}
private

Definición en la línea 96 del archivo ForwardRenderer.h.

Referenciado por updateLightMatrices() y updatePerFrame().

◆ m_cbPerMaterial

CBPerMaterial ForwardRenderer::m_cbPerMaterial {}
private

Definición en la línea 98 del archivo ForwardRenderer.h.

Referenciado por renderObject().

◆ m_cbPerObject

CBPerObject ForwardRenderer::m_cbPerObject {}
private

Definición en la línea 97 del archivo ForwardRenderer.h.

Referenciado por renderObject() y renderShadowObject().

◆ m_opaqueBlendState

ID3D11BlendState* ForwardRenderer::m_opaqueBlendState = nullptr
private

◆ m_opaqueQueue

std::vector<const RenderObject*> ForwardRenderer::m_opaqueQueue
private

Definición en la línea 100 del archivo ForwardRenderer.h.

Referenciado por buildQueues(), destroy(), renderOpaquePass() y renderShadowPass().

◆ m_perFrameBuffer

Buffer ForwardRenderer::m_perFrameBuffer
private

◆ m_perMaterialBuffer

Buffer ForwardRenderer::m_perMaterialBuffer
private

Definición en la línea 80 del archivo ForwardRenderer.h.

Referenciado por destroy(), init() y renderObject().

◆ m_perObjectBuffer

Buffer ForwardRenderer::m_perObjectBuffer
private

Definición en la línea 79 del archivo ForwardRenderer.h.

Referenciado por destroy(), init(), renderObject() y renderShadowObject().

◆ m_premultipliedBlendState

ID3D11BlendState* ForwardRenderer::m_premultipliedBlendState = nullptr
private

Definición en la línea 85 del archivo ForwardRenderer.h.

Referenciado por createBlendStates(), destroy() y resolveBlendState().

◆ m_preShadowDebugPass

EditorViewportPass ForwardRenderer::m_preShadowDebugPass
private

Definición en la línea 93 del archivo ForwardRenderer.h.

Referenciado por destroy(), init(), renderPreShadowDebugPass() y resize().

◆ m_shadowDepthSRV

Texture ForwardRenderer::m_shadowDepthSRV
private

Definición en la línea 88 del archivo ForwardRenderer.h.

Referenciado por createShadowResources(), destroy(), renderOpaquePass() y renderTransparentPass().

◆ m_shadowDepthTexture

Texture ForwardRenderer::m_shadowDepthTexture
private

Definición en la línea 87 del archivo ForwardRenderer.h.

Referenciado por createShadowResources() y destroy().

◆ m_shadowDSV

DepthStencilView ForwardRenderer::m_shadowDSV
private

Definición en la línea 89 del archivo ForwardRenderer.h.

Referenciado por createShadowResources(), destroy() y renderShadowPass().

◆ m_shadowMapSize

unsigned int ForwardRenderer::m_shadowMapSize = 2048
private

Definición en la línea 92 del archivo ForwardRenderer.h.

Referenciado por createShadowResources() y renderShadowPass().

◆ m_shadowRasterizer

RasterizerState ForwardRenderer::m_shadowRasterizer
private

Definición en la línea 91 del archivo ForwardRenderer.h.

Referenciado por createShadowResources(), destroy() y renderShadowPass().

◆ m_shadowShader

ShaderProgram ForwardRenderer::m_shadowShader
private

Definición en la línea 90 del archivo ForwardRenderer.h.

Referenciado por createShadowResources(), destroy(), renderShadowObject() y renderShadowPass().

◆ m_transparentDepthStencil

DepthStencilState ForwardRenderer::m_transparentDepthStencil
private

Definición en la línea 81 del archivo ForwardRenderer.h.

Referenciado por destroy(), init() y renderObject().

◆ m_transparentQueue

std::vector<const RenderObject*> ForwardRenderer::m_transparentQueue
private

Definición en la línea 101 del archivo ForwardRenderer.h.

Referenciado por buildQueues(), destroy() y renderTransparentPass().


La documentación de esta clase está generada de los siguientes archivos: