diff --git a/indra/llrender/llrendernavprim.cpp b/indra/llrender/llrendernavprim.cpp index 1a0103e8f0820e5c5742c302133061015c8463cc..9a114609d2dee162bb2547026fa9596cae33046e 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 3cc025462b288321b78f357f029a3ac9c3217719..85896c74dd4de813294259cace7f8b5e5eee0f31 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; }