问题标签 [culling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2555 浏览

vb.net - 在 Isometric 引擎中剔除屏幕外图块

对于一个大学学期项目,我正在研究一个使用等距显示的图形 roguelike(我知道术语:P 的矛盾)。我想弄清楚的是,由于绘制所有瓷砖非常昂贵且不必要,我想找出一种相对快速的算法来确定应该绘制哪些瓷砖以适合 NxMpx 窗口,因为瓷砖图形是 XxYpx。

我没有为此进行平滑滚动,所以这不是问题。我也不担心完美 - 一点不必要的抽奖很好,我只是不想绘制大量不会出现在游戏中的不必要的瓷砖。

0 投票
2 回答
6120 浏览

opengl - Opengl 深度缓冲和剔除

在OpenGL中使用背面剔除和深度缓冲区有什么区别?

0 投票
3 回答
16260 浏览

opengl - 我应该总是使用 GL_CULL_FACE 吗?

渲染时我应该一直使用这种方法吗?它在坏显卡上会减慢很多吗?

如果最终结果不会有很多剔除的面孔,那我应该使用这种方法吗?

0 投票
1 回答
350 浏览

c# - 切换视图和投影矩阵后,DirectX 网格无法正确显示

在我的程序中,网格被正确显示,但是当我将 device.transform.view 和 device.transform.projection 矩阵从左手系统更改为右手系统时,网格不再正确显示,即背面脸部被照亮,正面是透明的!有谁知道需要更改哪些内容才能获得正确的显示

原始矩阵:

修改:

0 投票
1 回答
1113 浏览

opengl - 八叉树的遮挡

我刚开始学习 opengl 并编写第一人称射击游戏,但是当我绘制 5000 个立方体时,我的帧率非常糟糕。所以现在我正在尝试使用八叉树执行遮挡和剔除。我感到困惑的是从哪里投射光线。我是否只能从近平面的 fustrum 投射它们?似乎我会错过扩展的部分fustrum。任何帮助表示赞赏。

0 投票
1 回答
1293 浏览

opengl - Opengl镜像变换背面剔除

在openGL中,我有一个沿轴缩放-1的对象......这导致对象无法正确渲染,因为所有正面现在都是背面。如果没有禁用剔除,我将如何让这个对象正确渲染?有没有办法在不修改构成我的模型的纹理法线顶点的情况下做到这一点?

0 投票
1 回答
1169 浏览

android - 在 OpenGL ES 和 Android 中处理大型位图

我创建了一个地图应用程序,它使用一个非常大的图像作为我的地图。当用户放大到一定程度时,它会显示高分辨率图块,而当缩小到超过 50% 时,它会显示整个图像的低分辨率位图。它工作正常,在我的原始机器人上,有时我会看到非常轻微的延迟,因为新瓷砖被吸入和从垃圾收集器中抽出。

我现在正在考虑 OpenGL ES 如何成为一种更好的渲染方式。我以前从未接触过它,但从我在不同的教程中阅读的内容来看,似乎我可以创建一个有 8 个左右面的四边形,并启用剔除,因此它只绘制当前在屏幕上可见的图像。

这会完全消除滞后吗?现在在我的测试应用程序中,我在应用程序启动时加载了磁贴,但我可以看出延迟是由于第一次绘制这些磁贴。谢谢。

0 投票
1 回答
2233 浏览

wpf - 在 WPF 中禁用人脸剔除

我开始尝试使用 WPF 3D 渲染,我面临的第一个问题是如何禁用面部剔除。我知道如何在 DirectX 和 OpenGL 中做到这一点,但我找不到在 WPF 中做到这一点的方法。这是我的 ViewPort 标记。该模型是在运行时生成的,它是 GeometryModel3D 中的 MeshGeometry3D

非常感谢你能给我的任何建议。

0 投票
2 回答
2582 浏览

opengl - opengl中的背面多边形

在 OpenGL 中,您只能绘制背面多边形、正面多边形或两者。如果渲染流形三角形网格,则清除帧缓冲区但不清除深度缓冲区,然后再次仅渲染背面多边形。期望看到什么?

我认为以下给我的答案是错误的:

您应该看到背面的三角形。第一个渲染通道将导致深度缓冲区具有正面三角形的深度值。您正在渲染背面三角形的第二个渲染通道,因此那些具有最大深度值的三角形。每个光栅化的三角形都将具有与该像素的当前深度值相比的深度值。由于深度缓冲区设置为所有最接近的深度值(小值),但区分最远的深度值(大值),将呈现背面三角形。”

但我认为答案是:

由于深度缓冲区没有被清除,并且仍然包含正面三角形的深度值,它会丢弃背面三角形,并且什么也不显示。

哪个答案是正确的?

0 投票
2 回答
853 浏览

android - Android opengles 2d 剔除

任何人都有关于这个主题的教程的链接?我似乎找不到任何与 2d 剔除有关的东西。或者,如果这里有人可以解释它是如何完成的。我目前使用 gluOrtho2D 和 gluLookAt。