当前位置:网站首页>Four commonly used techniques for anti aliasing
Four commonly used techniques for anti aliasing
2022-07-06 00:51:00 【Hydrion-Qlz】
This paper is compiled from the school of software, Xi'an Jiaotong University Mr. Zhu Jihua Computer graphics courseware , Do not reprint
List of articles
When displaying graphics on raster display , Line segments or graphic boundaries are more or less jagged
The graphic signal is continuous , In raster display system , The graphics are represented by discrete pixels
Anamorphosis : The distortion caused by continuous quantity is represented by discrete quantity .
Stepped boundary ;
Distortion of graphic details ;
The narrow figure is missing ( Left ): In the animation sequence , Produce flicker ( Right ).
Anti aliasing
In the process of graphic display , A method or technique for reducing or eliminating aliasing
Several methods of anti aliasing :
- Methods to improve resolution ;
- Unweighted area sampling ;
- Weighted area sampling ;
- Halftone technology .
Improve resolution
Set the display resolution ( level 、 vertical ) Double
The frame buffer capacity is increased to the original 4 times , Scanning and converting graphics of the same size takes 4 Times as long
evaluation : Simple method , But the price is very high , It's not economical
Area sampling
- The contribution of a straight line segment to the brightness of a pixel :
- It is proportional to the area of the area where the two intersect ;
- It is inversely proportional to the distance between the pixel center point and the straight line segment .
- When a line segment does not intersect a pixel , It has no effect on the brightness of the pixel ;
- The intersection area of the same area contributes the same to the brightness of the pixel , It has nothing to do with the position of the intersection area in the pixel .
Unweighted area sampling
Suppose the slope of a straight line segment is m(0≤m≤1), And the drawn line is a pixel unit , Then there are five situations when the straight line segment intersects with the pixel .
Area calculation :
- situation (1)(5) The shadow area is : D 2 / 2 m D^2/2m D2/2m;
- situation (2)(4) The shadow area is : D − m / 2 D-m/2 D−m/2;
- situation (3) The shadow area is : 1 − [ ( 1 − D ) 2 + E 2 ] / 2 m , E = D + m − s q r t ( 1 + m 2 ) 1-[(1-D)^2+E^2]/2m,E=D+m-sqrt(1+m^2) 1−[(1−D)2+E2]/2m,E=D+m−sqrt(1+m2).
The actual gray value displayed by the pixel = Area obtained (0-1 between )* The maximum gray value of this pixel
In order to simplify the calculation, we can use discrete Methods
- First, divide the screen pixels into n Sub pixels ;
- Then calculate the number of sub pixels whose center point falls in the straight line segment k;
- Setting the brightness of the pixel on the screen as the approximate value of the area of the intersecting area can k/n.
Weighted area sampling
thought : The second step of improving the unweighted region sampling method 3 Article nature , The contribution of object pixel brightness in the intersection region depends on the distance between the region and the pixel center
Discrete calculation method can be adopted
- Divide pixels into n Sub pixels of equal area , Calculate the contribution of each sub-pixel to the original pixel , And save it in a two-dimensional weighting table ;
- Find all sub pixels whose centers fall in the straight line segment ;
- Calculate the sum of the contributions of all these sub pixels to the brightness of the original pixel ;
- This value is multiplied by the maximum gray value of the pixel as the display gray value of the pixel .
Yes n=9 The situation of :
Yes n=25 The situation of :
Example
Halftone technology
For a given resolution , The multi-level gray level is obtained by combining several pixels into a unit ;
example : In a display, four pixels form a unit , Can produce 5 Light intensity .
evaluation
- For a two-level gray-scale display, the number of gray levels that may be formed is equal to the number of pixels in the unit plus 1;
- If you have any m Grey level , n × n n\times n n×n Pixels form a unit , Then the number of gray levels is n × n × ( m − 1 ) + 1 n\times n\times (m-1)+1 n×n×(m−1)+1;
- The larger the unit , The higher the gray level ;
- It is at the expense of spatial resolution .
• example : Gray level =4, Each unit =2*2
边栏推荐
- Problems and solutions of converting date into specified string in date class
- Extension and application of timestamp
- [groovy] compile time meta programming (AST syntax tree conversion with annotations | define annotations and use groovyasttransformationclass to indicate ast conversion interface | ast conversion inte
- 关于#数据库#的问题:(5)查询库存表中每本书的条码、位置和借阅的读者编号
- curlpost-php
- cf:H. Maximal AND【位运算练习 + k次操作 + 最大And】
- The inconsistency between the versions of dynamic library and static library will lead to bugs
- Spark-SQL UDF函数
- [groovy] XML serialization (use markupbuilder to generate XML data | create sub tags under tag closures | use markupbuilderhelper to add XML comments)
- BiShe - College Student Association Management System Based on SSM
猜你喜欢
Cannot resolve symbol error
Common API classes and exception systems
Study diary: February 13, 2022
Four dimensional matrix, flip (including mirror image), rotation, world coordinates and local coordinates
I'm interested in watching Tiktok live beyond concert
可恢复保险丝特性测试
After 95, the CV engineer posted the payroll and made up this. It's really fragrant
SAP Spartacus home 页面读取 product 数据的请求的 population 逻辑
For a deadline, the IT fellow graduated from Tsinghua suddenly died on the toilet
Analysis of the combination of small program technology advantages and industrial Internet
随机推荐
State mode design procedure: Heroes in the game can rest, defend, attack normally and attack skills according to different physical strength values.
Browser reflow and redraw
云导DNS和知识科普以及课堂笔记
看抖音直播Beyond演唱会有感
Synchronized and reentrantlock
详细页返回列表保留原来滚动条所在位置
从 1.5 开始搭建一个微服务框架——调用链追踪 traceId
curlpost-php
STM32按键消抖——入门状态机思维
[groovy] JSON string deserialization (use jsonslurper to deserialize JSON strings | construct related classes according to the map set)
Uniapp development, packaged as H5 and deployed to the server
[groovy] JSON serialization (convert class objects to JSON strings | convert using jsonbuilder | convert using jsonoutput | format JSON strings for output)
Ffmpeg captures RTSP images for image analysis
【EI会议分享】2022年第三届智能制造与自动化前沿国际会议(CFIMA 2022)
程序员搞开源,读什么书最合适?
Spark SQL null value, Nan judgment and processing
Kotlin core programming - algebraic data types and pattern matching (3)
MIT博士论文 | 使用神经符号学习的鲁棒可靠智能系统
Cf:d. insert a progression [about the insert in the array + the nature of absolute value + greedy top-down]
The population logic of the request to read product data on the sap Spartacus home page