Recent posts

[WebGL] Implementing Volume Rendering in GLSL

In the previous article, I explained how to render solid objects using the ray marching method. However, since the ray stops marching at the boundary of the object, it cannot successfully render translucent or transparent objects. This article delves into the ray marching method for a generali...

[WebGL] Implementing Ray Marching in GLSL

Ray marching is a technique for rendering a 3D scene onto a 2D screen. As the name suggests, a bundle of rays marches incrementally, checking for intersections with objects. This post will walk through how to implement ray marching in GLSL step by step, covering topics such as distance maps, n...

[WebGL] Understanding the Variations of Cellular Noise

Cellular noise partitions space based on the distance to a set of seed points, producing organic, cell-like patterns. It finds applications in computer graphics, natural simulations, and generative art. In this post, we explore several variations of the cellular noise implemented in GLSL: Voro...

[WebGL] Analysis of Random Generator

In this post, I explored the randomness of pseudo-random sequences generated by different functions: sinusoidal, power, and linear. By examining the histogram and autocorrelation of these sequences using MATLAB, I demonstrated how sinusoidal and power functions exhibit more randomness than a s...

Debugging C++ with VS Code

This post explains how to configure a debugging environment in Visual Studio Code (VS Code). While the settings described are for macOS, they can be easily adapted for Windows with minimal changes, such as the compiler. VS Code uses tasks.json and launch.json for build and debug configurations...