Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以获得';隐形';python opengl中的顶点,比如gloo、glumpy?_Python_Opengl_Glumpy_Gloo - Fatal编程技术网

是否可以获得';隐形';python opengl中的顶点,比如gloo、glumpy?

是否可以获得';隐形';python opengl中的顶点,比如gloo、glumpy?,python,opengl,glumpy,gloo,Python,Opengl,Glumpy,Gloo,有没有可能在python opengl中获得“不可见”顶点的索引,比如gloo、glumpy? 例如,当我在scenegraph中绘制3D球体并使用转盘摄影机旋转对象时,一半顶点不可见,但每次旋转时索引都会更改 如果我打开“cull_face”选项,OpenGL将不会绘制它们,但是否有可能获得这些顶点的索引,“未绘制”或由于被其他顶点阻挡而不可见 但是,有没有可能得到这些顶点的索引,“未绘制”或由于被其他顶点阻挡而不可见 OpenGL不会直接提供此类功能。当然,这仍然可以实现。但是你需要自己去实

有没有可能在python opengl中获得“不可见”顶点的索引,比如gloo、glumpy? 例如,当我在scenegraph中绘制3D球体并使用转盘摄影机旋转对象时,一半顶点不可见,但每次旋转时索引都会更改

如果我打开“cull_face”选项,OpenGL将不会绘制它们,但是否有可能获得这些顶点的索引,“未绘制”或由于被其他顶点阻挡而不可见

但是,有没有可能得到这些顶点的索引,“未绘制”或由于被其他顶点阻挡而不可见

OpenGL不会直接提供此类功能。当然,这仍然可以实现。但是你需要自己去实现。以下是一些想法:

  • 绘制完之后,使用OpenGL将每个顶点渲染为一个单独的查询点——我不建议对其进行性能方面的编译,但这是可以做到的
  • 由于您基本上对人脸剔除感兴趣,因此只需自己计算人脸剔除。对于每个三角形,只需计算法向量,即两条边的叉积,然后检查视图方向向量与法向量之间的角度是否大于或小于90度,因此它是一个简单的点积。这种方法可以很容易地移植到GPU计算着色器,并且可以简单地并行运行,因为每个三角形都可以独立测试-而且它也应该在GPU上实现,因为您还可以使用它的功能使用与以前完全相同的矩阵变换顶点,由于这导致在窗口空间中的观察方向是恒定的
    (0,0,1)
    ,因此点积将只产生点积的z坐标,它只是窗口空间中顶点坐标的2D投影的有符号区域
  • 还可以通过检查从摄影机到每个顶点的光线的交点来执行简单的光线投射。您可以在这里轻松地应用投影矩阵,这样每个视图光线都将变得正交,然后您可以简单地对z缓冲区进行测试。这种方法也可以在GPU上实现

非常感谢!不过,我对OpenGL并不熟悉。你知道上面任何一个python包装的例子吗?对不起,我不知道。所有这些都是更先进的技术。但你们甚至需要剔除的顶点做什么呢?我试图在vispy网格对象中得到“点击”的顶点。目前,我采用了,但示例是拾取散射对象,但我的用法是从单个网格中选择顶点,所以不可见的顶点是随机选择的。。。