示例#1
0
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
示例#2
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])
示例#3
0
                  ["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))
示例#4
0
                     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()
示例#5
0
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)
示例#6
0
                              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)