Heuristic42
Blog
Opengl
Rendering
Meta
0
comment
Dec 20 '25
Matrices
Hello, I have a few questions about your company and services. …
–
anonymous
comment
Dec 17 '25
Making a real EMF Reader
Can you show us what the wires go to please.
–
anonymous
comment
Nov 10 '25
DerBard: Custom Split Mechanical Keyboard Prototype
Hi heuristic42.com Owner.
–
anonymous
comment
Nov 10 '25
Embedding GDB pretty printers, just like natvis
Hello 👋. Welcome 🙂
–
pknowles
comment
Nov 10 '25
Embedding GDB pretty printers, just like natvis
Hello heuristic42.com Administrator.
–
anonymous
edited
Oct 13 '25
Why std::move and move semantics?
For years C++ destructors felt like an academic solution that d…
–
pknowles
comment
Oct 13 '25
Clip Space
Thanks for the reminder. Please see [https://www.heuristic42.co…
–
pknowles
comment
Oct 11 '25
Contributing
I have bilateral carpel tunnel and my Microsoft 4k has a torn c…
–
anonymous
edited
Oct 6 '25
Pages About This Site
... in an effort to keep presented content and self discussion …
–
admin
created
Oct 6 '25
Privacy and Data Collection
This wiki stores a small amount of personal data to function an…
–
admin
comment
Sep 12 '25
Clip Space
Hello, We ran a 30-second scan of your domain and found: - …
–
anonymous
created
Jul 7 '25
Hello Ray, a Hello World Vulkan Ray Tracing Tutorial
\*WORK IN PROGRESS\* Want to do some quick 3D graphics progr…
–
pknowles
created
Jul 4 '25
Why std::move and move semantics?
A few years ago, I was fortunate enough to have Jon Kalb explai…
–
pknowles
edited
Jul 4 '25
3D Rendering (Computer Graphics)
Rendering in 3D computer graphics is computing a 2D image from …
–
pknowles
edited
Jul 4 '25
Heuristic42, A Graphics Programming Website
#[Blog](/blog/) An unstructured assortment of personal graph…
–
pknowles
edited
Jun 24 '25
RAII++ - the powerful implication of always initializing
If you search, most definitions of RAII refer to using "**scope…
–
pknowles
created
Jun 24 '25
RAII++ - the powerful implication of always initializing
If you search, most definitions of RAII refer to using "**scope…
–
pknowles
comment
Jun 15 '25
Matrices
[deleted]
–
anonymous
comment
Jun 1 '25
Matrices
[deleted]
–
anonymous
comment
May 18 '25
Matrices
[deleted]
–
anonymous
created
Apr 10 '25
test2
;</script>
–
Nia
comment
Feb 8 '25
Matrices
[deleted]
–
anonymous
edited
Feb 3 '25
Embedding GDB pretty printers, just like natvis
Pretty printers are awesome, but the setup can be a real pain. …
–
pknowles
…
View All
Log in
3D Geometry
leave this field blank to prove your humanity
Slug
*
A URL path component
Parent page
<root>
rendering/:Article2:3D Rendering (Computer Graphics)
--- rendering/cameras/:Article11:Cameras
--- rendering/matrices/:Article12:Matrices
------ rendering/matrices/projection/:Article14:Projection Matrix
--- rendering/vectors/:Article13:Vectors
--- rendering/geometry/:Article62:3D Geometry
------ rendering/geometry/triangle_meshes/:None
--- rendering/shading/:Article64:Shading
------ rendering/shading/transparency/:Article70:Transparency and Alpha Blending
--- rendering/lights/:Article65:Lights
--- rendering/rasterization/:None
------ rendering/rasterization/deepimage/:Article72:Deep Image
--- rendering/shadows/:Article67:Shadows
--- rendering/spaces/:Article68:Vector Spaces
------ rendering/spaces/tangent_space/:Article69:Tangent Space
------ rendering/spaces/clip_space/:Article89:Clip Space
--- rendering/rotations/:None
--- rendering/images/:Article74:<unset>:Images
------ rendering/images/mipmapping/:Article75:<unset>:Mipmapping
--- rendering/materials/:None
opengl/:Article3:OpenGL Tutorials
--- opengl/oit/:Article7:Order Independent Transparency (OIT)
--- opengl/framebuffer/:Article71:The Framebuffer
meta/:Article4:Pages About This Site
--- meta/contribute/:Article5:Contributing
--- meta/bugs/:Article9:Bugs
--- meta/about/:Article10:Why does this website exist?
--- meta/privacy/:Article107:Privacy and Data Collection
The parent page this belongs to.
Article title
*
Article revisions must have a non-empty title
Article body
*
Geometry in computer graphics is a virtual description of a physical object. 3D geometry is mostly constructed from 2D surfaces, often made up of many *primitives* such as polygons, triangles in particular. [Triangle meshes are discussed in more detail here](/13/rendering/geometry/triangle_meshes/). Many geometry modelling packages allow defining smooth surfaces with splines, such as [NURBs](https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline) which are then approximated with triangles for fast rendering. Solid objects can be created by defining a bounding surface (*boundary representation* in solid modelling). We generally only see light bouncing off the surface of objects, not light passing through them, and so a large part of computer graphics is finding the intersections between empty and solid space, i.e. surfaces, rather than dealing with the interior of solid geometry. In fact it is common to avoid rendering the inside of solid objects as they are never seen and surfaces are often one-sided. Even when the interior is important, for example when rendering glass, the important interaction of reflection and refraction happens at the surfaces. ![triangle mesh example][1] Voxels, like a 3D image, store a discretize representation of geometry, defining a regular grid of points in a 3D space as empty, solid or anything in-between. Voxels can describe properties of an object that change through the interior, for example different densities or colours. Directly rendering a grid based fluid simulation can be seen as voxel rendering. Memory requirements of voxels are typically high, although if only variation at the surfaces of objects are defined, called sparse voxels, some optimizations can be made. Voxels have some features giving competition to polygons. [![sparse voxels][2]](https://www.youtube.com/watch?v=gNZtx3ijjpo) Point clouds and particles are similar to voxels in some ways, although define properties at arbitrary points in 3D space, rather than on a regular grid. Point clouds as static geometry are often an input from 3D scanning devices, range finders and image processing. While they can be rendered directly, interpolating geometry between the points is difficult. Particles on the other hand are often animated and used as an inexpensive way to model "fuzzy" phenomenon such as smoke and fire. [![point cloud example][3]](http://www.labri.fr/perso/guenneba/Sqrt3PointCloudRefinement_eg05.php) [1]: /u/img/7862756b3b83.png [2]: /u/img/052342eaa5de.png [3]: /u/img/c02bd36a23c8.png
Toggle Preview
Edit message
*
A description of the changes made
Discard Draft
Save Draft
leave this field blank to prove your humanity
Flag
the thing you clicked
for moderator attention.
Reason choice:
Spam, promoting, advertising without disclosure
Rude, inappropriate, generally offensive
Too arrogant or demeaning to others
Other
Reason:
The reason for raising the flag
Error