抗锯齿

抗锯齿处理

▼魔方 西西 提交于 2020-01-15 05:22:09
抗锯齿处理可应用调色技术将图形边缘锯齿缓和。 概述 简单地说主要是应用调色技术将图形边缘的“锯齿”缓和,边缘更平滑。抗锯齿是相对来说较复杂的技术,一直是高档加速卡的一个主要特征。目前的低档3D加速卡大多不支持反锯齿。 原理及作用 抗锯齿(Anti-aliasing):标准翻译为”抗图像折叠失真“。由于在3D图像中,受分辨的制约,物体边缘总会或多或少的呈现三角形的锯齿,而抗锯齿就是指对图像边缘进行柔化处理,使图像边缘看起来更平滑,更接近实物的物体。它是提高画质以使之柔和的一种方法。如今最新的全屏抗锯齿(FullSceneAnti-Aliasing)可以有效的消除多边形结合处(特别是较小的多边形间组合中)的错位现象,降低了图像的失真度。全景抗锯齿在进行处理时,须对图像附近的像素进行2-4次采样,以达到不同级别的抗锯齿效果。简单的说也就是将图像边缘及其两侧的像素颜色进行混合,然后用新生成的具有混合特性的点来替换原来位置上的点以达到柔化物体外形、消除锯齿的效果。 右面是两张效果图,通过图片可以很清楚的看到抗锯齿的效果。点击图片看大图。 类型 超级采样抗锯齿(SSAA) 超级采样抗锯齿(Super-Sampling Anti-aliasing,简称SSAA)此是早期抗锯齿方法,比较消耗资源,但简单直接,先把 图像映射 到缓存并把它放大,再用超级采样把放大后的图像像素进行采样

OpenGL--抗锯齿

荒凉一梦 提交于 2020-01-15 05:21:15
理论基础 1,锯齿:在图元边缘处我们能相当清楚地看到两种颜色的分界,我们把这种称之为锯齿。为什么会产生?这是因为我们的图像是由一个个像素组成的,而每个像素近似一个很小的正方形,这样由正方形组成的图像边缘肯定会产生锯齿。示意图如下: 2,抗锯齿:常见的抗锯齿方法有两种:混合和多重采样。使用混合消除锯齿的原理是,在边缘处降低alpha值再做混合操作从而达到欺骗眼睛的目的。然而混合操作受绘制顺序的影响,对于整个场景的抗锯齿操作是很麻烦的(排序)。这时可以使用另一种抗锯齿方式,多重采样:它在边缘的像素颜色是采集了多种颜色信息最终计算得出个平滑的颜色。其实这种模式它是单独又开辟了一个缓冲区来保存这些信息,这些处理都是要额外带来开销的,有可能对性能造成影响。因此有些opengl实现可能并不支持多重采样。 注释:现在手机上貌似都不需要考虑锯齿问题了,因为分辨率普遍都很高了。 实例代码 1,使用混合形式的抗锯齿 #include "GLTools.h" #include "GLShaderManager.h" #ifdef __APPLE__ #include <glut/glut.h> #else #define FREEGLUT_STATIC #include <GL/glut.h> #endif static float rotAngle = 0.; void init(void) {

Laya3D 抗锯齿问题

…衆ロ難τιáo~ 提交于 2019-12-05 06:39:21
步骤: Config3D.isAntialias = true 是否开启抗锯齿(引擎默认开启) Laya.stage.scaleMode = 'full' 屏幕缩放模式使用 full 模式 特别是微信小游戏7.0.3+版本,如果不使用 full 模式,抗锯齿配置无效。 为什么游戏在一些机型上边缘有锯齿? 在微信7.0.3之前的版本之前,微信会强制把Canvas画布拉伸到屏幕物理尺寸来进行全屏适配,而7.0.3开始,微信为了性能的考虑,不再强制拉伸,所以当开发者在设计大小低于物理屏幕的尺寸再通过引擎的适配模式来拉伸stage大小时,就会导致像素点没有完全和屏幕像素对上,看上去在一些高分辨率的机型上就会有边缘马赛克的感觉。这时候,可以通过调整设计模式的画布尺寸,来适配主流机型。 屏幕缩放模式使用 full 模式 微信小游戏截图 Laya.stage.scaleMode = 'fixed_width' 微信小游戏截图 Laya.stage.scaleMode = 'full' Laya官网 屏幕缩放模式 说明 来源: https://my.oschina.net/17cto/blog/3132582

Laya3D 抗锯齿问题

百般思念 提交于 2019-11-25 22:01:35
步骤: Config3D.isAntialias = true 是否开启抗锯齿(引擎默认开启) Laya.stage.scaleMode = 'full' 屏幕缩放模式使用 full 模式 特别是微信小游戏7.0.3+版本,如果不使用 full 模式,抗锯齿配置无效果。 为什么游戏在一些机型上边缘有锯齿? 在微信7.0.3之前的版本之前,微信会强制把Canvas画布拉伸到屏幕物理尺寸来进行全屏适配,而7.0.3开始,微信为了性能的考虑,不再强制拉伸,所以当开发者在设计大小低于物理屏幕的尺寸再通过引擎的适配模式来拉伸stage大小时,就会导致像素点没有完全和屏幕像素对上,看上去在一些高分辨率的机型上就会有边缘马赛克的感觉。这时候,可以通过调整设计模式的画布尺寸,来适配主流机型。 屏幕缩放模式使用 full 模式 微信小游戏截图 Laya.stage.scaleMode = 'fixed_width' 微信小游戏截图 Laya.stage.scaleMode = 'full' Laya官网 屏幕缩放模式 说明 来源: oschina 链接: https://my.oschina.net/17cto/blog/3132582