Shadow Mapping
This article explains shadow mapping, a way to create shadows by capturing depth from the light and using that information to identify occluded areas.
graphics real time shadows
In a sun-scorched world, the earth lies in ruin. A scavenger on a mission discovers a mysterious sanctuary, and ignites a chain of events that could reshape what remains of the world.
Nathan Caldwell has it all - success, a beautiful home, and a loving family. But today is no ordinary day. What unfolds will push him to the edge and change everything.
Light stretches as it travels, shifting redward and revealing motion, distance, and even the chemistry of galaxies like record-breaking JADES-GS-z14-0
Polaris, has guided humanity for centuries thanks to its unique position in the night sky. This bright supergiant star serves as a reliable navigation aid, a symbol across cultures, and an intriguing triple star system studied by astronomers.
Unity’s render pipelines, Built-in, URP, HDRP, offer different trade-offs in performance, visuals, and flexibility. Learn how they work, when to use each, and how to extend them with Command Buffers, Render Features, and Custom Passes.
A slow walk on Earth can shift our view of what’s happening right now in a galaxy millions of light-years away. The Andromeda Paradox illustrates how special relativity warps our sense of simultaneity.
A brief report in my latest astrophotography session, where I captured NGC6960, also known as the Veil Nebula.
A quick reference guide to React hooks. When to use useState, useEffect, useRef, useMemo & more. Includes comparison tablew, real examples, and common gotchas to look out for.
Learn how to set up the Seestar S50 smart telescope in Stellarium using accurate sensor and telescope parameters. This guide covers both standard and 2x mosaic modes to help you simulate your field of view for better astrophotography planning.
A step-by-step guide to setting up DOSBox on Linux to play the classic RTS game Z by Bitmap Brothers using your original game ISO.
This short write-up offers a quick overview of a simple method you can use to create a transcript from either a video or an audio file, which may be helpful in a variety of contexts such as documentation, content analysis, or accessibility.
Part 1 of a blog post series on full stack development, where I walk through the process of building a simple task management app. This chapter focuses on implementation of the backend services.
I've introduced a feature that lets you listen to my blog's content being read aloud. This post explains how I implemented it using the Speech Synthesis Web API, which requires minimal code and works on most modern browsers.
A step-by-step guide for creating a 'hello world' ROM for the Nintendo Gameboy in assembly
A brief guide on encrypting and decrypting tar archives with gpg
A guide on how to make the ZEXMTE BT-506 dongle work in Debian
A tutorial on using telegram to generate notifications
Notes on using Docker in Debian
A fun experiment in using text to render animated images in a terminal
Notes on a lossy unsigned float number compression technique
This article introduces shadow mapping, a technique for creating shadows in graphics. It explains how to capture depth from the light’s view to find shadowed areas and outlines basic steps to implement it, including making and using shadow maps.
A tutorial on interfacing a peripage printer via the command line
A brief guide on using Yubikey as an authentication method with GDM
Ai brief guide on resolving Intel's PSR issues
A brief post on generating images with Midjourney
Brief notes on building a brachiograph plotter
A brief survey of normal blending techniques
Nanite in UE5 is a virtualized geometry system that renders only visible detail, enabling film-quality assets with millions of polygons and minimal performance cost. It replaces normal maps, supports dynamic LODs, and uses a hybrid rasterizer for optimal efficiency.
A short case study on how to bring old software back to life
A short guide on creating floppy disk images in Linux
Theory and implementation of the De Moivre theorem
Another way to turn your mobile phone into a macro camera
A simple way to turn your mobile phone into a macro camera
The classic demoscene effect explained and implemented in GLSL
Spherical Harmonics are a type of Spherical Radial Basis Function that can be used to encode signals defined on a sphere in a compact way. This makes them an excellent fit for encoding a variety of datasets commonly used in real time graphics."
In Half-Life 2, a directional ambient term is precomputed across the environments and stored in the ambient cube lighting encoding. This post goes over the theory behind the ambient cubes technique and presents an implementation in GLSL.
Generative art is an algorithmic approach to creating unique and dynamic works of art. As technology progresses, it continues to evolve, allowing artists to explore new forms and patterns beyond traditional methods.
A brief explanation on how to render a full screen pass efficiently in OpenGL and DirectX
Wolfram's infamous rule 126 explained in plain terms
The classic demoscene effect explained and implemented in GLSL
A brief survey of various ways OpenGL can draw geometry
An explanation of the math behind half-space testing
An overview of how distributed ray-tracing enhances realism by addressing the limits of traditional ray-tracing, using Monte Carlo sampling to simulate effects like soft shadows, gloss, depth of field, and motion blur.
A listing of CGI films, that played a pivotal role in the history of computer graphics
L-Systems are a mathematical framework for modeling organic structures and fractals. They generate complex patterns and are used in graphics, biology, and procedural generation. In this blog post I share some examples and how to implement them.
A collection of useful interpolation methods, theory and implementation
Lightness constancy allows us to perceive surface brightness as stable despite changes in lighting. The Checker Shadow Illusion highlights how context, shadows, and spatial cues trick the brain into seeing identical shades as different.
A brief guide on using BTRFS
A listing of useful math formulas and their plots
How to generate stereo anaglyphs with ImageMagick
Ray to Plane intersection testing, theory and implementation
There are many ways to spread points across the surface of a disk but doing so in an even distribution can be challenging. Vogel’s method solves that problem elegantly. In this blog post, I explore the underlying math and show how to implement it.
A listing of visibility culling techniques
A simple approach for sprite texture encoding
The Sobel operator explained and implemented in GLSL
A simple method of implementing color grading
The physics law of reflection, theory and implementation
Implementation of pixelization effects in GLSL
A high level explanation of FXAA and how to implement it in GLSL
A short guide on NCF specification and how to use it in your own projects
Metaballs, what are they and how to make them
The classic demoscene effect explained and implemented in GLSL
This post shows how the geometric dot product, lengths times cosine of the angle, can be converted into the coordinate form by summing the products of corresponding components, proving both forms are equivalent.
A GPU implementation of Conway's game of life
Theory and GPU implementation of the Mandelbrot and Julia fractal sets
A summary of different approaches for embedding files within c / c++ code
A short guide on enabling and using Primus under Debian Sid
Parallel processing with GNU Make
© 2012 - 2025, Nikolaos Papadopoulos. All Rights Reserved.
Creative Commons Attribution-NonCommercial 4.0 International License