Point lights no longer disappear when the camera is too close (within their sphere of influence)

--HG--
extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%4092
This commit is contained in:
kearwood
2012-09-11 06:45:02 +00:00
parent 754496fe06
commit 377fd8e6b5
13 changed files with 187 additions and 39 deletions

View File

@@ -103,7 +103,7 @@ void KRModel::render(KRCamera *pCamera, KRContext *pContext, KRMat4 &matModelToV
if(!pMaterial->isTransparent()) {
// Exclude transparent and semi-transparent meshes from shadow maps
m_pMesh->renderSubmesh(iSubmesh, &iPrevBuffer);
m_pMesh->renderSubmesh(iSubmesh, iPrevBuffer);
}
}
@@ -121,19 +121,19 @@ void KRModel::render(KRCamera *pCamera, KRContext *pContext, KRMat4 &matModelToV
switch(pMaterial->getAlphaMode()) {
case KRMaterial::KRMATERIAL_ALPHA_MODE_OPAQUE: // Non-transparent materials
case KRMaterial::KRMATERIAL_ALPHA_MODE_TEST: // Alpha in diffuse texture is interpreted as punch-through when < 0.5
m_pMesh->renderSubmesh(iSubmesh, &iPrevBuffer);
m_pMesh->renderSubmesh(iSubmesh, iPrevBuffer);
break;
case KRMaterial::KRMATERIAL_ALPHA_MODE_BLENDONESIDE: // Blended alpha with backface culling
m_pMesh->renderSubmesh(iSubmesh, &iPrevBuffer);
m_pMesh->renderSubmesh(iSubmesh, iPrevBuffer);
break;
case KRMaterial::KRMATERIAL_ALPHA_MODE_BLENDTWOSIDE: // Blended alpha rendered in two passes. First pass renders backfaces; second pass renders frontfaces.
// Render back faces first
glCullFace(GL_BACK);
m_pMesh->renderSubmesh(iSubmesh, &iPrevBuffer);
m_pMesh->renderSubmesh(iSubmesh, iPrevBuffer);
// Render front faces second
glCullFace(GL_BACK);
m_pMesh->renderSubmesh(iSubmesh, &iPrevBuffer);
m_pMesh->renderSubmesh(iSubmesh, iPrevBuffer);
break;
}