Exemple #1
0
//---------------------------------------------------------------------------
void
GrProjection::RecomputeMatrix() const
{
	assert( m_bDirty );

	if ( IsOrtho() )
	{
		// orthographic.
		_glhOrthof2( (PxF32*)m.cProjMat.GetData(), m_fLeft, m_fRight, m_fBottom, m_fTop, m_fZNear, m_fZFar );
	}
	else
	{
		// TODO: incorporate left/right/bottom/top to perform offcenter projection!
		assert( (m_fLeft == -1.0F) && (m_fRight == 1.0F) && (m_fBottom == -1.0F) && (m_fTop == 1.0F) );

		if ( m_fZFar == 0.0F )
		{
			// infinite perspective projection matrix.
			_glhPerspectiveInfiniteFarPlanef2( (PxF32*)m.cProjMat.GetData(), RadToDeg(m_fFovY), m_fAspect, m_fZNear );
		}
		else
		{
			// regular perspective projection matrix.
			_glhPerspectivef2( (PxF32*)m.cProjMat.GetData(), RadToDeg(m_fFovY), m_fAspect, m_fZNear, m_fZFar );
		}
	}
}
    void OpenGLSceneRenderer::doRenderBegin(const Scene& scene, const SkyDragonEngineOptions& engineOptions) {
        if (!_initialized) {
            LOG4CPLUS_DEBUG(_logger, "Initializing renderer.");
            _initialize();
        }

        glPushMatrix();

        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glMatrixMode(GL_PROJECTION);
        float matrix[16];
        glLoadIdentity();

        _glhPerspectivef2(matrix, 45, 1024./768., 0.1, 100.);
        glMultMatrixf(matrix);

        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();

        glShadeModel(GL_SMOOTH );

    }