【技术实现步骤摘要】
基于对照表的HLSL着色器源码转换为GLSL着色器源码的方法
[0001]本专利技术属于计算机软件开发
,具体涉及一种基于对照表的HLSL着色器源码转换为GLSL着色器源码的方法。
技术介绍
[0002]HLSL(High Level Shading Language,高阶着色器语言)的顶点和像素着色器可通过交叉编译器转化为GLSL(Open Graphics Library Shading Language,开放图形库着色器语言),在国产软硬件平台下最新的DirectX程序无法直接运行需要转化成OpenGL程序,面对新近生成的越来越复杂的HLSL源码交叉编译器转化经常失败,所以需要简单通用的工具实现HLSL语言顶点和像素着色器向GLSL语言顶点和片段着色器的转换。通过改造交叉编译器的方式难以在多种架构的国产CPU和操作系统上实现。
技术实现思路
[0003]专利技术目的:本专利技术所要解决的技术问题是针对现有技术的不足,提供一种基于对照表的HLSL着色器源码转换为GLSL着色器源码的方法。
[0004]为了解决上述技术问题,本专利技术公开了一种基于对照表的HLSL着色器源码转换为GLSL着色器源码的方法,包括以下步骤:
[0005]步骤1,获取已有HLSL着色器源码和转换后的GLSL着色器源码,生成对照表;
[0006]步骤2,基于所述对照表,将HLSL着色器源码转换为GLSL着色器源码。
[0007]进一步地,步骤1中HLSL着色器源码包括Windows平台下 ...
【技术保护点】
【技术特征摘要】
1.一种基于对照表的HLSL着色器源码转换为GLSL着色器源码的方法,其特征在于,包括以下步骤:步骤1,获取已有HLSL着色器源码和转换后的GLSL着色器源码,生成对照表;步骤2,基于所述对照表,将HLSL着色器源码转换为GLSL着色器源码。2.根据权利要求1所述的一种基于对照表的HLSL着色器源码转换为GLSL着色器源码的方法,其特征在于,步骤1中HLSL着色器源码包括HLSL顶点和像素着色器源码,GLSL着色器源码包括GLSL顶点和片元着色器源码,步骤1包括:步骤1.1,通过交叉编译方式或人工转化方式获取已有HLSL顶点和像素着色器源码和转换后的GLSL顶点和片元着色器源码,形成数据集,将所述数据集划分为训练数据和检验数据;步骤1.2,对训练数据中的HLSL顶点和像素着色器源码,通过HLSL编译器将包括变量、数据类型、数据、注释、运算符和函数在内的基本项进行分离,生成对照表HLSL端;步骤1.3,对训练数据中的GLSL顶点和片元着色器源码,通过GLSL编译器将包括变量、数据类型、数据、注释、运算符和函数在内的基本项进行分离,生成对照表GLSL端;步骤1.4,将对照表HLSL端和对照表GLSL端进行对齐,若对照表中不存在对齐内容,则在对照表中写入HLSL和GLSL对齐项;步骤1.5,重复步骤1.2至步骤1.4,遍历训练数据中的HLSL顶点和像素着色器源码和对应转换后的GLSL顶点和片元着色器源码,获得写入HLSL和GLSL对齐项的对照表;步骤1.6,使用步骤1.5获得的对照表,将检验数据中的HLSL顶点和像素着色器源码转化为GLSL顶点和片元着色器源码,并与检验数据中的GLSL顶点和片元着色器源码进行比较,若仅存在命名差异,对照表满足要求,否则继续执行步骤1.1。3.根据权利要求2所述的一种基于对照表的HLSL着色器源码转换为GLSL着色器源码的方法,其特征在于,步骤1.2中的HLSL编译器和步骤1.3中的GLSL编译器均包括扫描器、词法分析器、语法分析器和语义分析器,所述扫描器,用于对着色器源码进行扫描,获得字符流所述词法分析器,用于对所述字符流通过有限自动机解析并识别词法记号;所述语法分析器,用于将词法记号采用自顶向下的分析,递归下降构建抽象语法树;所述语义分析器,用于检查所述语法树中变量和函数使用前是否定义,赋值时类型是否兼容,确保语法树的正确性,从而生成对照表HLSL端和对照表GLSL端。4.根据权利要求3所述的一种基于对照表的HLSL着色器源码转换为GLSL着色器源码的方法,其特征在于,步骤1.4中将对照表HLSL端和对照表GLSL端进行对齐包括按照注释、变量、数据类型、运算符和函数的对齐,其中,注释直接引用,不需要写入对照表中;变量包括自定义变量和内部变量,自定义变量直接引用,不需要写入对照表;内部变量包括HLSL和GLSL相同的内部变量和不相同的内部变量,均写入对照表;数据类型包括HLSL和GLSL相同的数据类型和不相同的数据类型,均写入对照表;运算符包括HLSL和GLSL相同的运算符和不相同的运算符,均写入对照表;函数包括HLSL和GLSL相同的函数、不相同的函数、需要重...
【专利技术属性】
技术研发人员:蒉露超,陈巍然,张一鸣,占伟伟,何建清,刘青峰,
申请(专利权)人:中国电子科技集团公司第二十八研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。