1 of 46

Raymarcher

Official General Documentation

v 3 . 5 . 0

General documentation of the Raymarcher package

Written by Matej Vanco, 2020-2025 ©

It is recommended to open the documentation online to stay up-to-date.

Updated on July, 8th 2025.

Video documentation series

Latest package version preview-teaser

2 of 46

Content

Raymarcher Essentials��01 Introduction�02 Key Features�03 Core Structure�04 Rendering Pipeline�05 Compatibility

Implementation & Setup��06 First Setup�07 Raymarcher Session�08 Render Master Component��Raymarcher Objects��09 Primitive SDFs�10 Fractal SDFs�11 SDF Modifiers�12 Volume Box

Raymarcher Materials��13 Materials Structure�14 Standard Library�15 Creating a Material�16 Lighting

Raymarcher Toolkit��17 The Toolkit�18 Voxels�19 Voxel Painting�20 Volume Character Controller�21 Particle Effects�22 Mesh To Volume�23 Mesh Printer

3 of 46

Raymarcher Essentials

Introduction, features, rendering pipeline, and core structure.

Everything you need to know about Raymarcher.

4 of 46

Introduction

Raymarcher is a universal, cross-platform renderer that features a complete framework for manipulating signed distance functions and volumetric data. The renderer includes a fully customizable material pipeline and comes with an out-of-the-box toolkit library, encompassing a simple voxel system, particle tracking and a series of mesh-to-volume data converters.

Key Features:

  • One-click setup
  • Simple and user-friendly interface
  • Collection of SDF primitives, fractals, and volumes
  • Collection of well-known SDF modifiers and boolean operations
  • Built-in standard material library
  • Built-in rendering filters
  • Complete toolkit for simple voxel manipulation
  • Mesh-to-3D volume converter tools
  • Cross-platform support, including VR, mobile & WebGL
  • Compatibility with all Unity render pipelines (Built-in, URP, HDRP)
  • Complete video documentation series
  • Real-time support and access to unlimited updates
  • Original example content

Ready for Unity LTS 2022, 2023 and Unity 6.

5 of 46

Unleash your imagination…

Raymarcher is an "out-of-the-box" package featuring a core renderer based on the Raymarching rendering technique, a toolkit that ranges from working with simple voxels to volume converters, and more. Once you become familiar with the ecosystem and its pipeline, you can create virtually anything. Take a look at what can be achieved using Raymarcher below:

Manipulating Volume Data - Destructing a Voxel Cave Object

3D Fractals - Exploring Fractals from a Different Perspective

6 of 46

... From simple 'blobs' and infinite fractals to cloud volumes, unique visualizations, and tiny voxel worlds – all in real-time, directly within Unity Engine.

Creature Editor - Editing Expressions & Shapes of Creatures Using SDFs

Clouds - Editing a Simple Cloud Volume Box

Voxel Modification - Modifying a Volume Surface

Particle Tracker - Creating Special Effects Using Raymarcher Materials and Volumes

7 of 46

Key Features

Simple & friendly�

No coding, no dependencies, or required assets. Just choose a session name, target platform, render type, and begin your journey.

Collection of SDFs�

Major collection of primitive, fractal, and volume SDFs, each with its own unique behavior and purpose. Extend with your own formulas.

Universal renderer�

Cross-platform & modular renderer based on Raymarching rendering technique. Includes a full API for creating custom render features, SDFs, and materials. Plug in and expand.

Out of the box Toolkit�

Complete out-of-the-box toolkit including a simple voxel system, volume character controller, particle tracking, and more. Just drag and drop to play right away.

Series of Mesh-To-Volume

converters�

Convert a regular mesh to a volume box/texture 3D using three different techniques: direct mesh print vertex by vertex, perspective-driven volume renderer, and mesh slice renderer.

Collection of modifiers�

Collection of well-known SDF modifiers, including target operations, deformations, rotations, and more. Modify SDF objects beyond conventional constraints.

Cross platform support�

Deploy to any platform, including PC-VR, standalone VR, mobile, mobile cardboard, and WebGL. Anywhere, anytime.

Complete Material Library�

Collection of standard material libraries, including PBR, unlit, and lit types. Mobile and WebGL-friendly materials are included, with the possibility to create custom materials using Raymarcher’s API.

8 of 46

Core Structure

Raymarcher comprises a group of components, each handling its specific area. There are five major groups:

Rendering Data

Mapping Master

Lighting Data

Material Master

RMObjectBase

RMObjectModifierBase

ISDFEntity

RMMaterialBase

RMMaterialIdentifier

RMMaterialDataBuffer

RMConvertorCore

RMConvertorSdfObjectBuffer

RMConvertorMaterialBuffer

RMConvertorCommon

Mesh Printer

Volume Voxel Painter

Volume Mesh Slicer

PD Volume Renderer

Volume Character Controller

Read more about core structure in the Technical APi Documentation.

Raymarcher

Renderer�

The core rendering system and data communication pipeline between the CPU and GPU.

Raymarcher

Entities�

Contains all components that represent 'SDF objects' and their modifiers.

Raymarcher Materials�

Contains all components related to Raymarcher's material pipeline.

Raymarcher Convertor�

Contains all components related to Raymarcher's converter.

Raymarcher

Toolkit�

Contains all components related to Raymarcher's toolkit library.

9 of 46

Rendering Pipeline

Raymarcher is a part of Unity's default rendering pipeline. However, Raymarcher expands the pipeline with additional steps necessary to properly process the final frame and deliver it to the screen.

Read more about rendering pipeline in the Technical APi Documentation.

1. Data Retrieval Stage�

Transferring data from the CPU to the GPU.

2. Shader Stage�

Processing data on the GPU.

3. Final Delivery Stage�

Outputting data from the GPU to the screen.

SDF Object Buffer

Material Buffer

Lighting Data

Render Master

Vertex Stage

Fragment Stage

Raymarching Loop

Buffers processing

Shader Finalizer

Camera Filter

Frame Output

10 of 46

Compatibility

Raymarcher is compatible with all Unity RPs and uses camera filters to display the currently processed frame by the Raymarcher. However, some render pipelines have certain features limited, depending on the Raymarcher’s render type.

Raymarcher features with three different render types:

- Quality�Suitable for high-end devices only.�- Standard�Suitable for all devices, mostly mid-end.�- Performant�Suitable for mobiles and low-end devices.

Each render type has its own advantages and disadvantages in terms of memory allocation and performance, and features with different limitations and possibilities of using the Raymarcher components.

Read more about render types in the Technical APi Documentation.

Render Type:

Performant

Standard

Quality

Rendering precision

Low

High

Highest

Per-object allocation

8 bytes

16 bytes

32 bytes

Object transform synchronisation

Position Only

Full

Full

Per-instance material

Global Only

Per Inst + Global

Per Inst + Global

Per-instance color

Hue Shift only

Hue Shift only

Full RGB

Mobile platform

Supported

Supported

Unsupported

WebGL platform

Supported

Supported

Unsupported

VR platform

Supported

Supported

Experimental

Toolkit library

Partial

Full

Full

11 of 46

Implementation & Setup

Introduction to Raymarcher Implementation and Raymarcher Session.

Your first steps start here.

12 of 46

First Setup

The setup for Raymarcher is simple and straightforward. Just import the package into your Unity project, extract the necessary Camera Filter dependency (if needed), and create a Raymarcher Session using the Setup Wizard. Everything in three steps.

You can have a look at the complete video documentation/tutorial series.

1.

2.

3.

Built In RP

Import the correct package to your Unity project.

Go to Window/Raymarcher/Setup Wizard,

and follow the steps.

URP

Import the correct package to your Unity project.

Go to Window/Raymarcher/Setup Wizard,

and follow the steps.

Go to your URPAsset and add a renderer feature with the Raymarcher Camera URP Filter.

If you can’t see the RMCamFilterURP in renderer features, go to directory Raymarcher/CameraFilterDependencies and extract the correct camera filter dependency.

HDRP

Import the correct package to your Unity project.

Go to Window/Raymarcher/Setup Wizard,

and follow the steps.

Go to your scene, create a Custom Pass gameObject, add the Raymarcher Camera HDRP Filter and assign the existing Raymarcher Session material.

If you can’t see the RMCamFilterHDRP in custom-pass features, go to directory Raymarcher/CameraFilterDependencies and extract the correct camera filter dependency.

13 of 46

Raymarcher Session

A Raymarcher Session represents a unique identity for an existing Raymarcher renderer, holding all the necessary references to generated shaders and dependencies. Typically, each Raymarcher Session is bound to a specific Unity scene.

A Raymarcher Session can be removed by either directly deleting the Raymarcher renderer gameObject from the scene or using the 'Remove Raymarcher Session' button on the Render Master. Additionally, a Raymarcher Session can be cloned to create a new, unique copy with all the current data of the specific Raymarcher Session.

Certain actions processed by the user in Raymarcher may require manual recompilation.

There are three types of recompilation requests: Session Recompilation, SDF Object Buffer Recompilation, and Material Buffer Recompilation. Raymarcher automatically notifies the user to perform the required recompilation based on the specific request.

Session recompilation is required once the user:

  • Changed the target platform
  • Changed the render type
  • Modified the list of additional lights

Sdf Object Buffer recompilation is required once the user:

  • Added/ removed a sdf object
  • Added/ removed a sdf modifier

Material Buffer recompilation is required once the user:

  • Added/ removed a material instance on object
  • Added/ removed a material in global list
  • Changed a texture on a material instance

RM Session

Master Shader

Object Buffer

Material Buffer

Scene 1

Scene 2

Scene 3

14 of 46

Render Master Component

Once the Raymarcher Session is created, it is stored in a dedicated component called Render Master. Render Master is a core component responsible for managing all Raymarcher objects, materials, and renderer features. This component can be located in the hierarchy with a custom editor style.

It is not possible to have two or more Render Master components in a scene; only one object with Render Master is allowed. If you use the same Render Master object with an identical Raymarcher Session in multiple scenes, conflicts may occur as Raymarcher is compile-sensitive. This means that every created SDF object, modifier, or material is constantly written into shader code. In conclusion, use multiple Render Master instances in multiple scenes when you will not change the Raymarcher’s hierarchy and will not recompile the object buffer or material buffer.

As mentioned in the Raymarcher Session slide, you can clone the Raymarcher Session to keep all the modified data and work with them in a different scene.

The RM Render Master is divided into 5 sections:

  • Main session panel
  • Renderer settings
  • Renderer features
  • Renderer lighting
  • Renderer materials

Read more about the Render Master in the Technical APi Documentation.

15 of 46

Raymarcher Objects

SDF Primitives, Fractals, and Volumes.

A simple guide to Raymarcher Objects.

16 of 46

Primitive SDFs

Raymarcher contains a collection of primitive signed distance functions. Each SDF object can generate a different mixture of primitive shapes, allowing for an expanded collection of shapes.

Create a primitive SDF object via GameObject/Raymarcher/Primitives.

The more SDF objects the user creates, the more memory and performance it consumes.

Currently, there are 9 unique primitive SDFs:��- Sphere�- Capsule�- Cone�- Cube�- Rounded Cube�- Cube Frame�- Line�- Metaballs�- Torus

17 of 46

Fractal SDFs

Raymarcher contains a collection of well-known fractal signed distance functions. Fractals are complex shapes made of recursive formulas.

Create a fractal SDF object via GameObject/Raymarcher/Fractals.

It is highly recommended to create just one fractal at a time!

Currently, there are 4 unique 3D fractal SDFs:��- Apollonian�- Kleinian�- Mandelbulb 3D�- Tetrahedron 3D

18 of 46

SDF Modifiers

Raymarcher contains a collection of modifiers that modify specific signed distance functions.

Every SDF modifier requires a target Raymarcher SDF object. Add an SDF modifier directly to a target SDF object by clicking on ‘Add Modifier’ or search for an SDF modifier component in the ‘Add Component’.

Currently, there are 6 major categories of modifiers:��- Deformations�- Displacement�- Material�- Repeat�- Rotations�- Target Operations

19 of 46

Volume Box

Raymarcher features the processing of volume data and 3D textures. There is a special category of SDFs called ‘Volume Box’.

A Volume Box allows users to display a 3D texture with further controls such as pixel amplification, precision, and uniform volume size.

Create a volume SDF object via GameObject/Raymarcher/Volumes.�The more SDF objects the user creates, the more memory and performance it takes.

Currently, there are 2 unique volume sdfs:��- Perspective-driven (PD) volume box�- Texture 3D volume box

Switching 3D volumes in Texture 3D Volume Box

Animated character in PD-Volume Box

20 of 46

Raymarcher Materials

Raymarcher materials and their structure.

Everything you need to know about materials in Raymarcher.

21 of 46

Materials Structure

Raymarcher has its own material pipeline that works and handles data in a specific way. Materials in Raymarcher inherit from ScriptableObject, allowing you to create as many material instances as you wish.

The Raymarcher's material pipeline is divided into two major categories:

- Global materials (applied on all SDF objects globally and equally)

- Per-instance materials (applied on individual SDF objects independently)

All material instances will pass their data to the shader. This is internally done through compute buffers. If your target platform is mobile or WebGL, Raymarcher uses a special type of material types that 'unpack' their data into individual arrays without the use of compute buffers. That's also the reason why materials for mobile/WebGL are simple and contain just a few properties.

Read more about materials structure in the Technical APi Documentation.

Global Materials

SDF Cube

SDF Sphere

Lit

(Per-Instance material)

Lit

(Per-Instance material)

Unlit - fresnel

PBR - reflections

22 of 46

Standard Material Library

Raymarcher contains its own library of 'standard materials.'�This material library is designed specifically for use with Raymarcher.

All the materials belonging to the standard library can be found in the:

Project window/Create/Raymarcher/Materials

The library consists of 6 unique material types:

  • Unlit
  • Lit
  • PBR
  • Slope Lit
  • Mobile Simple Lit
  • Volume Noise (Clouds)

Read more about standard material library in the Technical APi Documentation.

23 of 46

Creating a Material

Creating a Raymarcher material is simple. Just go to the Project window, right-click, and choose Create/Raymarcher/Materials.

If your render type is set to Standard or Quality, you can assign the created material instance to individual sdf objects. If your render type is set to Performant, you can only use global materials.

Create an array element in global materials on RM Render Master, assign your created material instance, and register the global instances array. The registered material instances will affect all the sdf objects in the session.

Assign a material to individual objects if the render type is set to Standard or Quality

Assign a material to Global Material instances array if the render type is set to Performant

24 of 46

Lighting

Raymarcher in the current version supports just one directional light and an unlimited number of additional point lights. All the light references can be found on the main RM Render Master component.

Lighting is highly dependent on the material type that you are using. If the material type does not support lighting, the provided light references on the RM Render Master component would not be used. It is highly recommended to keep the additional point lights count as low as possible, as the Lit, PBR, Slope, and Noise material types in the Standard Material Library calculate lighting per-pixel, meaning that a loop of additional lights is processed every fragment shader invocation.

List of material types from Standard Library that support lighting:

  • Mobile Simple Lit (directional only)
  • Lit (directional and add lights)
  • Slope Lit (directional and add lights)
  • Noise (add lights only)
  • PBR (directional and add lights only)

25 of 46

Raymarcher Toolkit

Voxels, volume character controller, mesh to volume converters, fluids, and liquids.

The extended toolkit of Raymarcher unlocks the true power of real-time processing.

26 of 46

The Toolkit

Raymarcher features an out-of-the-box toolkit library consisting of various volume modifications, voxel painting, mesh-to-volume renderers, and more. The toolkit is entirely written in C# and Compute Shaders, resulting in limited platform compatibility (most toolkit components are not supported on mobiles and WebGL). Raymarcher is a universal-purpose package, enabling you to create any type of volumetric-generated content within certain limitations.

Raymarcher's toolkit library is organized into three subfolders:

1. Volume modification �- Volume character controller�- Voxel painting (with materials override feature)�- Volume depth sampler�- Volume particle tracker

2. Volume Convertors�- Volume mesh printer�- Volume mesh slide renderer�- Volume perspective-driven renderer

3. Experimental - experimental components (not production ready)�- Volume point collision sampler

Read more about Raymarcher toolkit library in the Technical APi Documentation.

27 of 46

Voxels

Raymarcher is not a voxel engine, but it offers the possibility of creating and handling voxels on a smaller scale. In Raymarcher, voxels are defined in specific 3D render textures created with a common resolution.

There are six common volume resolutions in Raymarcher:�x16, x32, x64, x128, x256 and x512.

It's important to note that Raymarcher does not provide a solution for creating an infinite world of voxels with dynamic rescaling. Additionally, the voxels in Raymarcher do not work with the octree algorithm; instead, all voxels are defined in each 3D texture pixel and a volume box.

There are various ways to manipulate voxels in Raymarcher:

- Convert regular mesh geometry to voxels� (It is not possible to convert sdf to regular mesh geometry)�- Manually paint/erase voxels�- Sample the depth of voxel volume�- Sample a fractal formula in a volume box as voxels�- Track particles in the target particle system and create voxels on each particle�- Save voxels (RT3D) to the assets and reuse the 3D texture for a different purpose

Read more about Raymarcher voxels in the Technical APi Documentation.

28 of 46

Voxel Painting

Raymarcher already provides a straightforward solution for voxel painting (or reading). There are two ways you can implement such a feature into your project:

- Use the Volume Voxel Painter API featured by Raymarcher and write the functionality yourself.

- Utilize example scripts, such as RMSample_VolumeVoxelPainterFPS from the example content (extract the correct example content package based on your rendering pipeline).

Voxel painting in Raymarcher is processed in compute shaders, where pixels are modified by a specific 3D render texture used to display the volume data within a particular volume box.

For a detailed, step-by-step tutorial on setting up voxel painting in a specific volume box, you can refer to the video tutorial or read the corresponding section in the technical documentation.

Read more about voxel painting in the Technical APi Documentation.

29 of 46

Volume Character Controller

The toolkit library includes an out-of-the-box character controller for volume boxes. The Volume Character Controller enables you to move around the target volume box with a simple collision system.

It's important to note that this character controller specifically works with Raymarcher's Texture 3D Volume Box, which contains tex3D data. Currently, it doesn't support a flying volume character controller; only a gravity-based one is available.

To create a volume character, navigate to GameObject/Raymarcher/Toolkit/VolumeCharacterController.

For a detailed, step-by-step tutorial on setting up volume character controller in a specific volume box, you can refer to the video tutorial or read the corresponding section in the technical documentation.

Read more about Volume Character Controller in the Technical APi Documentation.

30 of 46

Particle Effects

Special particle effects in the Raymarcher are essentially projected particles from the regular Unity Particle System. However, it's important to note that Raymarcher doesn't currently include advanced liquid/fluid simulations using Navier Stokes equations or other solutions.

The Raymarcher Toolkit features a component called Particle Tracker, which converts each living particle to 'volume space' and generates a point on a working 3D render texture. This texture is then used to display the 3D volume content on the target volume box. The maximum number of living particles allowed in one simulation is 1024.

Similar to other Raymarcher sdf objects, these effects can have various materials with different visuals, allowing for unique and creative results.

Read more about Particle Tracker in the Technical APi Documentation.

31 of 46

Mesh To Volume

Raymarcher provides three different methods for converting/rendering regular meshes into volume data (specifically into a 3D texture):

1. Mesh Printer- Prints the vertices of a target mesh instantly or progressively into a volume box.�- Advantage: Prints high-poly meshes.�- Disadvantage: May be noticeable on low-poly meshes. Not compatible with mobiles/webGL due to GPU resource consumption.�- Settings include target tex3DVolumeBox, volume resolution, initial volume canvas, print modes (Instant or Progressive), and brush parameters.

2. Mesh Slice Renderer- Renders target meshes with the 'slice shader' and packs the rendered slices into a 3D texture.�- Advantage: Independent of vertex count.�- Disadvantage: Less precise as it renders the 'white' pixels of the current slice progress. Meshes with faces aligned perpendicularly towards the camera won't be captured. Works in the Unity Editor only.�- Settings include target 'slice' material, slice width, and common volume resolution.

3. Perspective Driven Volume Renderer- Renders targets from three different perspectives.�- Advantage: Fast and suitable for prototyping volumetric objects.�- Disadvantage: Not precise, as it approximates 3D data based on three 2D textures.�- Settings include a volume renderer tool assigned to a perspective-driven volume box.�- It is possible to capture a snapshot of the currently rendered volume and save it as tex3D.

Each option has its own set of advantages and disadvantages in terms of precision and data storage. These converters can be accessed via GameObject/Raymarcher/Toolkit.

Read more about volume convertors in the Technical APi Documentation.

32 of 46

Mesh Printer

The Mesh Printer is one of the most effective methods for converting regular meshes into volumes within Raymarcher. It accomplishes this by directly printing the mesh vertices into a 3D texture.

Two print modes are available:

Instant

- Prints the entire mesh instantly (creates points on vertices).

Progressive

- Prints the mesh progressively every frame.� - Option to travel from vertex-to-vertex over a specific duration.

The Mesh Printer offers flexibility to print any mesh into a volume, allowing for modification of its content at runtime. This dynamic approach provides versatility in creating and manipulating volumetric data within the Raymarcher framework.

33 of 46

Technical Details

Limitations, Warnings, and Testing Benchmark.�Essential pre-reads for Raymarcher Renderer usage.

34 of 46

Limitations

General

Raymarcher is not compatible with orthographic cameras or 2D mode; it exclusively supports perspective cameras and operates in 3D mode only.

Raymarcher for VR does not work with single-pass rendering; it exclusively supports multi-pass rendering mode.

Raymarcher partially supports prefabs, but they must be appropriately compiled in a specific Raymarcher Session and cannot be instantiated or removed at runtime.

Raymarcher does not support transparent meshes. Transparent meshes will either be drawn in front of or behind the Raymarcher objects, depending on the renderer feature drawing queue.

Raymarcher supports point and directional lights only. Spotlights and area lights are not yet supported.

Regular meshes do not receive shadows from Raymarcher objects, and Raymarcher objects do not receive shadows from regular meshes.

Visual

Specific

Raymarcher is computationally intensive, and even with the Performant render type, it imposes additional performance demands. As a result, many Raymarcher toolkit components are not fully supported on mobile and WebGL platforms, particularly features like voxel painting and particle tracking.

Raymarcher is a compile-time renderer, which implies that users cannot create sdf objects at runtime. To achieve dynamic modifications, it is recommended to make necessary adjustments in advance and create a pool of objects accordingly.

Raymarcher does not have the capability to convert signed distance function (SDF) objects into meshes. It can only convert regular meshes into volumes (as tex3D).

Raymarcher does not support point cloud data; it can only work with volumetric data represented through 3D textures and signed distance functions.

35 of 46

Warnings & Recommendations

Unity Editor

HDRP is the least tested render pipeline for Raymarcher. If you plan to use Raymarcher in commercial or production projects, it is recommended to use URP or Built-In render pipelines.

It is recommended to always use the latest Unity LTS versions. The minimum supported Unity version is Unity 2022.

Some post-processing effects don't work with Raymarcher, particularly those that use depth texture or depth normals, such as Depth of Field (DoF) or Motion Blur.

Raymarcher

It is recommended to create as few SDF objects as possible. The more SDF objects you create, the higher the memory allocation and performance impact. Please carefully consider the creation of SDF objects.

Most of the time, Raymarcher runs primarily on the GPU. However, as every GPU is different, it is not guaranteed that all features will work equally well on every GPU.

Raymarcher is a universal-purpose renderer, meaning that it doesn't have a specific focus on any of the listed features. Mixing multiple volume SDFs with complex data and fractal SDFs might lead to extreme FPS drops and performance issues.

It is not recommended to use Global SDF Blend while using SDF volume boxes. Volume boxes utilize approximated formulas and are bounded by AABB boundaries. Disable Global SDF Blend when working with volume boxes.

36 of 46

Testing Benchmark - PC Standalone

Subject - Fractal Sailor (Built via URP)

Fractal Sailor is an experimental, atmospheric horror tech demo where you take the role of a lone sailor navigating a hovercraft through a dark and mystic fractal environment. The scene contains two point lights with soft shadows, one Apollonian fractal that changes its shape in a random timespan.

OS

GPU

CPU

RAM

Display

Results

Windows 10

(PC)

NVIDIA GeForce�RTX 4060 Ti

Intel i7~3.6GHz �(8 CPUs)

16 GB

2560x1440�(144Hz)

Stable�(144 FPS)

Full Settings

Windows 10

(PC)

NVIDIA GeForce�RTX 2070 S

Intel i9~3.7GHz �(20 CPUs)

64 GB

1920x1080�(60Hz)

Stable�(60 FPS)

High Settings

Windows 10

(PC)

NVIDIA GeForce�GTX 1070

Intel i7~3.3GHz �(8 CPUs)

16 GB

1920x1080�(60Hz)

Stable�(60 FPS)

Medium Settings

Windows 10

(PC)

NVIDIA GeForce�GTX 950

Intel i7~3.3GHz �(12 CPUs)

48 GB

1920x1080�(60Hz)

Stable�(60 FPS)

Low Settings

OSX Sonoma 14.1�(Laptop)

M1 Built-in

M1

(8 cores)

16 GB

3024x1964

(ProMotion)

Stable

(60~75 FPS)

Low Settings

37 of 46

Testing Benchmark - PC Standalone

Subject - Tiny Voxels (Built via URP)

Tiny Voxels is a short tech demo featuring voxel manipulation. There is no specific goal - you can freely explore, experiment with the sandbox control panel (adjusting voxel details, brush intensity, brush size, etc.), build or destroy voxels, print a house, and control lights. The scene contains four point lights and one directional light with soft shadows, one volume character controller with medium settings, one voxel world with ‘mirrored-repeat’ modifiers on Z and X axes.

OS

GPU

CPU

RAM

Display

Results

Windows 10

(PC)

NVIDIA GeForce�RTX 4060 Ti

Intel i7~3.6GHz �(8 CPUs)

16 GB

2560x1440�(144Hz)

Stable�(144 FPS)

Windows 10

(PC)

NVIDIA GeForce�RTX 2070 S

Intel i9~3.7GHz �(20 CPUs)

64 GB

1920x1080�(60Hz)

Stable�(60 FPS)

Windows 10

(PC)

NVIDIA GeForce�GTX 1070

Intel i7~3.3GHz �(8 CPUs)

16 GB

1920x1080�(60Hz)

Stable�(60 FPS)

Windows 10

(PC)

NVIDIA GeForce�GTX 950

Intel i7~3.3GHz �(12 CPUs)

48 GB

1920x1080�(60Hz)

Stable�(60 FPS)

OSX Sonoma 14.1�(Laptop)

M1 Built-in

M1

(8 cores)

16 GB

3024x1964

(ProMotion)

Partially Stable

(40~60 FPS)

38 of 46

Testing Benchmark - VR Standalone

Subject - Fractal Trip (Built via Built-InRP)

The player floats in a vast fractal environment, moving automatically forward. The scene contains no lights, only simple shading.

The demo is running on Meta Quest 3.

OS

GPU

CPU

RAM

Display

Results

MetaOS 3

(Android)

Built-in Meta

Built-in Meta Qualcomm Snapdragon XR3 chipset

8 GB

3840x2160�(120Hz)

per eye

Stable�(120 FPS)

39 of 46

Extras

Example content, products that already use Raymarcher, and video documentation series.

Discover the creative possibilities and projects developed with Raymarcher.

40 of 46

Export Raymarcher Session

Raymarcher allows you to export a session into a standard Unity shader file. This feature captures the core visuals rendered by the Raymarcher and compiles them into a single shader, which can be used independently, without requiring the Raymarcher renderer at runtime. While powerful, this feature comes with some limitations.��Pros�- One-click export process�- Consolidates all visual data into a single, portable shader file�- Key rendering parameters (such as render distance, hue, quality) remain editable�- No runtime dependency on the Raymarcher renderer & its ecosystem

Cons�- Only the Performant Render Type supports shader export�- Export is limited to Mobile, MobileVR, and WebGL platforms�- Only the MobileSimpleLit material type is compatible�- Some SDF objects (like Volume Box) are not supported in export�- Depth sampling may behave incorrectly: standard mesh objects might not blend properly

1.

2.

3.

4.

How to export

Make sure your Target Platform is Mobile/MobileVR/WebGL and Render Type is Performant.

Go to Window/Raymarcher/Shader Exporter

Press Export and choose your export location

Create a new material and assign the exported shader

How to use

Once exported, your Raymarcher session is fully rendered within Unity using a standard shader. The ray origin is defined by the active scene camera, while the ray direction is determined by the world-space position of the mesh's vertices that the shader is applied to.

There are two recommended methods to visualize your exported raymarched content:

  1. Create a standard Unity sphere, apply the exported shader material to it, and scale the sphere up. This method is quick and effective if you’re not concerned about depth interactions with other scene objects, since depth is completely ignored in this setup.
  2. Create a standard Unity quad or plane, apply the exported shader material, and position it to face the camera, aligned like a virtual screen. This approach enables partial depth interaction, allowing some blending with regular mesh geometry.

41 of 46

Example Content

Feel free to test your GPU capabilities with example content created using Raymarcher. Just click the image.

PCExecutable Win-only

PC-VRExecutable Win-only�Unity Open XR

WebGLPlay in Browser

Standalone VRMeta Quest

42 of 46

Technical Demos

Feel free to play these complete tech demos created using Raymarcher.�Just click the gif.

Tiny Voxels�PC Windows - MacOSX

Fractal Sailor�PC Windows - MacOSX

43 of 46

Commercial Products

Discover products that use the capabilities of the Raymarcher renderer.�Explore and see what creations have been made using Raymarcher�in a commercial industry. Just click the gif

Cellings (PC - 2022)

Refractor Dilemma (iOS - 2021)

44 of 46

Video Doc Series

Are you tired of reading through the entire documentation? Sit back, grab some popcorn, and relax. Raymarcher comes with a complete series of video documentations.

45 of 46

FAQ

How does the Raymarcher behave on iOS or Android?

Most of the time Raymarcher runs purely on GPU, meaning that if you are using multiple render features (soft shadows, reflections) it becomes pretty powerful and takes a lot of memory. However if the user chooses a proper render type (Performant), a mobile-friendly material and keep the sdf object count as low as possible, Raymarcher is pretty safe to use on mobile devices. It also all depends on what mobile model you use. The newer GPU, the better.

Does the Raymarcher work on Meta Quest 3?

Yes, Raymarcher was tested on Meta Quest 3 with realtime liquids, and the performance remained stable, averaging 50 frames per second or more. However, performance can vary depending on the number of render features the user employs and the chosen target render type.

Does the Raymarcher work with Unity fog?

No, Raymarcher doesn’t work with Unity fog. Raymarcher has its own fog feature which is called Distance Fog and can be found under the Renderer Features. However they can be mixed up and user can match the fog colors easily.

Does the Raymarcher work with Forward rendering path?

Yes, Raymarcher works with both Deferred & Forward.

How liquids and fluids work in the Raymarcher?

'Liquids' in Raymarcher are basically regular Unity particles, projected into a volume box using a 3D texture. The Raymarcher calculates each particle, generating a 'volume point' that blends with other surrounding points according to predefined parameters such as precision and blending. There is no Navier Stoke equations involved, however I would like to expand the toolkit with more advanced techniques as is this one!

+If you are using a Particle Tracker, your target particle system will be limited to a maximum of 1024 particles.

Does the Raymarcher work on Apple Vision Pro?

Raymarcher does not officially work with AVP, as AVP only supports single-pass rendering. However, there is an unsupported hack that involves forcefully changing from single-pass to multi-pass rendering mode after building the project. This partially works, with some depth and geometry issues, but I was able to see the Raymarcher objects properly. However, the current version of Raymarcher does not officially support AVP.

46 of 46

Thank You

Thank you for your attention! If you have any questions, suggestions or issues, do not hesitate and reach out to me on my official Discord server. (just click the image below)

If you don’t like Discord, write me a direct message on my email address.

General documentation of the Raymarcher package

Written by Matej Vanco, 2020-2025 ©