Lighting::LightPrePassServer Class Reference
#include <lightprepassserver.h>
Inheritance diagram for Lighting::LightPrePassServer:
Detailed Description
A LightServer which implements pre-light-pass rendering. Check here for details: http://diaryofagraphicsprogrammer.blogspot.com/2008/03/light-pre-pass-renderer.html(C) 2009 Radon Labs GmbH
Public Member Functions | |
LightPrePassServer () | |
constructor | |
virtual | ~LightPrePassServer () |
destructor | |
void | Open () |
open the light server | |
void | Close () |
close the light server | |
bool | NeedsLightModelLinking () const |
pre-light-pass doesn't require light/model linking | |
void | AttachVisibleLight (const Ptr< InternalAbstractLightEntity > &lightEntity) |
attach a visible light source | |
void | EndFrame () |
end lighting frame | |
void | RenderLights () |
render light pass | |
bool | IsOpen () const |
return true if light server is open | |
void | BeginFrame (const Ptr< InternalGraphics::InternalCameraEntity > &cameraEntity) |
begin lighting frame | |
void | BeginAttachVisibleLights () |
begin attaching visible light sources | |
void | EndAttachVisibleLights () |
end attaching visible light sources | |
void | ApplyModelEntityLights (const Ptr< InternalGraphics::InternalModelEntity > &modelEntity) |
apply lighting parameters for a visible model entity | |
int | GetRefCount () const |
get the current refcount | |
void | AddRef () |
increment refcount by one | |
void | Release () |
decrement refcount and destroy object if refcount is zero | |
bool | IsInstanceOf (const Rtti &rtti) const |
return true if this object is instance of given class | |
bool | IsInstanceOf (const Util::String &className) const |
return true if this object is instance of given class by string | |
bool | IsInstanceOf (const Util::FourCC &classFourCC) const |
return true if this object is instance of given class by fourcc | |
bool | IsA (const Rtti &rtti) const |
return true if this object is instance of given class, or a derived class | |
bool | IsA (const Util::String &rttiName) const |
return true if this object is instance of given class, or a derived class, by string | |
bool | IsA (const Util::FourCC &rttiFourCC) const |
return true if this object is instance of given class, or a derived class, by fourcc | |
const Util::String & | GetClassName () const |
get the class name | |
Util::FourCC | GetClassFourCC () const |
get the class FourCC code | |
Static Public Member Functions | |
static void | DumpRefCountingLeaks () |
dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!) | |
Protected Member Functions | |
void | RenderGlobalLight () |
render the global light | |
void | RenderPointLights () |
render all point lights | |
void | RenderSpotLights () |
render all spot lights | |
void | AssignRenderBufferTextures () |
assign render buffers to shaders (one time init) |
Member Function Documentation
bool Lighting::LightPrePassServer::NeedsLightModelLinking | ( | ) | const |
pre-light-pass doesn't require light/model linking
Indicate whether the light server requires visibility links between lights and models. Deferred lighting solutions usually don't need this. FIXME: EXCEPT for shadow map rendering!!
Reimplemented from Lighting::LightServerBase.
void Lighting::LightPrePassServer::RenderGlobalLight | ( | ) | [protected] |
render the global light
Render the global light as a fullscreen quad.
void Lighting::LightPrePassServer::RenderPointLights | ( | ) | [protected] |
render all point lights
Render point lights into the LightBuffer.
void Lighting::LightPrePassServer::AssignRenderBufferTextures | ( | ) | [protected] |
assign render buffers to shaders (one time init)
This does a one-time init of setting the NormalDepthBuffer and LightBuffer as shader variables.
void Lighting::LightServerBase::ApplyModelEntityLights | ( | const Ptr< InternalGraphics::InternalModelEntity > & | modelEntity | ) | [inherited] |
apply lighting parameters for a visible model entity
This method is called during rendering to apply lighting parameters to the provided ModelEntity.
Reimplemented in Lighting::SM30LightServer.
int Core::RefCounted::GetRefCount | ( | ) | const [inline, inherited] |
get the current refcount
Return the current refcount of the object.
void Core::RefCounted::AddRef | ( | ) | [inline, inherited] |
increment refcount by one
Increment the refcount of the object.
void Core::RefCounted::Release | ( | ) | [inline, inherited] |
decrement refcount and destroy object if refcount is zero
Decrement the refcount and destroy object if refcount is zero.
const Util::String & Core::RefCounted::GetClassName | ( | ) | const [inline, inherited] |
get the class name
Get the class name of the object.
Util::FourCC Core::RefCounted::GetClassFourCC | ( | ) | const [inline, inherited] |
get the class FourCC code
Get the class FourCC of the object.
void Core::RefCounted::DumpRefCountingLeaks | ( | ) | [static, inherited] |
dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)
This method should be called as the very last before an application exits.