[发明专利]GPU中一种纹理贴图的硬件加速实现方法有效
申请号: | 201810797836.7 | 申请日: | 2018-07-19 |
公开(公告)号: | CN109064535B | 公开(公告)日: | 2023-05-23 |
发明(设计)人: | 吴兴涛;石小刚;黄光新 | 申请(专利权)人: | 南京军微半导体科技有限公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00;G06T15/04 |
代理公司: | 合肥禾知知识产权代理事务所(特殊普通合伙) 34246 | 代理人: | 卢双双 |
地址: | 210000 江苏省南京市江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | gpu 一种 纹理 贴图 硬件加速 实现 方法 | ||
1.GPU中一种纹理贴图的硬件加速实现方法,其特征在于,
包括支持OpenGL2.1标准下的正常1D、2D纹理数据或者可视化的纹理图片的纹理贴图操作,
其具体步骤为:首先,用户将需要贴图的纹理数据写入到存储DDR中,同时将纹理数据的配置信息写入纹理配置单元TU_CFG中;当像素染色处理单元GCU需要进行1D、2D纹理贴图时,GCU通过纹理坐标S和纹理宽度W相乘获得请求纹理单元的纹理宽度U,纹理坐标T和纹理高度H相乘获得请求纹理单元的纹理高度V,然后纹理地址计算单元TU_ADDR再通过GCU请求的是哪一幅纹理中的哪一个细节层,从TU_CFG查找表中获得需要进行纹理贴图的纹理配置信息,通过U与每一个纹素在内存中占用字节数相乘后加上基地址后得到访问DDR的地址,最后再根据地址的偏移地址以及每一个纹素占用的大小,从而获得请求纹理cache的次数;当纹理cache返回纹理数据后,纹理数据计算单元TU_DATA通过纹素格式以及偏移地址和一个纹素占用的大小,得到正确的纹理数据,用于1D、2D纹理格式贴图操作。
2.根据权利要求1所述的GPU中一种纹理贴图的硬件加速实现方法,其特征在于,
还包括支持OpenGL2.1标准下的正常3D纹理数据或者可视化的纹理图片的纹理贴图操作,
其具体步骤为:相比1D、2D操作,3D纹理访问,多了一个维度为深度值信息,但在纹理配置单元中没有配置关于3D纹理数据的深度信息,所以在DDR中存在3D纹理数据时,将3D纹理按照深度值进行截取,按照平面信息存放DDR中;同时,GCU在请求3D纹理进行贴图操作时,首先请求UV分量,最后请求W分量,TU_ADDR单元获取UV以及W分量后,通过W分量以及纹理的宽度和高度相乘得到访问DDR的一个平面基地址,然后再同样按照1D、2D纹理地址计算方法得到访问DDR的偏移地址,最终加上平面基地址以及纹理配置单元中的基地址后,得到访问正常模式下3D纹理数据,用于3D纹理格式贴图操作。
3.根据权利要求1所述的GPU中一种纹理贴图的硬件加速实现方法,其特征在于,
还包括兼容S3TC压缩纹理格式下的解压缩操作,支持DXT1、DXT3、DXT5压缩算法;
其具体步骤为:解压缩算法中的TU_ADDR单元根据GCU请求的UV分量,再通过TU_CFG单元中的压缩图片的宽、高计算得到偏移地址,同时得到压缩块的行号,再加上TU_CFG中的基地址,得到访问DDR的地址,按照DXT1压缩算法,每得到一个访问纹理地址后,需要请求两次纹理cache,获得2个纹理数据,在TU_DATA单元中,根据行号大小,按照DXT1解压缩算法得到解压缩后的纹理数据,以进行正常的纹理贴图;同理,按照DXT3、DXT5压缩算法,TU_ADDR每得到一个访问纹理地址后,请求4次纹理cache,获得4个纹理数据后,在TU_DATA单元中,同样根据行号大小,按照DXT3、DXT5解压缩算法得到解压缩后的纹理数据,以进行正常的纹理贴图。
4.根据权利要求1所述的GPU中一种纹理贴图的硬件加速实现方法,其特征在于,还包括支持OpenGL2.1标准下的MipMap操作,
其中,CPU通过配置不同的纹理图以及不同的细节层来表示,GCU可以顺序地请求最多256个不同的纹理贴图操作,以支持纹理反走样。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京军微半导体科技有限公司,未经南京军微半导体科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810797836.7/1.html,转载请声明来源钻瓜专利网。