depth-buffer相关内容

WebGL2 FBO深度附着值

我只是尝试使用WebGL2呈现场景的深度值,如下所示: //Texture depthTexture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, depthTexture); gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT24, width, ..
发布时间:2022-03-14 12:46:38 其他开发

如何在 OpenGL (ES) 中正确渲染重合多边形

我知道通过在 OpenGL ES 中设置深度函数,可以控制重叠几何图形在 3D 场景中的渲染方式.我在我的代码中使用 gl.depthFunc(gl.LEQUAL) (webgl). 但是,当两组多边形重合且颜色不同时,生成的表面会变成两种颜色的任意混合图案(随着相机位置的变化而变化,因此会导致闪烁).看看这张图片: 我该如何解决这个问题?我尝试了不同的 depthFunc 值,但没有 ..
发布时间:2022-01-09 09:34:26 其他开发

OpenGL es 2.0 读取深度缓冲区

据我所知,我们无法在 OpenGL ES 2.0 中读取 Z(深度)值.所以我想知道我们如何从 2D 屏幕上的一个点获取 3D 世界坐标? 其实我有一些随机的想法可能会奏效.由于我们可以使用 glReadPixels 读取 RGBA 值,我们如何复制深度缓冲区并将其存储在颜色缓冲区中(比如 ColorforDepth).当然需要有一些好的约定,这样我们就不会丢失深度缓冲区的任何信息.然后当我 ..
发布时间:2022-01-09 09:26:44 其他开发

Android OpenGL ES Framebuffer 对象 - 将深度缓冲区渲染到纹理

我正在使用运行 Froyo 的 Android 设备,支持 OpenGL ES 1.1 和 OpenGL ES 2.0 我想将深度缓冲区渲染为纹理.看过许多其他平台(包括 iPhone)上的 OpenGL、OpenGL ES 示例后,我尝试了许多 FBO 配置. 我似乎能够获得带有颜色纹理的 FBO 设置,但每次我附加深度纹理时都会失败. 我当前的代码是基于 this examp ..
发布时间:2022-01-09 09:21:08 移动开发

Android OpenGL 3D 拾取

我使用的是 Android OpenGL-ES 2.0,并且在它附带的所有限制之后,我无法弄清楚如何将 2D 屏幕触摸带到我拥有的 3D 点.我无法得到正确的结果. 我正在尝试实现将射线射入点云,然后我可以比较我的点与射线的距离,找到最近的点. public class OpenGLRenderer extends Activity implements GLSurfaceView.Ren ..
发布时间:2022-01-09 09:08:39 移动开发

无法在 OpenGL 中进行深度测试

我使用 SFML 创建窗口. 在这个屏幕截图中,立方体应该在金字塔后面,但它不起作用. 这是我使用的最少代码: #include #include #include #include "ResourcePath.hpp"无效调整大小();void drawScene();无效的 initGL();浮动 rtri = 0;浮动 rquad = 0;浮动 z = -10.0f;int m ..
发布时间:2021-12-19 18:40:19 其他开发

opengl z-排序透明度

我在 opengl es 2.0 中的简单正方形上渲染 png,但是当我尝试在正方形后面绘制一些东西时,我已经在顶部正方形中绘制了透明区域,渲染的颜色与背景相同. 我在每次渲染调用开始时调用它们. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glEnable(GL_DEPTH_TEST);glEnable (GL_BLEND);gl ..
发布时间:2021-12-19 18:04:21 其他开发

如何在片段着色器中使用 gl_FragCoord.z 在现代 OpenGL 中线性渲染深度?

我阅读了大量有关使用片段着色器获取深度的信息. 比如 http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=234519 但我仍然不知道 gl_FragCoord.z 是否是线性的. GLSL 规范说它的范围是 [0,1] 在屏幕空间中,没有提到它是否是线性的. 我认为线性 ..
发布时间:2021-12-19 17:33:51 其他开发

OpenGL impostor-sphere:计算深度值时出现问题

我正在尝试将球体渲染为冒名顶替者,但在计算球体表面点的深度值时遇到问题. 在这里,您可以看到当我围绕冒名顶替球体和与球体相交的“真实"立方体移动相机时会发生什么. 你可以看到,当我移动相机时,深度值不一致,立方体的某些部分应该在球体内部,取决于相机的位置,弹出球体. > 这些是 impostor-sphere 的顶点和片段着色器. 顶点着色器: #version 450 核 ..
发布时间:2021-11-25 02:35:14 C/C++开发

对数深度缓冲区 OpenGL

我已经设法在 OpenGL 中实现了对数深度缓冲区,主要来自 Outerra 的文章(您可以在此处阅读它们,这里 和 此处).但是,我遇到了一些问题,我不确定这些问题是否是使用对数深度缓冲区所固有的,或者是否有一些我想不到的解决方法. 刚开始,这就是我在顶点着色器中计算对数深度的方法: gl_Position = MVP * vec4(inPosition, 1.0);gl_Positio ..
发布时间:2021-11-25 01:26:07 C/C++开发

ARCore – 来自后置 Android 深度摄像头的原始深度数据

我不知道如何从带有后置 ToF 深度传感器的小米红米 Note 8 Pro 获取原始深度数据. 我试过了: 来自android 示例的Camera2Format.没有结果(并且我并不孤单) 从后置摄像头获取 physicalId,如android 开发者博客.没有结果. ARCore API 无法处理深度.莉> 我看到了几个类似的问题(一个,两个) 没有答案.在 Androi ..
发布时间:2021-11-17 03:28:44 其他开发

WebGL 如何在深度缓冲区中设置值?

在 OpenGL 中,深度缓冲值是根据场景的近和远裁剪平面计算的.(参考:从深度缓冲区中获取真实的 z 值) 这在 WebGL 中是如何工作的?我的理解是 WebGL 不知道我的场景的远近裁剪平面.近剪裁平面和远剪裁平面用于计算我的投影矩阵,但我从不明确告诉 WebGL 它们是什么,因此它无法使用它们来计算深度缓冲区值. 渲染我的场景时,WebGL 如何在深度缓冲区中设置值? 解 ..
发布时间:2021-09-23 18:34:53 其他开发

OpenGL impostor-sphere:计算深度值时出现问题

我试图将球体作为冒充者,但在计算球体表面点的深度值时遇到问题. 在这里您可以看到当我围绕冒名顶球和一个与该球相交的“真实"立方体移动摄像机时会发生什么情况. 我们正在查看,看着Point.根据您的冒名顶替者代码,我们将通过将Point垂直垂直于平面向前投影直到到达球体来计算Point的位置.计算得出点为Impostor. 但是,正如您所看到的,这不是现实所显示的.如果我们从点到视 ..
发布时间:2021-04-02 18:56:25 C/C++开发

Android Q-从人像模式照片获取深度图

我正在尝试构建一个示例Android应用程序,以提取使用Google相机应用程序拍摄的人像模式照片的深度图.我知道它会随模糊的照片一起保存. 我阅读了来自Google的动态深度格式文档: https://developer.android.com/training/camera2/Dynamic-depth-v1.0.pdf 这是很新的东西,我找不到与此主题相关的任何资源,也没有找到如何管理 ..
发布时间:2021-02-15 19:25:37 移动开发

Java OpenGL保存深度缓冲区

我不确定我是否可以在这里做我想做的事,但是我有一堆在OpenGL中渲染的对象(使用JOGL).对于一组对象,我想确保该组中的某些对象呈现在该组中其他对象的前面.我试过清除深度缓冲位,最后渲染“前"对象,该方法行之有效,只是它弄乱了屏幕上的其他深度缓冲. 归结为,我有一个要渲染的对象列表,并且我想确保该列表中的某些对象在其他对象之前渲染(尽管它们都在相同的Z坐标上).有办法吗? 谢谢, ..
发布时间:2021-02-12 19:36:02 Java开发

线性化深度

在OpenGL中,您可以像这样线性化深度值: float linearize_depth(float d,float zNear,float zFar) { float z_n = 2.0 * d - 1.0; return 2.0 * zNear * zFar / (zFar + zNear - z_n * (zFar - zNear)); } (来源: https:/ ..
发布时间:2020-11-16 01:46:27 其他开发

Webgl:替代编写gl_FragDepth

在WebGL中,是否可以写入片段的深度值或以其他方式控制片段的深度值? 据我所知,webgl 1.x中没有gl_FragDepth,但是我想知道是否还有其他方法(扩展,特定于浏览器的支持等)来实现. 我要存档的是使光线跟踪的对象与使用常规模型,视图,投影绘制的其他元素一起播放. 解决方案 有扩展名 EXT_frag_depth 由于它是扩展名,因此可能并非在所有地方都可用 ..
发布时间:2020-11-10 20:05:52 其他开发

Directx 11深度测试不起作用

我无法让我的程序正确选择要放置在前面的模型。我完全遵循了MSDN代码。我的代码似乎可以在DrawIndexed的特定调用中正确绘制所有多边形,但是随后的每个调用似乎都导致模型以绘制顺序绘制,而不是基于它们是否更靠近屏幕。 这是我初始化Direct3d的代码: DXGI_SWAP_CHAIN_DESC sd; ZeroMemory(& sd,sizeof(sd)); sd.Bu ..
发布时间:2020-10-22 01:49:26 C/C++开发