Example #1
0
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_())
Example #2
0
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_())
Example #3
0
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_())
Example #4
0
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_())
Example #5
0
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_())
Example #6
0
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_())