All articles

Grid-Based Particles in Fragment Shaders: Implementation and Optimization

Implementing particles using full-screen fragment shader and making them run 2x faster.

Stateless particles - rendering without a mesh

Rendering effects without CPU mesh handling. Creating particle meshes on the fly in the shader code. Implementing a tornado VFX and making it run 13x FASTER.

Terrain hack: Fastest erosion algorithm ever

This is the fastest, and the simplest terrain erosion algorithm I've tried. Explained in detail.

Tutorial

Making Unity's grass look less shitty

Improving Unity's built-in grass shader.

This will rewire how you think about rendering optimization. This is a deep dive.

My mental model of a GPU that I use every day to reason about rendering, profiling and choosing the right optimization path.

I made this shader run 5x faster

I optimize one of my old fragment shaders to run 5x faster, keeping visuals almost unchanged.

The art of debugging the rendering

How to debug rendering issues. I explain my workflow.

Rendering

Tutorial

Moving top-down camera with preserved world-space texture content

I implement a top-down camera that dynamically follows the player's position, updating its view as the player moves, and preserves the texture content in world space.

Moving instance updates off the main thread

Offloading Unity character trail rendering calculations to a multithreaded job unlocked massive CPU gains

Tutorial

Rendering into custom texture in Unity

How to render a custom content into a texture in Unity.

Tutorial

Shell texturing vs raymarching

Shell texturing - When to use it? How to optimize?

Rendering

Rendering into texture - the most important TA skill

This is core graphics knowledge. Master it once, and you’ll see the same principle popping up everywhere.

Rendering

VRAM bandwidth and its big role in optimization

I explain what VRAM bandwidth is, why it is important in rendering optimization, and what to look at in your game to optimize it.

GPU Sorting Algorithms - Benchmarks

See which sorting methods work fastest in real GPU benchmarks, and find out how simple loop unrolling can make your graphics run faster.

How to profile the rendering - GPU profiling basics

What are GPU profilers? Which one to use? How to use them?

Tutorial

Render Graph - Creative Shadowcasting

I use shadowcasting technique to improve my rain-atmosphere effect.

Rendering

Tutorial

Render Graph - Polishing Rain Atmosphere Effect

I fix the bloom flickering artifacts by postprocessing and manipulating the smoothness parameter in the GBuffer.

Rendering

Tutorial

Render Graph - Creating Rain Atmosphere

Altering the URP Gbuffer to simulate a rain-atmosphere.

Rendering

Tutorial

Hungry for more?

I share rendering and optimization insights every week.

Hungry for more?

I share rendering and optimization insights every week.

I write expert content on optimizing Unity games, customizing rendering pipelines, and enhancing the Unity Editor.

Copyright © 2025 Jan Mróz | Procedural Pixels

I write expert content on optimizing Unity games, customizing rendering pipelines, and enhancing the Unity Editor.

Copyright © 2025 Jan Mróz | Procedural Pixels

I write expert content on optimizing Unity games, customizing rendering pipelines, and enhancing the Unity Editor.

Copyright © 2025 Jan Mróz | Procedural Pixels