OpenGL MSAA:抗锯齿技术详解

抗锯齿 anti-aliasing

本文来自对learnopengl.com上教程的个人总结

一 概念

有时候OpenGL渲染出来的物体,其边缘会出现锯齿,显得很不丝滑。说白了,使物体在渲染时保持边缘丝滑而不出现锯齿的技术,就叫做抗锯齿。常用的技术是SSAA和MSAA,MSAA是SSAA的演进技术,全称是多采样点抗锯齿 multisampler anti-aliasing,本文主要介绍MSAA.

二 MSAA原理

片段着色器携带顶点数据运行时,将数据插入到像素的中心,MSAA随后使用一个很大的的带有设置了子采样点的深度/模板缓冲去选择哪些子采样点被覆盖,然后将像素按照--覆盖的子采样点数/总采样点数 的比例,混合到默认帧缓冲区framebuffer中,成为输出像素的一部分。

三 用法

1 设置像素的子采样点 subsamples
需要是采样点缓冲区来保存采样点,而GLFW提供了一个多采样点缓冲:
    glfwWindowHint(GLFW_SAMPLES, 4);//每个像素有4个子采样点
当调用glfwWindowHint创建窗口时,每个屏幕坐标缓冲中包含4个子采样点。

2 开启抗锯齿功能
  glEnable(GL_MULTISAMPLE);// OpenGL一般默认开启

3 因为光栅化程序已实现抗锯齿,所以我们设置完子采样点后,看戏就行了。

四 真·用法

要设置自己的多采样点缓冲区,需要两个方法:纹理附加项和渲染缓冲附加项,就像一般的附加项一样。
1 作为多采样点的纹理附加项 Multi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值