在QT框架中使用OpenGL(版本330)多重采样 .

渲染图像就像星形 . 我使用片段着色器在黑色画布上渲染形状强度 . 我不使用OpenGL原语 . 当不使用多重采样时,并且当渲染输出画布具有较小的分辨率(例如400x400像素)时,我可以看到沿着星形边缘的混叠效果 . 如果我增加分辨率,比如1500x1500像素,那么混叠效果就不那么明显了 . 所以我认为mutlisampling应该能够改善结果 .

现在,为了提高速度,我不增加渲染缓冲区的分辨率 . 相反,我决定尝试使用多重采样来减少混叠效果 .

int num_samples = 2; // 4; // I guess the maximum for most graphic cards are 8

GLuint tex;

glGenTextures(1, &tex);

glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, tex);

glTexImage2DMultisample( GL_TEXTURE_2D_MULTISAMPLE, num_samples, GL_R11F_G11F_B10F, width, height, true );

GLuint fbo;

glGenFramebuffers( 1, &fbo );

glBindFramebuffer( GL_FRAMEBUFFER, fbo );

glFramebufferTexture2D( GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D_MULTISAMPLE, tex, 0 );

glViewport(0,0, width, height);

glEnable(GL_MULTISAMPLE);

// ... some code

// draw a rectangle, as it is 2D image processing

// OpenGL render program release

// now convert multisample frame buffer fbo to a regular frame buffer qopenglFramebufferOjbectP

// qopenglFramebufferOjbectP is QOpenGLFramebufferObject

glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo);

glBindFramebuffer(GL_DRAW_FRAMEBUFFER, qopenglFramebufferOjbectP->handle());

glBlitFramebuffer(0, 0, width, height, 0, 0, width, height, GL_COLOR_BUFFER_BIT, GL_LINEAR);

整个代码似乎并不完全错误,因为输出是所需的形状,除了抗锯齿效果 . 问题是:我使用多重采样(不同的采样数为2 4或8),或者我不使用多重采样,结果是相同的 . 我特意将结果写入图像,并将它们并排比较 .

但是,如果多重采样生效,则应该预期结果的混叠效果小于不使用多重采样时的结果 .

多重采样和超级采样哪个流畅_OpenGL多重采样:结果与未使用多重采样时的结果相同...相关推荐

  1. 语音信号处理:采样定理【只要采样频率大于或等于有效信号最高频率的两倍,采样值就可以包含原始信号的所有信息,被采样的信号就可以不失真地还原成原始信号】

    一.采样定理概述 采样定理,又称香农采样定理,奈奎斯特采样定理,只要采样频率大于或等于有效信号最高频率的两倍,采样值就可以包含原始信号的所有信息,被采样的信号就可以不失真地还原成原始信号. 采样定理解 ...

  2. 多重采样和超级采样哪个流畅_测试之前你需要做这些功课

    本文约3568字,需6分钟阅读(全文浏览) 如果让你在脑海里以进化的视野回望过去历史的长河中游戏的画面是如何从拙劣慢慢进化到目前的精细,相信大家都有自己的一套历史观,首先当然是随着分辨率的提高.硬件的 ...

  3. 多重采样和超级采样哪个流畅_蒙特卡洛方法-多重采样

    全球图形学领域教育的领先者.自研引擎的倡导者.底层技术研究领域的技术公开者,东汉书院在致力于使得更多人群具备内核级竞争力的道路上,将带给小伙伴们更多的公开技术教学和视频,感谢一路以来有你的支持.我们正 ...

  4. 不平衡分类(二)-过采样(SMOTE)【Synthetic Minority Over-Sampling Technique ,“人工少数类过采样法“】

    SMOTE的全称是Synthetic Minority Over-Sampling Technique 即"人工少数类过采样法",非直接对少数类进行重采样,而是设计算法来人工合成一 ...

  5. 用标号跳出当前多重嵌套循环是否继续执行循环_在Java中如何跳出当前的多重嵌套循环?...

    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java专业知识,广州疯狂java培训为你讲解; 1.在java中如何跳出当前的 ...

  6. servlet多重映射_【简答题】请简要概述什么是Servlet的多重映射,并列出Servlet多重映射的实现方式。...

    [单选题]在统计分析图中,条形图通常用于描述 ( ) A. 二元变量的观测数据 B. 某种事物在时间序列上的变化趋势 C. 具有百分比结构的分类数据 D. 离散性变量的统计事项 [判断题]3.在Exc ...

  7. 《机器学习》 —— 第二章:模型评估与选择 学习笔记

    2.1 经验误差与过拟合 把分类错误的样本数占样本总数的比例称为"错误率"(error rate),即如果在m个样本中有a个样本分类错误,则错误率E=a/m:相应的,1-a/m称为 ...

  8. 吃瓜教程——第1,2章

    第1章 :绪论 1.2基本术语 一批西瓜的数据: (色泽=青绿;根蒂=蜷缩;敲声=浊响), (色泽=乌黑;根蒂:稍蜷;敲声=沉 闷), (色泽=浅白;根蒂 硬挺;敲声=清脆), -- 每对括号内代表一 ...

  9. flac 音频格式标准

    文件结构 总体结构 一个标准的 flac 音频文件应当包含以下三个结构: 文件头 元数据块区域 音频帧区域 上述三种结构在 flac 音频文件中顺次排序,一个结构结束后紧接下一个结构. flac 中的 ...

最新文章

  1. Ros知识【09】:功能包介绍
  2. MoeCTF 2021Re部分------Midpython.exe
  3. java 去除干扰_【Selenium-WebDriver实战篇】Java丨验证码图片去除干扰像素,方便验证码的识别(转)...
  4. 配置linux系统自带apache+php+mysql
  5. TensorFlow windows之Tensorboard使用
  6. [ Problem 1 ] 数独游戏
  7. Jetson-TX2双声卡TLV320AIC32x4 alsa实现同时录音与播放
  8. web前端开发面试题(四)
  9. SLA文档提高期学习总结
  10. 学生成绩信息管理系统
  11. endnote中文格式参考文献标注
  12. java驱动sikuli打开虎牙直播
  13. sqlserver之远程访问配置
  14. vue 手写签名_与众不同的手写签批
  15. 基于51控制的人体感应灯
  16. EditText 里的属性
  17. 如何通过线性回归预测股票价格?
  18. 中国现代服务业发展趋势及十四五战略模式研究报告2021-2027年
  19. 发疯之后创业能更成功吗?leo看赢在中国第三季(5)
  20. 化工图纸中LISP_《化工工艺流程图与CAD二次开发应用》.pdf

热门文章

  1. 你想要的宏基因组-微生物组知识全在这(180601)
  2. 修改串口设备名ttymxc1_Modbus通讯之串口联网设备
  3. R语言gganimate包创建可视化gif动图:gganimate包创建动态线型图动画基于transition_time函数、使用geom_point函数显示动画移动的数据点、并保留线图中的全部数据点
  4. pandas使用groupby.first函数、groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异)
  5. R语言使用ggplot2绘制带有边缘直方图的散点图实战
  6. 别让不好意思害了你(不过,别人好意思)
  7. 分类家族:二分类、多分类、多标签分类、多输出分类
  8. 雷达图(python)
  9. Biopython(py012)统计碱基数
  10. java 获取动态的service_【Android】动态代理在 Retrofit 中的使用