Esempio n. 1
0
	def gfx_init( self ) :
		try :
			print 'compiling'
			self.prog = sh.compile_program_vfg( 'shad/balls' )

			print 'compiled'

			self.loc_mmv = sh.get_loc(self.prog,'modelview' )
			self.loc_mp  = sh.get_loc(self.prog,'projection')
			self.l_color = sh.get_loc(self.prog,'color'     )
			self.l_size  = sh.get_loc(self.prog,'ballsize'  )

		except ValueError as ve :
			print "Shader compilation failed: " + str(ve)
			sys.exit(0)    

#        glUseProgram( self.prog )
#        glUniform1i( pointsid , 0 );
#        glUseProgram( 0 )

		#
		# cuda init
		#
		self.grid = (int(self.BOX),int(self.BOX))
		self.block = (1,1,int(self.BOX))

		print 'CUDA: block %s , grid %s' % (str(self.block),str(self.grid))
#        print cuda_driver.device_attribute.MAX_THREADS_PER_BLOCK
#        print cuda_driver.device_attribute.MAX_BLOCK_DIM_X
#        print cuda_driver.device_attribute.MAX_BLOCK_DIM_Y
#        print cuda_driver.device_attribute.MAX_BLOCK_DIM_Z

		floatbytes = np.dtype(np.float32).itemsize

		self.gpos = glGenBuffers(1)
		glBindBuffer( GL_ARRAY_BUFFER , self.gpos )
		glBufferData( GL_ARRAY_BUFFER , self.pos.nbytes, self.pos, GL_STREAM_DRAW )
		glBindBuffer( GL_ARRAY_BUFFER , 0 )

		self.df1 = cuda_driver.mem_alloc( self.f.nbytes )
		self.df2 = cuda_driver.mem_alloc( self.f.nbytes )

		cuda_driver.memcpy_htod( self.df1 , self.f )
		cuda_driver.memset_d32( self.df2 , 0 , self.NUM*self.Q )

		mod = cuda_driver.module_from_file( 'lbm_kernel.cubin' )

		self.collision = mod.get_function("collision_step")
		self.collision.prepare( "Piii" )

		self.streaming = mod.get_function("streaming_step")
		self.streaming.prepare( "PPiii" )

		self.colors = mod.get_function("colors")
		self.colors.prepare( "PPiii" )
Esempio n. 2
0
File: water.py Progetto: jkotur/duck
	def _mk_shaders( self ) :
		try : 
			self.prog = sh.compile_program('shad/water')

			self.loc_mmv   = sh.get_loc(self.prog,'modelview' )
			self.loc_mp    = sh.get_loc(self.prog,'projection')
			self.loc_norms = sh.get_loc(self.prog,'normalmap' )
			self.loc_cube  = sh.get_loc(self.prog,'cubemap'   )
			self.loc_cam   = sh.get_loc(self.prog,'campos'    )
		except ValueError as ve :
			print "Shader compilation failed: " + str(ve)
			sys.exit(0)    
Esempio n. 3
0
File: mesh.py Progetto: jkotur/duck
	def _load_shader( self , path ) :
		try : 
			self.prog = sh.compile_program(path)

			self.loc_mmv   = sh.get_loc(self.prog,'modelview' )
			self.loc_mp    = sh.get_loc(self.prog,'projection')
			self.loc_tex   = sh.get_loc(self.prog,'texture'   )
			self.loc_light = sh.get_loc(self.prog,'light'     )
			self.loc_anix  = sh.get_loc(self.prog,'xdir'      )
		except ValueError as ve :
			print "Shader compilation failed: " + str(ve)
			sys.exit(0)    
Esempio n. 4
0
	def init_volumes_shader( self ) :
		print 'Loading shaders'

		try :
			self.prog = sh.compile_program("volume")

			self.loc_mmv = sh.get_loc(self.prog,'modelview' )
			self.loc_mp  = sh.get_loc(self.prog,'projection')
			self.loc_lpos= sh.get_loc(self.prog,'lpos'      )
			self.loc_cull= sh.get_loc(self.prog,'culling'   )
		except ValueError as ve :
			print "Shader compilation failed: " + str(ve)
			sys.exit(0)

		print 'Create adjacency data'
		self.adj   = self.create_adjacency( self.et , self.t , self.vidx , self.pts_len )
		self.adj   = np.array( self.adj   , np.uint32  )
Esempio n. 5
0
File: mesh.py Progetto: jkotur/Puma
    def init_volumes_shader(self):
        print 'Loading shaders'

        try:
            self.prog = sh.compile_program("volume")

            self.loc_mmv = sh.get_loc(self.prog, 'modelview')
            self.loc_mp = sh.get_loc(self.prog, 'projection')
            self.loc_lpos = sh.get_loc(self.prog, 'lpos')
            self.loc_cull = sh.get_loc(self.prog, 'culling')
        except ValueError as ve:
            print "Shader compilation failed: " + str(ve)
            sys.exit(0)

        print 'Create adjacency data'
        self.adj = self.create_adjacency(self.et, self.t, self.vidx,
                                         self.pts_len)
        self.adj = np.array(self.adj, np.uint32)
Esempio n. 6
0
	def gfx_init( self ) :
		try :
			print 'compiling'
			self.prog = sh.compile_program_vfg( 'shad/balls' )

			print 'compiled'

			self.loc_mmv = sh.get_loc(self.prog,'modelview' )
			self.loc_mp  = sh.get_loc(self.prog,'projection')
			self.l_color = sh.get_loc(self.prog,'color'     )
			self.l_size  = sh.get_loc(self.prog,'ballsize'  )

		except ValueError as ve :
			print "Shader compilation failed: " + str(ve)
			sys.exit(0)    

#        glUseProgram( self.prog )
#        glUniform1i( pointsid , 0 );
#        glUseProgram( 0 )

		#
		# cuda init
		#
		self.grid = (int(self.NUM/256)+1,1)
		self.block = (256,1,1)

		print 'CUDA: block %s , grid %s' % (str(self.block),str(self.grid))

		self.gpts = glGenBuffers(1)
		glBindBuffer( GL_ARRAY_BUFFER , self.gpts )
		glBufferData( GL_ARRAY_BUFFER , self.pts.nbytes , self.pts , GL_STREAM_DRAW )
		glBindBuffer( GL_ARRAY_BUFFER , 0 )

#        self.dprv = cuda_driver.mem_alloc( self.prv.nbytes )
		self.dvel = cuda_driver.mem_alloc( self.vel.nbytes )
		self.dacc = cuda_driver.mem_alloc( self.acc.nbytes )
		self.dfrs = cuda_driver.mem_alloc( self.frs.nbytes )
		self.dmas = cuda_driver.mem_alloc( self.mas.nbytes )
		self.ddns = cuda_driver.mem_alloc( self.dns.nbytes )

#        cuda_driver.memcpy_htod( self.dprv , self.prv )
		cuda_driver.memcpy_htod( self.dvel , self.vel )
		cuda_driver.memcpy_htod( self.dacc , self.acc )
		cuda_driver.memcpy_htod( self.dfrs , self.frs )
		cuda_driver.memcpy_htod( self.dmas , self.mas )
		cuda_driver.memcpy_htod( self.ddns , self.dns )

		mod = cuda_driver.module_from_file( 'sph_kernel.cubin' )

		self.update_pts = mod.get_function("update_pts")
		self.update_pts.prepare( "PPPfi" )

		self.update_vel = mod.get_function("update_vel")
		self.update_vel.prepare( "PPPfi" )

		self.update_dns = mod.get_function("update_dns")
		self.update_dns.prepare( "PPPi" )

		self.update_frs = mod.get_function("update_frs")
		self.update_frs.prepare( "PPPPPi" )

		self.collisions = mod.get_function("collisions")
		self.collisions.prepare( "PPPfPfi" )