CN102736947A - 一种图形渲染中光栅化阶段的多线程实现方法 - Google Patents
一种图形渲染中光栅化阶段的多线程实现方法 Download PDFInfo
- Publication number
- CN102736947A CN102736947A CN2011101163568A CN201110116356A CN102736947A CN 102736947 A CN102736947 A CN 102736947A CN 2011101163568 A CN2011101163568 A CN 2011101163568A CN 201110116356 A CN201110116356 A CN 201110116356A CN 102736947 A CN102736947 A CN 102736947A
- Authority
- CN
- China
- Prior art keywords
- triangular plate
- thread
- rasterization stage
- implementation method
- bounding box
- 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.)
- Pending
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种图形渲染中光栅化阶段的多线程实现方法,包括:计算三维物体的包围盒,将所述包围盒划分成n个区域并对应n个线程;划分三角片到对应的所述划分的n个区域的子区域内;执行与CPU个数相当的线程进行对应所述子区域内的三角片填充;继续执行其它线程直到将所有n个线程全部执行完毕,完成整个三角片的填充。通过本发明实施例可以大大提高图形渲染中三角片填充的速度,并且使图像渲染方法不再依赖GPU操作,可以直接基于CPU进行图形渲染,多线程的方法在CPU上实现了三维渲染光栅化阶段的并行性。
Description
技术领域
本发明涉及电视节目制作领域中的字幕处理领域,尤其涉及一种图形渲染中光栅化阶段的多线程实现方法。
背景技术
随着计算机图形、图像、视频技术的不断发展,加上国内广电行业正处于从标准清晰度模式向高清晰度模式过渡的时期,电视台等电视制播单位对电视图文制播提出了更高、更新的要求。这就对视频制作过程中的每一个环节都需要适时的技术更新。
图形渲染中的光栅化阶段是字幕制作领域的一个非常重要的环节。现有技术中三维场景的渲染主要是基于GPU(Graphic Processing Unit,图形处理器)的。基于GPU的渲染并行性,可以实现高效率的渲染。但是现有的GPU渲染还是需要依赖显卡,CPU本身运算能力很大,但是因传统的CPU运算是串行运算,运用的运算单元仅仅用到了其中很小的一部分,这就早成了很大的资源浪费,运算效率也比较低。
发明人在实施本发明的过程中,发现现有技术存在以下技术问题:
(1)在CPU实现三维渲染时,在光栅化阶段效率很低
(2)多个CPU未能充分利用
发明内容
为了解决上述现有技术的缺点,本发明的主要目的是提供一种图形渲染中光栅化三角片填充的多线程实现方法,以提高图形渲染的光栅化速度。
为了达到上述目的,本发明提供了一种图形渲染中光栅化三角片填充的多线程实现方法,具体包括:
计算三维物体的包围盒,将所述包围盒划分成n个子区域并对应n个线程;
划分三角片到对应的n个子区域内;
执行与CPU个数相当的线程进行对应所述子区域内的三角片填充;
继续执行线程直到将所有n个线程全部执行完毕,完成整个三角片的填充。
本发明的实施方式先计算三维物体的包围盒划分为n个线程的,通过先执行与CPU个数相当的线程进行对应子区域内的三角片填充,并且循环执行线程,同时执行多个线程直到将n个线程全部执行完毕完成整个三角片的填充的方式,能够大大提高图形渲染中光栅化三角片的填充,而在CPU上也能实现高效率的并行性。
附图说明
为了更清楚的说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种图形渲染中光栅化阶段的多线程实现方法的流程图
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然所描述的实施例仅是本发明的一部分实施例,不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一方面提供了一种图形渲染中光栅化三角片填充的多线程实现方法,如图2所示为本发明实施例的具体实现方法,阐述如下:
步骤S1:计算三维物体在屏幕空间中的包围盒。依次计算三维物体在物体空间中的包围盒的八个顶点在屏幕空间中的坐标,然后根据所述八个顶点在屏幕空间中的坐标计算屏幕空间中的三维物体的包围盒,屏幕空间中的包围盒,只有X,Y方向的边界。
步骤S2:将上述计算出的三维物体的包围盒划分成n个区域并对应n个线程,线程的个数根据CPU的个数来选择,一般选择相当于CPU个数几倍的值(推荐4~8倍),选小了,不能充分利用资源,大了,区域划分更细,计算过程有一些额外的开销。比如4个CPU的机器,n可以选为32。
步骤S3:根据构成三维物体的三角片三个顶点的屏幕坐标的位置,将三角片划分到上述相应的n个子区域内,并在区域内记录划分到本区域内的三角片,如果一个三角片跨多个区域,则在多个区域记录这个三角片。所述划分三角片到划分的区域的子区域内主要依据三角片在屏幕坐标中的三条边在Y方向的值,看落在哪几个区域内就将其划分到该区域内。
步骤S4:执行与CPU个数相当的线程进行对应所述子区域内的三角片填充。执行三角片填充的时候需要先执行与CPU个数相当的线程即对每个线程相对应的子区域进行填充。
步骤S5:继续执行线程直到将所有n个线程全部执行完毕,完成整个三角片的填充。当所述与CPU个数相当的线程中某一个线程执行完毕后紧接着执行剩下未执行的线程中的一个线程,直到所有的n个线程全部执行完毕,完成整个物体的三角片的填充。
其中,当一个三角片跨多个区域时,线程运行时,只填充三角片在对应的一个区域内的像素,无需在每个区域内都对整个三角片进行填充,避免三角片的重复填充,能大大提高填充效率。
本发明实施例图形渲染中光栅化三角片填充的多线程实现方法,计算屏幕空间中三维物体的包围盒并划分区域及与区域对应的线程;先执行与CPU个数相当的线程进行对应子区域内的三角片填充;并且当所述与CPU个数相当的线程中某一个线程执行完毕后紧接着执行一个剩下未执行的线程,同时执行与CPU个数相当的线程直到将全部线程执行完毕完成整个三角片的填充;尤其当一个三角片跨多个扫描区域时,线程运行时只需要将本区域内的三角片进行像素填充,避免了一个三角片重复填充,大大提高了图形渲染中光栅化三角片的填充速度,多线程的方法在CPU上实现了三维渲染光栅化阶段的并行性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的一个最佳具体实施例,但本发明的特征并不局限于此,任何熟悉该项技术的人在本发明领域内,可轻易想到的变化或修饰,都应涵盖在以下本发明的申请专利范围中。
Claims (8)
1.一种图形渲染中光栅化阶段的多线程实现方法,其特征在于,包括:
计算三维物体平面空间中的包围盒,将所述包围盒划分成n个子区域并对应n个线程;
划分三角片到对应的n个子区域;
执行与CPU个数相当的线程进行对应所述子区域内的三角片填充;
继续执行其它线程直到将所有n个线程全部执行完毕,完成整个三角片的填充。
2.如权利要求1所述的图形渲染中光栅化阶段的多线程实现方法,其特征在于,所述计算三维物体屏幕空间中的包围盒的方法具体为:依次计算三维物体在物体空间中的包围盒的八个顶点在屏幕空间中的坐标,然后根据所述八个顶点在屏幕空间中的坐标计算屏幕空间中的三维物体的包围盒。
3.如权利要求1所述的图形渲染中光栅化阶段的多线程实现方法,其特征在于,线程的个数取CPU个数的整倍数。
4.如权利要求1所述的图形渲染中光栅化阶段的多线程实现方法,其特征在于,所述划分三角片到对应的n个子区域即子区域记录划分到本区域内的三角片。
5.如权利要求4所述的图形渲染中光栅化阶段的多线程实现方法,其特征在于,所述子区域记录划分到本区域内的三角片还包括如果一个三角片跨多个区域,则在多个区域记录这个三角片。
6.如权利要求4所述的图形渲染中光栅化阶段的多线程实现方法,其特征在于,划分三角片到对应的子区域内依据三角片在屏幕坐标中的三条边在Y方向的值。
7.如权利要求1所述的图形渲染中光栅化阶段的多线程实现方法,其特征在于,所述继续执行线程具体为:当所述与CPU个数相当的线程中某一个线程执行完毕后紧接着执行剩下未执行的线程中的一个线程。
8.如权利要求1所述的图形渲染中光栅化阶段的多线程实现方法,其特征在于,所述三角片填充还包括当一个三角片跨多个区域时,线程运行时,只填充三角片在对应的一个区域内的像素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101163568A CN102736947A (zh) | 2011-05-06 | 2011-05-06 | 一种图形渲染中光栅化阶段的多线程实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101163568A CN102736947A (zh) | 2011-05-06 | 2011-05-06 | 一种图形渲染中光栅化阶段的多线程实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102736947A true CN102736947A (zh) | 2012-10-17 |
Family
ID=46992498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101163568A Pending CN102736947A (zh) | 2011-05-06 | 2011-05-06 | 一种图形渲染中光栅化阶段的多线程实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102736947A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455356A (zh) * | 2013-09-05 | 2013-12-18 | 中国计量学院 | 多核移动设备上3d模型的并发加载及渲染方法 |
CN105469440A (zh) * | 2014-09-30 | 2016-04-06 | 三星电子株式会社 | 用于产生和遍历加速结构的方法和设备 |
CN105637563A (zh) * | 2013-04-19 | 2016-06-01 | 华为技术有限公司 | 在屏幕上显示3d场景图的方法 |
CN106340055A (zh) * | 2016-08-19 | 2017-01-18 | 江苏电力信息技术有限公司 | 一种基于多线程的OpenGL快速绘制方法 |
CN106548512A (zh) * | 2015-09-22 | 2017-03-29 | 中国石油化工股份有限公司 | 网格模型数据的生成方法 |
CN106605211A (zh) * | 2014-09-12 | 2017-04-26 | 微软技术许可有限责任公司 | 着色器的渲染时间链接 |
US9779696B2 (en) | 2013-01-16 | 2017-10-03 | Intel Corporation | Serialized access to graphics resources |
CN109377552A (zh) * | 2018-10-19 | 2019-02-22 | 珠海金山网络游戏科技有限公司 | 图像遮挡计算方法、装置、计算设备及存储介质 |
CN111612881A (zh) * | 2019-02-22 | 2020-09-01 | 深圳晶源信息技术有限公司 | 一种基于多线程的图像渲染方法、系统及电子设备 |
WO2023169002A1 (zh) * | 2022-03-11 | 2023-09-14 | 腾讯科技(深圳)有限公司 | 软光栅化的方法、装置、设备、介质及程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691069A (zh) * | 2004-04-20 | 2005-11-02 | 香港中文大学 | 采用多图形处理器加速方格片元过滤的实时体绘制方法 |
CN101114380A (zh) * | 2006-03-10 | 2008-01-30 | 株式会社东芝 | 图像处理装置和图像处理方法 |
CN101578629A (zh) * | 2007-01-10 | 2009-11-11 | 高通股份有限公司 | 三维图形管线的自动负载平衡 |
CN101901590A (zh) * | 2009-05-25 | 2010-12-01 | 富士通株式会社 | 用于抗锯齿的多边形栅格化的方法和系统 |
CN101996391A (zh) * | 2009-08-21 | 2011-03-30 | 英特尔公司 | 用于存储和取回图像数据的技术 |
-
2011
- 2011-05-06 CN CN2011101163568A patent/CN102736947A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691069A (zh) * | 2004-04-20 | 2005-11-02 | 香港中文大学 | 采用多图形处理器加速方格片元过滤的实时体绘制方法 |
CN101114380A (zh) * | 2006-03-10 | 2008-01-30 | 株式会社东芝 | 图像处理装置和图像处理方法 |
CN101578629A (zh) * | 2007-01-10 | 2009-11-11 | 高通股份有限公司 | 三维图形管线的自动负载平衡 |
CN101901590A (zh) * | 2009-05-25 | 2010-12-01 | 富士通株式会社 | 用于抗锯齿的多边形栅格化的方法和系统 |
CN101996391A (zh) * | 2009-08-21 | 2011-03-30 | 英特尔公司 | 用于存储和取回图像数据的技术 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779696B2 (en) | 2013-01-16 | 2017-10-03 | Intel Corporation | Serialized access to graphics resources |
CN103927223B (zh) * | 2013-01-16 | 2018-03-09 | 英特尔公司 | 用于对图形资源的串行化访问的方法、系统、装置、设备以及存储介质 |
US11113876B2 (en) | 2013-04-19 | 2021-09-07 | Huawei Technologies Co., Ltd. | Method for displaying a 3D scene graph on a screen |
CN105637563A (zh) * | 2013-04-19 | 2016-06-01 | 华为技术有限公司 | 在屏幕上显示3d场景图的方法 |
CN105637563B (zh) * | 2013-04-19 | 2019-01-08 | 华为技术有限公司 | 在屏幕上显示3d场景图的方法 |
CN103455356B (zh) * | 2013-09-05 | 2017-02-08 | 中国计量学院 | 多核移动设备上3d模型的并发加载及渲染方法 |
CN103455356A (zh) * | 2013-09-05 | 2013-12-18 | 中国计量学院 | 多核移动设备上3d模型的并发加载及渲染方法 |
CN106605211A (zh) * | 2014-09-12 | 2017-04-26 | 微软技术许可有限责任公司 | 着色器的渲染时间链接 |
CN105469440B (zh) * | 2014-09-30 | 2020-10-16 | 三星电子株式会社 | 用于产生和遍历加速结构的方法和设备 |
CN105469440A (zh) * | 2014-09-30 | 2016-04-06 | 三星电子株式会社 | 用于产生和遍历加速结构的方法和设备 |
CN106548512A (zh) * | 2015-09-22 | 2017-03-29 | 中国石油化工股份有限公司 | 网格模型数据的生成方法 |
CN106548512B (zh) * | 2015-09-22 | 2019-10-29 | 中国石油化工股份有限公司 | 网格模型数据的生成方法 |
CN106340055A (zh) * | 2016-08-19 | 2017-01-18 | 江苏电力信息技术有限公司 | 一种基于多线程的OpenGL快速绘制方法 |
CN109377552A (zh) * | 2018-10-19 | 2019-02-22 | 珠海金山网络游戏科技有限公司 | 图像遮挡计算方法、装置、计算设备及存储介质 |
CN111612881A (zh) * | 2019-02-22 | 2020-09-01 | 深圳晶源信息技术有限公司 | 一种基于多线程的图像渲染方法、系统及电子设备 |
CN111612881B (zh) * | 2019-02-22 | 2023-05-16 | 深圳晶源信息技术有限公司 | 多层集成电路图形的多线程渲染方法、系统及电子设备 |
WO2023169002A1 (zh) * | 2022-03-11 | 2023-09-14 | 腾讯科技(深圳)有限公司 | 软光栅化的方法、装置、设备、介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102736947A (zh) | 一种图形渲染中光栅化阶段的多线程实现方法 | |
CN107438860B (zh) | 用于高性能功率高效的可编程图像处理的架构 | |
KR102146515B1 (ko) | 이미지 프로세서를 위한 시트 생성기 | |
KR20190022627A (ko) | 프로그램 가능한 2차원 이미지 프로세서상의 컨볼루션 신경망 | |
KR102253027B1 (ko) | 2차원 이미지 프로세서상의 통계 연산 | |
KR20180100372A (ko) | 고성능의 전력 효율적인 프로그래밍 가능 이미지 처리 하드웨어 플랫폼에 프로그램 코드를 매핑하기 위한 컴파일러 기술들 | |
WO2007132746A1 (ja) | 処理装置 | |
US10679319B2 (en) | Task execution in a SIMD processing unit with parallel groups of processing lanes | |
CN103677828A (zh) | 一种图层绘制方法、绘图引擎及终端设备 | |
CN103294473B (zh) | 用于虚拟表面压实的计算机实现的方法和设备 | |
KR102278021B1 (ko) | 이미지 프로세서 런타임 효율성을 개선하기 위한 프로그램 코드 변환 | |
CN111985597B (zh) | 模型压缩方法及装置 | |
CN105931256A (zh) | 基于cuda的大幅面遥感影像快速分割方法 | |
CN106067187A (zh) | 在图形处理系统中对基元分块 | |
CN105190701A (zh) | 基于原语的合成 | |
CN1885296A (zh) | 一种游戏中的地图绘制方法 | |
CN104331883B (zh) | 一种基于非对称逆布局模型的图像边界提取方法 | |
KR20180100362A (ko) | 이미지 프로세서에 대한 매크로 i/o 유닛 | |
CN102752549B (zh) | 一种基于网格形变的特效的实现方法 | |
CN103065349A (zh) | 一种数据渲染方法及装置 | |
CN102654830A (zh) | 利用纹理排料方式优化显存空间的方法 | |
US9269174B2 (en) | Methods and systems for generating a polygon mesh | |
Honda et al. | Simple and fast parallel algorithms for the Voronoi map and the Euclidean distance map, with GPU implementations | |
CN102739976A (zh) | 一种阴影的动态二维字幕的实现的方法及系统 | |
CN102724422A (zh) | 一种利用增量实现动态二维字幕的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121017 |
|
RJ01 | Rejection of invention patent application after publication |