deferred-rendering

    2热度

    1回答

    我想实现平铺的延迟渲染方法,现在我卡住了。我正在计算每个tile(32x32)的最小/最大深度并将其存储在纹理中。然后我想要计算场景中每个点光源(球体)的矩形的左下角和右上角坐标框(请参阅我的应用程序中的图片)所代表的屏幕空间边界框(边界方块)。这将与最小/最大深度一起用于检查光线是否影响实际瓷砖。 问题是我不知道如何做到这一点。任何想法,源代码或准确的数学? 更新

    0热度

    1回答

    我最近开始为我正在处理的引擎构建某种延迟渲染管道,但我坚持从深度重建世界位置。我已经看了很多例子,其中解释说明您需要世界位置纹理或深度纹理,然后用于光线的正确距离和方向计算。 我的问题是,所谓的位置纹理,这可能是世界的位置似乎并没有给我正确的数据。因此,我试图寻找替代方法来获得世界位置,有人建议我应该使用深度纹理,而不是什么? ,使这一切更清楚这张照片显示,我公司目前已存储纹理: 位置(上左),正

    1热度

    1回答

    每次更改路由时,我都会检查是否设置了当前记录的用户详细信息的变量,如果未设置此变量,我只需重定向到登录页面。 现在我试图实现某种“记住我”的功能,所以每当路由发生变化时,如果变量用户不存在而不是重定向到登录页面,我会检查本地存储以查找“authtoken”,如果设置了,我调用一个将authtoken传递给服务器的检查函数,返回用户和应用程序的工作方式与手动登录(返回与check函数相同的用户)相同

    0热度

    1回答

    我想在OpenGL/GLSL中实现平铺延迟渲染,并且我被卡在光剔除。 我的GPU比较旧(AMD Radeon 6490m),出于奇怪的原因,计算着色器在无限循环中运行时,在共享变量中调用原子操作时,我无法使用计算着色器计算最小和最大深度。无论如何,这并不是太耗时的操作,所以我在片段着色器中进行操作。 然后,对于每个可见点光源(视图空间),我计算屏幕空间的边界四边形。现在我想使用单个计算着色器进行光

    0热度

    1回答

    正如标题所述,使用sampler2DShadow会导致我的多重采样FBO的光照着色器出现错误,但由于使用标准延迟渲染设置进行了非常类似的配置,因此无法检测到问题多重采样,工作正常。 在openlGL中是否存在与sampler2DShadow和多重采样的兼容性问题,或者我应该使用一些替代方法? 着色器编译正常。 texture(gShadowMap2D, vec3(pCoord.xy, (pCoor

    6热度

    3回答

    我试图在延迟渲染器中从深度值重构3D世界坐标,但我有一段时间。我在网上找到的大多数例子都假设了一个标准的角度转换,但我不想做这个假设。 在我的几何形状通顶点着色器,我计算GL_POSITION使用: gl_Position = wvpMatrix * vec4(vertexLocation, 1.0f); ,并在我的照明通片段着色器,我试图让世界坐标使用: vec3 decodeLocatio

    1热度

    1回答

    当有script标签与defer属性会发生什么,没有src或async属性,里面什么也没有它,如: <script type="text/javascript" defer="defer"></script> 据我了解, defer只是告诉页面它可以保持呈现,而这script标签加载;该规范表示,应该在标签具有src属性时使用它,而不是在其中包含JavaScript时使用该属性,但如果它内部没

    0热度

    1回答

    我尝试在第一遍渲染几何图形,并在第二遍渲染时将其从缓冲区渲染到四边形。 直接渲染几何图形到屏幕上工作,但只要我尝试渲染到具有多遍的四边形,屏幕就会保持黑色(透明色为灰色)。 我认为我的着色器可能是问题所在。如果需要,请索取更多代码。 顶点着色器: #version 440 layout(location = 0) in vec3 vertexPosition; layout(location

    0热度

    1回答

    我目前在计算延迟渲染器的光量半径方面存在问题。在低光强下,体积大小看起来是正确的,但是当光强度(因此半径)增加时,光量似乎越来越小。 我计算光量半径(以世界空间)是这样的: const float LIGHT_CUTOFF_DEFAULT = 50; mRadius = sqrt(color.length() * LIGHT_CUTOFF_DEFAULT); 然后我用这个值来缩放框。 在我的

    0热度

    1回答

    我想写一个延迟的平铺渲染器符合用于BF3的一个DICE,我要么不理解我在做什么,要么GLSL在我身上拉快一个。 内核的第一部分是计算每个瓦片的最大和最小深度,我正在用这个代码进行处理。 #version 430 #define MAX_LIGHTS_PER_TILE 1024 #define WORK_GROUP_SIZE 16 struct PointLight { vec