culling相关内容

Libgdx 视锥体剔除在 actor.draw() 中

我正在使用 libgdx 开发一个小游戏.这是一个 2D 自上而下的游戏,上面有一些大地图和许多对象.所以我只想在我的视锥中渲染东西.我见过 camera.frustum.***inFrustum(Paramter... p).但我使用的是scene2d,我在Stage中设置了相机,将SpriteBatch的投影矩阵设置为camera.combined和我的Actor 在重写的 draw(Spri ..
发布时间:2022-01-12 17:10:10 Java开发

openGL中的顺时针面是什么

在背面剔除中,您可以使用面部法线来查看面部是否远离相机,如果三角形是顺时针或逆时针绘制,您可以使用一些技巧. 我对这种技术与顺时针方向感到困惑.似乎使用这种方法,发送到显卡的顶点数据的顺序决定了它是面向还是背离相机.我不明白这有什么意义,因为相机可以朝任何方向看,就好像顶点数据必须根据相机位置而改变,而这显然不是在 CPU 上完成的. 我怎么理解这个? 解决方案 这是从对边看的 ..
发布时间:2021-12-19 18:40:28 其他开发

使用 Libgdx 进行高效的 3D 块渲染

首先,我对 3D 编程和 libgdx 还很陌生.我看了一些教程,我已经渲染了我想要的场景.我有一些 1x1x1 的块,使用 ModelBuilder.createRect() 为每个可见的面创建,所以如果另一个块覆盖了这个块的一个面,则没有为此块创建的矩形.也不需要顶部和底部矩形,因为我永远看不到它们(地板除外).所以我想,这是非常有效的.我还启用了 Backface culling 并且我做了 ..
发布时间:2021-11-25 02:43:39 Java开发

Libgdx ModelBuilder.createRect 仅从一侧可见

在我的第一个 libgdx 3D 游戏中,我现在从 createBox 切换到 createRect,只创建可见的面(如果一堵墙在另一堵墙的左侧,它的右脸是不可见的...).我正在创建 4 个模型: frontFace backFace 右脸 leftFace 他们几乎被画出来了.但是有一个大问题:只有当我看正 z-Direction 时,侧面才可见.如果我看另一边(负 z-Di ..
发布时间:2021-11-25 01:39:33 Java开发

提取视锥体平面(Gribb & Hartmann 方法)

我一直在努力解决 Gribb/Hartmann 提取平截头体平面已经有一段时间了,但收效甚微.我想构建一个相机视锥体来剔除我的场景. 我正在使用右手坐标系中的列主矩阵.(OpenGL 风格 - 我使用 C# 和 Playstation Mobile,但数学应该是一样的) 我想在世界空间中获得我的平面,所以我从视图投影矩阵(即投影矩阵 * 视图矩阵)构建了我的平截头体.视图矩阵是相机世界 ..
发布时间:2021-11-25 01:05:11 C#

剔除可见区域之外的项目

来自文档: 默认渲染器不执行任何 CPU 端视口裁剪或遮挡检测.如果某些东西不应该是可见的,它就不应该被显示出来.对于不应绘制的项目,请使用 Item::visible: false.不添加这种逻辑的主要原因是它增加了额外的成本,这也会损害注意表现良好的应用程序. 那么有没有什么技巧可以轻松做到,而无需自己实施呢? 请注意,在我的情况下,可见区域之外的项目在那里,因为它们在 Sc ..
发布时间:2021-06-30 18:59:05 其他开发

提取视锥面(Gribb& Hartmann方法)

我一直在努力提取Gribb/Hartmann方法的方法视锥飞机已有一段时间,但收效甚微.我想建立一个摄影机视锥以消隐我的场景. 我正在用右手坐标系处理主要列矩阵. (OpenGL风格-我使用的是C#和Playstation Mobile,但数学方法应该相同) 我想让飞机进入世界空间,所以我从View-Projection Matrix(即projectionMatrix * viewM ..
发布时间:2020-08-19 20:24:05 其他开发

在WPF中禁用人脸剔除

我开始尝试WPF 3D渲染,而我面临的第一个问题是如何禁用人脸剔除. 我知道如何在DirectX和OpenGL中执行此操作,但是我找不到在WPF中执行此操作的方法. 这是我的ViewPort标记.该模型是在运行时生成的,它是GeometryModel3D内部的MeshGeometry3D ..
发布时间:2020-07-26 05:45:00 其他开发

背面剔除线路环

我正在使用z缓冲区渲染3D三角形网格.但是,当我将模型渲染为线框网格时,我还看到了应该被正面隐藏的三角形面.因此,我使用了背面剔除方法,如下所示: glEnable(GL_CULL_FACE); glCullFace(GL_BACK); drawWireFrame(); glDisable(GL_ ..
发布时间:2020-05-20 23:44:52 C/C++开发

Opengl深度缓冲区和剔除

使用背面剔除和OpenGL中的深度缓冲之间有什么区别? 解决方案 背面剔除是OpenGL确定哪些面背对查看器且因此看不见的时候.想想一个立方体.无论您如何旋转多维数据集,始终将看不见3个面.弄清楚这些是哪些面,将它们从要绘制的多边形列表中删除,您只需将绘制列表减半即可. 深度缓冲非常简单.对于绘制的每个多边形的每个像素,将其z值与z缓冲区进行比较.如果小于z缓冲区中的值,则将z缓冲区 ..
发布时间:2020-05-20 23:21:55 其他开发

早期模版剔除

基于模版测试,我正在努力使早期的碎片剔除工作. 我的场景如下:我有一个片段着色器,可以完成很多工作,但是在渲染场景时只需要在很少的片段上运行.这些碎片几乎可以放在屏幕上的任何位置(我不能用剪刀快速过滤掉这些碎片). 在渲染过程1中,我生成了一个带有两个可能值的模板缓冲区.值对于传递2具有以下含义: 0:什么都不做 1:可以继续(例如,输入片段着色器并进行渲染) 第2遍使场景正确 ..
发布时间:2020-05-20 22:56:21 其他开发

渲染中最先进的剔除和批处理技术

我目前正在升级和重组OpenGL渲染引擎.该引擎用于可视化建筑数据(带有内部建筑物的大型场景),并且对象的数量可能会变得非常大.就像任何建筑物一样,墙壁内有很多被遮挡的物体,您自然只能看到与您在同一房间的物体,或者如果您在外面,则只能看到外部的物体.这就留下了许多应通过遮挡剔除和平截头体剔除来遮挡的对象. 同时,可以在渲染批处理中批处理很多重复的几何图形,并且还可以使用实例渲染来渲染很多对象 ..

提取视锥面(Hartmann& Gribbs方法)

我一直在努力 Hartmann/Gribbs提取视锥的方法飞机已有一段时间,但收效甚微.我想建立一个摄影机视锥以消隐我的场景. 我正在用右手坐标系处理主要列矩阵. (OpenGL风格-我使用的是C#和Playstation Mobile,但数学方法应该相同) 我想让飞机进入世界空间,所以我从View-Projection Matrix(即projectionMatrix * viewM ..
发布时间:2020-05-06 11:01:58 其他开发

什么是openGL中的顺时针面部

在背面剔除中,您可以使用脸部法线来查看脸部是否指向远离相机的位置,如果三角形以时钟方式绘制或逆时针方向绘制,则可以采用一些技巧。 我对顺时针方向的这项技术感到困惑。对于这种方法来说,发送给显卡的顶点数据的排序决定了它是朝向还是远离相机。我不明白这是否合理,因为相机可以朝任何方向观看,就好像顶点数据必须根据相机位置改变,这显然不会在CPU上完成。 我怎么理解这个? 解决方案 / ..
发布时间:2018-05-25 18:49:16 其他开发

Libgdx view frustum culling inside actor.draw()

我使用libgdx开发一个小游戏。它是一个2d自上而下的游戏,一些大地图和许多对象在他们。所以我只是想在我的视野中渲染东西。我看到 camera.frustum。*** inFrustum(Paramter ... p)。但我使用scene2d和我在 Stage 中设置相机,将 SpriteBatch 的投影矩阵设置为 camera.combined 和我的 Actor 绘制自己在重写的绘制(Sp ..
发布时间:2016-11-10 16:57:26 Java开发

DX11中的顶点卷绕顺序

我试图用dx11绘制一个简单的正方形,但每个三角形的索引的顺序决定了它是否显示。我设置cull模式为none在光栅器状态,但它似乎没有改变任何东西。 如果我指定第一个三角形的顶点为0,1,2而不是2,1,0,那么三角形不会显示。所以我的问题是,我需要以特定的方式排序三角形的顶点,而不考虑剔除模式? P.S。 UINT indices [] = {2,1,0, 1,3,0}; ..
发布时间:2016-10-25 15:57:04 C/C++开发

DX11中的顶点卷绕顺序

我试图用dx11绘制一个简单的平方,但每个三角形的索引的顺序决定它是否显示。我设置cull模式为none在光栅器状态,但它似乎没有改变任何东西。 如果我指定第一个三角形的顶点为0,1,2而不是2,1,0,那么三角形不会显示。所以我的问题是,我需要以特定的方式排序三角形的顶点,而不管剔除模式? P.S。 UINT indices [] = {2,1,0, 1,3,0}; ..
发布时间:2016-10-25 15:46:11 C/C++开发

与Libgdx高效的3D块渲染

首先,我是pretty的新的3D节目和libgdx。 我看了一些教程,我已经使我想要的场景。我有一些1X1X1块,用 ModelBuilder.createRect()创建的每一个可见的脸,因此,如果另一个块覆盖面这一块,有没有对这个块创建矩形。另外,顶部和底部的矩形是不需要的,因为我永远无法看到它们(除楼)。所以我想,这是pretty的效率。我也有背面剔除启用,我 Viewfrustum扑杀。不 ..
发布时间:2015-11-28 12:28:11 Java开发

Libgdx ModelBuilder.createRect从一个侧面才能看到

在我的第一个libgdx 3D游戏现在我从 createBox 切换到 createRect ,只创建可见的脸(如果一个壁是上的另一个壁的左侧,其右侧面是不可见的...)。我创建4个型号: frontFace 背面 rightFace leftFace 他们几乎绘制他们实际上应该如何。 但有一个大问题:侧面只有当我看向正 Z方向可见。 如果我把对方(负 Z方向),他们不画。正面和背面只画,如果 ..
发布时间:2015-11-28 12:00:14 Java开发