depth-buffer相关内容

JavafX 8 3D Z订单.重叠的形状行为是错误的.

我有一个JavaFX 3D场景,在随机位置添加了一堆盒子和球体.深度顺序似乎全错了,我不确定为什么.我尝试使用 myNode.setDepthTest(DepthTest.ENABLE)但这似乎无济于事.我已经附上了一个应演示该问题的应用程序. 您知道我在这里做错了什么吗?任何帮助,不胜感激. import javafx.application.Application; import ..
发布时间:2020-06-26 20:33:16 Java开发

Kinect V2深度帧像素大小

kinect v2提供深度框架,分辨率为512 x 424像素,fov为70.6 x 60 degrees,每度平均约7 x 7像素. [来源]. 但是我无法找到有关深度帧像素大小的任何信息,或者是否有任何一种方法可以根据给定的信息来计算像素大小? 解决方案 您是否在问如何映射深度数据中的像素大小? 深度坐标系与它的原点和方向正交在KINECT传感器上. 基本的三角学告诉我们直 ..
发布时间:2020-05-28 01:38:49 其他开发

渲染到深度纹理-有关GL_OES_depth_texture使用的不确定性

我正在尝试替换OpenGL ES 2.0中缺少的OpenGL gl_FragDepth功能. 我需要一种在片段着色器中设置深度的方法,因为在顶点着色器中设置深度不足以达到我的目的. AFAIK唯一的方法是通过具有渲染到纹理的帧缓冲区,并在该缓冲区上完成第一次渲染.此深度纹理存储屏幕上每个像素的深度值.然后,将深度纹理附加到最终渲染过程中,以便最终渲染器知道每个像素的深度. 由于iOS> ..
发布时间:2020-05-21 00:29:45 其他开发

OpenGL ES 2.0读取深度缓冲区

据我所知,我们无法读取OpenGL ES 2.0中的Z(深度)值. 因此,我想知道如何从2D屏幕上的某个点获取3D世界坐标? 实际上,我有一些随意的想法可能有用.由于我们可以使用glReadPixels读取RGBA值,因此我们如何复制深度缓冲区并将其存储在颜色缓冲区中(例如ColorforDepth).当然,需要有一些不错的约定,以便我们不会丢失深度缓冲区的任何信息.然后,当我们需要一个点的 ..
发布时间:2020-05-21 00:20:56 其他开发

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

我了解到,通过在OpenGL ES中设置深度功能,可以控制在3D场景中如何渲染重叠的几何图形.我在代码中使用了gl.depthFunc(gl.LEQUAL)(webgl). 但是,当两组多边形重合并且具有不同的颜色时,结果表面将变为两种颜色的任意混合图案(随着相机位置的变化而变化,从而导致闪烁).看一下这张图片: 我该如何解决?我尝试了不同的depthFunc值,但是没有一个可以解决此 ..
发布时间:2020-05-21 00:17:51 其他开发

如何读取WebGL中的深度缓冲区?

除了执行我自己的光线投射之外,如何使用WebGL API,如何从深度缓冲区中获取一个值,或者如何以其他方式从屏幕坐标中确定3D坐标(即找到被点击的位置)? 解决方案 几年过去了,这些天WEBGL_depth_texture扩展名广泛可用...除非您需要支持IE. 一般用法: 准备工作: 查询扩展名(必填) 分配单独的颜色和深度纹理(gl.DEPTH_COMPONENT) ..
发布时间:2020-05-21 00:17:12 其他开发

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

我正在使用运行Froyo的Android设备,该设备支持OpenGL ES 1.1和OpenGL ES 2.0 我想将深度缓冲区渲染为纹理.看过许多OpenGL,其他平台(包括iPhone)上的OpenGL ES的示例之后,我尝试了许多FBO配置. 我似乎能够使用颜色纹理进行FBO设置,但是每次附加深度纹理都会失败. 我当前的代码基于此示例,但是也创建了颜色纹理,而不是设置绘制和 ..
发布时间:2020-05-21 00:15:44 移动开发

OpenTK GLControl中的32位深度缓冲区

如何在GLControl的深度缓冲区中设置位数?我已经尝试过了: GLControl glControl = new GLControl( new GraphicsMode( new ColorFormat(8,8,8,8), 32)); ,它仍然提供24位深度缓冲区. 我想念什么? 解决方案 您的GPU最有可能支持32位深度,但在渲染到默认帧缓冲区时不支持.要获 ..
发布时间:2020-05-21 00:00:10 C#/.NET

使用PBO的非阻塞式glReadPixels深度值

我正在从帧缓冲区读取单个像素的深度以实现拾取.最初,我的glReadPixels()花费了很长时间(大约5毫秒),在nVidia上甚至会从那时起,我使用PixelBufferObject功能 PBO 来使glReadPixels异步进行,并且还使用这种方法效果很好,让我让glReadPixels()调用异步,但前提是我读取RGBA 值.如果我使用相同的PBO方法读取深度值,则glReadPixel ..
发布时间:2020-05-20 23:55:08 其他开发

当点具有相同深度时,opengl深度缓冲变慢

我正在制作2D游戏,涉及在屏幕上绘制大量重叠的四边形.在什么都不重要之前发生了什么. 如果我用从0到z的z值绘制每个四边形,并设置了glDepthFunc(GL_LESS),我将会得到相当不错的速度提升. 这是为了避免必须绘制完全隐藏或部分隐藏在其他四边形后面的四边形. 因此,我使用类似以下内容绘制四边形: float small = (float(1)/1000000); for ( ..
发布时间:2020-05-20 23:24:17 其他开发

帧缓冲区对象(FBO)和渲染深度缓冲区关系

我在网上看到了许多示例,例如( ),这些示例如下: /p> 创建并绑定FBO 创建并绑定缓冲区(纹理,渲染,深度,模具) 然后,取消绑定攻击者 要与FBO一起使用-绑定FBO,先进行工作,然后取消绑定FBO 不过,还可以将纹理缓冲区与纹理缓冲区绑定以便进行读取,写入等 从未见过其他装订器(渲染,深度,模版)的重新绑定,为什么? BUFFERS创建和绑定/解除绑定的示例(下面的代码 ..
发布时间:2020-05-20 23:22:42 其他开发

使用光线投射时,在深度缓冲区中写入正确的值

我正在以3d纹理进行射线投射,直到达到正确的值为止.我正在一个立方体中进行光线投射,并且立方体角已经在世界坐标中,因此我不必将顶点与modelviewmatrix相乘即可得到正确的位置. 顶点着色器 world_coordinate_ = gl_Vertex; 片段着色器 vec3 direction = (world_coordinate_.xyz - cameraPosi ..
发布时间:2020-05-20 23:20:44 其他开发

使用FBO渲染多个深度信息

我正在尝试实现一个着色器,用于计算通过两个表面(对象的背面和正面)的光折射. 为此,我需要使用正常深度测试(GL_LESS)和反深度测试(GL_GREATER)渲染折射几何.这将允许我计算从背面到正面的距离. 不幸的是,我一次只能渲染其中一个,并且我不知道如何将两个深度信息作为纹理传递给着色器. 着色器本身不应该成为问题,但是我正在努力设置opengl,以便它将所需的一切都提供给着色器! ..
发布时间:2020-05-20 23:00:02 其他开发

从深度重建世界立场是错误的

我正在尝试实施延迟的阴影/照明.为了减少缓冲区的数量/大小,我想稍后使用深度纹理来重建世界位置. 我通过将像素坐标乘以投影矩阵的逆和相机矩阵的逆来实现.这种工作,但位置有点偏离.这是采样的世界位置纹理的绝对差异: 作为参考,这是我在第二遍片段着色器中使用的代码: vec2 screenPosition_texture = vec2((gl_FragCoord.x)/WIDTH, ..
发布时间:2020-05-20 22:56:39 其他开发

如何从Z缓冲区获取Z值

我在OpenGL中绘制时遇到问题,我需要确切地查看在深度缓冲区中放置了什么值.谁能告诉我如何检索这些值? 谢谢 克里斯 解决方案 使用 glReadPixels ,格式为GL_DEPTH_COMPONENT,例如: float depth; glReadPixels(0, 0, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth); 将获得像素的 ..
发布时间:2020-05-20 22:55:59 其他开发

OpenGL中的深度偏移

在OpenGL中补偿深度的最佳方法是什么?我目前每个多边形都有索引顶点属性,该属性将传递给OpenGL中的“顶点着色器".我的目标是在深度上偏移多边形,其中最高索引将始终位于较低索引的前面.我目前有修改gl_Position.z的简单方法. gl_Position.z += -index * 0.00001; 解决方案 设置深度自动偏移量的常用方法是 启用GL_POLYGON_OFF ..
发布时间:2020-05-20 22:16:47 其他开发

opengl z排序透明度

在opengl es 2.0中在简单的正方形上渲染png,但是当我尝试在正方形后面绘制某些东西时,我已经在顶部正方形中绘制了透明区域,并与背景具有相同的颜色. 我在每个渲染调用的开始都调用这些. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); glEnable (GL_BLEND) ..
发布时间:2020-05-20 21:55:49 其他开发