From: <axl...@us...> - 2009-08-01 14:14:38
|
Revision: 448 http://hgengine.svn.sourceforge.net/hgengine/?rev=448&view=rev Author: axlecrusher Date: 2009-08-01 14:14:27 +0000 (Sat, 01 Aug 2009) Log Message: ----------- add depth range uniform for shaders Modified Paths: -------------- Mercury2/src/Frustum.h Mercury2/src/Viewport.cpp Modified: Mercury2/src/Frustum.h =================================================================== --- Mercury2/src/Frustum.h 2009-08-01 02:46:05 UTC (rev 447) +++ Mercury2/src/Frustum.h 2009-08-01 14:14:27 UTC (rev 448) @@ -25,6 +25,9 @@ void Ortho(float left, float right, float bottom, float top, float near, float far); inline const MercuryPlane& GetPlane(int i) const { return m_planes[i]; } + inline float ZNear() const { return m_zNear; } + inline float ZFar() const { return m_zFar; } + inline float DepthRange() const { return m_zFar - m_zNear; } private: MercuryPlane m_planes[6]; Modified: Mercury2/src/Viewport.cpp =================================================================== --- Mercury2/src/Viewport.cpp 2009-08-01 02:46:05 UTC (rev 447) +++ Mercury2/src/Viewport.cpp 2009-08-01 14:14:27 UTC (rev 448) @@ -53,6 +53,13 @@ sa.type = ShaderAttribute::TYPE_INT4; glGetIntegerv(GL_VIEWPORT, sa.value.iInts); Shader::SetAttribute("HG_ViewPort", sa); + + sa.type = ShaderAttribute::TYPE_FLOATV4; + sa.value.fFloatV4[0] = m_frustum.ZNear(); + sa.value.fFloatV4[1] = m_frustum.ZFar(); + sa.value.fFloatV4[2] = m_frustum.DepthRange(); + sa.value.fFloatV4[3] = 1.0f/m_frustum.DepthRange(); + Shader::SetAttribute("HG_DepthRange", sa); } void Viewport::PostRender(const MercuryMatrix& matrix) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |