Example #1
0
    def DrawShadowmap(self,invert,shadowSettings):
        r = self.r * self.scaleFactor
        px, py, pz = self.pos
        glPushMatrix()
        glScalef(1./r,1./r, 1./r)
        glMultMatrixd((glTrackball.quat * self.orien).asRotation())
        glTranslate(-px, -py, -pz)
        #glClipPlane(GL_CLIP_PLANE0, self.clipplane)

        scalef=extractCurrentScaleFactor()
        glew.glProgramEnvParameter4fARB(glew.GL_VERTEX_PROGRAM_ARB, 0, scalef,0,0,0)

        glEnable(glew.GL_VERTEX_PROGRAM_ARB)
        glEnable(glew.GL_FRAGMENT_PROGRAM_ARB)

        glew.glActiveTextureARB(glew.GL_TEXTURE0_ARB)
        glDisable(GL_TEXTURE_2D)
        glew.glActiveTextureARB(glew.GL_TEXTURE1_ARB)
        glDisable(GL_TEXTURE_2D)

        shadowSettings.BindShaders()
        glBegin(GL_QUADS)
        molGL.MolDrawShadow(self.atompos, self.radii, self.clipplane, self.excl, self.idx)
        glEnd()

        #glDisableClientState(GL_COLOR_ARRAY)
        #glDisableClientState(GL_TEXTURE_COORD_ARRAY)
        #glDrawArrays(GL_QUADS, 0, self.numatoms)
        #glEnableClientState(GL_COLOR_ARRAY)
        #glEnableClientState(GL_TEXTURE_COORD_ARRAY)

        #if (sticks):
        #    pass

        glPopMatrix()
Example #2
0
    def __init__(self, dir, mol, ndir, shadowmap):

        shadowmap.computeAsTexture(dir, True, shadowAOCanvas)
        glFinish()
        moltextureCanvas.SetAsOutput()
        glDisable(glew.GL_VERTEX_PROGRAM_ARB)
        glEnable(glew.GL_FRAGMENT_PROGRAM_ARB)
        AOgpu2.aogpu_settings.BindDrawAOShader()
        for i in range(3):
            glew.glProgramEnvParameter4fARB(glew.GL_FRAGMENT_PROGRAM_ARB, i,
                    matSM[0][i],matSM[1][i],matSM[2][i],matSM[3][i])
        
        glew.glProgramEnvParameter4fARB(glew.GL_FRAGMENT_PROGRAM_ARB, 3, dir[0],dir[1],dir[2], 4.0/ndir )
        #glew.glProgramEnvParameter4fARB(glew.GL_FRAGMENT_PROGRAM_ARB, 4, 0,stick_radius,0,0)
        global lastviewport
        lastviewport[:] = mol.DrawOnTexture()
        glDisable(GL_BLEND)
        glEnable(glew.GL_VERTEX_PROGRAM_ARB)
Example #3
0
    def DrawHalos(self):
        # let's try to aviod THIS!
        # Moved to drawFrame()
        #shadowmap.prepareDepthTextureForCurrentViewpoint() # hum, unavoidable.

        r = self.r * self.scaleFactor
        px, py, pz = self.pos
        glPushMatrix()
        glScalef(1/r,1/r,1/r)
        glMultMatrixd((glTrackball.quat * self.orien).asRotation())
        glTranslatef(-px,-py,-pz)
        #glClipPlane(GL_CLIP_PLANE0, self.clipplane)

        x = glGetFloatv(GL_MODELVIEW_MATRIX)
        scalef = extractCurrentScaleFactor_x(x)
        glew.glProgramEnvParameter4fARB(glew.GL_VERTEX_PROGRAM_ARB, 0,scalef, 0,0,0)

        glEnable(glew.GL_VERTEX_PROGRAM_ARB)
        glEnable(glew.GL_FRAGMENT_PROGRAM_ARB)

        glDepthMask(False)
        glEnable(GL_BLEND)

        if (cgSettings.doingAlphaSnapshot): glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)
        else: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)

        cgSettings.BindHaloShader( haloCanvas.getResPow2() )

        glew.glProgramEnvParameter4fARB(glew.GL_FRAGMENT_PROGRAM_ARB, 0,
          (100.0+cgSettings.P_halo_aware*1300.0)/scalef/r, 0,0,0)

        glBegin(GL_QUADS)
        molGL.MolDrawHalo(self.atompos, self.radii, cgSettings.P_halo_size, self.clipplane, self.excl, self.idx)
        glEnd()

        glDisable(GL_BLEND)
        cgSettings.BindShaders()

        glDepthMask(True)

        glPopMatrix()
        glDisable(glew.GL_VERTEX_PROGRAM_ARB)
        glDisable(glew.GL_FRAGMENT_PROGRAM_ARB)
Example #4
0
    def Draw(self):
        r = self.r * self.scaleFactor
        px, py, pz = self.pos
        glPushMatrix()
        glScalef(1./r,1./r,1./r)
        glMultMatrixd((glTrackball.quat * self.orien).asRotation())
        glTranslatef(-px, -py, -pz)
        #glClipPlane(GL_CLIP_PLANE0, self.clipplane)

        x = glGetFloatv(GL_MODELVIEW_MATRIX)
        scalef = extractCurrentScaleFactor_x(x)
        glew.glProgramEnvParameter4fARB(glew.GL_VERTEX_PROGRAM_ARB,0,scalef,0,0,0)

        glEnable(glew.GL_VERTEX_PROGRAM_ARB)
        glEnable(glew.GL_TEXTURE_2D)

        glew.glActiveTextureARB(glew.GL_TEXTURE0_ARB)
        moltextureCanvas.SetAsTexture()

        if cgSettings.P_shadowstrenght>0:
            ShadowMap.GetCurrentPVMatrix()
            ShadowMap.FeedParameters()

        for i in range(3):
            glew.glProgramEnvParameter4fARB(glew.GL_FRAGMENT_PROGRAM_ARB, i, 
                    x[i][0],x[i][1],x[i][2],0)
        glew.glProgramEnvParameter4fARB(glew.GL_FRAGMENT_PROGRAM_ARB, 6,
            self.PredictAO(),0,0,0)

        glEnable(glew.GL_VERTEX_PROGRAM_ARB)
        glEnable(glew.GL_FRAGMENT_PROGRAM_ARB)

        glBegin(GL_QUADS)
        molGL.MolDraw(self.atompos, self.radii, self.textures/moltextureCanvas.GetHardRes(), self.colors, self.clipplane, self.excl, self.idx)
        glEnd()
        #glDrawArrays(GL_QUADS, 0, self.numatoms)

        glDisable(glew.GL_VERTEX_PROGRAM_ARB)
        glDisable(glew.GL_FRAGMENT_PROGRAM_ARB)

        # Draw wireframe for clipplane
        if not numpy.allclose(self.clipplane, 0):
            clipplane = self.clipplane
            glColor(0.5, 0.5, 0.5)
            glBegin(GL_LINE_STRIP)
            glVertex3f(px-r, clipplane[3], pz-r)
            glVertex3f(px-r, clipplane[3], pz+r)
            glVertex3f(px+r, clipplane[3], pz+r)
            glVertex3f(px+r, clipplane[3], pz-r)
            glVertex3f(px-r, clipplane[3], pz-r)
            glEnd()

        glPopMatrix()
Example #5
0
def FeedParameters():
    for i in range(3):
        glew.glProgramEnvParameter4fARB(glew.GL_FRAGMENT_PROGRAM_ARB, i+3, 
                matFinal[0][i],matFinal[1][i],matFinal[2][i],matFinal[3][i])