CN105023234B - 基于嵌入式系统存储优化的图形加速方法 - Google Patents
基于嵌入式系统存储优化的图形加速方法 Download PDFInfo
- Publication number
- CN105023234B CN105023234B CN201510376696.2A CN201510376696A CN105023234B CN 105023234 B CN105023234 B CN 105023234B CN 201510376696 A CN201510376696 A CN 201510376696A CN 105023234 B CN105023234 B CN 105023234B
- Authority
- CN
- China
- Prior art keywords
- texture
- small
- merged
- big
- collection
- 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
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种基于嵌入式系统存储优化的图形加速方法,采用纹理集算法进行图形渲染,包括如下步骤:第一,创建一个纹理集类,这个纹理集的功能是用来将小纹理合并成一张大的纹理;第二,将每个物体上的小纹理传给纹理集类来创建一张大纹理,并将每个物体上小纹理替换成这张大的纹理;第三,根据每张小的纹理在纹理集中的相对位置更新UV坐标;第四,将序列化的多个元素绘制函数合并成一个元素绘制函数。本发明用纹理集算法进行图形渲染,通过减少CPU和GPU之间数据交互所需要的巨大开销来提高渲染效率,实现了图形的加速处理。
Description
技术领域
本发明涉及计算机图形处理技术,尤其涉及图像加速处理方法。
背景技术
图形作为传递信息的最主要媒体之一,使得计算机图形学在短短30年的历史中飞速发展。作为商品的图形软件和硬件已能方便地生成各种线画图形和自然景物的真实感图像,从某种程度上来讲,计算机图形学的广泛应用是计算机发展水平的标志。计算机图形学来源于生活、舞蹈、音乐、艺术、电影制作、工程技术、科学等,它们之间的相互推动作用又使计算机图形学大大促进了这些领域的发展。
当代计算机所具有的图形图像处理能力已经达到实时渲染高帧频高清高质量的3D彩色图像和非常逼真的多层次场景。计算机图形图像加速处理技术已经广泛应用领域有:计算机动画、科学计算可视化、图形用户接口、虚拟现实技术、计算机艺术、CAD/CAM等领域。在这些年,计算机图形图像处理技术飞速发展,从单色到真彩色,从二维到三维、从低分辨率到高清,阴影、光照、雾化、纹理、融合等技术层出不穷。正是有了图形加速技术,才让这些所有的技术得以实现。
在计算机图形学和计算机飞速发展的趋势下,用户对人机交互的要求越来越高,要求系统能够提供出更多的视觉信息,要求系统可以在屏幕上显示图形图像,例如嵌入式系统。尤其是进入21世纪后,用户对嵌入式设备的要求上升到了一个新的高度,用户要求这些嵌入式设备实时显示高清高质量的3D图像图形。为了满足这些嵌入式系统的各种应用需求,这些嵌入式设备必须具有高实时性、小体积、低功耗、低成本等这些性能要求。为了使得嵌入式图形系统满足这些需求,必须要求嵌入式系统具有高效的图形渲染能力,在嵌入式系统的有限资源下,就需要图形加速技术来快速实现图形渲染。
发明内容
本发明所要解决的技术问题就是提供一种基于嵌入式系统存储优化的图形加速方法,快速实现图形渲染。
为解决上述技术问题,本发明采用如下技术方案:基于嵌入式系统存储优化的图形加速方法,采用纹理集算法进行图形渲染,采用纹理集算法进行图形渲染包括如下步骤:
第一,创建一个纹理集类,这个纹理集的功能是用来将小纹理合并成一张大的纹理;
第二,将每个物体上的小纹理传给纹理集类来创建一张大纹理,并将每个物体上小纹理替换成这张大的纹理;
第三,根据每张小的纹理在纹理集中的相对位置更新UV坐标;
第四,将序列化的多个元素绘制函数合并成一个元素绘制函数。
优选的,将各小纹理合并到大纹理中包括均匀分配和非均匀分配两种方法,均匀分配是指在大纹理中分配给各小纹理的大小是固定的,而非均匀分配是指按各小纹理实际的尺寸合并到大纹理中。
本发明用纹理集算法进行图形渲染,该算法从渲染IO角度出发考虑,通过减少CPU和GPU之间数据交互所需要的巨大开销来提高渲染效率,实现了图形的加速处理。
具体实施方式
本发明基于嵌入式系统存储优化的图形加速方法的基本思想是设计一种动态空间分配算法将各个独立的小纹理合并为一个大的纹理,并且进行纹理坐标的相应修改,从而减少GPU draw call的调用,以此提高渲染帧率。
设我们要渲染的场景中包含了n张不同的纹理图,该场景中的几何对象总数为k,该场景渲染时发生的GPU draw call的调用次数为n’,则必有:
n≤n′≤k×n(2-1)
若发生一次GPU draw call调用的时间为t’,场景中某几何对象i的渲染时间(不包括纹理状态切换的时间)为ti,场景的总渲染时间为:
由公式(2-2)知,GPU draw call的调用次数增加必然使场景的渲染时间增长。而实际表明在GPU中,GPU draw call的调用时间远远大于正常的渲染时间。因此,减少GPUdraw call的调用对提高场景的渲染效率具有很大的意义。又由公式(2-1)得知,若场景中几何对象总数不变,纹理个数减少,必然会使渲染时发生的GPU draw call的调用次数减少。
由以上得知,可以通过合并纹理的方法减少GPU draw call的调用次数,从而提高渲染效率。
基于嵌入式系统存储优化的图形加速方法,采用纹理集算法进行图形渲染,采用纹理集算法进行图形渲染包括如下步骤:
第一,创建一个纹理集类,这个纹理集的主要功能是用来将小纹理合并成一张大的纹理。
第二,将每个物体上的小纹理传给纹理集类来创建一张大纹理,并将每个物体上小纹理替换成这张大的纹理。
第三,根据每张小的texture在纹理集中的相对位置更新UV坐标。
第四,将序列化的元素绘制函数(DrawPrimitive函数)合并成一个元素绘制函数(DrawPrimitive函数),即调用一次draw call即可。
首先,我们有一个TextureSet的基类,这是个虚拟类,规定了一些纹理集的基本操作函数,如Add(),Clear()等操作。
UniformSet和Non-uniformSet是继承TextureSet的两个实例,在UniformSet中我们规定了纹理集中的每个texture的大小都是相同的(通常为需要合并的各小纹理中最大的一个)。而non-uniformSet中则会按texture实际大小加到纹理集中。这两种方案都有利有弊。UniformSet中管理和计算都比较方便,而Non-uniformSet对空间的利用率则比较高。
在实现的过程中有以下几个关键要点需要注意:
(1)如何将各小texture(纹理)合并到大纹理中
这其中包括uniform和non-uniform两种,uniform是指在大纹理中分配给各小texture的大小是固定的,这种方法的优点在于方便管理,计算比较方便,而缺点是比较消费空间。而non-uniform是指按各小texture实际的size合并到大纹理中。
(2)如何处理Address mode的问题
所谓Address mode的问题,即物体上要求的UV坐标超过(0,1)时如何处理的问题,常用的Address Mode有Clamp,Wrap,Mirror,一种解决这种问题的办法就是将带Addressmode的小的texture在纹理集中重复多次,比如一个小texture的uv值是(0,5),那我们就将这个texture在纹理集中重复5次。
(3)如何处理filtering的问题
所谓filtering是指在pixel shader中采取texture上像素点(texel)时,当采取的点不正好是texel的正中心如何处理的问题,通常用的方法有Nearest Neighbor,Bilinear Filtering,Trilinear Filtering和Anisotropic Filtering。
当小texture合并到纹理集中时,当采取点采到小texture的内部时不会出什么问题,唯一会出问题的则是当采取点采到texture的边缘时,因为在原来小的texture中时,texture之外为空白区域,而在大纹理中时,则会采到旁边的texture中。
解决这个问题的一个办法就是将每个小texture周围包围一个1pixel宽的外围再合并到纹理集中。
下面我们来举例说明这个减少draw call的过程:
我们现在需要画两个物体,通常情况下,我们需将第一张Texture赋给(调用SetTexture()函数)第一个物体,然后开始画(调用DrawPrimitive()函数),然后再将第二张Texture通过SetTexture()赋给第二个物体,再调用DrawPrimitive()画第二个物体。这样整个流程就调用了两次draw call。
如果将两个Texture合并到一个texture set里,我们则无需要在两次DrawPrimitive()之间再次调用SetTexture(),也就是说我们只需要一次DrawPrimitive()即可,即将Draw call的调用从两次减少到了一次。为了保证在合并后读取pixel时不至于发生错误,我们需要对Texture的UV坐标做一个对应变换。
另外,现有技术中,Irrlicht引擎中绝对值运算是通过分支来判断其值的正负,以此来实现求值,这种求法不利于CPU的流水线指令处理方式。因此,本发明还可以通过优化了Irrlicht引擎的一些底层浮点数数学运算进加快图形处理速度,其优化实现方式是:将原来代码中的分支结构去掉,将浮点类型转换成整型,去掉其符号位,再将其转换回浮点类型。
Claims (1)
1.基于嵌入式系统存储优化的图形加速方法,其特征在于:采用纹理集算法进行图形渲染,采用纹理集算法进行图形渲染包括如下步骤:
第一,创建一个纹理集类,这个纹理集的功能是用来将小纹理合并成一张大的纹理;
第二,将每个物体上的小纹理传给纹理集类来创建一张大纹理,并将每个物体上小纹理替换成这张大的纹理;
第三,根据每张小的纹理在纹理集中的相对位置更新UV坐标;
第四,将序列化的多个元素绘制函数合并成一个元素绘制函数;
将各小纹理合并到大纹理中包括均匀分配和非均匀分配两种方法,均匀分配是指在大纹理中分配给各小纹理的大小是固定的,而非均匀分配是指按各小纹理实际的尺寸合并到大纹理中;
当采取点采到纹理的边缘时,因为在原来小的纹理中时,纹理之外为空白区域,而在大纹理中时,则会采到旁边的纹理中,解决这个问题的一个办法就是将每个小纹理周围包围一个1像素宽的外围再合并到纹理集中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510376696.2A CN105023234B (zh) | 2015-06-29 | 2015-06-29 | 基于嵌入式系统存储优化的图形加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510376696.2A CN105023234B (zh) | 2015-06-29 | 2015-06-29 | 基于嵌入式系统存储优化的图形加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105023234A CN105023234A (zh) | 2015-11-04 |
CN105023234B true CN105023234B (zh) | 2018-02-23 |
Family
ID=54413180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510376696.2A Active CN105023234B (zh) | 2015-06-29 | 2015-06-29 | 基于嵌入式系统存储优化的图形加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105023234B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107194982B (zh) * | 2016-03-15 | 2021-07-27 | 斑马智行网络(香港)有限公司 | 创建纹理图集和纹理图集等待集合的方法、装置和设备 |
CN106296791A (zh) * | 2016-08-25 | 2017-01-04 | 浙江科澜信息技术有限公司 | 一种面向大场景渲染的高效纹理优化方法 |
CN106570922A (zh) * | 2016-08-25 | 2017-04-19 | 浙江科澜信息技术有限公司 | 一种提高三维模型渲染性能的方法 |
CN107369200B (zh) * | 2017-07-04 | 2021-07-16 | 福建星网视易信息系统有限公司 | 一种3d场景特效处理方法及存储设备 |
CN111798361A (zh) * | 2019-09-20 | 2020-10-20 | 厦门雅基软件有限公司 | 渲染方法、装置、电子设备及计算机可读存储介质 |
CN111028361B (zh) * | 2019-11-18 | 2023-05-02 | 杭州群核信息技术有限公司 | 三维模型及材质合并方法、装置、终端、存储介质以及渲染方法 |
CN114612579A (zh) * | 2020-12-18 | 2022-06-10 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、计算机设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4232118B2 (ja) * | 2006-09-12 | 2009-03-04 | ソニー株式会社 | データ処理装置、データ処理方法、およびプログラム |
CN102663801A (zh) * | 2012-04-19 | 2012-09-12 | 北京天下图数据技术有限公司 | 一种提高三维模型渲染性能的方法 |
CN101364310B (zh) * | 2007-08-07 | 2012-10-31 | 北京灵图软件技术有限公司 | 一种三维模型图形的生成方法和装置 |
CN104407707A (zh) * | 2014-12-08 | 2015-03-11 | 厦门大学 | 一种大纹理触觉再现系统 |
CN104683783A (zh) * | 2015-01-08 | 2015-06-03 | 电子科技大学 | 一种自适应深度图滤波方法 |
-
2015
- 2015-06-29 CN CN201510376696.2A patent/CN105023234B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4232118B2 (ja) * | 2006-09-12 | 2009-03-04 | ソニー株式会社 | データ処理装置、データ処理方法、およびプログラム |
CN101364310B (zh) * | 2007-08-07 | 2012-10-31 | 北京灵图软件技术有限公司 | 一种三维模型图形的生成方法和装置 |
CN102663801A (zh) * | 2012-04-19 | 2012-09-12 | 北京天下图数据技术有限公司 | 一种提高三维模型渲染性能的方法 |
CN104407707A (zh) * | 2014-12-08 | 2015-03-11 | 厦门大学 | 一种大纹理触觉再现系统 |
CN104683783A (zh) * | 2015-01-08 | 2015-06-03 | 电子科技大学 | 一种自适应深度图滤波方法 |
Non-Patent Citations (1)
Title |
---|
余杰千 等.一种有效的遥感图像无缝分割方法.《计算机应用》.2003,第23卷(第12期), * |
Also Published As
Publication number | Publication date |
---|---|
CN105023234A (zh) | 2015-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105023234B (zh) | 基于嵌入式系统存储优化的图形加速方法 | |
US10733691B2 (en) | Fragment shaders perform vertex shader computations | |
KR102475212B1 (ko) | 타일식 아키텍처들에서의 포비티드 렌더링 | |
CN109166159B (zh) | 获取图像的主色调的方法、装置及终端 | |
US10049486B2 (en) | Sparse rasterization | |
CN103679785B (zh) | 用于部分帧缓冲区更新的系统和方法 | |
EP3016091A1 (en) | Rendering method, rendering apparatus, and electronic apparatus | |
CN105321143A (zh) | 来自片段着色程序的采样掩膜的控制 | |
US10410398B2 (en) | Systems and methods for reducing memory bandwidth using low quality tiles | |
WO2012142505A2 (en) | Pixel value compaction for graphics processing | |
KR102006584B1 (ko) | 레이트 심도 테스팅과 컨서버티브 심도 테스팅 간의 동적 스위칭 | |
US11508109B2 (en) | Methods and apparatus for machine learning rendering | |
US20190035049A1 (en) | Dithered variable rate shading | |
KR20170058113A (ko) | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법 | |
US20200380744A1 (en) | Variable Rasterization Rate | |
US11631212B2 (en) | Methods and apparatus for efficient multi-view rasterization | |
US20140168244A1 (en) | Color Buffer Caching | |
CN112740278B (zh) | 用于图形处理的方法及设备 | |
CN112991143A (zh) | 一种图元装配的方法、装置及计算机存储介质 | |
WO2023024660A1 (zh) | 一种图像增强的方法及装置 | |
WO2023051590A1 (zh) | 一种渲染格式选择方法及其相关设备 | |
WO2023196120A1 (en) | Variable rate tessellation | |
KR102645239B1 (ko) | Gpu 캐시를 활용한 다운스케일링을 위한 simo 접근 방식으로의 gpu 커널 최적화 | |
US11257277B2 (en) | Methods and apparatus to facilitate adaptive texture filtering | |
CN115705668A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 314200 1701-12, 1701-14, 1701-16, No. 1539, Chengnan Road, Jiaxing, Zhejiang Applicant after: JIAXING HIIKON SMART TECHNOLOGY CO., LTD. Address before: Room 201, No. 988, No. 988, Xinxing two road, Pinghu Economic Development Zone, Jiaxing, Zhejiang Applicant before: JIAXING HIIKON SMART TECHNOLOGY CO., LTD. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |