print(display.opengl.gl_id) # the type of glsl your pi is running if W is None or H is None: (W, H) = (display.width, display.height) print('setting display size to ' + str(W) + ' ' + str(H)) ## shadertoy shader stuff ## sprite = pi3d.Triangle(corners=((-1.0, -1.0), (-1.0, 3.0), (3.0, -1.0))) shader = pi3d.Shader('cloud') sprite.set_shader(shader) ## offscreen texture stuff ## cam = pi3d.Camera(is_3d=False) postsh = pi3d.Shader('post_vanilla') post = pi3d.PostProcess(camera=cam, shader=postsh, scale=SCALE) ## interactive inputs ## kbd = pi3d.Keyboard() mouse = pi3d.Mouse() # pi3d.Mouse(restrict = True) # changes input coordinates mouse.start() MX, MY = mouse.position() MXC, MYC = mouse.position() MC = mouse.button_status( ) # 8 = hover, 9 = right Click down, 10 = left C, 12 = middle C MouseClicked = False ## set up time ## iTIME = 0 iTIMEDELTA = 0 iFRAME = 0
DISPLAY = pi3d.Display.create(x=100, y=100, w=800, h=800, frames_per_second=40, mouse=True) DISPLAY.set_background(0.4, 0.6, 0.8, 1.0) # r,g,b,alpha persp_cam = pi3d.Camera(scale=0.5) # default instance camera perspecive view #setup textures, light position and initial model position pi3d.Light((0, 5, 0)) #create shaders shader = pi3d.Shader("star") flatsh = pi3d.Shader("uv_flat") post = pi3d.PostProcess(camera=persp_cam, scale=0.5) #Create textures shapeimg = pi3d.Texture("textures/straw1.jpg") shapebump = pi3d.Texture("textures/floor_nm.jpg", True) #Create shape myshape = pi3d.MergeShape(camera=persp_cam) #specify perspective view asphere = pi3d.Sphere(sides=32, slices=32) myshape.radialCopy(asphere, step=72) myshape.position(0.0, 0.0, 5.0) myshape.set_draw_details(shader, [shapeimg], 8.0, 0.1) mysprite = pi3d.Sprite(w=10.0, h=10.0, camera=persp_cam) mysprite.position(0.0, 0.0, 15.0) mysprite.set_draw_details(flatsh, [shapebump])
["shaders/filter_blur", [0.0075]], # NA ["shaders/filter_hatch", [0.1, 0.0, 0.0]]] # solid_colour_r, g, b n_filter = len(filter_list) i_filter = -1 # as incremented prior to loading cx, cz = 70.0, 190.0 c_rad = 80.0 frame = 0 st_time = time.time() while DISPLAY.loop_running(): if rot % 360.0 == 0.0: #NB this has to happen first loop! LOGGER.info("{} FPS was {:.5}".format(filter_list[i_filter % n_filter][0], 360.0 / (time.time() - st_time))) i_filter = (i_filter + 1) % n_filter texetc = [reflimg] if (i_filter < 3) else None post = pi3d.PostProcess(filter_list[i_filter][0], add_tex=texetc, scale=0.5) post.sprite.set_custom_data(48, filter_list[i_filter][1]) string = pi3d.String(font=font, string=filter_list[i_filter][0], camera=CAM2D, is_3d=False, x=0, y=-220, z=0.5) string.set_shader(flatsh) st_time = time.time() if len(filter_list[i_filter]) > 2: for i, delta in enumerate(filter_list[i_filter][2]): post.sprite.set_custom_data(48 + i, [filter_list[i_filter][1][i] + rot * delta]) xm = cx + math.sin(math.radians(rot)) * c_rad zm = cz - math.cos(math.radians(rot)) * c_rad ym = mymap.calcHeight(xm, zm) + avhgt rot += 1.0 CAMERA.reset() CAMERA.rotate(tilt, rot + 15.0, 0) CAMERA.position((xm, ym, zm))
y=-1, z=40, sx=2.5, sy=2.5, sz=2.5) #sx=0.005, sy=0.005, sz=0.005) mymodel.set_shader(shader) # Fetch key presses mykeys = pi3d.Keyboard() start_time = time.time() es = 0 delta = 1 noiseTex = pi3d.Texture("textures/cnoise1.jpg") post = pi3d.PostProcess("shaders/filter_paint", add_tex=[noiseTex], scale=0.5) post1 = pi3d.PostProcess("shaders/filter_hatch") while True: newes = (time.time() - start_time) delta = newes - es es = newes DISPLAY.clear() post.sprite.set_custom_data(48, [es]) post.start_capture() ##<<<<<<<<<<<<<< mymodel.draw() post.end_capture() ##>>>>>>>>>>>>>> post1.start_capture() post.draw()
def _tex_load(tex_list, slot, fName): tex_list[slot] = pi3d.Texture(fName) # Setup display and initialise pi3d DISPLAY = pi3d.Display.create(x=50, y=50, frames_per_second=40) DISPLAY.set_background(0.4, 0.6, 0.8, 1.0) # r,g,b,alpha #persp_cam = pi3d.Camera.instance() # default instance camera perspecive view #setup textures, light position and initial model position pi3d.Light((0, 5, 0)) #create shaders shader = pi3d.Shader("star") flatsh = pi3d.Shader("uv_flat") post = pi3d.PostProcess("shaders/filter_outline") #Create textures tFiles = glob.glob("textures/*.*") nTex = len(tFiles) slot = 0 tex_list = [pi3d.Texture(tFiles[slot]), None] #ensure first texture there slot = 1 #next texture load in background t = threading.Thread(target=_tex_load, args=(tex_list, slot % 2, tFiles[slot % nTex])) t.daemon = True t.start() #Create shape myshape = pi3d.MergeShape() asphere = pi3d.Sphere(sides=32, slices=32)
h=600, frames_per_second=25, window_title='Blur demo', use_glx=True) DISPLAY.set_background(0.0, 0.0, 0.0, 0.0) # r,g,b,alpha persp_cam = pi3d.Camera.instance() # default instance camera perspecive view ortho_cam = pi3d.Camera(is_3d=False) # 2d orthographic view camera #setup textures, light position and initial model position pi3d.Light((0, 5, 0)) #create shaders shader = pi3d.Shader("uv_reflect") flatsh = pi3d.Shader("uv_flat") blursh = pi3d.Shader("shaders/filter_blurdistance") defocus = pi3d.PostProcess(shader=blursh) #Create textures shapeimg = pi3d.Texture("textures/straw1.jpg") shapebump = pi3d.Texture("textures/floor_nm.jpg") shapeshine = pi3d.Texture("textures/pong3.png") #Create shape myshape = pi3d.MergeShape(camera=persp_cam) #specify perspective view asphere = pi3d.Sphere(sides=16, slices=16) myshape.radialCopy(asphere, step=72) myshape.position(0.0, 0.0, 5.0) myshape.set_draw_details(shader, [shapeimg, shapebump, shapeshine], 8.0, 0.1) mysprite = pi3d.Sprite(w=10.0, h=10.0, camera=persp_cam) mysprite.position(0.0, 0.0, 15.0)