问题标签 [depth-testing]
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.
ios - iOS / Core-Animation:12张重叠的卡片一圈
我试图在圆圈中排列 12 个对象,以便每个对象都与其逆时针相邻对象重叠。
像这样的东西:
问题是,如果我只依赖绘图顺序,其中一个总是会完全在最上面,在这种情况下是 12 点钟的红色。
我试过使用
试图围绕垂直轴旋转,从而将一侧塞到邻居后面,但这不起作用。
有人告诉我这是因为核心动画不支持深度测试。
有没有办法做到这一点而不会闯入 GL?
ios - GLKit 中的深度测试
我是 OpenGL/GLKit 的新手,并且在深度测试方面遇到了麻烦。下图显示了一个有五个横梁相交的柱子。它们都在中间(柱子内部)相遇,但正如您所见,应该被遮挡的光束部分仍然可见。它们像疯了一样闪烁,当我改变视图以使光束在屏幕上重叠时也会发生同样的事情。如果我不 glEnable(GL_CULL_FACE) 那么它会发生在每个形状内,即后多边形的背面被绘制并干扰前多边形的正面。
以下是我认为相关的代码片段,我省略了有关设置顶点和视角的内容。希望有人会认识到这个问题,并且那里有灵丹妙药。
在我的视图控制器中
在 Beam.m 中
我完全承认自己在这方面非常陌生且缺乏经验,因此如果我的应用程序结构不佳,我很愿意接受建设性的批评。
干杯,克雷格
opengl - 无法在 OpenGL 中进行深度测试
我使用SFML创建窗口。
在这个屏幕截图中,立方体应该在金字塔的后面,但它不起作用。
这是我使用的最小代码:
我试过不同的深度函数,GL_LESS,GL_EQUAL,我都试过了。同样在不同的地方启用和禁用深度测试,似乎没有任何效果。
我正在运行 Mac OS X 10.7 ( Lion ),不确定这是否重要,尽管在升级之前我似乎对这些事情没有任何问题。
qt - Qt中的OpenGL深度测试不起作用
我将格式设置为:
在构造函数中。
然后在initializeGL中我设置depthTesting。
在paintGL 中,我清除了深度缓冲区。
我记得它曾经使用较少的顶点,所以可能是我使用了太多的深度缓冲区来处理(?)。我有 32*32*32 体素,大部分时间都绘制了一半,所以是 98304 个四边形。
然而,深度测试仍然不起作用,并按执行顺序显示四边形。
java - 2D LWJGL with OpenGL - 启用深度测试以分层 2D 纹理?
我需要在我的 OpenGL 初始化方法中添加什么来启用深度测试,以及我将如何实际使用它来进行纹理分层?
我必须将 glOrtho 的最后一个参数扩展到比 -1 更极端的值,当然还有 glEnable 深度测试。然后要使用它,我只能假设我将 glVertex 的第三个参数更改为不为 0 的值,以将其发送到其他纹理的前面/后面。
我试试这个,该死的纹理甚至不显示。xD 我一定是错过了什么。
编辑:回复:蒂姆的回应
每当我使图像的 z 值比 -1 更极端时,它并没有显示屏幕只是黑色的。
和
和
opengl - 如何对某个范围进行深度测试?
在一定范围内进行深度测试的最常见/最简单/最快的方法是什么?
pass if (currentDepth-offset < newDepth && newDepth < currentDepth)
- currentDepth := 深度缓冲区中的值
- offset := 常量(在编译时知道并且所有片段都相同)
- newDepth := 片段的深度
理想情况下,函数 glDepthFunc(...) 会更灵活。
cocos2d-iphone - 使用 cocos2d-iphone 启用 2D 投影的充分理由是什么?
在 cocos2d-iphone 中,默认的投影类型是“3D”投影。但您也可以将投影设置为“2D”,如下所示:
在幕后,3D 投影使用透视投影,而 2D 投影是 OpenGL 正交投影。这两种投影模式的技术细节可以在这里查看,这不是我感兴趣的。
二维投影对于 cocos2d 用户有什么好处和坏处?切换到 2D 投影的充分理由是什么?
就我个人而言,我使用 2D 投影能够将深度缓冲用于等距平铺地图。等距平铺地图需要此功能才能正确在平铺地图上对平铺和对象进行 z 排序。
我还在非 tilemap 项目中使用了带有深度缓冲的 2D 投影,以通过 vertexZ 属性获得完整的 z 顺序控制。该项目使用伪等距显示,其中对象的 vertexZ 基于其 Y 坐标。
这意味着我一直使用 2D 投影只是为了能够使用 vertexZ 属性,这也需要启用深度缓冲。是否还有其他原因可能想要切换到 2D 投影?
opengl-es-2.0 - glreadpixel gl_depth_component 返回 0?
我正在寻找一个立方体和一条线的交点的解决方案。所以我用
我显示了 zz ,但结果为 0。所以当我触摸立方体(实际上是在 2d 屏幕上)时,如何获得立方体的深度缓冲区值。我使用 GLES20 和 Android API level15。我的代码如下。
顺便说一句,挑选颜色效果很好。
谢谢!