Looking for the Full Guide?
View the complete 39-page manual. Contains detailed setups, shader logic, API definitions, and optimization guidelines.
📖 Open PDF DocumentationThe setup steps below apply only if you are building a scene from scratch. For the included demo scene, simply import the package, open the scene, hit Play, and you are good to go.
Infinite Procedural Terrain
Tessaractic generates an infinite, fully streaming voxel world at runtime using three custom compute shaders. No terrain baking. No chunk pop-in stutter. Drop in the prefab, wire up the pipeline in a few steps, press Play — rolling hills, snow peaks, and atmospheric fog stream endlessly in every direction.
The Tessaractic Advantage
- Pure C# Procedural Generation — Zero reliance on pre-made assets, external libraries, or asset packs.
- GPU-Generated Infinite Terrain — All heavy lifting is offloaded to compute shaders.
- Ultra-Optimized Performance — Capable of running smoothly even on a decade-old Quadro M1200.
- Zero Import Headaches — No complex setups. Drop it in and press Play.
- Pure Portability & Small Size — The entire pipeline is driven by just 12 core files.
- Fully Customizable — Source code is open and heavily commented.
Technical Requirements
| Unity Version | 2022.3 LTS or newer (Tested/Recommended) |
| Render Pipeline | Built-in Render Pipeline & Universal Render Pipeline only (HDRP NOT supported in v1) |
| Graphics API | Compute Shader support required (DX11/12, Metal, Vulkan) |
| Minimum VRAM | 4 GB VRAM (6-8 GB Recommended) |
Quick Start Guide
1. Import: Assets → Import Package → Custom Package. Select
Tessaractic_v1.unitypackage.
2. Setup: Create an Empty GameObject named Terrain & Material Manager.
3. Manager: Attach FranksEquationManager.cs to the empty GameObject.
4. Shaders: Assign the three compute shaders: Franksequation.compute,
DensityGenerator.compute, MarchingCubes.compute.
5. Material: Create a Material named WorldMat and assign it to Terrain
Material.
6. Camera: Assign Main Camera to Player Camera field. Attach
TessaracticFlyCamera.cs. Ensure Tag is set to MainCamera.
7. Lighting: Add a Directional Light. Intensity: 3.5, Color: #FDB813, Soft shadows ON, Rotation X:10, Y:45, Z:0. Very High resolution.
8. Fog: Environment tab → Enable Fog, color #7FA4CC, Linear Mode (10 to 150). Match to
_FogColor in WorldMat. Tick 'Auto Generate'.
9. Day-Night Cycle: Attach the TessaracticDayNightCycle component to your
main Directional Light (or any active controller GameObject in the scene). In the Inspector, assign your
primary Directional Light to the Sun Light field (if left empty, it will auto-detect). Assign the active
FranksEquationManager component to the Terrain Manager field (it will auto-detect if left
empty). Set the Time Progression Speed field to choose how many real-world minutes represent a full
24-hour cycle.
10. Procedural Skybox: Right-click in your project hierarchy → Create → Material. Name
it Skybox_Material. Set the shader of Skybox_Material to
Tessaractic/ProceduralSkybox. Attach the TessaracticSkybox component to an empty GameObject
in your scene (e.g. name it SkyboxManager). In the Inspector, assign your Skybox_Material
to the Skybox Material field. (Optional) Leave the Day Night Cycle empty to allow auto-detection.
11. Procedural Clouds: Right-click in your project hierarchy → Create → Material. Name
it Cloud_Material. Set the shader of Cloud_Material to
Tessaractic/ProceduralClouds. Attach the TessaracticClouds component to an empty GameObject
in the scene (e.g. name it CloudManager). In the Inspector, assign your Cloud_Material to
the Cloud Material field. Leave the Day Night Cycle and Terrain Manager empty (the script will
auto-detect them at runtime). Adjust Cloud Altitude, Cloud Density, and Wind Speed fields directly to
style your sky.
12. Quality: Under Quality Settings, start with Low to confirm functionality.
13. Mesh Renderer: Under Quality Preset, add a 'Mesh Renderer' component. Assign 'WorldMat'.
14. Play: The terrain generates immediately. Use WASD + mouse to navigate.
Do not change these parameters. FBM calibration and fog tuning assume these exact values:
- voxelSize: 0.75
- isoLevel: 0
- blobStrength: 0.0