【技术实现步骤摘要】
一种纹理图像绑定方法、装置及可读存储介质
本专利技术涉及电子
,尤其涉及一种纹理图像绑定方法、装置及可读存储介质。
技术介绍
Direct3D(简称:D3D)是微软公司在MicrosoftWindows操作系统上所开发的一套3D绘图编程接口。在Direct3D中的Direct3D11中,为了显示一张图像,必须以ID3D11Texture2D的方式显示,并且在Direct3D11中,除了编写C++代码之外,还必须为显示该纹理编写一个高阶着色器语言HLSL(HighLevelShaderLanguage)的着色器脚本。在该脚本中,利用一个Texture2D类型的纹理与C++代码中的ID3D11Texture2D纹理相对应。C++代码中,通过相关的函数,将一个纹理设定到指定的纹理寄存器中,然后在HLSL着色器脚本中,对该纹理进行相关的处理,最终显示在计算机程序中。在Direct3D11中,通常是调设备上下文接口ID3D11DeviceContext的设置着色器资源方法PSSetShaderResources,将纹理视图设定到纹理寄存器中。当在HLSL脚本中,只使用 ...
【技术保护点】
1.一种纹理图像绑定方法,应用于Direct3D11软件平台,其特征在于,包括:确定基于高阶着色器语言HLSL的着色器脚本中的Texture2D类型的第一纹理,获取所述第一纹理的名称,基于纹理名称与寄存器索引间的对应关系,确定所述第一纹理对应的第一寄存器索引;基于面向对象程序设计语言C++,创建与所述第一纹理对应的ID3D11Texture2D类型的第二纹理,创建所述第二纹理对应的纹理视图;基于所述第一纹理的寄存器索引与所述纹理视图,绑定所述第一纹理与所述第二纹理。
【技术特征摘要】
1.一种纹理图像绑定方法,应用于Direct3D11软件平台,其特征在于,包括:确定基于高阶着色器语言HLSL的着色器脚本中的Texture2D类型的第一纹理,获取所述第一纹理的名称,基于纹理名称与寄存器索引间的对应关系,确定所述第一纹理对应的第一寄存器索引;基于面向对象程序设计语言C++,创建与所述第一纹理对应的ID3D11Texture2D类型的第二纹理,创建所述第二纹理对应的纹理视图;基于所述第一纹理的寄存器索引与所述纹理视图,绑定所述第一纹理与所述第二纹理。2.如权利要求1所述的方法,其特征在于,所述基于纹理名称与寄存器索引间的对应关系,确定所述第一纹理对应的第一寄存器索引,包括:基于所述第一名称,调用索引获取方法,从纹理索引数据库中确定与所述第一名称对应的第一寄存器索引。3.如权利要求2所述的方法,其特征在于,在所述基于纹理名称与寄存器索引间的对应关系,确定所述第一纹理对应的第一寄存器索引之前,所述方法还包括:调用所述Direct3D11软件平台的编译方法,对所述着色器脚本进行编译,获得ID3DBlob类型的第一接口,所述第一接口中保存有编译后的所述着色器脚本的字节码;调用所述第一接口的获取指定缓冲区内容方法,获得所述字节码,以及调用所述第一接口的获取指定缓冲区大小方法,获得所述字节码的字节长度;基于所述字节码与所述字节长度,调用所述Direct3D11软件平台的返回方法,获得ID3D11ShaderReflection类型的第二接口,调用所述第二接口的获取描述信息方法,获得D3D11_SHADER_DESC类型的第一结构;针对所第一结构中的BoundResources成员,循环调用所述第二接口的获得资源集合描述信息方法,获得D3D11_SHADER_INPUT_BIND_DESC类型的第二结构,在确定所述第二结构描述的是基于HLSL的脚本纹理时,确定所述第二结构的Name成员为Texture2D类型的纹理的名称,以及确定所述第二结构的BindPoint成员为与所述Texture2D类型的纹理对应的在所述着色器脚本中所使用的寄存器索引,将所述第二结构对应的Name成员和BindPoint成员以键值对的形式保存到所述纹理索引数据库中。4.如权利要求2所述的方法,其特征在于,所述基于所述第一纹理的寄存器索引与所述纹理视图,绑定所述第一纹理与所述第二纹理,包括:基于所述第一纹理的寄存器索引与所述纹理视图,调用着色器资源设置方法,绑定所述第一纹理与所述第二纹理。5.一种纹理图像绑定装置,应用于Direct3D11软件平台,其特征在于,包括:确定单元,用于确定基于高阶着色器语言HLSL的着色器脚本中的Texture...
【专利技术属性】
技术研发人员:杨亮,陈少杰,张文明,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。