deferred-rendering相关内容

尝试渲染到多个纹理以实现延迟渲染.但所有的纹理都是平等的

所以我试图在 opengl 中实现延迟渲染.为此,我创建了一个 FBO,它渲染到 3 个纹理(一个用于位置,一个用于正常,一个用于材质信息)但是因为我没有完成,所以第三个纹理只是片段的最终颜色.以及最后一个深度缓冲区,用于稍后实现阴影. 然后将此纹理传递给另一个着色器(并使用默认的帧缓冲区),该着色器计算像素的最终颜色.然而,所有 3 个纹理都包含相同的信息,即几何传递着色器的第一个输出变量 ..
发布时间:2021-09-06 19:51:48 其他开发

根据强度计算光体积半径

我目前在计算延迟渲染器的光量半径时遇到问题.在低光照强度下,体积大小看起来正确,但是当光照强度(因此半径)增加时,光照体积似乎越来越小. 我正在像这样计算光的半径(在世界空间中): const float LIGHT_CUTOFF_DEFAULT = 50; mRadius = sqrt(color.length() * LIGHT_CUTOFF_DEFAULT); 然后我用这个值 ..
发布时间:2020-05-21 00:01:08 其他开发

延迟渲染Skybox OpenGL

我刚刚实施了延迟渲染,但无法使我的Skybox正常工作.我尝试在渲染循环的最后渲染天空盒,而我得到的只是一个黑屏.这是渲染循环: //binds the fbo gBuffer.Bind(); //the shader that writes info to gbuffer geometryPass.Bind(); glDepthMask(GL_T ..
发布时间:2020-05-20 23:45:15 C/C++开发

使用OpenGL进行延迟渲染,在表面的光照边界附近出现沉重的像素化

问题解释 我目前正在为延迟渲染器实现点光源,并且在确定只有在光的边界附近才能看到的笨重的像素化/三角形来自何处时遇到了麻烦. 该问题似乎是由于某处的精度损失所致,但是我一直无法找到确切的来源.法线是一种明显的可能性,但我有一个正在使用Directx并以类似方式毫无问题地处理法线的同班同学. 从约2米远的地方以我们游戏的单位(64个单位/米): 几厘米远.请注意,“像素化"在 ..
发布时间:2020-05-20 23:00:25 其他开发

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

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

从深度缓冲区和任意视图投影矩阵重建世界坐标

我正在尝试从延迟渲染器中的深度值中重建3D世界坐标,但时间太长了.我在网上找到的大多数示例都采用标准的透视变换,但是我不想做出这种假设. 在我的几何图形通过顶点着色器中,我使用以下方法计算gl_Position: gl_Position = wvpMatrix * vec4(vertexLocation, 1.0f); 在我的光照通过片段着色器中,我尝试使用以下方法获取世界坐标: ..
发布时间:2020-05-20 22:35:45 其他开发

崩溃在绘制调用在新的视频卡上的nvoglv32.dll

有些天以前,我设置了我的电脑,并安装了一个新的Windows 8的副本,因为一些硬件的变化。其中,我将视频卡从Radeon HD 7870更改为Nvidia GTX 660。 重新设置Visual Studio 11后,我从Github下载了最后一个OpenGL项目,整个项目。我运行应用程序的Visual Studio和它崩溃,因为 nvoglv32.dll 。 Application ..
发布时间:2017-01-13 11:55:05 其他开发