CN115661298B - 一种无失真三角形的区域划分绘制方法 - Google Patents
一种无失真三角形的区域划分绘制方法 Download PDFInfo
- Publication number
- CN115661298B CN115661298B CN202211609552.3A CN202211609552A CN115661298B CN 115661298 B CN115661298 B CN 115661298B CN 202211609552 A CN202211609552 A CN 202211609552A CN 115661298 B CN115661298 B CN 115661298B
- Authority
- CN
- China
- Prior art keywords
- triangle
- pixel
- point
- color
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种无失真三角形的区域划分绘制方法,采用三角形相邻两边作为不共线的非零向量来线性组合表示任一像素点与两个非零向量公共点构成的像素向量,通过线性组合系数和像素向量在三角形各边上的投影大小对三角形进行区域划分,不同区域采用不同的距离反走样完成三角形绘制。本发明能够解决现有技术中三角形各边在小角度情况下会出现绘制异常、反走样显示效果差的技术问题,可以实现三角形的无失真绘制,显示效果好。
Description
技术领域
本发明涉及图形显示技术领域,具体而言涉及一种无失真三角形的区域划分绘制方法。
背景技术
三角形是组成计算机图形最基本的元素之一,在很多显示系统中需要绘制任意类型的三角形。常见的三角形绘制算法会对三角形三个顶点的纵坐标大小进行判断将顶点纵坐标较小的顶点记为min点,纵坐标顶点较大的顶点记为max点,剩余顶点记为mid点,引出一条经过mid点的水平线将三角形分为上三角形和下三角形,从min点所在行开始对三角形进行逐行扫描,通过水平线与三角形边的交点的横坐标与像素点的横坐标进行大小比较确定像素点是否在三角形内部。在上三角形部分,交点即为水平线与min-mid、min-max边的交点;在下三角形部分,交点即为水平线与mid-max、min-max边的交点。反走样部分采用多重采样算法。在三角形各边处于小角度的情况下,该算法绘制出的三角形锯齿现象严重,且在上三角形与下三角形的衔接处会出现填充异常的问题。如何高效、简便地完成三角形的绘制成为重要的研究内容。
发明内容
为了解决目前常见的三角形绘制算法会造成上下三角形衔接处填充异常以及反走样效果差的问题,本发明提供一种无失真三角形的区域划分绘制方法,适用于任意类型三角形,便于硬件实现。
为实现上述目的,本发明采用以下技术方案:
一种无失真三角形的区域划分绘制方法,所述区域划分绘制方法包括以下步骤:
S1,令待绘制的三角形的三个顶点分别为点O、点A和点B;采用三角形相邻两边对应的不共线的非零向量和的线性组合表示任一像素点P与两个非零向量公共点构成的像素向量
S2,通过像素点的像素向量对应的线性组合系数k和t对三角形进行区域划分,将其划分成以下四个绘制区域:三角形内部区域、OA边所属区域、AB边所属区域和OB边所属区域;
S3,根据OA边所属区域、AB边所属区域和OB边所属区域的像素点的像素向量在各自对应的三角形边上的投影大小,计算得到像素点与对应边的距离值distance;采用下述公式计算得到像素点的透明度alpha:
alpha=(2-distance)/2;
对不同区域采用不同的距离反走样完成三角形绘制;其中,三角形内部区域的像素点的透明度取值为1。
为优化上述技术方案,采取的具体措施还包括:
进一步地,步骤S2中,采用下述公式计算得到像素点P的像素向量对应的线性组合系数k和t:
式中,(x1,y1)是点O的坐标值,(x2,y2)是点A的坐标值,(x3,y3)是点B的坐标值,(xs,ys)是像素点P的坐标值。
进一步地,步骤S2中,通过像素向量对应的线性组合系数k和t对三角形进行区域划分的过程包括以下子步骤:
通过k、t的大小将三角形分为四个绘制区域:
若像素向量对应的线性组合系数满足以下条件:t<0,则像素点属于第一绘制区域,对应的三角形边为OA边;
若像素向量对应的线性组合系数满足以下条件:k<0,则像素点属于第二绘制区域,对应的三角形边为AB边;
若像素向量对应的线性组合系数满足以下条件:t+k>1,则像素点属于第三绘制区域,对应的三角形边为AB边;
若像素向量对应的线性组合系数满足以下条件:0≤t≤1&&0≤k≤1&&0≤t+k≤1,则像素点属于第四绘制区域,对应三角形内部区域。
进一步地,步骤S3中,当像素点P位于第一绘制区域时,采用下述公式计算得到像素点与对应边的距离值distance:
式中,
进一步地,步骤S3中,当像素点P位于第二绘制区域时,采用下述公式计算得到像素点与对应边的距离值distance:
式中,
进一步地,步骤S3中,当像素点P位于第二绘制区域时,采用下述公式计算得到像素点与对应边的距离值distance:
式中,
进一步地,对不同区域采用不同的距离反走样完成三角形绘制的过程包括以下步骤:
遍历每个像素点,计算得到每个像素点的像素值G*:
G*=G·alpha
式中,G为像素点的初始像素值。
进一步地,对不同区域采用不同的距离反走样完成三角形绘制的过程还包括以下步骤:
将已知像素点的颜色信息带入下述关系式,以确定遍历到的像素点的未知颜色信息:
color_p=k·(color_a-color_o)+t·(color_b-color_o)+color_o
式中,color_p是像素点P的颜色信息,color_a、color_o和color_b分别是点A、点O和点B的颜色信息;
乘以透明度计算得到片元的颜色信息fragment_color为:
fragment_color=color_p·alpha。
本发明的有益效果是:
第一,本发明的无失真三角形的区域划分绘制方法,可以实现任意类型三角形的无失真绘制,显示效果好,实用性强;
第二,本发明的无失真三角形的区域划分绘制方法,解决了目前将三角形分为上下三角形进行填充造成上下三角形衔接处填充异常的问题,对于片元信息的计算进行了优化;
第三,本发明的无失真三角形的区域划分绘制方法,大大优化了三角形的反走样显示效果。
附图说明
图1是本发明实施例的无失真三角形的区域划分绘制方法原理图。
图2为采用上下三角形方式绘制的各类型三角形仿真图。
图3为采用本发明实施例的无失真三角形的区域划分绘制方法绘制的各类型三角形仿真图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
本实施例公开了一种无失真三角形的区域划分绘制方法,根据平面内任一向量都可以用其它两个不共线的非零向量的线性组合表示的理论,用三角形相邻两边作为不共线的非零向量来线性组合表示任一像素点与两个非零向量公共点构成的像素向量,通过线性组合系数和像素向量在三角形各边上的投影大小对三角形进行区域划分,不同区域采用不同的距离反走样完成三角形绘制。具体地,所述区域划分绘制方法包括以下步骤:
S1,令待绘制的三角形的三个顶点分别为点O、点A和点B;采用三角形相邻两边对应的不共线的非零向量和的线性组合表示任一像素点P与两个非零向量公共点构成的像素向量
S2,通过像素点的像素向量对应的线性组合系数k和t对三角形进行区域划分,将其划分成以下四个绘制区域:三角形内部区域、OA边所属区域、AB边所属区域和OB边所属区域。
S3,根据OA边所属区域、AB边所属区域和OB边所属区域的像素点的像素向量在各自对应的三角形边上的投影大小,计算得到像素点与对应边的距离值distance;采用下述公式计算得到像素点的透明度alpha:
alpha=(2-distance)/2;
对不同区域采用不同的距离反走样完成三角形绘制;其中,三角形内部区域的像素点的透明度取值为1。
图1为无失真三角形的区域划分绘制方法原理图。通常在绘制三角形时,给出三角形的三个顶点O(x1,y1),A(x2,y2),B(x3,y3)。根据平行四边形法则,相邻两边的向量和是两向量的公共顶点与对点相连的对角线,即平面内任一向量都可以用其它两个不共线的非零向量的线性组合表示,对于平面内的任意一点P与点O构成的向量,均可以由已知向量和向量来表示,只需要控制的系数即可,即以像素点P(xs,ys)为例,向量向量向量存在系数k、t使得将已知的坐标信息带入可联立以下方程组:
用已知信息来表示k、t可得到:
判断像素点是否在平行四边形内部时k、t只需要满足以下条件即可:
判断像素点是否在三角形内部时即只需要在判断是否在平行四边形内部的基础上加上一个附加条件:
这样即可保证像素点落在三角形的内部。
通过k、t的大小将三角形分为四个绘制区域,t<0部分即为区域1,k<0部分即为区域2,t+k>1部分即为区域3,0≤t≤1&&0≤k≤1&&0≤t+k≤1部分即为区域4。
当像素点位于区域4时,即像素点在三角形的内部,像素点的透明度为alpha=1。当像素点位于区域1时,计算出向量在向量上的投影并根据的值确定出distance的大小,当时,distance为点P到点O的距离即当时,distance为点P到点A的距离当时,distance为点P到边OA的距离即根据distance计算出alpha=(2-distance)/2。
当像素点位于区域2时,计算出向量在向量上的投影并根据的值确定出distance的大小,当时,distance为点P到点O的距离即当时,distance为点P到点B的距离当时,distance为点P到边OB的距离即根据distance计算出alpha=(2-distance)/2。
当像素点位于区域3时,计算出向量在向量上的投影并根据的值确定出distance的大小,当时,distance为点P到点A的距离即当时,distance为点P到点B的距离当时,distance为点P到边AB的距离即根据distance计算出alpha=(2-distance)/2。
在计算像素点颜色信息的时候可以继续沿用关系式将已知像素点的颜色信息带入关系式即可确定遍历到的像素点的未知颜色信息:
color_p=k·(color_a-color_o)+t·(color_b-color_o)+color_o
乘以透明度即可得到片元的颜色信息:
fragment_color=color_p·alpha
遍历到的每个片元的颜色信息都由该方法确定,完成无失真三角形的绘制。
本实例设置了一组不同类型的三角形参数,分别采用上下三角形方式绘制和本实施例的区域划分绘制方法绘制,并将绘制的三角形子图按三角形参数编号自上而下依次排序。图2为采用上下三角形方式绘制的各类型三角形仿真图,图3为采用本实施例的区域划分绘制方法绘制的各类型三角形仿真图,图2和图3的子图自上而下一一对应。可以看出,分成上下三角形两个部分进行绘制的算法采用水平线与各边交点的横坐标作为判断像素点是否在三角形内部的约束条件,因为各边的斜率不一致所以需要分为上下两个三角形,这就使得需要对上下两个三角形分别进行逐行扫描,对上下三角形的衔接处进行重复扫描,会导致上下三角形衔接处出现绘制异常的问题。本绘制算法以向量加法原理为基理,通过计算向量加法的线性组合系数和来判断像素点与三角形的位置关系,很好地避免了将三角形分为上下两个部分分别进行扫描导致衔接处重复扫描的问题。通过对比可以看出,本绘制算法的显示效果比分为上下三角形进行绘制的显示效果更好,解决了上下三角形衔接处绘制异常的问题,且反走样效果更优。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (7)
1.一种无失真三角形的区域划分绘制方法,其特征在于,所述区域划分绘制方法包括以下步骤:
S2,通过像素点的像素向量对应的线性组合系数k和t对三角形进行区域划分,将其划分成以下四个绘制区域:三角形内部区域、OA边所属区域、AB边所属区域和OB边所属区域;
S3,根据OA边所属区域、AB边所属区域和OB边所属区域的像素点的像素向量在各自对应的三角形边上的投影大小,计算得到像素点与对应边的距离值distance;采用下述公式计算得到像素点的透明度alpha:
alpha=(2-distance)/2;
对不同区域采用不同的距离反走样完成三角形绘制;其中,三角形内部区域的像素点的透明度取值为1;
对不同区域采用不同的距离反走样完成三角形绘制的过程包括以下步骤:
遍历每个像素点,计算得到每个像素点的像素值G*:
G*=G·alpha
式中,G为像素点的初始像素值。
3.根据权利要求2所述的无失真三角形的区域划分绘制方法,其特征在于,步骤S2中,通过像素向量对应的线性组合系数k和t对三角形进行区域划分的过程包括以下子步骤:
通过k、t的大小将三角形分为四个绘制区域:
若像素向量对应的线性组合系数满足以下条件:t<0,则像素点属于第一绘制区域,对应的三角形边为OA边;
若像素向量对应的线性组合系数满足以下条件:k<0,则像素点属于第二绘制区域,对应的三角形边为AB边;
若像素向量对应的线性组合系数满足以下条件:t+k>1,则像素点属于第三绘制区域,对应的三角形边为AB边;
若像素向量对应的线性组合系数满足以下条件:0≤t≤1&&0≤k≤1&&0≤t+k≤1,则像素点属于第四绘制区域,对应三角形内部区域。
7.根据权利要求2所述的无失真三角形的区域划分绘制方法,其特征在于,对不同区域采用不同的距离反走样完成三角形绘制的过程还包括以下步骤:
将已知像素点的颜色信息带入下述关系式,以确定遍历到的像素点的未知颜色信息:
color_p=k·(color_a-color_o)+t·(color_b-color_o)+color_o
式中,color_p是像素点P的颜色信息,color_a、color_o和color_b分别是点A、点O和点B的颜色信息;
乘以透明度计算得到片元的颜色信息fragment_color为:
fragment_color=color_p·alpha。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211609552.3A CN115661298B (zh) | 2022-12-15 | 2022-12-15 | 一种无失真三角形的区域划分绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211609552.3A CN115661298B (zh) | 2022-12-15 | 2022-12-15 | 一种无失真三角形的区域划分绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115661298A CN115661298A (zh) | 2023-01-31 |
CN115661298B true CN115661298B (zh) | 2023-04-07 |
Family
ID=85023257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211609552.3A Active CN115661298B (zh) | 2022-12-15 | 2022-12-15 | 一种无失真三角形的区域划分绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115661298B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114913265A (zh) * | 2022-05-10 | 2022-08-16 | 南京航空航天大学 | 一种面向平显的多线宽线段无失真绘制方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289845B (zh) * | 2011-08-30 | 2013-04-10 | 广东省电力设计研究院 | 一种三维模型绘制方法以及装置 |
CN104484893B (zh) * | 2014-12-16 | 2018-07-10 | 广东威创视讯科技股份有限公司 | 圆环形图像的绘制方法和系统 |
CN105718233B (zh) * | 2016-01-15 | 2019-08-20 | 南京航空航天大学 | 一种平显多线宽三角形无失真的绘制方法 |
CN108510565A (zh) * | 2018-03-27 | 2018-09-07 | 长沙景嘉微电子股份有限公司 | Gpu中一种实现线段转三角形绘制的装置与方法 |
CN109741433B (zh) * | 2019-01-08 | 2023-05-05 | 西安邮电大学 | 一种基于Tile的三角形多向并行扫描方法及结构 |
-
2022
- 2022-12-15 CN CN202211609552.3A patent/CN115661298B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114913265A (zh) * | 2022-05-10 | 2022-08-16 | 南京航空航天大学 | 一种面向平显的多线宽线段无失真绘制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115661298A (zh) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6600485B1 (en) | Polygon data generation method and image display apparatus using same | |
US7596468B2 (en) | Method for measuring a selected portion of a curved surface of an object | |
US9972129B2 (en) | Compression of a three-dimensional modeled object | |
CN107256557B (zh) | 一种误差可控的细分曲面图像矢量化方法 | |
US7884825B2 (en) | Drawing method, image generating device, and electronic information apparatus | |
US10546365B2 (en) | Single pass flexible screen/scale rasterization | |
US6639598B2 (en) | Method and apparatus for effective level of detail selection | |
JP6463625B2 (ja) | 画像のリサイジング | |
JP2000020746A5 (zh) | ||
US20140176550A1 (en) | Roy tracing appratus and method | |
CN102682424B (zh) | 基于边缘方向差值的图像放大处理方法 | |
US6507348B1 (en) | Method and apparatus for clipping an object element in accordance with a clip volume | |
Wei et al. | Feature-preserving optimization for noisy mesh using joint bilateral filter and constrained Laplacian smoothing | |
CN115661298B (zh) | 一种无失真三角形的区域划分绘制方法 | |
US6459438B1 (en) | Method and apparatus for determining clipping distance | |
US5280569A (en) | Three dimensional model describing method | |
US20120113098A1 (en) | Method and system for rapidly vectorizing image by gradient meshes based on parameterization | |
KR20190023846A (ko) | 콘텐츠 기반 이미지 리사이징 방법 및 장치 | |
US20030063096A1 (en) | System and method for efficiently creating a surface map | |
CA2367774C (en) | Method and system for generating and handling a harmonized network of points | |
CN113470177A (zh) | 一种gis系统中三维模型几何自适应简化方法 | |
Schilling et al. | Rendering of multiresolution models with texture | |
JP2000293705A (ja) | 3次元グラフィックス用描画装置、3次元グラフィックス用描画方法および3次元グラフィックス用描画プログラムを記録した媒体 | |
JPS6383871A (ja) | 陰影表示方法 | |
JPH0636039A (ja) | テクスチャ・マッピング装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |