|
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.
|