All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Circular Rendering

Circular Rendering

by Uniaball • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Circular Rendering

English | 中文

This is a Fabric mod that modifies chunk rendering to a circular (or elliptical) shape around the player.
By default, it renders chunks within a perfect circle (radius = view distance × 16 blocks).
You can optionally scale the left/right radius to create an ellipse, culling more chunks to the sides while keeping forward/backward visibility unchanged. This reduces GPU load and improves FPS without affecting gameplay mechanics.

Features

  • Renders chunks in a circle centered on the player (default behavior).
  • Optional elliptical rendering: the forward/backward radius remains fixed, while the left/right radius is scaled by a configurable factor (renderRadiusScale).
    • When renderRadiusScale = 1.0, it's a perfect circle.
    • When renderRadiusScale < 1.0, it becomes an ellipse (narrower left/right).
  • Optional vertical range limitation: limit rendering to a certain number of chunk layers above and below the player.
  • Chunk loading (logic updates) remains square, so all chunks are still loaded and updated.
  • Presets & Custom Mode: Quickly switch between predefined configurations (Balanced, Performance, Aggressive) or choose Custom to freely adjust all parameters.
  • Compatible with Sodium:
    • When Sodium is present, configuration appears in the Video Settings screen.
    • Without Sodium, the mod works standalone using a JSON config file.
  • No effect on entities or other objects – only chunk rendering is affected.

Dependencies

Installation

  1. Install Fabric Loader.
  2. Download the latest circular-rendering-<version>.jar from the Releases page.
  3. Put the JAR into your mods folder.
  4. (Optional) Install Sodium if you want the in-game configuration sliders and presets.

Configuration

With Sodium installed

  1. Go to Options → Video Settings.
  2. Scroll down to find the Circular Rendering section.

Presets

  • Render Preset dropdown:
    • Balanced: Render Radius Scale = 100%, vertical range disabled (vanilla behavior, but still optimized).
    • Performance: Render Radius Scale = 80%, vertical range enabled, 10 layers.
    • Aggressive: Render Radius Scale = 40%, vertical range enabled, 3 layers.
    • Custom: All sliders become unlocked, allowing you to freely adjust the parameters below.

Selecting a non‑Custom preset automatically applies its parameters and locks the manual controls.

Manual Configurations (available only when “Custom” preset is selected)

  • Render Radius Scale (10% – 100%):
    • 100% = perfect circle (radius = view distance × 16).
    • Lower values make the left/right radius smaller, turning the circle into an ellipse and culling more chunks to the sides.
  • Enable Custom Vertical Range (toggle) – when enabled, you can set:
    • Vertical Range (1–32 layers): Number of chunk layers (16 blocks each) to render above and below the player.

Without Sodium

The mod creates a JSON config file at config/circular-rendering.json.
Example content:

{
  "renderRadiusScale": 1.0,
  "enableVerticalRange": false,
  "verticalRange": 16,
  "preset": "BALANCED"
}
  • renderRadiusScale – a double between 0.1 and 1.0.
    • 1.0 = perfect circle.
    • < 1.0 = ellipse (narrower left/right).
  • enableVerticalRange – a boolean, enables vertical range limiting when true.
  • verticalRange – an integer (1–32), number of chunk layers to render above and below the player (each layer = 16 blocks).
  • preset – one of "BALANCED", "PERFORMANCE", "AGGRESSIVE", or "CUSTOM".
    • If the preset is not "CUSTOM", the three manual parameters are ignored and the preset's values are used.
    • If the preset is "CUSTOM", the manual parameters are used exactly as set.

Changes take effect after restarting the game or reloading chunks.

How It Works

  • Vanilla mode (no Sodium): The mod injects into LevelRenderer.cullTerrain and filters the chunk list using the shape defined by:

    (forward² / a²) + (right² / b²) ≤ 1

    where a = view distance × 16 (fixed forward/backward radius) and b = a × renderRadiusScale (left/right radius).
    When b = a, the shape is a circle. If vertical range is enabled, it also checks chunk Y layers.

  • Sodium mode: The injection point depends on the Minecraft version:

    • MC 26.1.2 and above: The mod redirects the testDistance call inside OcclusionCuller.visitNode. This replaces Sodium's default cylindrical distance check with the elliptical formula directly within the graph‑based occlusion culling traversal, preserving the full culling structure.
    • MC 26.1.1 and below: The mod injects into OcclusionCuller.isWithinRenderDistance and returns false for chunks outside the ellipse (or vertical range), effectively filtering them from Sodium's visible set.

Both approaches only affect chunk rendering; chunk loading remains square, so game mechanics (redstone, entity AI, etc.) work normally everywhere.

Compatibility

  • Support status of Minecraft versions:
Versions Support Status
26.2 ✅
26.1.2 ✅
26.1.1 ✅
26.1 ✅
1.21.11 ✅
Lower versions Will not support
  • Fully compatible with Sodium 0.8.6+ (both mods can be used together).
  • Should be compatible with most other mods that don't heavily modify chunk rendering. If you encounter issues, please report them.

Building from Source

Clone the repository and run:

./gradlew build

The built JAR will be in build/libs/.

License

This project is licensed under the MIT License. See the LICENSE file for details.

How to Install Circular Rendering (Mod)

Circular Rendering by Uniaball is verified for Fabric across Minecraft versions 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2 (latest release: 1.0.6.1+mc26.2, file size: 32 KB). Follow the steps below to install it safely from ModCraft.tv:

  1. Click the Download button above and select your Minecraft version (1.21.11, 26.1, 26.1.1, 26.1.2, 26.2) and platform (Fabric).
  2. Make sure you have the compatible loader or environment installed for Fabric.
  3. Move the downloaded Circular Rendering file into your Minecraft .minecraft/mods folder and launch the game.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.2
Fabric
2mo ago 1
26.1.2
Fabric
4mo ago 1
26.2
Fabric
5mo ago 1
26.1.x
Fabric
5mo ago 1
26.1.x
Fabric
6mo ago 1
26.1.x
Fabric
7mo ago 1
1.21.11
Fabric
7mo ago 1
26.1.x
Fabric
7mo ago 1
26.1
Fabric
7mo ago 1
1.21.11
Fabric
7mo ago 1
1.21.11
Fabric
8mo ago 1
1.21.11
Fabric
8mo ago 1
1.21.11
Fabric
8mo ago 1
1.21.11
Fabric
8mo ago 1
1.21.11
Fabric
8mo ago 1
# English
## What's New
  • Remove the obsolete SuperFastMath
  • Update dependencies' versions
# 中文
## 更新内容
  • 移除弃用的 SuperFastMath
  • 更新依赖版本
# English
## What's New
  • Support 26.2
  • Optimize Mixin injection
  • Update dependencies' versions
# 中文
## 更新内容
  • 支持 26.2
  • 优化 Mixin 注入
  • 更新依赖版本
# English
## What's New
  • Update dependencies' versions
  • Add a reminder for the custom preset
# 中文
## 更新内容
  • 更新依赖版本
  • 为 自定义 预设添加注释
# English
## What's New
  • Delete the Enable Custom Configuration option, add CUSTOM to the preset options
  • Optimize the logic of the configuration page
  • Update dependencies' versions
# 中文
## 更新内容
  • 删除 启用自定义配置 选项,在预设中添加 自定义 选项
  • 优化配置页面逻辑
  • 更新依赖版本
# English
## What's New
  • Support 26.1.2
  • Fix the issue of mismatching preset values
  • Update dependencies' versions
# 中文
## 更新内容
  • 支持 26.1.2
  • 修复预设数值不匹配问题
  • 更新依赖版本
# English
## What's New
  • Support 26.1.2
  • Fix the issue of mismatching preset values
  • Update dependencies' versions
# 中文
## 更新内容
  • 支持 26.1.2
  • 修复预设数值不匹配问题
  • 更新依赖版本
# English
## What's New
  • Support 26.1.1
  • Improve performance
# 中文
## 更新内容
  • 支持 26.1.1
  • 进行一些性能优化
# English
## What's New
  • Fix the issue where preset functions cannot be used in non sodium mode
  • Update the version of dependencies
  • Support 26.1
# 中文
## 更新内容
  • 修复在无 sodium 模式时预设功能无效的问题
  • 更新依赖版本
  • 支持 26.1
# English
## What's New
  • Fix the issue where preset functions cannot be used in non sodium mode
  • Update the version of dependencies
  • Support 26.1
# 中文
## 更新内容
  • 修复在无 sodium 模式时预设功能无效的问题
  • 更新依赖版本
  • 支持 26.1
# English
## What's New
  • Add a feature that allows users to adjust rendering presets on the mod configuration page
  • Add a description of the corresponding features in the README
  • Update gradle version to 9.4.1
# 中文
  • 添加预设功能,可以在模组配置页面进行预设调整
  • 在 README 文件中添加对应功能的描述
  • 更新 gradle 版本到 9.4.1
# English
## What's New
  • Update the mod icon and display it on the configuration page
# 中文
## 更新内容
  • 更新模组图标并在配置页面显示
# 中文
## 调整内容
  • 更新 Gradle 版本到 9.4.0
  • 微调 README 的内容并默认使用英文 README
  • 不再依赖 Fabric API
# English
## Adjusted Content
  • Update Gradle version to 9.4.0
  • Slightly adjust the content of README and the English README is used by default
  • No longer dependent on Fabric API
# 中文
## 新特性
  • 椭圆渲染:左右半径可缩放(10%–100%),前后半径固定为视距×16;缩放<100%时渲染区域变为椭圆,更激进剔除侧面区块。
  • 默认配置文件:启动时自动生成 circular-rendering.json(位于 .minecraft/config/),包含所有配置项。
  • 垂直范围控制:新增开关及层数设置(1–32层),限制玩家上方和下方的区块渲染。
## 优化
  • 性能优化:优化剔除算法,减少计算开销,提升渲染效率。
# English
## New Features
  • Elliptical Rendering: Left/right radius can be scaled (10%–100%), while forward/backward radius remains fixed at view distance × 16. When scale <100%, the render area becomes an ellipse, culling side chunks more aggressively.
  • Default Config File: A configuration file circular-rendering.json is now automatically generated on startup in .minecraft/config/, containing all available options.
  • Vertical Range Control: Added toggle and range setting (1–32 layers) to limit chunk rendering above and below the player.
## Optimizations
  • Performance Optimizations: Improved culling algorithm reduces computation overhead, enhancing rendering efficiency.
Circular Rendering Icon
Download Circular Rendering
Select game version
Select platform