<p>Several other rendering paradigms exist aside from conventional rasterization of triangles using vertex and fragment shaders.</p>

<ul>
<li><a href="https://en.wikipedia.org/wiki/Ray_tracing_(graphics)" rel="nofollow noreferrer">Ray tracing</a> works by intersecting light rays with surfaces (triangle meshes, or more general surfaces: anything that can be tested for intersection) and then firing additional rays to gather information about lighting, shadows, reflections, etc at the intersection point. Path tracing and photon mapping are refinements of this concept.</li>
<li><a href="https://en.wikipedia.org/wiki/Reyes_rendering" rel="nofollow noreferrer">REYES rendering</a> subdivides all primitives into micropolygons the size of a single pixel or smaller, calculates lighting and shading per micropolygon vertex, then uses a specialized rasterizing algorithm to render the micropolygons in screen space with motion blur and depth of field.</li>
<li><a href="http://iquilezles.org/www/articles/raymarchingdf/raymarchingdf.htm" rel="nofollow noreferrer">Distance field ray-marching</a> (also called <a href="https://computergraphics.stackexchange.com/questions/161/what-is-ray-marching-is-sphere-tracing-the-same-thing">sphere tracing</a>) represents all primitives in terms of distance fields: 3D functions and/or volumetric textures that give the distance from any given point to the nearest surface in any direction. The distance field is used to step adaptively along a ray until it hits a surface, and can also be used for lighting effects such as ambient occlusion.</li>
</ul>

<p>However, all rendering algorithms use linear transformation matrices. That's not part of the "paradigm" so much as it's the basic machinery for manipulating objects, the camera, etc in 3D space. It would be hard to do anything interesting without it.</p>

CC BY-SA 3.0
2016-08-28T06:55:39.897Z
Well you could live without the matrices but it would be hideously complex and wasteful. Many people who did not understand matrices attempt this regularily in stackoverflow but either end up reimplementing matrices without knowing it or ending with huge problems.
joojaa
CC BY-SA 3.0
2016-08-28T18:49:26.360Z
I heard of an alternative algebra before that does not use linear transformations, but some other theory. I can't remember what it is or any of the keywords so I don't know what to search for, so I am hoping someone might mention it here. The things you mentioned all seem to build on top of linear algebra, but I believe there are other techniques to build from.
trusktr
CC BY-SA 3.0
2016-08-28T19:03:25.800Z
@tru There are additional algebras such as [geometric algebra](https://en.wikipedia.org/wiki/Geometric_algebra) that supplement linear algebra with additional concepts, but I'm not aware of anything that _replaces_ linear algebra and fulfills the same purposes.
Nathan Reed
CC BY-SA 3.0
2016-08-28T20:01:05.637Z
@NathanReed Thanks for the link! That might possibly be what it was. I really dislike all that symbolic mathematical jargon though. I'd much love to see it expressed with code, so I'll search for that. Thanks!
trusktr
CC BY-SA 3.0
2016-08-29T02:49:51.747Z
Monte carlo / Path tracing should be added to your list. Great list btw.
PaulHK
CC BY-SA 3.0
2016-08-29T03:17:59.397Z
@PaulHK I mentioned that under raytracing
Nathan Reed
CC BY-SA 3.0
2016-08-29T03:29:29.080Z
So you did, more coffee needed.
PaulHK
CC BY-SA 3.0
2016-08-28T06:32:28.993Z
2016-08-28T06:32:28.993Z
2017-04-13T13:00:43.660Z
Nathan Reed
<p>I am familiar with the basic concepts of writing vector and fragment shaders while using linear transformation matrices to describe orientations in 3D space.</p>

<p>But, what other paradigms exist (theoretical or not)?</p>

<3d>
What other paradigms exist besides vector/fragment/transform graphics programming?
trusktr
# What other paradigms exist besides vector/fragment/transform graphics programming?

(Asked by: username_0 on 2016-08-28)

I am familiar with the basic concepts of writing vector and fragment shaders while using linear transformation matrices to describe orientations in 3D space.

But, what other paradigms exist (theoretical or not)?

**Tags:** 3d


---

## 1 answers

### Answer by username_1 on 2016-08-28. Score: 4

Several other rendering paradigms exist aside from conventional rasterization of triangles using vertex and fragment shaders.

* [Ray tracing](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)) works by intersecting light rays with surfaces (triangle meshes, or more general surfaces: anything that can be tested for intersection) and then firing additional rays to gather information about lighting, shadows, reflections, etc at the intersection point. Path tracing and photon mapping are refinements of this concept.
* [REYES rendering](https://en.wikipedia.org/wiki/Reyes_rendering) subdivides all primitives into micropolygons the size of a single pixel or smaller, calculates lighting and shading per micropolygon vertex, then uses a specialized rasterizing algorithm to render the micropolygons in screen space with motion blur and depth of field.
* [Distance field ray-marching](http://iquilezles.org/www/articles/raymarchingdf/raymarchingdf.htm) (also called [sphere tracing](https://computergraphics.stackexchange.com/questions/161/what-is-ray-marching-is-sphere-tracing-the-same-thing)) represents all primitives in terms of distance fields: 3D functions and/or volumetric textures that give the distance from any given point to the nearest surface in any direction. The distance field is used to step adaptively along a ray until it hits a surface, and can also be used for lighting effects such as ambient occlusion.

However, all rendering algorithms use linear transformation matrices. That's not part of the "paradigm" so much as it's the basic machinery for manipulating objects, the camera, etc in 3D space. It would be hard to do anything interesting without it.

> **Comments:**
> **username_2**: Well you could live without the matrices but it would be hideously complex and wasteful. Many people who did not understand matrices attempt this regularily in stackoverflow but either end up reimplementing matrices without knowing it or ending with huge problems.  
> **username_0**: I heard of an alternative algebra before that does not use linear transformations, but some other theory. I can't remember what it is or any of the keywords so I don't know what to search for, so I am hoping someone might mention it here. The things you mentioned all seem to build on top of linear algebra, but I believe there are other techniques to build from.  
> **username_1**: @tru There are additional algebras such as [geometric algebra](https://en.wikipedia.org/wiki/Geometric_algebra) that supplement linear algebra with additional concepts, but I'm not aware of anything that _replaces_ linear algebra and fulfills the same purposes.  
> **username_0**: @username_1 Thanks for the link! That might possibly be what it was. I really dislike all that symbolic mathematical jargon though. I'd much love to see it expressed with code, so I'll search for that. Thanks!  
> **username_3**: Monte carlo / Path tracing should be added to your list. Great list btw.  
> **username_1**: @username_3 I mentioned that under raytracing  
> **username_3**: So you did, more coffee needed.  

---

