一种基于三维多纹理贴图方法技术

技术编号:12309504 阅读:67 留言:0更新日期:2015-11-11 18:18
本发明专利技术公开了一种基于三维多纹理贴图方法,涉及三维模型纹理贴图技术领域。该方法:自定义一种顶点数据结构;在顶点数据结构的基础上,构造地形网格的顶点数据;将作为纹理对象的图片导入到三维引擎中并存储内存中;分析三维引擎传给GPU的地形网格的顶点数据的结构,在内存中选择与所述纹理图片索引相对应的纹理对象;计算相应的像素颜色,输出像素颜色;将地形网格顶点数据、纹理对象和输出像素颜色传送到GPU进行渲染。本发明专利技术解决了如何用shader技术解决同一组顶点数据使用不同纹理图片的问题,代码简单、工作效率高。

【技术实现步骤摘要】

本专利技术涉及三维模型纹理贴图
,尤其涉及。
技术介绍
通常所说的多重纹理混合(Texture Blending)指的是将多张纹理图使用相应的混合算法来渲染一个像素,具体是将不同纹理图片混合叠加生成新的纹理的过程。本申请中的多纹理贴图指的是一组三角形顶点在不同区域贴不同图片、不同像素使用不同图片、而非纹理叠加的贴图。例如一张地质构造图,有的地方是白云质灰岩,有的地方是长石石英砂岩。而这种地形数据是一组三角形顶点,在渲染时,根据地质属性,动态的选择不同的地质图例图片来进行贴图。现有常用shader技术进行多纹理贴图,但是存在代码繁琐且效率低的问题。
技术实现思路
本专利技术的目的在于提供,从而解决现有技术中存在的前述问题。为了实现上述目的,本专利技术所述基于三维多纹理贴图方法,该方法包括:SI,在三维引擎中自定义一种顶点数据结构,所述顶点数据结构包括每个顶点对应的纹理图片索引和纹理坐标;S2,在所述顶点数据结构的基础上,构造地形网格的顶点数据;S3,将作为纹理对象的图片导入到三维引擎中并存储内存中;S4,分析三维引擎传给GPU的地形网格的顶点数据的结构,然后根据地形网格顶点数据结构中的纹理图片索引,在内存中选择与所述纹理图片索引相对应的纹理对象;再根据所述地形网格顶点数据结构中的纹理坐标计算相应的像素颜色,输出像素颜色;S5,地形网格顶点数据、纹理对象和输出像素颜色传送到GPU进行渲染。优选地,所述顶点数据结构还包括:顶点位置、顶点法线、顶点颜色。优选地,步骤S3,具体方法:将图片导入到三维引擎中,然后三维引擎将接收到图片转换成三维引擎可读的内存数据存储到内存中。优选地,在步骤S4中,三维引擎内置计算函数,对纹理坐标计算输出所述纹理坐标出的像素颜色。优选地,在步骤S5中,三维引擎提供调用GPU的内置函数,将地形网格顶点数据、纹理对象和输出像素颜色进行渲染。优选地,所述基于三维多纹理贴图方法基于C#+DIRECTX9.0+HLSL实现。优选地,所述三维引擎包括OPENGL引擎和DIRECTX三维引擎。本专利技术的有益效果是:本专利技术解决了如何用shader技术解决同一组顶点数据使用不同纹理图片的问题,本专利技术所用代码简单、工作效率高。【附图说明】图1是本专利技术所述基于三维多纹理贴图方法的流程示意图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进行进一步详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本专利技术,并不用于限定本专利技术。本申请所述基于三维多纹理贴图方法,该方法包括:SI,在三维引擎中自定义一种顶点数据结构,所述顶点数据结构包括每个顶点对应的纹理图片索引和纹理坐标;所述顶点数据结构还包括:顶点位置、顶点法线、顶点颜色。S2,在所述顶点数据结构的基础上,构造地形网格的顶点数据;S3,将作为纹理对象的图片导入到三维引擎中并存储内存中;S4,分析三维引擎传给GPU的地形网格的顶点数据的结构,然后根据地形网格顶点数据结构中的纹理图片索引,在内存中选择与所述纹理图片索引相对应的纹理对象;再根据所述地形网格顶点数据结构中的纹理坐标计算相应的像素颜色,输出像素颜色;S5,地形网格顶点数据、纹理对象和输出像素颜色传送到GPU进行渲染。步骤S3,具体方法:将图片导入到三维引擎中,然后三维引擎将接收到图片转换成三维弓I擎可读的内存数据存储到内存中。步骤S4中,三维引擎内置计算函数,对纹理坐标计算输出所述纹理坐标出的像素颜色。步骤S5中,三维引擎提供调用GPU的内置函数,将地形网格顶点数据、纹理对象和输出像素颜色进行渲染。本申请所述基于三维多纹理贴图方法基于C#+DIRECTX9.0+HLSL实现。所述三维引擎包括OPENGL引擎和DIRECTX三维引擎。本技术所指的多纹理贴图指的是一组三角形顶点在不同区域贴不同图片,不同像素使用不同图片,而非纹理叠加。例如显示的一张地质构造图,有的地方是白云质灰岩,有的地方是长石石英砂岩。而这种地形数据是一组三角形顶点,在渲染时,根据地质属性动态的选择不同的地质图例图片来进行贴图。通过采用本专利技术公开的上述技术方案,得到了如下有益的效果:本专利技术解决了如何用shader技术解决同一组顶点数据使用不同纹理图片的问题,代码简单、高效。以上所述仅是本专利技术的优选实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本专利技术的保护范围。【主权项】1.,其特征在于,该方法包括: SI,在三维引擎中自定义一种顶点数据结构,所述顶点数据结构包括每个顶点对应的纹理图片索引和纹理坐标; S2,在所述顶点数据结构的基础上,构造地形网格的顶点数据; S3,将作为纹理对象的图片导入到三维引擎中并存储内存中; S4,分析三维引擎传给GPU的地形网格的顶点数据的结构,然后根据地形网格顶点数据结构中的纹理图片索引,在内存中选择与所述纹理图片索引相对应的纹理对象;再根据所述地形网格顶点数据结构中的纹理坐标计算相应的像素颜色,输出像素颜色; S5,地形网格顶点数据、纹理对象和输出像素颜色传送到GPU进行渲染。2.根据权利要求1所述方法,其特征在于,所述顶点数据结构还包括:顶点位置、顶点法线、顶点颜色。3.根据权利要求1所述方法,其特征在于,步骤S3,具体方法:将图片导入到三维引擎中,然后三维引擎将接收到图片转换成三维引擎可读的内存数据存储到内存中。4.根据权利要求1所述方法,其特征在于,在步骤S4中,三维引擎内置计算函数,对纹理坐标计算输出所述纹理坐标出的像素颜色。5.根据权利要求1所述方法,其特征在于,在步骤S5中,三维引擎提供调用GPU的内置函数,将地形网格顶点数据、纹理对象和输出像素颜色进行渲染。6.根据权利要求1所述方法,其特征在于,所述基于三维多纹理贴图方法基于C#+DIRECTX9.0+HLSL 实现。7.根据权利要求1所述方法,其特征在于,所述三维引擎包括OPENGL引擎和DIRECTX三维引擎。【专利摘要】本专利技术公开了,涉及三维模型纹理贴图
该方法:自定义一种顶点数据结构;在顶点数据结构的基础上,构造地形网格的顶点数据;将作为纹理对象的图片导入到三维引擎中并存储内存中;分析三维引擎传给GPU的地形网格的顶点数据的结构,在内存中选择与所述纹理图片索引相对应的纹理对象;计算相应的像素颜色,输出像素颜色;将地形网格顶点数据、纹理对象和输出像素颜色传送到GPU进行渲染。本专利技术解决了如何用shader技术解决同一组顶点数据使用不同纹理图片的问题,代码简单、工作效率高。【IPC分类】G06T15/00【公开号】CN105046733【申请号】CN201510529133【专利技术人】李生龙 【申请人】克拉玛依红有软件有限责任公司【公开日】2015年11月11日【申请日】2015年8月25日本文档来自技高网
...

【技术保护点】
一种基于三维多纹理贴图方法,其特征在于,该方法包括:S1,在三维引擎中自定义一种顶点数据结构,所述顶点数据结构包括每个顶点对应的纹理图片索引和纹理坐标;S2,在所述顶点数据结构的基础上,构造地形网格的顶点数据;S3,将作为纹理对象的图片导入到三维引擎中并存储内存中;S4,分析三维引擎传给GPU的地形网格的顶点数据的结构,然后根据地形网格顶点数据结构中的纹理图片索引,在内存中选择与所述纹理图片索引相对应的纹理对象;再根据所述地形网格顶点数据结构中的纹理坐标计算相应的像素颜色,输出像素颜色;S5,地形网格顶点数据、纹理对象和输出像素颜色传送到GPU进行渲染。

【技术特征摘要】

【专利技术属性】
技术研发人员:李生龙
申请(专利权)人:克拉玛依红有软件有限责任公司
类型:发明
国别省市:新疆;65

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1