主要观点:FShade 是一个为 F# 扩展的用于着色器的领域特定语言库,提供高级工具处理一流着色器,包括组合、修改和预处理工具,专注于图形着色器且可编译 F# 函数到其他类似 C 的语言。
关键信息:
- 使用Aardvark.Base的原始向量/矩阵类型表示着色器语言对应物,可按需扩展使用其他类型。
- 用
Effect
表示着色器代码并分配到可用管道阶段,有顶点、细分控制、细分评估、几何、片段等阶段。 - 编译过程分模块、CModule、汇编器三个阶段,依次降低抽象级别,最终将效果编译为 GLSL 代码。
重要细节: - 示例展示了一个基本顶点着色器的实现及编译过程,包括从定义数据类型到编写着色器函数,再到转换为
Effect
、Module
、CModule
最后到 GLSL 代码。 Effect
有多种构造函数和成员,如ComposedOf
、FirstShader
等。Map
用于处理键值对,typeof
获取类型,ModuleCompiler
用于编译模块,GLSL
相关模块用于处理 GLSL 相关操作,assemble
将 CModule 转换为字符串(GLSL 代码)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。