我不知道如何从屏幕坐标到世界坐标.我正在使用VisPy,我想在3D中实现光线跟踪和拾取能力.
我根据立方体示例准备了一些代码.下面的代码通过更改z值并在''on_mouse_press''方法中打印3D坐标来通过屏幕发送粗糙的光线.但结果不正确.如果我点击立方体的右上角,沿着光线的某个地方应该打印(3,3,3),但事实并非如此.任何人都可以帮我吗?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vispy: gallery 50
"""
This example shows how to display 3D objects.
You should see a colored outlined spinning cube.
"""
import numpy as np
from vispy import app, gloo
from vispy.util.transforms import perspective, translate, rotate
vert = """
// Uniforms
// ------------------------------------
uniform mat4 u_model;
uniform mat4 u_view;
uniform mat4 u_projection;
uniform vec4 u_color;
// Attributes
// ------------------------------------
attribute vec3 a_position;
attribute vec4 a_color;
attribute vec3 a_normal;
// Varying …Run Code Online (Sandbox Code Playgroud)