<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on The Render Loop</title><link>https://salvatorespoto.github.io/post/</link><description>Recent content in Posts on The Render Loop</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Copyright © 2024, Salvatore Spoto; all rights reserved.</copyright><lastBuildDate>Sat, 08 Feb 2025 20:28:24 +0200</lastBuildDate><atom:link href="https://salvatorespoto.github.io/post/index.xml" rel="self" type="application/rss+xml"/><item><title>Shadertoy: Basic Things You Can Do</title><link>https://salvatorespoto.github.io/post/shadertoy-basics/</link><pubDate>Sat, 08 Feb 2025 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/shadertoy-basics/</guid><description>
This is a collection of simple shaders in Shadertoy that show how to draw basic elements using basic functions like step and smoothstep. If you're new to Shadertoy or shader programming in general, you might find these useful.
In the following paragraphs, you'll find shaders that illustrate some simple functions and basic drawing techniques. The code includes plenty of comments to guide you through the implementation.
The shader code is pasted below each implementation, but if you click on the shader's name, you'll be taken to Shadertoy, where you can experiment with it.</description></item><item><title>Nostalgia: old schoold demoscene effects in Shadertoy</title><link>https://salvatorespoto.github.io/post/old-school-effects/</link><pubDate>Sat, 01 Feb 2025 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/old-school-effects/</guid><description>
Nostalgia time! The early '90s were a golden era for the demoscene. In 1993, Second Reality hit like a bombshell for all of us messing around with computers and coding. No 3D acceleration back then, just CPU and raw code. Future Crew dropped their demo at Assembly, and a wave of inspiration spread across Europe. Every kid into programming, PCs, and video games started dreaming about real-time graphics, trying to replicate the magic of that legendary Finnish group.</description></item><item><title>Direct3D 12 Notes Entry #2: Let's Code the First Application</title><link>https://salvatorespoto.github.io/post/d3d12notes/2-overview/</link><pubDate>Wed, 22 Jan 2025 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/d3d12notes/2-overview/</guid><description>
In this second chapter, the focus is to implement a simple application using the components and the flow described in the previous one. You start creating a very minimal application: drawing a static 2D triangle.
First D3D 12 Application: Drawing a Triangle This simple task already requires a certain effort, particularly in setting up the entire pipeline. Additionally, the practical implementation introduces some aspects and details that were ignored in the previous lesson, such as window initialization.</description></item><item><title>Learning Direct3D 12: Personal Notes #1: Overview</title><link>https://salvatorespoto.github.io/post/d3d12notes/1-overview/</link><pubDate>Sat, 11 Jan 2025 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/d3d12notes/1-overview/</guid><description>
This series is a collection of my personal notes as I review and study DirectX 12. I'm not an expert, but I'm documenting what I learn along the way to help solidify my understanding and possibly assist others who are also exploring this topic. These notes are informal and meant as a reference for myself, rather than a comprehensive guide.
Introduction to the Direct3D 12 Graphics API This series of articles introduce to Microsoft Direct3D (D3D) 12 programming.</description></item><item><title>3rd Place at 1K Competition, Assembly '24</title><link>https://salvatorespoto.github.io/post/assembly24/</link><pubDate>Wed, 18 Sep 2024 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/assembly24/</guid><description>
Assembly Summer '24 has come and gone, and I had the great joy of seeing my little 1k intro on the big screen and see some living legends of the Demoscene.
I also took 3rd place in the compo, which isn't bad at all.
This is the ShaderToy version of the 1kb demo I presented:
CubeSink See you next year with more incredible demos, Assembly!
Info On this page you'll find shaders written in Shadertoy and functions graph made in Desmos.</description></item><item><title>Signal Processing in Computer Graphics #6: AntiAliasing</title><link>https://salvatorespoto.github.io/post/aliasing-antialiasing/6-antialiasing/</link><pubDate>Mon, 16 Sep 2024 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/aliasing-antialiasing/6-antialiasing/</guid><description>
Anti-aliasing is a technique used in computer graphics to reduce the alias we have described in the previous chapters.
Here there is an example in ShaderToy of three popular anti-aliasing algorithms: SSAA (Super-Sample Anti-Aliasing), MSAA (Multi-Sample Anti-Aliasing), and TAA (Temporal Anti-Aliasing).
Please check the shader code for further details.
SSAA (Super-Sample Anti-Aliasing) Super-Sample Anti-Aliasing (SSAA) is one of the simplest forms of anti-aliasing. It works by rendering the scene at a higher resolution and then downscaling it to the desired display resolution.</description></item><item><title>Signal Processing in Computer Graphics #5: Texture Filtering</title><link>https://salvatorespoto.github.io/post/aliasing-antialiasing/5-texture-filtering/</link><pubDate>Sun, 15 Sep 2024 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/aliasing-antialiasing/5-texture-filtering/</guid><description>
As we've seen before, aliasing happens when the sampling rate is too low to properly reconstruct the original signal. With computer-generated images, it happens because these images come from a mathematical continuous description of the 3D scene. The signal we're trying to display isn't bandwidth-limited, so aliasing is bound to happen when we put it on the screen.
Example: Diagonal Line For example, imagine drawing a straight diagonal line on the monitor.</description></item><item><title>Signal Processing in Computer Graphics #4: Sampling and Filtering</title><link>https://salvatorespoto.github.io/post/aliasing-antialiasing/4-sampling-filtering/</link><pubDate>Fri, 13 Sep 2024 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/aliasing-antialiasing/4-sampling-filtering/</guid><description>
Sampling means to take samples of the continous signal at discrete intervals. Filtering is the opposite operation: reconstructing the continuous time signal from its discrete samples.
Info In this pages you'll find some shaders written with Shadertoy, and some Desmos graphs. Read how to use the interactive content in this site.
Sampling a signal at discrete intervals Sampling means to take samples of the continous signal at discrete intervals. This allows to store it as an array of numbers, which can be easily loaded into a computer memory or saved on a storage.</description></item><item><title>Signal Processing in Computer Graphics #3: Signals</title><link>https://salvatorespoto.github.io/post/aliasing-antialiasing/3-signals/</link><pubDate>Thu, 12 Sep 2024 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/aliasing-antialiasing/3-signals/</guid><description>
Let's introduce the definition of signal, and some of the properties used to describe it.
Info In this pages you'll find some shaders written with Shadertoy, and some Desmos graphs. Read how to use the interactive content in this site.
What is a signal As stated in the Introduction a signal, broadly speaking, is any quantity that vary in space or time. Let's see some examples.
One dimensional signal A simple example is the $sin(x)$ function: a function of one variable, defined for each real value.</description></item><item><title>Signal Processing in Computer Graphics #2: Introduction</title><link>https://salvatorespoto.github.io/post/aliasing-antialiasing/2-introduction/</link><pubDate>Wed, 11 Sep 2024 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/aliasing-antialiasing/2-introduction/</guid><description>
This is a brief introduction of the main topics that will be elaborated during the series: signals, sampling, filtering and aliasing.
Info In this pages you'll find some shaders written with Shadertoy, and some Desmos graphs. Read how to use the interactive content in this site.
What is a signal A Signal, broadly speaking, is any quantity that vary in space or time.
An example is the function $f(t) = \sin 2t + \sin t + 2$, where the $t$ variable is the time.</description></item><item><title>Signal Processing in Computer Graphics #1: Overview</title><link>https://salvatorespoto.github.io/post/aliasing-antialiasing/1-overview/</link><pubDate>Tue, 10 Sep 2024 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/aliasing-antialiasing/1-overview/</guid><description>
Rendering an image is essentially a sampling process: a continuous image, with its geometry, colors, and lighting, needs to be sampled and converted into pixels on the screen. These brief notes provide a quick introduction to signal processing, filtering, and aliasing. In the final chapter, there are some ShaderToy examples that demonstrate some anti-aliasing algorithms.
Introduction Signals Sampling Texture Filtering AntiAliasing Hope you find these notes interesting!</description></item><item><title>3D Modeling with Math for Fun</title><link>https://salvatorespoto.github.io/post/desmos3d-kyrby/</link><pubDate>Wed, 25 Jan 2023 16:08:01 +0200</pubDate><guid>https://salvatorespoto.github.io/post/desmos3d-kyrby/</guid><description>
3D Modelins with Math for Fun. Desmos recently added 3D graphing functionalities, so I had fun modeling Kirby with some stars around him. This was obviously inspired by the incredible work of Inigo Quilez, who is renowned for his exceptional math modeling, especially on Shadertoy. You can check out an example of his amazing work here.
For this scene, I mainly used distorted ellipsoids, both implicit and explicit. I found that implicit shapes are easier to blend smoothly.</description></item><item><title>A gLTF Viewer in DirectX 12</title><link>https://salvatorespoto.github.io/post/gltf-viewer/</link><pubDate>Wed, 25 Jan 2023 16:08:01 +0200</pubDate><guid>https://salvatorespoto.github.io/post/gltf-viewer/</guid><description>
A viewer of the glTF file format, implemented in DirectX 12 and C++. Here's the GitHub Repository of a Viewer for glTF files, made in C++ and DirectX 12. I wrote this software to explore the DirectX 12 API.
glTF is a standard file format for three-dimensional scenes and models, the specification are from the Khronos Group.
The glTFViewer can edit the vertex, geometry and fragment shaders on the fly. The video below shows the application in action:</description></item><item><title>Rendering Metaballs in 3D</title><link>https://salvatorespoto.github.io/post/meta-balls-3d/</link><pubDate>Tue, 23 Aug 2022 20:28:24 +0200</pubDate><guid>https://salvatorespoto.github.io/post/meta-balls-3d/</guid><description>
3D Metaballs are a valuable tool for modeling &amp;quot;blobby shapes&amp;quot;, or something that should look &amp;quot;organic&amp;quot;. They could even be used for fake fluid simulations. In this article, we'll explore how to render Metaballs in 3D, using ray casting tecniques.
The Metaballism 1 video series by Alexander Mitzkus showcases the versatility of metaballs in 3D graphics.
If you're new to metaballs, it's recommended to read the previous article in the series, Rendering Metaballs in 2D.</description></item><item><title>Rendering Metaballs in 2D</title><link>https://salvatorespoto.github.io/post/meta-balls/</link><pubDate>Sun, 21 Aug 2022 16:08:01 +0200</pubDate><guid>https://salvatorespoto.github.io/post/meta-balls/</guid><description>
Metaballs are blobby objects that &amp;quot;glue togheter&amp;quot; when they came close. They were Invented by Jim Blinn for the 1980 documentary TV show Cosmos to represent atoms and molecules. Metaballs later became a popular effect in the demoscene in the early 90s. In this article we'll see how render them in 2D.
Info In this page you'll find shaders written with Shadertoy and Desmos graphs. Read how to use the interactive content in this site.</description></item><item><title>How to use the interactive content on this blog.</title><link>https://salvatorespoto.github.io/post/howto-interactive-content/</link><pubDate>Fri, 19 Aug 2022 23:42:50 +0200</pubDate><guid>https://salvatorespoto.github.io/post/howto-interactive-content/</guid><description>
How to use interactive content on this blog.
Info In this short guide, we'll explore how to interact with the content on this website. Shaders will be often written with Shadertoy and function graphs plotted with Desmos.
ShaderToy A Shadertoy shaders is a shader written on Shadertoy using the GLSL language. When you hover over the shader image, a minimal interface will apper. Clicking on the play button will start the shader, if it's not already in play state.</description></item></channel></rss>