frustum

    1热度

    1回答

    我试图确定相对于屏幕(视锥)在世界中的对象(一BoxGeometry)的位置(x,y,z坐标)和而不是世界。该frustum.intersectsObject(...)方法简单地返回一个布尔值,我想,以确定哪些象限([-X,Y],[X,Y] [X,-Y],[ - X,-Y])一箱相对于相机而言(下面屏幕截图中的红线跟随相机而不是场景)。现在,只要相机未旋转(room.children[i].pos

    1热度

    1回答

    作为编写3D游戏库的一部分,我试图实施平截头体剔除以避免呈现超出摄像机视角范围的对象。要做到这一点,我首先需要为每个网格计算一个边界球,并查看它是否与视锥体的六边中的任何一边发生碰撞。这是我目前(非常)天真的执行情况在我的代码写在model.py计算每个模型的包围球: from pyorama.entity import Entity from pyorama.math3d.vec3 impor

    2热度

    1回答

    我想知道使用可编程管线进行平截头体剔除的最有效方式是什么。我的意思是,如果我理解正确,按照此处描述的方法:Geometric Aproach(顺便说一下,那里曾经为我工作过的唯一方法),像glGetFloatv(GL_MODELVIEW_MATRIX,...)这样的函数不再有效,因为在着色器阶段计算最终顶点位置。我必须在客户端计算我在呈现之前必须检查的每个边界框变换的平面视觉平面吗? 谢谢。

    0热度

    1回答

    我想知道在使用透视投影时是否有简单的方法来翻转y坐标?关于这个问题的线索似乎集中在正交投影上。我正在将基于Canvas的游戏转换为OpenGL ES 2.0,并且具有相对复杂的碰撞检测功能。和大量的语法是基于y轴从屏幕的顶部始于0和例如2560 @Override public void onSurfaceChanged(GL10 unused, int width, int height) {

    1热度

    1回答

    我在SFML中制作基于拼图的游戏,并决定实施一个简单的包围盒截锥体剔除,以仅绘制相机视口中的贴图。结果取得了成功,因为它将我的帧率提高了两倍!但是,有一个缓存。当在调试中运行游戏时,帧率将由实施的平截头体剔除降低。它在调试中从90 fps下降到30 fps,而在发布时它从100上升到了大约350 fps。 剔除只是检查每个瓷砖矩形,无论它是否与视口的矩形相交。如果确实如此,则绘制。本场比赛呈现多个

    7热度

    1回答

    我正在构建一个应用程序,其中我呈现了一些带有纹理的平面。但是,我想计算螺旋线的半径(我在计算中用于创建螺旋线),动态基于截锥体宽度和相机位置。 螺旋位于屏幕中心x = 0,y = 0,z = 0。 我想这样做考虑屏幕方向(风景/人像)。到目前为止,这是我有的代码,但似乎我失去了一些东西,因为左侧和右侧的飞机不在里面视口。 App.prototype.calculateHelixRadius = f

    0热度

    1回答

    我试图理解一些可能比我现在想的要容易得多的东西,所以希望有人能够帮助我理解我在下面描述的内容。 我知道,如果一个球体完全位于3D的六个平截头体平面(左,右,底部,顶部,近远)中的至少一个后面,那么它就位于视锥体之外。在下面的例子中,对于以中心c2为圆心的圆,这完全在左平面外。重叠测试简单地通过将球的中心坐标插入平面方程来获得从中心到平面的距离,然后将其与球的半径进行比较来完成。 但是,在中心c1的

    0热度

    1回答

    我试图找出确定点是否在平截头体内的最佳方法。我有一些工作,但不知道它是否太麻烦,也许有一种更优雅/有效的方式,我应该这样做。 假设我想找出是否点“X”是平截里面: 一旦我有截的8点的位置(4附近分,4个远点) ,我正在根据三个点的三角形计算平截面的每个平面的法线。例如(如上面在图中),用于右侧,我从三个点的使两个向量: Vector U = FBR - NBR Vector V = FTR -

    2热度

    1回答

    我正在使用自定义QSGGeometryNode和QSGTransformNode在Qml场景图中绘制3D几何(Point3D顶点)。除了3D模型在某个z坐标处被切断(z是Qml中的深度轴)之外,其他工作方式都是如此。首先,我期望这个问题是由于与Qml 2D平面交叉引起的。但我试图沿着z轴移动模型,并且它总是被切断(就好像有一个局部模型平截头体剪切平面)。 什么可能是这个问题的根源? 问候,

    -1热度

    1回答

    我正在创建一个游戏,当我渲染很多块时。 fps严重下降,一切都滞后。我知道为什么它滞后,因为同时渲染了许多对象,但我无法弄清楚如何创建和实现一个截锥体剔除或任何类型的剔除类到我的游戏。 注:我正在使用VBOs。 我刚在网上找不到;请帮忙。 下面是我的一些代码: //Render Game this were I render my game public void Render_GAME() {