计算机图形学项目一:抗锯齿FXAA

计算机图形学项目一:抗锯齿FXAAFXAA特点计算步骤Shader编写最终效果功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入FXAA特点FXAA全程是Fast Approximate Anti-Aliasing,指的是快速近似
摘要由CSDN通过智能技术生成

计算机图形学项目一:抗锯齿FXAA

FXAA特点

FXAA全程是Fast Approximate Anti-Aliasing,指的是快速近似抗锯齿,特点是处理速度快,方便整合在后处理的渲染管线。

  • FXAA计算范围与MSAA或者SAA不同,MSAA发生在光栅化的阶段,而FXAA是借助延迟渲染的技术,只对全屏的像素进行处理。
  • FXAA计算速度较快,一方面由于只计算屏幕像素,范围比MSAA少而更快;另一方面应用简单的边缘检测及梯度计算实现平滑效果。

计算步骤

这里主要说明场景已渲染至Framebuffer的texture的渲染对象之后,FXAA的Fragment Shader如何进行边缘锯齿的平滑:

根据个人理解,总体步骤可以分为:1)计算当前像素点和相邻像素的灰度值 2) 边缘判断:通过灰度最大值与灰度最小值的差距来判定 3)计算采样方向:x和y方向的梯度作为采样方向,同时考虑brightness的影响 4)采样及平均:分两种情况一种是Inner Sample,正负1/6方向;另一种情况是Outer Sample,在正负1/2方向上

Shader编写

具体GLSL代码见下面:

  • 采集NW、NE、SW、SE四个方位的rgb值,并转化为灰度值luma
// 当前像素的rgb值 
vec3 CurrentPixel = texture(colorTexture,texCoord).rgb; 
//获取四个对角方位的rgb值
vec3 NW = textureOffset(colorTexture, texCoord, ivec2(-1,1)).rgb; 
vec3 NE = textureOffset(colorTexture, texCoord, ivec2(1,1)).rgb; 
vec3 SW = textureOffset(colorTexture, texCoord, ivec2(-1,-1)).rgb; 
vec3 SE = textureOffset(colorTexture, texCoord, 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值