- Загрузчики
- NeoForge
- Скачиваний на Modrinth
- 1,4 тыс.
- Подписчиков на Modrinth
- 5
- версия
- 1
- Обновлён
- 7 августа 20267 авг.
- Опубликован
- в 2026
Коротко о моде
Нужен в игре; на сервере — по желанию

NeOPoculus
Шейдеры для NeoForge, с миром, который продолжается за пределами дальности прорисовки.
NeOPoculus — это форк NeOculus, который форкает Oculus, который портирует Iris на загрузчики семейства Forge. Всё, что делают те проекты — загрузка шейдерпаков OptiFine/ShadersMod, экран настроек шейдеров в игре, интеграция с Embeddium — их заслуга, и всё это по-прежнему работает здесь.
Этот форк добавляет Horizon: встроенную систему дальнего прорисовывания ландшафта, а также набор исправлений совместимости для модов и платформ, которые раньше падали или ничего не отрисовывали.
Discord · Исходный код · Сообщить об ошибке
Horizon — ландшафт за пределами дальности прорисовки
Horizon записывает ландшафт, который вы исследуете, сохраняет его для каждого мира и измерения и отрисовывает его далеко за пределами дальности прорисовки сервера. Он не требует серверного мода и никаких дополнительных загрузок: всё захватывается из чанков, которые ваш клиент и так получает, поэтому он работает на ванильных серверах, реалмах и в одиночной игре одинаково. Исследованный ландшафт записывается на диск, так что мир сохраняет свою панораму между сессиями.
Детализация убывает с расстоянием в пять ступеней, поэтому дальняя земля остаётся дешёвой. Ближайшее к вам кольцо отрисовывается в полном разрешении блоков и намеренно перекрывает ваши загруженные чанки — именно это делает стык незаметным — и оно заполняет чанки, которые ещё загружаются, так что мир перестаёт появляться рывками на краю вашей дальности прорисовки.
Включено по умолчанию, и отключается одной галочкой.
Два движка
| Classic (по умолчанию) | Voxel (экспериментальный) | |
|---|---|---|
| Хранит | высоту поверхности, высоту воды, один цвет на колонку | настоящие блоки, биом и свет на ячейку |
| Пещеры, нависания, интерьеры | не представлены | представлены |
| Текстуры | плоский цвет на колонку | настоящие текстуры блоков |
| Формы блоков | полные кубы | плиты, снег, ковры, заборы, растения сохраняют свою форму |
| Вода | непрозрачная поверхность | по-настоящему полупрозрачная |
Движок Classic — это карта высот, и именно его вы получаете из коробки: более лёгкий, старый и проверенный. Движок Voxel — новее, и именно в него вложена работа — включите его в разделе Voxel Engine (Experimental), если хотите пещеры, текстуры и настоящие формы блоков на расстоянии. Он честно помечен как экспериментальный: он новее из двух и провёл меньше времени в боевых условиях.
Поддержка шейдерпаков
Дальний ландшафт отрисовывается через ваш шейдерпак, так что он получает собственное освещение пака, туман и тени, вместо того чтобы выглядеть как плоская вырезка, наклеенная на горизонт.
Это происходит двумя способами. Пак, поддерживающий Distant Horizons, имеет программу dh_terrain, и Horizon передаёт свой ландшафт через неё. Пак без такой программы отрисовывается через обычную gbuffers_terrain — которая есть у каждого пака и которая также является единственным путём, показывающим настоящие текстуры блоков.
Из 16 протестированных шейдерпаков 11 отрисовывают затенённый дальний ландшафт:
- Через
dh_terrain— Bliss, BSL, Complementary Reimagined, Complementary Unbound, Sildur's Vibrant Shaders, Solas - Через
gbuffers_terrain— ARTShade, Aurora's Shaders, Kappa, Lux, The Better Default
Пять шейдерпаков сейчас вообще не загружаются с этим модом: iterationT, Noble, PaintBound, photon и Reverie. Они падают во время компиляции шейдеров на уровне Embeddium/Iris с ошибками вроде undefined variable "iris_FogColor". Это дефект самого стека шейдеров, и к Horizon он отношения не имеет — эти паки не работают здесь независимо от того, включён дальний ландшафт или нет. Это известная проблема, а не поддерживаемая конфигурация.
Паки, которых нет в этом списке, не протестированы, а не неподдерживаемы.
Мультиплеер и заранее сгенерированный ландшафт
Администратор сервера может сгенерировать дальний ландшафт заранее, вместо того чтобы ждать, пока игроки его обойдут, и стримить его игрокам по мере подключения — так новый игрок сразу видит весь ландшафт, а не стену тумана, которая медленно отступает.
Команды /horizon lod генерируют ландшафт для зоны, радиуса или всего мира и требуют уровень прав 4 (владелец сервера). Ландшафт, приходящий с сервера, считается недоверенным: id блоков и биомов переводятся в собственную нумерацию клиента, а не принимаются как есть, длины и id проверяются на допустимый диапазон, а бюджет диска ограничивает, сколько сессия примет. Худшее, чего добьётся неисправный сервер, — странно выглядящие дальние пейзажи.
Для генерации LOD командой нужен движок Voxel в одиночном мире.
Использование диска
Дальний ландшафт кэшируется на диск, и размер кэша ограничен. Когда лимит достигнут, вам об этом сообщают, а не оставляют гадать, почему горизонт перестал заполняться. Необязательная автоочистка освобождает место, удаляя сначала самые дальние от вас регионы — земля, на которой вы реально живёте, сохраняется, а дальний край старой экспедиции уходит первым. Кнопка полной очистки стирает кэш целиком, после подтверждения.
Настройки
Все настройки находятся в Настройки графики → Horizon LOD (экран Embeddium или ванильный) и редактируются прямо в игре.
| Настройка | По умолчанию | Что делает |
|---|---|---|
| Horizon LOD | вкл. | Главный переключатель. |
| Voxel Engine | выкл. | Более новый движок: пещеры, текстуры, настоящие формы блоков. |
| Render with shaders | вкл. | Отрисовывать дальний ландшафт через ваш шейдерпак. |
| LOD distance | 256 чанков | Как далеко достаёт дальний ландшафт (16–4096). |
| Distant vegetation | 33% | Сколько дальней травы и цветов рисовать. Обычно самый большой прирост производительности. |
| Per-cell LOD textures | вкл. | Текстуры блоков в натуральную величину под шейдерами; стоит геометрии. |
| Textured LOD under shaders | выкл. | Принудительно использовать путь с текстурами даже на паках, поддерживающих Distant Horizons. |
| LOD memory budget | 256 МБ | Сколько памяти движок Voxel может держать ландшафт перед записью обратно на диск. |
| Auto-clean / purge | выкл. | Управление дисковым кэшем. |
Плюс настройки кольца детализации, скорости загрузки, рабочих потоков и интервала сохранения для тонкой подстройки.
Каждая опция также записывается в config/neoculus-horizon.properties.
Если дальний ландшафт обходится вам слишком дорого: сначала уменьшите Distant vegetation — растения это множество мелких прозрачных квадов, которые стоят на пиксель куда больше, чем сплошная земля. Затем уменьшите LOD distance, а потом отключите Per-cell LOD textures.
Исправления совместимости
Это исправления того, что было сломано раньше, а не новые функции.
Моды, написанные под API Sodium
Очень многие моды для рендеринга написаны под публичный API Sodium. На сборке NeoForge, где вместо него работает Embeddium, таких классов не существует, и такой мод умирает при загрузке с NoClassDefFoundError ещё до того, как вы дойдёте до главного меню.
Этот форк поставляет заглушку для того API — хелперы цвета и нормалей, матричные и низкоуровневые операции с памятью, утилиты для спрайтов, а также распространённые форматы вершин и атрибуты — чтобы эти моды загружались и работали. Они рендерятся через обычный путь, а не через быстрый путь Sodium, и на этом стеке это правильный результат: быстрый путь вежливо сообщает «недоступно», а благоразумный мод откатывается на свой собственный.
Две честные оговорки. Мод, который требует быстрый путь вместо того, чтобы запрашивать его, всё равно откажется работать — API спроектирован с двумя точками входа: «попробовать» и «обязательно иметь», и только первая может корректно деградировать. И только Flerovium был проверен от начала до конца; другие моды на Sodium-API, скорее всего, работают, но не тестировались. Если какой-то не работает, сообщение в Discord или в баг-трекере будет действительно полезным.
LittleTiles
LittleTiles корректно рендерится под Embeddium, включая полупрозрачные тайлы — стеклянные конструкции отображаются как надо, а не исчезают и не рендерятся непрозрачными — и грани правильно пересчитываются при редактировании конструкции, так что тайлы не оставляют дыр или устаревших поверхностей после изменения.
Платформы и драйверы
- macOS — встроенный AcceleratedRendering раньше крашил игру нативно при загрузке мира на железе без поддержки OpenGL compute, а это включает каждый Mac. Теперь это определяется и прозрачно отключается с откатом на ванильный рендеринг.
- Sinytra Connector — больше не крашится во время Initializing game, когда Connector установлен.
- Более строгие драйверы OpenGL — игра больше не отказывается запускаться на драйверах, сообщающих о контексте GL 3.2 core, но предоставляющих 4.x через расширения.
- Мерцание сущностей — сущности, блочные сущности, предмет в руке и рука больше не мигают при движении.
AcceleratedRendering также обновлён с 1.0.0 до 1.0.8.
Требования
- Minecraft 1.21.1
- NeoForge 21.1.0 или новее
- Embeddium — обязателен
Не совместим с OptiFine. Не устанавливайте вместе с Oculus, Iris или NeOculus — этот мод их заменяет.
Известные ограничения
- Никаких цифр по производительности не заявлено. Horizon рисует больше мира, поэтому это стоит дороже, чем не рисовать его. Оправдано ли это, зависит от вашего железа, и настройки выше существуют, чтобы вы могли решить сами.
- Пять из шестнадцати протестированных шейдерпаков не загружаются по причине, не связанной с дальним ландшафтом (см. выше).
- Дальний ландшафт сейчас рисуется двусторонним; односторонний рендеринг запланирован и сделает его дешевле.
- Подземный ландшафт, который вы не видите, всё ещё рисуется. Его отсечение запланировано.
- Движок Classic не может показывать пещеры или нависания — для этого нужен движок Voxel.
Поддержка и баг-репорты
- Discord — вопросы, помощь, отчёты о шейдерпаках
- GitHub issues — баги и краши
- Исходный код
Сообщать о проблеме с рендерингом гораздо полезнее, указав название и версию шейдерпака, ваш latest.log и сохраняется ли проблема при выключенном Horizon LOD — уже одно это отделяет баг Horizon от бага шейдерного стека.
Благодарности и лицензия
Этот мод стоит на работе других людей:
- Iris — шейдерный конвейер, на котором всё здесь построено, от coderbot, IMS и участников
- Oculus — порт для Forge
- NeOculus — форк для NeoForge, на котором основан этот
- Embeddium — обязательный движок рендеринга
- AcceleratedRendering — встроен
- Swaying Garden — встроен
Horizon вдохновлён Distant Horizons и Voxy, но не использует их код.
Лицензирован под LGPL-3.0, унаследованной от Iris.
БЕЙДЖИ ВВЕРХУ СОДЕРЖАТ ЗАГЛУШКИ. Они отображаются как сломанные, пока проекты не существуют, так что заполните их в первую очередь:
neopoculus -> настоящий слаг CurseForge, в обоих URL way2muchnoise neopoculus -> настоящий слаг или ID проекта Modrinth, в URL shields.io 0000000000000000 -> ID СЕРВЕРА Discord, а не код приглашения (Discord > Настройки сервера > Виджет > включить, затем скопировать ID сервера; бейдж не может читать количество участников из ссылки-приглашения) banner.png -> настоящий баннер, или удалите блокГде должен находиться каждый ряд бейджей: GitHub README - все они, для этого бейджи и нужны Modrinth - внешние изображения ограничены одобренными хостами; shields.io обычно работает, way2muchnoise может не работать. Проверьте предпросмотр и уберите всё, что отображается как сломанный квадрат. CurseForge - он уже показывает своё количество загрузок и версии игры над описанием, так что первые два бейджа там избыточны. Оставить только Discord и лицензию читается лучше.
КНОПКИ-ССЫЛКИ В БОКОВОЙ ПАНЕЛИ НЕ БЕРУТСЯ ИЗ ЭТОГО ФАЙЛА. Оба сайта строят эти блоки из полей в настройках проекта, а не из текста описания. Ссылки выше — для людей, читающих страницу; кнопки нужно вводить отдельно, иначе они просто не появятся.
Modrinth — Настройки > Ссылки: Исходный код https://github.com/Frenk012/NeOPoculus Трекер задач https://github.com/Frenk012/NeOPoculus/issues Discord https://discord.gg/6WADV66Frv (Настройки > Ссылки > Приглашение в Discord)
CurseForge — Проект > Настройки > Общие, раздел "Ссылки": Исходный код https://github.com/Frenk012/NeOPoculus Проблемы https://github.com/Frenk012/NeOPoculus/issues Discord https://discord.gg/6WADV66Frv CurseForge показывает кнопку "Проблемы" только когда поле заполнено И в репозитории включены issues, так что сначала проверьте это на GitHub.
СДЕЛАЙТЕ РЕПОЗИТОРИЙ ПУБЛИЧНЫМ И ВКЛЮЧИТЕ ISSUES. Ссылка на трекер задач к приватному репозиторию или репозиторию с отключёнными issues хуже, чем отсутствие ссылки.
СКРИНШОТЫ. Самая сильная пара — одна и та же точка обзора с выключенным и включённым Horizon. Крупный план на уровне земли, показывающий стык с загруженными чанками, — второй по убедительности, потому что этот шов — то, что люди ожидают увидеть испорченным в моде на дальний ландшафт. Обе платформы отображают Markdown-изображения:
По возможности размещайте их в собственной галерее проекта — внешние хостинги изображений ограничены на обоих сайтах, и заблокированное изображение оставит пустой квадрат.ПРОВЕРЬТЕ ФАКТЫ ПЕРЕД РЕЛИЗОМ. Версию, диапазоны Minecraft и NeoForge — по gradle.properties; списки шейдерпаков — по свежему прогону
./gradlew runShaderTest. Списки паков — та часть, что скорее всего устареет, и та часть, которую читатели будут проверять.- ФОРМАТ. Modrinth принимает этот файл как есть во вкладке "Описание". CurseForge принимает Markdown, но вырезает HTML-комментарии вроде этого — вставляйте всё выше горизонтальной линии, а не этот блок. -->
Частые вопросы
Как установить NeoPoculus?
Установите NeoForge под свою версию Minecraft, скачайте NeoPoculus под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть NeoPoculus?
У NeoPoculus есть сборки для Minecraft 1.21.1.
Нужен ли NeoPoculus на сервере?
Нужен в игре; на сервере — по желанию