问题标签 [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.

0 投票
1 回答
2380 浏览

c++ - 如何在多样本纹理中渲染颜色和深度?

为了实现“深度剥离”,我将我的 OpenGL 场景渲染到一系列帧缓冲区中,每个帧缓冲区都配备了 rgba 颜色纹理和深度纹理。如果我不关心抗锯齿,这很好用。如果我这样做了,那么似乎正确的做法是启用GL_MULTISAMPLING并使用 aGL_TEXTURE_2D_MULTISAMPLE而不是GL_TEXTURE_2D. 但我对需要更换哪些其他电话感到困惑。

特别是,我应该如何调整我的帧缓冲区结构以使用glTexImage2DMultisample而不是glTexImage2D

我是否需要将调用更改为glFramebufferTexture2D超出使用GL_TEXTURE_2D_MULTISAMPLE而不是GL_TEXTURE_2D

如果我将颜色和深度都渲染到纹理中,是否需要调用glRenderbufferStorageMultisample

最后,glBlit*除了为要渲染的帧缓冲区设置纹理之外,我还需要做些什么吗?

关于这个主题有很多相关问题,但我发现的解决方案似乎都没有指向规范教程或将所有这些放在一起的清晰示例。

0 投票
1 回答
220 浏览

r - 从带噪声的高维球体中采样

我想从带有噪声的高维球体中生成一个向量样本。

IE 我正在尝试创建一个样本,使得任何向量 X 在 R^N 中并保持 ||X+epsilon||^2 = 1 其中 epsilon 是 R^N 中的 iid 向量,其中任何分量 epsilon_j 分布 N( 0,西格玛^2)。

有人知道如何实现它吗?我更喜欢使用 R。

谢谢!

0 投票
0 回答
426 浏览

opengl - 具有多重采样但绘制空白图像的帧缓冲区对象 (FBO)

我尝试使用帧缓冲区对象进行离屏渲染。在非多重采样时,一切正常;但是当我把它变成多重采样时,我只是得到一个空白图像。我的代码如下:

然后,我绘制场景并读取像素:

我哪里做错了?

更新:我尝试了以下代码来读取像素,但问题仍然存在,为什么?

0 投票
1 回答
703 浏览

opengl - OpenGL Mutlisampling 多重渲染目标 FBO

我正在尝试延迟着色,但在尝试对多重渲染目标进行多重采样时遇到了麻烦。好像我只复制一个抗锯齿纹理而不是 3 个(漫反射、位置、法线)。仅复制漫反射。

这是为我的 Geometry Pass 创建的 Anti Alias FBO:

这是我的目标 FBO 的创建:

我在几何传递过程中绑定了我的 AA FBO,取消绑定并执行从 AA FBO 到我的目标 FBO 的 Blit,并以不希望的结果渲染全屏四边形。

编辑:我已经尝试在没有多重采样调用的情况下从一个普通的 MRT fbo 到另一个普通的 MRT FBO 并且似乎我只是在复制一个纹理。我的问题的根源是错误地将 MRT 传送到另一个 MRT。

0 投票
1 回答
212 浏览

opengl - 多重采样 OpenGL FBO

我正在尝试将 3D 场景渲染为多重采样 FBO。我使用以下代码 FBO 创建 FBO:

我得到错误 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE。我做错了什么?

A 已阅读 主题,FBO 文档,但没有帮助。

我可以创建没有深度附件的 FBO。但在这种情况下,当我尝试将它放到屏幕上时它不起作用:

请帮帮我。

0 投票
1 回答
312 浏览

opengl - 除了抗锯齿之外,我可以使用多重采样缓冲区吗?

我做了一些搜索,但我发现的唯一结果是关于抗锯齿及其背后的机制。

我想为除抗锯齿以外的东西使用多样本缓冲区。具体来说,我想到的是一种与顺序无关的透明度形式,在每个样本中存储不同的颜色和深度值(理想情况下是最接近相机的 N 个片段)。

这甚至可能吗?以前有没有做过,如果有,怎么做?即使有可能,它是否比仅分配另一个 N 帧缓冲区更节省内存?

如果这样的事情需要计算着色器或 OpenCL,那很好,我只是想知道它是否可能首先出现。

这个问题并不特定于 OpenGL 或 DirectX,因为在任何一种情况下硬件都是相同的。

PS。请不要只将我指向其他与顺序无关的透明度方法,这个问题专门关于多样本缓冲区是否可用于非典型方式。

0 投票
1 回答
4038 浏览

opengl - 使用 glBlitFramebuffer 进行多重采样

这是我第一次尝试使用 opengl 进行多重采样(用于抗锯齿)。基本上,我正在为屏幕绘制背景(不应该消除锯齿),然后我正在绘制应该消除锯齿的顶点。到目前为止我所做的:

问题是:当我调用 glBlitFramebuffer(...) 时,整个背景变黑,我只看到抗锯齿顶点。

有什么建议么?

0 投票
1 回答
687 浏览

opengl-es - glResolveMultisampleFramebufferAPPLE() 在 iOS (OpenGL ES 2.0) 上生成 GL_INVALID_OPERATION

我想使用函数glReadPixels()来截取我的场景。如果我不使用多重采样,它会很好用。但如果我这样做,我会GL_INVALID_OPERATION进去glResolveMultisampleFramebufferAPPLE()。有没有办法解决这个问题?

我的保存功能:

GLKit我使用由with初始化的默认帧缓冲区glkView.drawableMultisample = GLKViewDrawableMultisample.Multisample4X

0 投票
0 回答
597 浏览

opengl - GLSL,interpolateAtSample/Offset 应该如何工作?

很长一段时间以来我都有这个问题,我无法运行一个简单的多样本示例..

是原始代码,是 vs 和fs,为了方便我在这里报告


当我运行它时,我收到以下错误:

着色器状态无效:0(20):错误 C5229:interpolateAtSample 的参数 1 必须没有组件选择

什么?我了解规格说:

但我仍然不明白为什么。插值没有组件选择,它是来自 vs 中绑定顶点属性的输入变量。或者它是否解释了.Texcoord具有Vert.Texcoord组件选择运算符?

但是,在另一个示例中,我也遇到了相同的错误interpolateAtOffset

怎么了?我的意思是,我想gl_SampleID在给定的偏移量处插值,我不知道该函数还能如何使用..

0 投票
1 回答
935 浏览

opengl - 纯 SSAA 与每样本多重采样

纯超级采样抗锯齿 (SSAA) 和使用每个样本着色的多重采样之间有什么区别

使用GL_ARB_sample_shading

我更喜欢后者,因为与 SSAA 相比,它不需要更大的纹理并且它提供了很大的灵活性.. 即:您甚至可以在运行时在 SS 和纯多重采样之间切换它..

有什么我不知道的缺点吗?