#!/usr/bin/python # -*- mode: python; Encoding: utf-8; coding: utf-8 -*- # Last updated: <2017/09/26 10:20:27 +0900> u""" pi3d draw model sample. モデルデータ(.obj + .mtl or .egg)を描画してみるサンプル。 ESCキーで終了する。 Windows10 x64 + Python 2.7.12 32bit + pi3d 2.21 """ from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals import pi3d # ウインドウ生成 display = pi3d.Display.create(frames_per_second=60) # ライトを設定. position, color, ambientを指定 light = pi3d.Light(lightpos=(10.0, -10.0, -5.0), lightcol=(1.0, 1.0, 1.0), lightamb=(0.3, 0.3, 0.3), is_point=False) # シェーダを生成 shader = pi3d.Shader("uv_light") # カメラ生成 camera = pi3d.Camera.instance() # モデルデータを読み込み # modelpath = "models/cube_quad_tex2.obj" # modelpath = "models/robo_01.obj" modelpath = "models/robo_02.obj" # modelpath = "models/cube_quad_tex2.egg" # modelpath = "models/robo_01.egg" # modelpath = "models/robo_02.egg" my_model = pi3d.Model(file_string=modelpath, name="my_model", rx=0, ry=0, rz=0, # rotate sx=1.0, sy=1.0, sz=1.0, # scale x=0.0, y=0.0, z=4.0 # position ) # モデルのシェーダを設定 my_model.set_shader(shader) # my_model.set_light(light) # キーボード取得用クラスを生成 keys = pi3d.Keyboard() # メインループ while display.loop_running(): camera.reset() # モデルを描画 my_model.draw() # モデルを回転 my_model.rotateIncX(0.25) my_model.rotateIncY(1.0) if keys.read() == 27: # ESCキーが押されたら終了 keys.close() display.destroy() break