CN108510572B - 一种松散圆锥步进贴图预处理优化方法 - Google Patents
一种松散圆锥步进贴图预处理优化方法 Download PDFInfo
- Publication number
- CN108510572B CN108510572B CN201810184896.1A CN201810184896A CN108510572B CN 108510572 B CN108510572 B CN 108510572B CN 201810184896 A CN201810184896 A CN 201810184896A CN 108510572 B CN108510572 B CN 108510572B
- Authority
- CN
- China
- Prior art keywords
- distance
- texel
- value
- tan value
- result
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
一种松散圆锥步进贴图预处理优化方法,包括以下步骤:对贴图进行分块,建立分块列表;将分块的起始UV偏移按序传入像素着色器中,使用for循环遍历分块纹素;检查UV偏移绝对值;确定当前纹素的tan值,并存入结果中。本发明提供的松散圆锥步进贴图预处理优化方法,可以在保证结果与原工具一致的前提下,极大的减少需要进行的计算量,有效的减少松散圆锥步进贴图的预计算时间,从而使松散圆锥步进贴图可以用于实际生产环境中。
Description
技术领域
本发明涉及图像处理技术领域,特别是涉及一种松散圆锥步进贴图预处理优化方法。
背景技术
游戏业内常用的增加模型表面细节的方法为法线贴图。法线贴图通过预计算表面的法线信息来增加表面的明暗区别,从而达到了增加细节的目的。但是法线贴图没有考虑表面的遮挡关系,还原出来的凹凸效果与真实的凹凸表面有较大差异,特别是当视角与表面的夹角比较小的时候。浮雕映射(relief mapping)有效的解决了法线贴图的缺点。浮雕映射是在高度图上进行光线追踪,从而实现了表面的遮挡关系。但是浮雕映射由于没有单个高度数据的有效遮挡数据,光线追踪时需要步进的次数较多,运行期效率较低。松散圆锥步进贴图有效的解决浮雕映射的效率问题。松散圆锥步进贴图通过预计算单个高度数据的遮挡范围,在运行时使用该数据进行加速,可以有效减少需要步进的次数。但是松散圆锥步进贴图需要预计算每一个高度数据的圆锥范围,其计算量非常大,1024*1024的高度数据,使用松散圆锥步进贴图原工具进行预计算需要超过30分钟,且随着贴图的增大,计算时间成指数增长。松散圆锥步进贴图的预计算时间过长,导致其几乎不可能用于实际生产环境中。原工具在进行松散圆锥步进贴图预计算时,需要将每一个纹素与贴图的所有其他纹素进行检查,并在两个纹素之间进行128次步进,计算符合要求时的tan值。tan值的计算方法为使用满足条件时的UV 的距离除以深度得到tan值,最大不超过1.0。每一个纹素与贴图上所有的纹素进行检查以后确定一个最小的tan值,从而确定了一个安全的可步进圆锥。以1024*1024的贴图为例,需要进行(1024^4)*128=140737488355328次检查与计算,所需要的计算量是极其庞大的。原工具使用GPU进行预计算,每次Draw Call时,让所有纹素与指定偏移的纹素进行检查,总共需要1024*1024次Draw Call。因此,目前亟需要一种加速松散圆锥步进贴图预计算的优化方法。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种松散圆锥步进贴图预处理优化方法,能够减少步进的次数,提高计算速度。
为实现上述目的,本发明提供的松散圆锥步进贴图预处理优化方法,包括以下步骤:
对贴图进行分块,建立分块列表;
将分块的起始UV偏移按序传入像素着色器中,使用for循环遍历分块纹素;
检查UV偏移绝对值;
确定当前纹素的tan值,并存入结果中。
进一步地,所述对贴图进行分块,建立分块列表的步骤,是将贴图按照16×16建立分块,使用环绕的方式对分块进行排列,建立分块列表。
进一步地,所述建立分块列表的步骤,是使用撞墙拐弯的方式生成分块列表。
进一步地,所述使用for循环遍历分块纹素,是将传入的UV偏移作为相对于本像素的偏移进行寻址。
进一步地,所述检查UV偏移绝对值的步骤,进一步包括:
在像素着色器中,首先采样出上一次Draw Call得到的tan值,然后乘以深度得到上一次结果的UV的距离;
计算目标纹素与当前纹素的UV距离,并比对与上一次结果的UV的距离;
如果目标纹素与当前纹素的UV距离大于上一次结果的UV的距离,则不进行tan值的计算;
如果目标纹素与当前纹素的UV距离小于上一次结果的UV的距离,则计算tan值,并与由其他纹素计算出来的tan值进行比较,取较小值。
更进一步地,所述确定当前纹素的tan值,并存入结果中的步骤,进一步包括:如果计算出来的当前纹素的tan值大于上一次结果的tan值,则将上一次的tan值存入结果中。
本发明提供的松散圆锥步进贴图预处理优化方法,可以在保证结果与原工具一致的前提下,极大的减少需要进行的计算量,有效的减少松散圆锥步进贴图的预计算时间,从而使松散圆锥步进贴图可以用于实际生产环境中。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的松散圆锥步进贴图预处理优化方法的流程图;
图2为根据本发明的松散圆锥步进贴图预处理优化方法的分块列表排列示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的松散圆锥步进贴图预处理优化方法的流程图,下面将参考图1,对本发明的松散圆锥步进贴图预处理优化方法进行详细描述。
首先,在步骤101,建立16*16的分块列表,并将64*64个分块按序排列。图2为根据本发明的松散圆锥步进贴图预处理优化方法的分块列表排列示意图,如图2所示,建立16*16的分块列表,该分块列表使用环绕的方式排列(可以使用撞墙拐弯的方式来生成该分块列表)。分块的目的是为了减少DrawCall的次数,经过分块以后,只需要64*64次DrawCall。
在步骤102,将分块的起始UV偏移,按序传入像素着色器中,使用for循环一次性遍历16*16个纹素。在该步骤中,在像素着色器,需要将传入的UV偏移作为相对于本像素的偏移来寻址。
在步骤103,检查UV偏移绝对值。在该步骤中,检查目标纹素与当前纹素的UV偏移绝对值是否大于上一次结果的UV的距离。在像素着色器中,首先采样出上一次Draw Call得到的tan值,然后乘以深度得到上一次结果的UV的距离;然后,计算目标纹素与当前纹素的UV距离,并比对与上一次结果的UV的距离;如果目标纹素与当前纹素的UV距离大于上一次结果的UV的距离,则不进行tan值的计算;
如果目标纹素与当前纹素的UV距离小于上一次结果的UV的距离,则计算tan值,并与由其他纹素计算出来的tan值进行比较,取较小值。
在步骤104,确定当前纹素的tan值,并存入结果中。在该步骤中,如果计算出来的当前纹素的tan值大于上一次结果的tan值,则将上一次的tan值存入结果中。
经过本发明上述步骤,可以在保证结果与松散圆锥步进贴图原工具一致的前提下,极大的减少需要进行的计算量。1024*1024的高度数据,使用松散圆锥步进贴图原工具进行预计算需要超过30分钟,而使用本发明提供的方法,只需要不超过3分钟即可预计算完毕,速度比原工具提升了一个量级以上。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种松散圆锥步进贴图预处理优化方法,其特征在于,包括以下步骤:
对贴图进行分块,建立分块列表;
将分块的起始UV偏移按序传入像素着色器中,使用for循环遍历分块纹素;
检查UV偏移绝对值;
确定当前纹素的tan值,并存入结果中;
所述检查UV偏移绝对值的步骤,进一步包括:
在像素着色器中,首先采样出上一次Draw Call得到的tan值,然后乘以深度得到上一次结果的UV的距离;
计算目标纹素与当前纹素的UV距离,并比对与上一次结果的UV的距离;
如果目标纹素与当前纹素的UV距离大于上一次结果的UV的距离,则不进行tan值的计算;
如果目标纹素与当前纹素的UV距离小于上一次结果的UV的距离,则计算tan值,并与由其他纹素计算出来的tan值进行比较,取较小值。
2.根据权利要求1所述的松散圆锥步进贴图预处理优化方法,其特征在于,所述对贴图进行分块,建立分块列表的步骤,是将贴图按照16×16建立分块,使用环绕的方式对分块进行排列,建立分块列表。
3.根据权利要求1所述的松散圆锥步进贴图预处理优化方法,其特征在于,所述建立分块列表的步骤,是使用撞墙拐弯的方式生成分块列表。
4.根据权利要求2所述的松散圆锥步进贴图预处理优化方法,其特征在于,所述使用for循环遍历分块纹素,是将传入的UV偏移作为相对于本像素的偏移进行寻址。
5.根据权利要求1所述的松散圆锥步进贴图预处理优化方法,其特征在于,所述确定当前纹素的tan值,并存入结果中的步骤,进一步包括:如果计算出来的当前纹素的tan值大于上一次结果的tan值,则将上一次的tan值存入结果中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810184896.1A CN108510572B (zh) | 2018-03-07 | 2018-03-07 | 一种松散圆锥步进贴图预处理优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810184896.1A CN108510572B (zh) | 2018-03-07 | 2018-03-07 | 一种松散圆锥步进贴图预处理优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108510572A CN108510572A (zh) | 2018-09-07 |
CN108510572B true CN108510572B (zh) | 2022-06-17 |
Family
ID=63376262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810184896.1A Active CN108510572B (zh) | 2018-03-07 | 2018-03-07 | 一种松散圆锥步进贴图预处理优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108510572B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107358643A (zh) * | 2017-07-04 | 2017-11-17 | 网易(杭州)网络有限公司 | 图像处理方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9013499B2 (en) * | 2007-07-19 | 2015-04-21 | Disney Enterprises, Inc. | Methods and apparatus for multiple texture map storage and filtering including irregular texture maps |
US8810590B2 (en) * | 2008-07-11 | 2014-08-19 | Advanced Micro Devices, Inc. | Method and apparatus for spatial binning on a GPU and global path planning to avoid spatially binned objects |
US10068307B2 (en) * | 2016-05-20 | 2018-09-04 | Intel Corporation | Command processing for graphics tile-based rendering |
-
2018
- 2018-03-07 CN CN201810184896.1A patent/CN108510572B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107358643A (zh) * | 2017-07-04 | 2017-11-17 | 网易(杭州)网络有限公司 | 图像处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
《Fur Shading and Modification based on Cone Step Mapping》;Kuhnert, T等;《COMPUTER GRAPHICS FORUM 》;20120930;第2011-2018页 * |
《基于改进三层缓冲技术的大图片处理》;冯伟桓等;《计算机工程与科学》;20180131;第116-120页 * |
《面向图像转置和分块处理的一种高效内存访问策略》;沈煌辉等;《计算机研究与发展》;20130131;第188-196页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108510572A (zh) | 2018-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7864174B2 (en) | Methods and systems for reducing the number of rays passed between processing elements in a distributed ray tracing system | |
CN110368694B (zh) | 游戏场景的数据处理方法、装置、设备及可读存储介质 | |
US8085267B2 (en) | Stochastic addition of rays in a ray tracing image processing system | |
CN110990516B (zh) | 地图数据的处理方法、装置和服务器 | |
US7688320B2 (en) | Methods and systems for texture prefetching based on a most recently hit primitive algorithm | |
US8259130B2 (en) | Color buffer contrast threshold for adaptive anti-aliasing | |
US20130106882A1 (en) | Methods, systems, and data structures for generating a rasterizer | |
CN111311723A (zh) | 像素点识别及光照渲染方法、装置、电子设备和存储介质 | |
CN110136082A (zh) | 遮挡剔除方法、装置及计算机设备 | |
CN113906384A8 (zh) | 人工神经网络(ann)应用程序中的存储器即服务 | |
KR101281157B1 (ko) | 레이 트레이싱 코어 및 레이 트레이싱 처리 방법 | |
CN103778900A (zh) | 一种图像处理方法及系统 | |
CN108305228A (zh) | 图像处理方法、装置、存储介质及处理器 | |
CN103970879B (zh) | 一种调整数据块存储位置的方法及系统 | |
CN102420771B (zh) | 高速网络环境中提高tcp并发连接速度的方法 | |
CN105631939B (zh) | 一种基于曲率滤波的三维点云畸变校正方法及其系统 | |
CN108510572B (zh) | 一种松散圆锥步进贴图预处理优化方法 | |
US20140347355A1 (en) | Ray tracing core and method for processing ray tracing | |
US10580198B2 (en) | System and method for optimized sparse volume rendering | |
US8259131B2 (en) | Adaptive sub-sampling for reduction in issued rays | |
CN111445567B (zh) | 动态物体的烘焙方法、装置、计算机设备和存储介质 | |
CN109558817B (zh) | 一种基于fpga加速的机场跑道检测方法 | |
CN109327472B (zh) | 动态规划防火墙策略插入方法、系统、终端及存储介质 | |
CN108280887B (zh) | 一种阴影图确定方法及装置 | |
Wang et al. | GEARS: A general and efficient algorithm for rendering shadows |
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 |