- Загрузчики
- FabricNeoForgeForge
- Скачиваний на Modrinth
- 7 тыс.
- Подписчиков на Modrinth
- 3
- версии
- 34
- Обновлён
- 21 октября 202621 окт.
- Опубликован
- в 2026
Коротко о моде
Ставится только в игру; на сервер ставить не нужно
Требует Create & CrankShaft Bridge для работы с Create Fly и Create Adapted
О моде
CrankShaft — это неофициальный порт Flywheel на Minecraft 26.2, продолжающий работу Jozufozu и команды Engine-Room, а также собственный бэкпорт CrankShaft на 1.12.2. Работает на NeoForge и Fabric. Поддержка шейдерпаков Iris — это адаптация Colorwheel: контракт шейдерпаков Colorwheel и wavelet OIT, перестроенные на рендерере CrankShaft. Мод не связан с Flywheel, Colorwheel или их мейнтейнерами, не одобрен и не поддерживается ими. Баги в CrankShaft — это баги CrankShaft, а не их — пожалуйста, сообщайте о них здесь.
Вместе с CrankShaft поставляется Vanillate — аналог Vanillin для 26.2: инстансный рендеринг ванильных сущностей и блочных сущностей через Flywheel. Он встроен в jar CrankShaft и по умолчанию отключён — пока вы его не включите, он ничего не регистрирует, и ванильный рендеринг работает как обычно. Включите его через "enabled": true в config/vanillin.json (Fabric) или enabled = true в config/vanillin-client.toml (NeoForge). После этого отдельные сущности и блочные сущности можно включать или отключать для каждой записи в том же файле.
Возможности
- OpenGL и Vulkan. Нативные бэкенды для обоих графических API Minecraft 26.2, выбираются автоматически.
- Шейдерпаки Iris. Инстансная графика рендерится через собственные программы активного шейдерпака, включая его проход теней, вместо того чтобы отключаться.
- Order-independent transparency (OIT). Перекрывающиеся полупрозрачные инстансы смешиваются корректно без сортировки. Доступно пять методов; см. OIT.
- Интеграция с ландшафтом. Полупрозрачный ландшафт чанков по умолчанию участвует в том же OIT, что и инстансы. С Sodium CrankShaft также может отсекать и отрисовывать непрозрачный ландшафт на GPU; см. Ландшафт.
Требования
- Minecraft 26.2 с NeoForge или Fabric (+ Fabric API) и Java 25+.
- Опционально: Sodium 0.9.2 или новее, но ниже 0.10. Нужен для режимов ландшафта
opaque/fullи бэкендов с mesh-шейдерами. - Опционально: Iris для шейдерпаков (собран против 1.11.4). Требует OpenGL.
Бэкенды
CrankShaft выбирает лучший поддерживаемый бэкенд для вашего железа. /flywheel backend показывает или меняет его.
| Бэкенд | API | Выбирается по умолчанию | Примечания |
|---|---|---|---|
flywheel:vk_indirect | Vulkan | Да | GPU-отсечение + indirect-отрисовка. |
flywheel:vk_mesh_shader | Vulkan | Нет | Mesh-шейдеры (VK_EXT_mesh_shader). Требует Sodium. |
flywheel:indirect | OpenGL | Да, кроме GPU Intel | GPU-отсечение + indirect-отрисовка. |
flywheel:gl_mesh_shader | OpenGL | Нет | Mesh-шейдеры, только NVIDIA (GL_NV_mesh_shader). Требует Sodium. |
flywheel:instancing | OpenGL | На GPU Intel; запасной вариант | Инстансная отрисовка без GPU-отсечения. |
flywheel:iris_indirect, flywheel:iris_instancing | OpenGL | Пока активен шейдерпак | Отрисовка через программы шейдерпака; см. Iris. |
flywheel:off | — | Нет | Отключает рендеринг CrankShaft; ваниль рисует всё сама. |
Если запрошенный бэкенд не поддерживается, CrankShaft переключается на следующий поддерживаемый. Пока активен шейдерпак, выбор нативного бэкенда OpenGL выбирает его аналог iris_.
Vulkan
Minecraft 26.2 может рендерить через Vulkan: Options → Video Settings → Graphics API → Vulkan, затем перезапустите игру. CrankShaft определяет рендерер Vulkan и переключается на свои бэкенды Vulkan; никаких настроек CrankShaft не требуется.
На NeoForge также установите earlyWindowControl = false в config/fml.toml. Экран загрузки NeoForge работает только на OpenGL, и без этого изменения игра не запустится на Vulkan.
Функции рендеринга одинаковы на обоих API; только поддержка шейдерпаков требует OpenGL.
Шейдерпаки Iris
С Iris и включённым шейдерпаком CrankShaft переключается на свои бэкенды iris_ и рендерит инстансы через собственные программы пака, включая тени. Ничего настраивать не нужно.
- Паки, реализующие контракт шейдерпаков Colorwheel (программы
clrwl_иcolorwheel.properties), используют его напрямую, включая его OIT там, где пак его включает. - Встроенные адаптеры восполняют пробелы в конкретных паках (см. ниже). Адаптер проверяет фактические исходники шейдеров пака, а не его имя файла или версию. Если пак изменился, адаптер пропускается целиком, и пак возвращается к общему пути.
- Другие паки рендерят инстансы через свои стандартные программы, без OIT.
- Под шейдерпаком OIT следует собственным настройкам пака;
/flywheel oit modeприменяется только к бэкендам без Iris.
Протестированные шейдерпаки:
| Шейдерпак | Версия | Контракт Colorwheel | Встроенный адаптер | OIT |
|---|---|---|---|---|
| Complementary Reimagined | r5.9.3 | Да | Да | Да |
| Complementary Unbound | r5.9.3 | Да | Да | Да |
| Solas | V3.7b | Да | Да | Да |
| BSL | v10.1.5 | Нет | Да | Да |
| MakeUp UltraFast | 9.5e | Нет | Да | Да |
| Sundial | Alpha Build 2026-08-28 | Да | Да | По желанию, -Dcrankshaft.iris.oit.deferred=true ниже |
| IterationRP | Alpha 0.8.28 | Да | Да | Нет (пак отключает его) |
| Bliss | v2.1.2 (Chocapic13 edit) | Нет | Нет | Нет |
| Sildur's Vibrant Shaders | v2.01 Extreme | Нет | Нет | Нет |
| Photon | v1.3b | Нет | Нет | Нет |
Инстансы, отрисованные через пак, могут немного отличаться от того, что выдал бы собственный рендерер пака.
Экспериментальные опции, по умолчанию выключены, включаются аргументами Java в вашем лаунчере:
| Аргумент | Эффект |
|---|---|
-Dcrankshaft.iris.terrain=true | Рисует ландшафт чанков через программы ландшафта пака с GPU-отсечением. Используйте с /flywheel terrain full (или opaque) и Sodium. |
-Dcrankshaft.iris.mesh=true | С аргументом выше: ландшафт на mesh-шейдерах. flywheel:iris_mesh_shader тогда выбирается на поддерживаемых GPU NVIDIA. |
-Dcrankshaft.iris.mesh.direct=true | С обоими аргументами выше: непрозрачный ландшафт пропускает отсечение на task-шейдерах, снижая его накладные расходы. |
-Dcrankshaft.iris.oit.deferred=true | Многослойный OIT для отложенных прозрачных объектов Sundial. Стоит значительного времени GPU и памяти. |
Команды
Команды клиентские; изменённые ими настройки сохраняются в файл конфигурации. Автодополнение по Tab перечисляет все варианты.
| Команда | Действие |
|---|---|
/flywheel backend | Показать активный бэкенд. |
`/flywheel backend //flywheel backend DEFAULT` | Использовать конкретный бэкенд / позволить CrankShaft выбрать самому. Перезагружает рендереры. |
/flywheel terrain off|translucent|opaque|full | Режим интеграции с ландшафтом; см. ниже. |
/flywheel oit | Показать метод OIT, лимиты слоёв и режим погоды. |
/flywheel oit mode auto|wavelet|kbuffer|mlab|abuffer | Выбрать метод OIT; см. ниже. |
/flywheel oit layers <0-32> | Лимит слоёв активного метода вставки (0 = его пресет). |
/flywheel oit reset | Вернуть все лимиты слоёв к пресетам. |
/flywheel oit exactweather true|false | true: дождь и снег сортируются по фрагментам относительно других полупрозрачных объектов. false (по умолчанию): погода смешивается как один слой, что гораздо дешевле во время дождя. |
| `/flywheel lightSmoothness ` | flat, tri_linear, smooth (по умолчанию) или smooth_inner_face_corrected. |
/flywheel limitUpdates on|off | Реже обновлять далёкие инстансы (по умолчанию включено). |
/flywheel debug info | Версия, бэкенд, настройки и количество визуалов/инстансов; полезно для баг-репортов. |
/flywheel debug gpuTimer on|off|once|summary | Тайминги GPU по проходам. |
Порядконезависимая прозрачность
| Режим | Метод |
|---|---|
auto (по умолчанию) | mlab там, где GPU поддерживает fragment-shader interlock, иначе wavelet. |
wavelet | Многопроходная вейвлет-пропускаемость Flywheel. Работает везде. |
kbuffer | Хранит первые K фрагментов, попавших в каждый пиксель (пресет 4), затем сортирует их. |
mlab | Многослойное альфа-смешивание: K отсортированных слоёв (пресет 8). Требует fragment-shader interlock. |
abuffer | Списки фрагментов на пиксель с разрешением ближайших N (пресет 16). Наибольшее потребление памяти. |
wavelet — всегда приближение. kbuffer, mlab и abuffer — однопроходные методы вставки и точны, пока ни у одного пикселя не больше полупрозрачных фрагментов, чем бюджет слоёв (K, или N для abuffer). После превышения бюджета kbuffer отбрасывает лишние фрагменты независимо от глубины, mlab объединяет самые дальние слои, а abuffer отбрасывает самые дальние. abuffer к тому же точен только пока не исчерпан его пул фрагментов — 8 на экранный пиксель по всему кадру. Больше слоёв сохраняет точность более глубоких стопок витражного стекла ценой более высокой нагрузки на GPU.
В OpenGL методы вставки работают на GPU-driven бэкендах (indirect, gl_mesh_shader); instancing всегда использует wavelet. Без fragment-shader interlock mlab откатывается к wavelet.
Режимы ландшафта
| Режим | Непрозрачный ландшафт | Полупрозрачный ландшафт (вода, стекло, лёд) | Требуется |
|---|---|---|---|
off | Vanilla / Sodium | Vanilla / Sodium | — |
translucent (по умолчанию) | Vanilla / Sodium | CrankShaft OIT, смешивается с инстансами | Любой бэкенд, Sodium опционален |
opaque | CrankShaft, GPU-culled | Sodium | Sodium, GPU-driven бэкенд |
full | CrankShaft, GPU-culled | CrankShaft OIT, смешивается с инстансами | Sodium, GPU-driven бэкенд |
GPU-driven бэкенды — это indirect, gl_mesh_shader, vk_indirect и vk_mesh_shader. На других бэкендах или без Sodium opaque ведёт себя как off, а full — как translucent.
Настройка
Команды записывают те же файлы, которые вы можете редактировать вручную: config/crankshaft.json на Fabric, config/flywheel-client.toml на NeoForge. Настройки: backend, limitUpdates, workerThreads, useCommonPool, а в flw_backends: lightSmoothness, terrain и настройки OIT.
Частые вопросы
Как установить CrankShaft?
Установите Fabric под свою версию Minecraft, скачайте CrankShaft под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть CrankShaft?
У CrankShaft есть сборки для Minecraft 1.12.2, 26.2–26.3.
Нужен ли CrankShaft на сервере?
Ставится только в игру; на сервер ставить не нужно