An Ada package for dimensional analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
A language for shading and lighting calculations
SIGGRAPH '90 Proceedings of the 17th annual conference on Computer graphics and interactive techniques
Fully static dimensional analysis with C++
ACM SIGPLAN Notices
Relational parametricity and units of measure
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Realistic modeling and rendering of plant ecosystems
Proceedings of the 25th annual conference on Computer graphics and interactive techniques
IEEE Software
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
Cg: a system for programming graphics hardware in a C-like language
ACM SIGGRAPH 2003 Papers
Physically Based Rendering: From Theory to Implementation
Physically Based Rendering: From Theory to Implementation
Beyond the C++ Standard Library
Beyond the C++ Standard Library
OpenGL(R) Shading Language (2nd Edition)
OpenGL(R) Shading Language (2nd Edition)
ACM SIGGRAPH 2006 Papers
F# for Scientists
Hi-index | 0.00 |
Historically, rendering system development has been mainly focused on improving the numerical accuracy of the rendering algorithms and their runtime efficiency. In this paper, we propose a method to improve the correctness not of the algorithms themselves, but of their implementation. Specifically, we show that by combining static type checking and generic programming, rendering system and shader development can take advantage of compile-time checking to perform dimensional analysis, i.e. to enforce the correctness of physical dimensions and units in light transport, and geometric space analysis, i.e. to ensure that geometric computations respect the spaces in which points, vectors and normals were defined. We demonstrate our methods by implementing a CPU path tracer and a GPU renderer which previews direct illumination. While we build on prior work to develop our implementations, the main contribution of our work is to show that dimensional analysis and geometric space checking can be successfully integrated into the development of rendering systems and shaders.