def test_model_attr(jsonpath): app = QApplication(sys.argv) model = load_fromjson(jsonpath) renderer = ModelRenderer(model=model, camera=Camera()) renderer.camera.yaw = math.radians(90.0) renderer.camera.position = np.array([0.0, 0.0, -1.0], dtype=np.float32) w = GLWidget() w.renderer = renderer w.show() from PyQt5.QtCore import QTimer def _change1(): model.color = np.array([1.0, 0.0, 0.0], dtype=np.float32) w.update() def _change2(): model.color = np.array([1.0, 1.0, 0.0], dtype=np.float32) w.update() def _change3(): model.color = np.array([0.0, 0.0, 1.0], dtype=np.float32) w.update() QTimer.singleShot(1000, lambda: _change1()) QTimer.singleShot(2000, lambda: _change2()) QTimer.singleShot(3000, lambda: _change3()) sys.exit(app.exec_())
def test_json(jsonpath): app = QApplication(sys.argv) model = load_fromjson(jsonpath) instance1 = ModelInstance( name='instance1', model=model ) instance2 = ModelInstance( name='instance1', model=model ) instance1.translation = [3.0, 0.0, 1.0] instance1.scale = [2.0, 3.0, 3.0] instance1.rotation = [0.0, 0.0, 0.0] instance2.translation = [0.0, 0.0, 1.0] instance2.rotation = [30.0, 0.0, 0.0] renderer = MonoInstanceRenderer(camera=Camera()) renderer.instances.append(instance1) renderer.instances.append(instance2) w = GLWidget() w.renderer = renderer w.keyPressed.connect(renderer.camera.key_pressed) w.show() renderer.camera.yaw = math.radians(90.0) renderer.camera.position = np.array([+3.0, 0.0, -10.0], dtype=np.float32) sys.exit(app.exec_())
def test_model_json(jsonpath): model = load_fromjson(jsonpath) app = QApplication(sys.argv) renderer = ModelRenderer(model=model, camera=Camera()) renderer.camera.yaw = math.radians(90.0) renderer.camera.position = np.array([0.0, 0.0, -1.0], dtype=np.float32) w = QQuickGLView() w.renderer = renderer w.keyPressed.connect(renderer.camera.key_pressed) w.show() sys.exit(app.exec_())
def test_model_textbook(jsonpath): frame_size = (640, 480) model = load_fromjson(jsonpath) app = QApplication(sys.argv) renderer = ModelRenderer(model=model) renderer.camera.yaw = math.radians(-90.0) renderer.camera.position = np.array([57.0, 41.0, 247.0], dtype=np.float32) renderer.camera.SPEED = 3.0 renderer.camera.set_projection(aspect_ratio=frame_size[0] / frame_size[1], far_distance=1000.0, near_distance=0.1) w = QQuickGLView() w.renderer = renderer w.keyPressed.connect(renderer.camera.key_pressed) w.show() sys.exit(app.exec_())
def test_model_mono(jsonpath): app = QApplication(sys.argv) model = load_fromjson(jsonpath) instance = ModelInstance(model=model) use_material = type(model) is TextureModel renderer = MonoInstanceRenderer(camera=Camera(), use_material=use_material) renderer.instances.append(instance) renderer.camera.yaw = math.radians(240.0) renderer.camera.pitch = math.radians(-18.0) renderer.camera.position = np.array([1.0, 1.0, 1.8], dtype=np.float32) # renderer.camera.yaw = math.radians(-90.0) # renderer.camera.pitch = math.radians(0.0) # renderer.camera.position = np.array([0.0, 0.0, 1.0], dtype=np.float32) w = GLWidget() w.renderer = renderer w.keyPressed.connect(renderer.camera.key_pressed) w.show() sys.exit(app.exec_())
def test_model_light(jsonpath): app = QApplication(sys.argv) model = load_fromjson(jsonpath) instance = ModelInstance(model=model) light = DirectionalLight( direction=np.array([-0.2, -0.1, -0.3], dtype=np.float32)) use_material = type(model) is TextureModel renderer = InstanceRenderer(camera=Camera(), lights=[light], use_material=use_material) renderer.instances.append(instance) renderer.camera.yaw = math.radians(240.0) renderer.camera.pitch = math.radians(-18.0) renderer.camera.position = np.array([1.0, 1.0, 1.8], dtype=np.float32) w = GLWidget() w.renderer = renderer w.keyPressed.connect(renderer.camera.key_pressed) w.show() sys.exit(app.exec_())