Etd

TINSL: Tinsl Is Not a Shading Language

Public

Downloadable Content

open in viewer

The fragment shader is a powerful, efficient tool for image processing. However, shaders are often unwieldy to use, even for simple post- processing operations. We have developed multiple systems in order to simplify the use of fragment shaders for image processing, and applied these systems across different domains, including live coding, creative coding and game development. Through this iterative process, it became clear that a custom domain-specific language (DSL) could simplify the authorship of a non-trivial rendering pipeline that involves multiple fragment shaders. As a result, we developed Tinsl (Tinsl Is Not a Shading Language) which is a DSL for specifying multipass render-to-texture (RTT) post-processing effects. This language uses the familiar syntax of GLSL, but adds semantics for specifying how to utilize temporary textures. This “shader metaprogramming system” enables live coders, creative coders and game developers to create complex post-processing effects that involve feedback and multipass blurs in a single file. We evaluate the effectiveness of this system using Petre and Greene’s cognitive dimensions framework to provide a qualitative analysis. We also perform a user study that gathers feedback from participants who were asked to follow a short tutorial on the language in a web-based creative coding environment. We released the software as a set of open-source libraries and programming environments.

Creator
Contributors
Degree
Publisher
Identifier
  • etd-23046
Keyword
Advisor
Defense date
Year
  • 2021
Date created
  • 2021-05-06
Resource type
Rights statement
Last modified
  • 2021-08-29

Relations

In Collection:

Items

Items

Permanent link to this page: https://digital.wpi.edu/show/rx913s769