我知道一些关于GLSL的工作原理,但是Open Shader Language(OSL)对我来说是新的。
据我所知,OSL被用作电影级CG渲染器的着色器语言,并旨在成为先锋Renderman软件套件中等效语言(RSL)的竞争对手。
就我所理解的而言,OSL像GLSL一样是一种简洁的基于C的DSL,具有许多原始值和BIF,专门编写以处理计算机图形基元(如表面、像素、顶点等)上的操作。
但是乍一看,似乎存在许多差异。OSL似乎比GLSL更容易阅读,因为命名函数似乎是OSL的一个重要功能。
另一个观察结果是,在GLSL中,着色器仅在绘制顶点(顶点着色器)和场景光栅化时(片段/像素着色器)应用。然而,OSL似乎允许随时调用着色器程序。
可能还有许多其他差异(在OSL中似乎没有对“统一变量”的参考,但在OSL程序中是否需要它们?),但我真正想知道的是两种语言的范围之间的博学比较,并解释可能在任一语言中实际共享的内容(如果有的话)。
我在网上搜索了一些信息,但两种语言范围之间的明确比较似乎很难找到。
感谢您的指导。
据我所知,OSL被用作电影级CG渲染器的着色器语言,并旨在成为先锋Renderman软件套件中等效语言(RSL)的竞争对手。
就我所理解的而言,OSL像GLSL一样是一种简洁的基于C的DSL,具有许多原始值和BIF,专门编写以处理计算机图形基元(如表面、像素、顶点等)上的操作。
但是乍一看,似乎存在许多差异。OSL似乎比GLSL更容易阅读,因为命名函数似乎是OSL的一个重要功能。
另一个观察结果是,在GLSL中,着色器仅在绘制顶点(顶点着色器)和场景光栅化时(片段/像素着色器)应用。然而,OSL似乎允许随时调用着色器程序。
可能还有许多其他差异(在OSL中似乎没有对“统一变量”的参考,但在OSL程序中是否需要它们?),但我真正想知道的是两种语言的范围之间的博学比较,并解释可能在任一语言中实际共享的内容(如果有的话)。
我在网上搜索了一些信息,但两种语言范围之间的明确比较似乎很难找到。
感谢您的指导。