问题标签 [multisampling]
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.
opengl - 如何将多重采样深度缓冲区解析为深度纹理?
我在将 msaa 深度缓冲区解析为深度纹理时遇到问题。我为我的颜色纹理和深度纹理创建了 glTexImage2d,并将它们绑定到“resolve”(非 msaa)帧缓冲区。然后我创建并绑定另一个帧缓冲区并创建我的多重采样渲染缓冲区(颜色和深度)。我知道要从多重采样渲染缓冲区中获取我的颜色纹理信息,我只是将写入缓冲区作为我的颜色纹理帧缓冲区,将读取缓冲区作为我的 msaa 帧缓冲区。我的问题是如何将多重采样深度缓冲区映射到深度纹理。
opengl - 显式多重采样与 OpenGL 中的常规多重采样有何不同
我正在阅读这篇关于 MSAA 延迟着色的教程,来自 28byteslater.com。
它说在显式多重采样中我们可以访问特定的样本。
例如,我们不能对绑定到的常规纹理做同样的事情GL_TEXTURE_2D_MULTISAMPLE
吗?
这是我之前用来访问单个样本的着色器代码(不使用显式多重采样):
我在显式多重采样中看到的唯一不同之处是它们texelFetchRenderbuffer()
在着色器中使用并且纹理绑定到GL_TEXTURE_RENDERBUFFER_NV
. 另外,如果我没记错的话,它不可能在着色器中使用 RenderBuffer,现在我们可以了吗?
textures - 如何在 glsl 片段着色器中对原生分辨率纹理进行采样
我正在尝试使用 2d 纹理作为查找表来索引更大的纹理。然后将颜色值纹理映射到四边形。我遇到的问题是,当我对其进行采样时,较大的纹理似乎小于其原始分辨率。例如,我有一个大的 4k x 4k 纹理。查找纹理对大纹理的 1k x 1k 区域进行采样。然后它将结果纹理映射到填充视口的四边形,它也是 1k 宽 x 1k 高。我希望在纹理四边形和原始 4k x 4k 纹理的 1k x 1k 部分之间仍能看到 1:1 映射。但是,纹理四边形非常混叠。看起来好像 4k x 4k 纹理被缩减为 1k x 1k 纹理,而我的查找图对该纹理的 512 x 512 部分进行了采样。
换句话说,看起来好像我是从已调整大小以适应 1k x 1k 视口的纹理进行采样,而不是从原生 4k x 4k 纹理中采样。我为什么要解决这个问题有问题吗?
这是我的顶点着色器:
r - 每个因子水平的随机分层样本
我有两个因素的数据集:Environments
(4 个级别),Individuals
(每个环境中 500 个)和响应变量YD
。作为我分析的一部分,我必须通过以下方式从每个环境中随机抽取 100 个人:
- 在所有四个环境中相同的 100 个人(100 个人)
- 每个环境不同的 100 个人(100*4=400 个人)
- 2 个环境中相同的 100 个,其他 2 个环境中的另外 100 个(2*100=200 个人)
我已经使用几行代码解决了这个问题,但是我希望有人能帮助我生成一个 R 函数来做到这一点,这在其他情况下将非常有用。
这是具有类似结构的示例数据集:
c++ - 如何在 OpenGL FBO 中使用多重采样
我正在尝试为 FBO 启用多重采样和 alpha-to-coverage。使用默认的帧缓冲区,我所要做的就是调用glEnable(GL_MULTISAMPLE)
和glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE)
. 但是,我无法使用我自己的 FBO 达到相同的效果。
我的目标:将场景绘制到 FBO,就像将场景绘制到具有上述属性的默认帧缓冲区一样。从那里我希望能够将图像用作未来通过着色器的纹理。
这有效:用于制作没有多重采样/alpha 覆盖、1 个颜色附件、1 个深度附件的 FBO 的代码:
这行不通。尝试制作多采样 FBO 的代码:
我已经尝试过浏览 OpenGL wiki,尽管它不完整(各种未完成的标题使它看起来不专业)。glGetError
从不抱怨。我已经尝试过解决这个问题,但我要么得到黑屏,要么得到一个满是垃圾像素的屏幕。
主要问题:为了让多重采样和 alpha-to-coverage 与 FBO 一起工作,我需要考虑/更改哪些内容以及在何处(FBO 创建、纹理、着色器)?
c++ - 使用带有多重采样延迟渲染中断的 sampler2DShadow
如标题所述,使用 sampler2DShadow 会导致我的多重采样 FBO 的光照着色器出现错误,但由于使用标准延迟渲染设置的配置非常相似,但没有多重采样,我无法检测到该问题,这工作正常。
openlGL 中的 sampler2DShadow 和多重采样是否存在兼容性问题,或者我应该使用一些替代方案?
着色器编译良好。
代码运行良好,直到我运行这一行:
并检索结果。然后我得到 GL_INVALID_OPERATION。
阴影贴图来自定向光(深度贴图有效且可见)并使用 GL_COMPARE_R_TO_TEXTURE,设置为标准纹理 (GL_TEXTURE_2D)。
多重采样延迟 FBO 纹理使用 GL_TEXTURE_2D_MULTISAMPLE。
我正在使用 glsl 330(openGL 3.3 核心配置文件)。
更新
我认为问题与从多采样片段着色器中的位置图获取世界位置有关。
标准方式:
多采样方式:
(我省略了其他采样器。)
我猜我越界了,这在尝试访问 sampler2DShadow 时会引发错误(pCoord 是使用 worldPos 计算的)。
现在要弄清楚如何让这个多重采样的 worldPos 得到与标准方式相同的结果???
标准方式 (mDepthVP = mat4 (light's depth view prog):
opengl - SDL 多重采样和 OpenGL
为了启用多重采样,我在我的项目中使用以下代码:
我也需要打电话glEnable(GL_MULTISAMPLE);
吗?
如果我不调用它,我看不出有什么区别。
qt - Multisampling using Qt
For some time I was trying to enable multisampling on QGLWidget in order to smooth endges of cuboids that I render but with no success. Here are the code parts that do the work.
1)I am passing a specified format to constructor of GLWidget (which inherits QGLWidget) in order to enable multisampling and set number of samples
GLWidget *widget is a member of mainwindow class.
2) I am enabling multisampling in initializeGL() method and test if multisampling works
Even though setSamples is set to 4 qDebug prints
Nothing actually happens the cuboids still have jagged edges, lines are not smooth as well
3) Here is how cuboids are rendered
GL_LINE_LOOP is used to create frames around cuboids and GL_QUADS for cuboid faces
I am working under Linux Mint, using Radeon HD 7790.
c++ - 在 Opengl ES 2 (ios) 中启用抗锯齿
我在 IOS 中启用多重采样时遇到问题。
我指的是这个指南
如果您向下滚动到
清单 4-5 创建多重采样缓冲区
你可以清楚地看到我们需要(当然)一个解析缓冲区。但是,它在第一步中没有显示任何类型的初始化。我只需要
我应该什么时候初始化我的帧缓冲区对象?
另外,我不清楚最后一步。
我到底应该在哪里做这个?它完成了什么?我猜在我的 fbo 和 vbo 的抽奖电话之后,但我不太确定。
有没有人可以找到某种示例项目的链接?我用谷歌搜索但我找不到任何:(
最后,我使用浮动纹理来渲染 HDR 图像。我必须在此指令中保留 GL_RGBA8_OES 吗?
如果此时我已经渲染到纹理,我还不是很清楚。
提前致谢!
ios - 为什么在我的应用上启用多重采样会使其渲染速度更快?
我处于一个非常尴尬的情况,当我在我的 iOS 应用程序中启用多重采样时,我看到性能显着提升。显然我知道多重采样会降低性能,但这一次它的行为与我的预期完全相反。
我通过将 GLKView.drawableMultisample 设置为 GLKViewDrawableMultisample4X 来启用多重采样。我清楚地看到它提供的抗锯齿效果,所以我没有错误地混淆这两种状态。
当我启用多重采样时,我可以获得两倍的帧速率,有时甚至更高。首先,我认为 XCode 中显示的 FPS 可能是错误的。然后我添加了自己的 FPS 计算代码,得到了相同的结果。我还注意到,在启用多重采样、三角形数量完全相同、着色器相同的情况下,Tiler Utilization 从 ~4-5% 上升到 ~12-15%。
这使得认为其他地方可能存在错误。控制台中没有任何内容(没有警告或错误)。我完全没有线索。有没有人见过这个?
谢谢