个人是否可以创建着色器编程语言?
答案 0 :(得分:1)
SK-logic作为第一条评论就有答案。您可以构建一个自定义着色语言编译器,它使用自定义语言并将其“编译”为GLSL语言,或HLSL或其他任何内容。
这是一个现实的问题,因为现有的着色器方法可以创建着色器的组合爆炸,并且可以使着色器实现变得非常受限制且相互依赖。自定义着色器语言可以使这些依赖项自动化,例如,多层效果或细节级别控制。
您可以按照“希望”他们的工作方式使着色器工作。如果需要,它还会添加一个完美的可移植层,完全抽象底层着色器语言。
生成的着色器将转到驱动程序,该驱动程序将完成其余部分并编译GPU的本机代码。
制作编译器相当简单。您只需要一个(词法和解析器)解析器,从中构建一个抽象语法树,然后在树上进行一些传递以收集您需要预先知道的信息并执行一些简单的常量表达式优化,并将着色器生成为输出从语法树。我最近使用柠檬作为解析器生成器。