...
首页> 外文期刊>ACM Transactions on Graphics >Slang: language mechanisms for extensible real-time shading systems
【24h】

Slang: language mechanisms for extensible real-time shading systems

机译:lang语:可扩展实时着色系统的语言机制

获取原文
获取原文并翻译 | 示例
   

获取外文期刊封面封底 >>

       

摘要

Designers of real-time rendering engines must balance the conflicting goals of maintaining clear, extensible shading systems and achieving high rendering performance. In response, engine architects have established effective design patterns for authoring shading systems, and developed engine-specific code synthesis tools, ranging from preprocessor hacking to domain-specific shading languages, to productively implement these patterns. The problem is that proprietary tools add significant complexity to modern engines, lack advanced language features, and create additional challenges for learning and adoption. We argue that the advantages of engine-specific code generation tools can be achieved using the underlying GPU shading language directly, provided the shading language is extended with a small number of best-practice principles from modern, well-established programming languages. We identify that adding generics with interface constraints, associated types, and interface/structure extensions to existing C-like GPU shading languages enables real-time renderer developers to build shading systems that are extensible, maintainable, and execute efficiently on modern GPUs without the need for additional domain-specific tools. We embody these ideas in an extension of HLSL called Slang, and provide a reference design for a large, extensible shader library implemented using Slang's features. We rearchitect an open source renderer to use this library and Slang's compiler services, and demonstrate the resulting shading system is substantially simpler, easier to extend with new features, and achieves higher rendering performance than the original HLSL-based implementation.
机译:实时渲染引擎的设计者必须在维护清晰,可扩展的着色系统和实现高渲染性能这两个相互矛盾的目标之间取得平衡。作为响应,引擎架构师已经建立了有效的设计底纹系统的设计模式,并开发了引擎特定的代码合成工具,从预处理器黑客攻击到特定领域的底纹语言,以有效地实现了这些模式。问题在于,专有工具给现代引擎带来了极大的复杂性,缺乏高级语言功能,并给学习和采用带来了更多挑战。我们认为,只要使用现代公认的编程语言中的少量最佳实践原则扩展了着色语言,即可直接使用基础GPU着色语言来实现特定于引擎的代码生成工具的优势。我们发现,将具有接口约束,关联类型以及接口/结构扩展的泛型添加到现有的类似C的GPU着色语言中,可使实时渲染器开发人员构建可扩展,可维护并在现代GPU上高效执行的着色系统,而无需用于其他特定于域的工具。我们将这些想法体现在HLSL的扩展Slang中,并为使用Slang功能实现的大型可扩展着色器库提供参考设计。我们重新设计了一个开放源代码渲染器,以使用此库和Slang的编译器服务,并演示了所得的着色系统比起基于HLSL的原始实现而言,实质上更简单,更易于扩展,并具有更高的渲染性能。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号