Archive for the ‘ Shaders ’ Category

Rendering a Gravitational Wave

This post is about rendering a gravitational wave (which may or may not be an actual thing) using a marching cubes algorithm. If anyone is wondering what a gravitational wave is I point you to the Wikipedia article. It is defined as a curvature in space and time which propagates as a wave traveling outward from the source. Whoever discovers the existence of such waves will win a Nobel Prize in Physics. In this post I’ll describe the dataset and how I went about rendering such a wave. I’ll also talk about optimizing RenderMan, in this case PRMan 15.1, when drawing 3 million transparent triangles.

Continue reading


Rendering a Nebula

Today I’m going to write about making a nebula shader to make awesome looking galaxies and nebulae. This is part of my masters thesis which involves writing a Renderman pipeline for RIT’s visualization software called Spiegel. The data that is visualized comes from the Center for Computational Relativity and Gravitation. For this article, the data doesn’t actually have to be real astrophysical data, it can be made up and it will still look good. The article is concerned more with the aesthetics than accurate visualization of the data.
Continue reading

Fisheye Lens (Hyperbolic Lens) Vertex Shader in GLSL

Today I will write about my fisheye (hyperbolic) lens shader. It was part of a larger project to simulate a wide depth of field and imperfections in human eyesight. Anyway, I like the way it came out, so I will describe how I went about the process in GLSL. A fisheye lens allows an extremely wide field of view, nearly 180 degrees, but it also bends the light in order to fit it all on a square so you get an interesting effect where the edges become distorted and straight lines become curved. Since it’s just an approximation, and it works on vertices, the quality is limited to the amount of vertices on screen. Here are some pictures which describe how it works. (10,000 hours in ms paint)
Continue reading