From 22b877e70a6f72256ff585465232bed93792571d Mon Sep 17 00:00:00 2001 From: prep Date: Thu, 5 Jan 2012 17:02:22 -0500 Subject: WIP: Navmesh vbos rendering fixes (added normal and color maps). --- indra/llrender/llrendernavprim.cpp | 21 ++++++++++++++++----- indra/newview/llviewerdisplay.cpp | 13 ++----------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/indra/llrender/llrendernavprim.cpp b/indra/llrender/llrendernavprim.cpp index 1a0103e8f0..9a114609d2 100644 --- a/indra/llrender/llrendernavprim.cpp +++ b/indra/llrender/llrendernavprim.cpp @@ -67,7 +67,7 @@ void LLRenderNavPrim::renderTri( const LLVector3& a, const LLVector3& b, const L } LLGLDisable cull(GL_CULL_FACE); LLColor4 colorA( color ); - colorA*=1.5f; + colorA*=1.25f; gGL.color4fv( colorA.mV ); LLGLSLShader::sNoFixedFunction = false; gGL.begin(LLRender::TRIANGLES); @@ -86,11 +86,22 @@ void LLRenderNavPrim::renderTri( const LLVector3& a, const LLVector3& b, const L void LLRenderNavPrim::renderNavMeshVB( LLVertexBuffer* pVBO, int vertCnt ) { glLineWidth(1.5f); - glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); - LLGLDisable cull(GL_CULL_FACE); LLGLSLShader::sNoFixedFunction = false; - pVBO->setBuffer( LLVertexBuffer::MAP_VERTEX ); - pVBO->drawArrays( LLRender::TRIANGLES, 0, vertCnt ); + + LLGLEnable depth(GL_DEPTH_TEST); + glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); + LLGLEnable cull( GL_CULL_FACE ); + + //pass 1 filled + pVBO->setBuffer( LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_COLOR | LLVertexBuffer::MAP_NORMAL ); + pVBO->drawArrays( LLRender::TRIANGLES, 0, vertCnt ); + //glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); + //static GLubyte red[]= { 255.0f, 0.0f, 0.0f, 255.0f }; + //glColor4ubv( red ); + //pass 2 outlined + //pVBO->drawArrays( LLRender::TRIANGLES, 0, vertCnt ); LLGLSLShader::sNoFixedFunction = true; + glLineWidth(1.0f); + glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); } //============================================================================= diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 3cc025462b..85896c74dd 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -915,24 +915,15 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) //Navmesh if ( LLPathingLib::getInstance()->getRenderNavMeshState() ) { - glClearColor(0.0f, 0.0f, 0.0f, 0.5f); - + glClearColor(0.0f, 0.0f, 0.0f, 0.5f); glEnable(GL_DEPTH_TEST); - gGL.setSceneBlendType( LLRender::BT_ALPHA ); gGL.setAmbientLightColor( LLColor4::white ); LLPathingLib::getInstance()->renderNavMesh( allowRenderables ); exclusiveDraw = true; } //physics/exclusion shapes if ( LLPathingLib::getInstance()->getRenderShapeState() ) - { - glEnable(GL_DEPTH_TEST); - gGL.setSceneBlendType( LLRender::BT_REPLACE ); - GLfloat LightAmbient[]= { 0.5f, 0.5f, 0.5f, 1.0f }; - glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient); - LLGLSUIDefault texture_state; - LLGLDepthTest gls_depth(GL_TRUE); - gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); + { LLPathingLib::getInstance()->renderNavMeshShapesVBO(); exclusiveDraw = true; } -- cgit v1.2.3