@Override public void render( RenderContext glRenderContext ) { long begin = System.currentTimeMillis(); ViewParams params = glRenderContext.getViewParams(); GL context = glRenderContext.getContext(); params.getViewFrustum().getEyePos();
/** * The new LOD is based on the current viewfrustum and the maximum size of any textures. * * @param glRenderContext * @param zScale * @param textureManagers */ private Set<RenderMeshFragment> getNewLOD( RenderContext glRenderContext, float zScale, TextureManager[] textureManagers ) { ViewParams params = glRenderContext.getViewParams(); ViewFrustum frustum = params.getViewFrustum(); ViewFrustumCrit crit = new ViewFrustumCrit( params, (float) maxPixelError, zScale, glRenderContext.getMaxTextureSize(), textureManagers, (float) maxProjectedTexelSize ); SpatialSelection lodAdaptor = new SpatialSelection( fragmentManager.getMultiresolutionMesh(), crit, frustum, zScale ); List<MeshFragment> fragments = lodAdaptor.determineLODFragment(); Set<RenderMeshFragment> fragmentIds = new HashSet<RenderMeshFragment>( fragments.size() ); for ( MeshFragment fragment : fragments ) { fragmentIds.add( fragmentManager.renderFragments[fragment.id] ); } return fragmentIds; }
ViewParams params = glRenderContext.getViewParams(); ViewFrustum vf = params.getViewFrustum(); Point3d eyePosPoint = vf.getEyePos();
int level = Math.min( maxNumberOfLevels, levels.length - 1 ); int result = -1; ViewParams viewParams = glRenderContext.getViewParams();
ViewParams vp = glRenderContext.getViewParams(); GL gl = glRenderContext.getContext();
@Override public void render( RenderContext glRenderContext ) { ViewParams params = glRenderContext.getViewParams(); GL context = glRenderContext.getContext(); long begin = System.currentTimeMillis();
@Override public void render( RenderContext glRenderContext ) { Point3d eye = glRenderContext.getViewParams().getViewFrustum().getEyePos(); GL context = glRenderContext.getContext(); context.glPushMatrix(); context.glDepthMask( false ); context.glEnable( GL.GL_TEXTURE_2D ); context.glEnableClientState( GL.GL_TEXTURE_COORD_ARRAY ); // the translation context.glTranslatef( location[0], location[1], location[2] ); // the rotation calculateAndSetRotation( context, new float[] { (float) eye.x, (float) eye.y, (float) eye.z } ); context.glScalef( width, 1, height ); TexturePool.loadTexture( glRenderContext, textureID ); // context.glMaterialfv( GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT_AND_DIFFUSE, new float[] { 1, 1, 1, .1f }, 0 ); context.glVertexPointer( 3, GL.GL_FLOAT, 0, coordBuffer ); context.glTexCoordPointer( 2, GL.GL_FLOAT, 0, textureBuffer ); // context.glDisableClientState( GL.GL_NORMAL_ARRAY ); context.glDrawArrays( GL.GL_QUADS, 0, 4 ); context.glDisableClientState( GL.GL_TEXTURE_COORD_ARRAY ); context.glDisable( GL.GL_TEXTURE_2D ); context.glDepthMask( true ); context.glMatrixMode( GL.GL_MODELVIEW ); context.glPopMatrix(); }