OmniGenСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (52)
release
OmniGen 0.3.39
0.3.3922 окт. 2026 г.50Minecraft: 1.21.1neoforge
Что нового
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/pfKNDRfcQbY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
# OmniGen 0.3.39
> Publiée le 22/10/2026 (version ouverte le 18/10). Validée en jeu le 22/10 (NeoForge 1.21.1, Sodium + Iris, RTX 5070) :
> 200 à 290 FPS au détail maximal avec le shaderpack Miniature, portée détaillée jusqu'à 128 chunks sur une carte de 12 Go.
---
# ✨ Nouveautés
## 🎬 Mode cinéma (nouveau)
Pour tourner une bande-annonce ou une vidéo sans toucher à la souris.
- **F7** lance (ou arrête) un script de caméra ; **F8** note la position et le regard exacts dans
`.minecraft/omnigen/cinema/reperes.txt`. Les deux touches sont réassignables (Commandes → OmniGen).
- Le script est un fichier texte, `.minecraft/omnigen/cinema/script.txt` (créé avec un exemple), relu à chaque
lancement : on le modifie jeu ouvert. Une étape par ligne :
- `attendre 3`
- `bouger duree=4 incline=-25` — relève la tête (+ = vers le bas, comme Minecraft) ;
- `bouger duree=12 tourne=+140` — panoramique ;
- `bouger duree=6 avance=30 monte=8 fov=60` — travelling, champ de vision ;
- `bouger duree=5 x=… y=… z=… yaw=… pitch=…` — vers une position et un regard absolus ;
- `courbe=douce` (défaut), `lineaire`, `entree`, `sortie`.
- **F9** remet les repères à zéro (l'ancien fichier est gardé, renommé avec la date).
- Fluide à chaque image : la pose est calculée pour l'instant exact de l'image, pas au tick. Pendant la lecture :
interface masquée, oscillation de vue coupée, souris ignorée ; tout revient à la fin.
## 🎚️ Profil d'utilisation : Normal, Streamer, Petit PC
- Constat : en enregistrant une vidéo, OmniGen occupait tant la carte graphique que l'encodeur d'OBS ne
suivait plus ; et l'ancien choix « Affichage » (Stream / Dev / Discret) ne réglait que les messages. Il devient un
**profil** qui règle ce qu'OmniGen PREND (les FPS du jeu ne sont jamais plafonnés) :
- **Normal** : OmniGen prend ce qu'il faut ;
- **Streamer** : même rendu que Normal ; moitié moins de fils de maillage, mémoire vive d'OmniGen ≤ 1,5 Go ; le chat
d'OmniGen se tait et la barre d'action ne montre plus de coordonnées, mais garde les informations vitales (région
voisine verrouillée pendant sa génération, chargement du terrain, portail prêt). Un premier essai bornait le temps
de carte du LOD à 3 ms : mesuré en jeu, le LOD coûte déjà 3,2-4,7 ms au détail minimal (coût fixe du fond et de
l'horizon) — le détail s'effondrait en méga-blocs sans rien libérer, le jeu remplissant la marge avec plus d'images.
Abandonné : pour laisser de la place à l'encodeur, c'est la limite d'images de Minecraft qui compte ;
- **Petit PC** : réglages de petite machine (réserve ≤ 1 Go, mémoire ≤ 768 Mo, 2 fils, 3 M triangles de détail au
lieu de 10 M), terrain lointain voxel borné à 128 chunks (l'horizon lissé prend le relais au-delà).
Passer à un profil aux plafonds plus bas (Petit PC) reconstruit tout le terrain lointain (premier essai : la géométrie
déjà construite dépassait le nouveau plafond → plus rien ne se rangeait, anneau de trous) ; Normal ↔ Streamer ne
reconstruit rien (une reconstruction repasse d'abord par des cases grossières avant l'affinage).
- **Choix intelligent** : au premier lancement, une machine détectée « petite » (puce intégrée, moins de 3 Go de mémoire
vidéo, moins de 7 Go de RAM ou 4 cœurs au plus) passe d'elle-même en Petit PC, avec un message. Et quand **OBS Studio,
Streamlabs, XSplit ou Twitch Studio** est ouvert hors profil Streamer, OmniGen le recommande dans le chat, avec un
lien qui bascule en un clic (commande `/omnigenprofil normal|streamer|petit_pc`) ; à la fermeture du logiciel, il
propose de revenir en Normal. La liste des programmes est relue toutes les 20 s par un fil de fond.
- **Portails : plus de coordonnées à l'écran**, pour personne (le serveur ne connaît pas le profil du joueur) : « Portail
prêt → le Nether (lié au portail d'en face) », « Portail « Base » → Nether ». Elles restent dans le journal du serveur.
- **Infos développeur** (options avancées) remplace l'ancien mode « Dev » : messages détaillés, et une ligne de mesure sous
le compteur de FPS (temps de carte du LOD, réserve, portée, profil).
## 💻 OmniGen s'adapte à la machine (nouveau)
Constat (18/10, journal d'un joueur sur portable) : AMD Radeon Graphics intégrée, 6 Go de RAM, 2 Go donnés à Java,
OmniGen seul sans Sodium → 5 à 15 FPS. La mémoire vidéo n'était lue que sur NVIDIA : une puce intégrée recevait les
plafonds d'une carte de 8 Go.
- Au démarrage, OmniGen lit la carte graphique (et reconnaît les puces intégrées Intel et AMD), la mémoire vidéo
(NVIDIA et désormais AMD), la RAM de l'ordinateur, la mémoire donnée à Java, les cœurs et la présence de Sodium.
Il en déduit un palier : petite, moyenne ou grande machine (`[OmniGen/Machine]` dans le journal).
- Petite machine : géométrie du terrain lointain plafonnée (proche 384 Mo, anneau fin 192 Mo, couverture 256 Mo),
un seul fil de prédiction, portée par défaut 24 chunks (une seule fois, jamais si le joueur l'a changée).
Machine moyenne : plafonds intermédiaires, portée par défaut 40.
- Un message en jeu annonce le palier, conseille la mémoire à donner à Minecraft pour CETTE machine (la moitié de la
RAM, entre 3 et 6 Go) et Sodium s'il est absent.
- Bascule « Profil de la machine » (options avancées) pour revenir aux réglages complets.
## 🌍 English
- Ticket de KorinMC (21/10) : « There are no languages except French ». Toute l'interface du client est maintenant
traduite en anglais : écran des options, options avancées (les ~106 réglages et leurs descriptions), paliers LOD,
choix du terrain lointain, carte et repères, compteur de FPS, messages du chat (profil de la machine, versions,
mode cinéma, murs de génération). Le jeu en français garde le texte d'origine ; toute autre langue reçoit l'anglais.
- Les noms des réglages restent leurs identifiants (configuration enregistrée, préréglage sûr) : seule leur
AFFICHAGE est traduit (`client/Tr`, table `assets/omnigen/i18n/en.json`). Les réponses des commandes serveur
restent en français pour l'instant.
- Bouton YouTube des options : nouvelle chaîne **@OmniGenMod**. Bouton Discord : nouvelle invitation `discord.gg/9GnnmJVwaU`.
- Sonde au viseur, touche **F6** : écrit dans le journal ce que le terrain lointain dessine là où l'on regarde (bloc,
prédit ou réel, finesse, sprites, teinte, couleur lue dans l'atlas, peinture, motif) et l'état de l'horizon au même
endroit (`[OmniGen/Sonde F6]`).
## 🏔️ Horizon lointain lissé (nouveau, palier 3 du terrain prédit)
Constat (21/10, comparatif contre Distant Horizons) : FPS égaux, mais DH voyait plus loin. Les voxels prédits s'arrêtaient
au rayon de prédiction (384 chunks) alors que la distance réglée allait jusqu'à 1 024 chunks : entre les deux, rien.
- Au-delà des voxels et jusqu'à la distance réglée, un **relief continu** : tuiles de 512 × 512 blocs, grille de hauteurs
au pas de 32, 64 ou 128 blocs selon la distance, normales lissées d'une tuile à l'autre, jupes contre les fentes.
- Hauteurs calculées depuis la **densité réelle du datapack** (compatible Terralith, Biomes O' Plenty, JJThunder…), couleur
du **biome exact** par point, roche sur les pentes, neige en altitude, eau sous le niveau de la mer.
- Calcul en arrière-plan (1 ou 2 fils à priorité minimale selon la machine), **gardé sur le disque**
(`.minecraft/omnigen/horizon/`) : la seconde visite est instantanée. Journal `[OmniGen/Horizon]` toutes les 30 s.
- Profil machine : horizon plafonné à 6 km sur petite machine, 10 km sur machine moyenne.
- Bascule « Horizon lointain lissé » (options avancées, allumée par défaut).
- **Mélange colonnes / lissé** (les blocs ne doivent pas trop grossir, même à la lunette) : colonnes
façon Minecraft de 4 blocs jusqu'à 2,5 km, de 8 blocs jusqu'à 5 km (relief lu tous les 16 blocs, interpolé, arrondi
au bloc ; dessus fusionnés, flancs seulement aux marches, terre sous l'herbe, roche aux marches raides) ; relief lissé
au-delà (32 → 64 → 128). Petite machine : lissé seulement.
- Comble les manques RÉELS de voxels (région par région), plus seulement au-delà du rayon de prédiction ; dessin groupé
(le programme est réglé une fois par image au lieu d'une fois par tuile : −25 ms de processeur mesurés).
## 🗺️ L'horizon prédit sur la carte
- Toute la distance générée se voit maintenant sur la carte. Au-delà du terrain voxel, la carte lit les tuiles de l'horizon sur le disque (pas de 16 à 128 blocs), hachurées
comme le reste du prédit. Ligne `[OmniGen/Carte]` : « pixels pris à l'horizon prédit ».
## 🟫 Peinture à motif
- Dans un même carré de peinture, plusieurs petits carrés, comme les textures de Minecraft. Chaque face peinte est
découpée en cases de la taille du motif d'origine ; chacune prend l'une des 16 couleurs de la vraie texture réduite à 4×4, selon sa position. Sur les flancs, la rangée du haut (liseré d'herbe) ne
va qu'au sommet. Même géométrie que les flancs tuilés d'avant la peinture. Bascule « Peinture à motif ».
- Plus de grain (un arbre au loin ne doit plus être un vert uniforme) : le motif garde 85 % de l'écart
à la couleur moyenne (au lieu de 60 %), ±30 % de luminance (au lieu de ±18 %) et les trois quarts de sa teinte.
## 🧰 Menu des options avancées
- Neuf bascules étaient invisibles (absentes de toute catégorie) : hauteur et pente des fluides, escaliers en
demi-bloc, plafond et brouillard du Nether, fondu « cape d'invisibilité », LOD à plat près de vous, et les deux
sondes de diagnostic. Elles sont rangées et ont leur valeur dans le préréglage sûr.
---
# 🎨 Rendu du terrain lointain
## ⛰️ Détail sur les montagnes du fond lointain
- Les montagnes ne sont plus des méga-blocs (le plat peut rester en gros blocs). Le relief de chaque
région (écart de surface entre ses chunks, lu dans les résumés déjà calculés) décide : au-delà de 28 blocs d'écart,
la région passe en cases de 8 (jusqu'à 350 chunks) puis de 12 (jusqu'à 700), au lieu de 16. Les plaines gardent leurs
grandes cases. Sous le plafond de mémoire du fond. Bascule « Détail sur les montagnes ».
## 🎨 Flancs peints au loin
- Quand la texture serait trop étirée, une peinture qui lui ressemble la remplace. Sur les
paliers grossiers, le flanc d'herbe répété une fois par case de 4 à 12 blocs empilait des coulures vertes géantes sur
les falaises. Au-delà d'un motif de 4 blocs, les flancs sont désormais peints (couleur moyenne de la vraie texture ×
teinte du biome) : un seul rectangle par flanc, que la fusion des flancs peut réunir. Bascule « Flancs peints au loin ».
## 🎨 Plus de méga-blocs d'herbe : peinture dès 2 blocs, dessus compris
- Fini les méga-blocs d'herbe : la peinture est beaucoup plus détaillée. Les flancs ET les dessus sont peints dès que leur texture serait répétée moins d'une fois par bloc (motif
de 2 blocs ou plus) ; les dessus gardent le dégradé de biome à leurs coins.
- **Sable cyan, glace verte, neige noire** : la couleur moyenne était lue au mipmap 4 de l'atlas, alloué mais pas
toujours rempli (le niveau réel dépend du plus petit sprite). Lue désormais au niveau 0.
- Les maillages construits avant la lecture de l'atlas (au chargement du monde) n'étaient jamais peints : ils sont
refaits une fois la lecture faite.
- Les faces ÉTIRÉES (un seul sprite sur toute la face : terrain prédit, paliers fusionnés) sont peintes elles aussi dès
2 blocs — c'étaient elles, les méga-blocs restants. Eau et lave gardent leur texture animée.
- Horizon : carte de lumière liée explicitement (taches noires), et masqué sur toute région qui a des voxels.
## 🪨 Roche sous les falaises lointaines
- Au loin (paliers de 12 chunks et plus), les murs qui ferment le terrain prenaient le flanc du **sol sur 24 à 32 blocs** :
une pente enneigée devenait une colonne blanche, une prairie une bande verte étirée. Ils gardent maintenant **2 blocs**
d'herbe, de terre, de neige ou de glace en haut, puis passent à la **pierre**, comme une vraie falaise — le tout peint, jamais étiré.
- Même règle sur les flancs de l'horizon lointain.
- Bascule : « Roche sous les falaises lointaines » (activée).
## 🌅 Horizon lointain : plus jamais sous les voxels, couleurs recalées
- Une tuile d'horizon (512 blocs, 16 régions) n'était retirée que si ses 16 régions avaient des voxels : à moitié couverte,
elle se dessinait **sous** le terrain voxel, 4 blocs plus bas. On la voyait à travers l'eau (le **bleu criard** au loin) et
elle affleurait par bandes sur les pentes (les **rayures noires** la nuit). Chaque tuile est maintenant maillée sans les
régions déjà affichées, et refaite quand elles changent. Bascule « Horizon jamais sous les voxels ».
- Couleurs mesurées sur capture : herbe de l'horizon (79, 171, 73) contre (120, 120, 78) pour l'herbe voxel juste devant,
eau (51, 82, 188) contre (105, 128, 169). Recalées (teinte × texture, comme le voxel). Bascule « Horizon aux couleurs du terrain ».
- Les colonnes vont jusqu'à **7 km** (cases de 16 blocs entre 5 et 7 km) au lieu du relief lisse en triangles, qui y faisait
des pics bariolés hors du style « blocs ».
## 🌊 Eau du LOD à la hauteur de Minecraft
- Un trait sombre en polygone sur la mer, à la limite des vrais chunks. Les eaux dormantes du LOD
étaient dessinées à 1 bloc, la vraie eau à 8/9 : 11 cm de marche dont le flanc ombré se voyait. Désormais à 8/9.
Bascule « Eau à la hauteur de Minecraft ».
## 📏 Plus de marche au bord des vrais chunks
- Sous shaderpack, l'anneau de LOD situé juste au-delà de la distance de rendu restait enfoncé d'un demi-bloc (biais de
jonction), alors que le LOD n'est plus jamais dessiné sur un vrai chunk et que le fond lointain, lui, affleure : une
marche à la distance de rendu et une autre six chunks plus loin, dont on voyait le dessous (le trait sombre qui suivait
les chunks sur l'eau). Au-delà de la distance de rendu, le LOD affleure partout. Bascule « Pas de marche au bord des
vrais chunks » (activée).
## 🌊 Plus de mur d'eau au bord des régions prédites
- Une bande sombre et droite traversait la mer au bord d'une région. C'était une paroi d'eau,
de la surface au fond, vue à travers l'eau : émise parce que le chunk voisin n'était pas encore connu au moment du
maillage. Une colonne d'eau ne se ferme plus jamais vers l'inconnu. Bascule « Pas de mur d'eau au bord des régions ».
## 💧 Plus jamais d'eau peinte
- Plages et morceaux de mer **verts** ou **cyan** (21/10 au soir) : le journal montrait `water_still` dans la liste des
textures peintes. Peinte, l'eau perdait sa texture translucide et ne gardait que la teinte du biome (verte dans un
marais, cyan dans une mer chaude). Les fluides ne sont plus jamais peints, sur aucun chemin.
- Sonde : une face peinte qui sortirait presque noire est écrite une fois par texture (`face peinte presque NOIRE`).
---
# 🐞 Corrections
## 🖥️ Écran des options coupé sur les petits écrans
- Ticket de KorinMC (22/10) : « Settings GUI is cut. There're more settings above LOD » (écran 1536×864 à 125 %).
Les 10 rangées de 38 px dépassaient la hauteur de l'interface (~288 px) : le titre et la rangée « Profil » sortaient
par le haut. L'écart entre rangées se resserre maintenant pour tenir dans la hauteur ; sans la place, les libellés de
section ne sont pas dessinés.
## ✅ Plages cyan, neige noire, glace vert citron : la VRAIE cause (débordement de couleur)
- Mesuré à la sonde F6 (sable : peinture ×1,058, teinte blanche) : la couleur d'un sommet passait au-dessus de 1, et
`BufferBuilder.setColor(float…)` la convertit en octet SANS la borner — 1,058 → 269 → 13. Le rouge du sable retombait à
zéro (turquoise), tout canal au-dessus de 1 (neige, calcite, glace, herbe claire) virait au noir ou au vert. Les couleurs
des sommets sont désormais ramenées à 1 en gardant leur nuance (LOD voxel et horizon). Les deux correctifs ci-dessous
(texel unique, garde-fou) visaient de fausses pistes ; ils restent, sans effet nuisible.
## 💡 Lumière du LOD sous shaderpack
- Avec un shaderpack, la lumière du terrain lointain était mal rendue, sur tous les packs (sans pack, rien). La sonde des sommets
montrait une tangente NULLE (at_tangent = 0, 0, 0) sur les faces peintes : elles prenaient toutes le même point de
texture, et Iris calcule la tangente à partir des écarts de coordonnées de texture. Le pack bâtissait donc son
éclairage sur un vecteur nul. Chaque coin reçoit maintenant un quart de texel d'écart autour du même texel (même
couleur) : tangente propre. Même correctif pour l'horizon lissé. Bascule « Peinture compatible shaderpack » (activée).
## 🕳️ Trous sous shaderpack : corrigés (mesuré)
- Mesure du 21/10 (`[OmniGen/Profondeur]`) : sous shaderpack, plan lointain de Minecraft 128 blocs contre 17 408 pour
le LOD → à 32 blocs, le LOD « paraissait » 6,4 blocs plus près et passait devant le vrai sol (trous, parois sombres).
- Sous shaderpack, le LOD ne se dessine plus sur aucun chunk que Minecraft dessine (ni dessous, ni en lisière).
Bascule « Pas de LOD sur les vrais chunks (shaderpack) », allumée par défaut.
## 🧱 Génération par région : plus de région figée à « 0/64 »
- La région en cours restait à **0/64, 0 en vol** pendant 18 minutes, et rien ne se générait
plus autour du joueur. Cause : depuis le 17/10, un chunk déjà complet sur le disque est sauté sans être chargé ; il ne
cochait donc jamais sa case dans la région. Une région générée lors d'une session précédente bloquait tout. Les chunks
sautés comptent maintenant comme finis.
## 🟩 Murs lointains verts
- Les jupes des paliers fusionnés multipliaient le flanc du sol par la teinte du biome même quand ce flanc n'est pas
teinté (flanc d'herbe déjà colorié en marron) : murs verdis, vert franc une fois peints. La teinte n'est plus
appliquée qu'aux flancs teintés, comme au maillage fin depuis le 08/09.
- Sonde d'à-coups : la ligne `[OmniGen/À-coup]` nomme maintenant les deux étapes les plus lourdes du dessin
(étapes du terrain voxel, horizon : choix des tuiles / envois / dessin, lecture de l'atlas).
## ⬛ Flancs peints : couleurs lues sur la carte graphique
- Glace peinte en **vert citron**, neige peinte en **noir**. La couleur moyenne était lue dans
l'image d'origine de chaque texture, qui n'est plus fiable dans son pack une fois l'atlas envoyé à la carte (des mods
d'optimisation libèrent cette mémoire) : on y lisait n'importe quoi. Elle est maintenant lue dans l'atlas tel que la
carte le dessine, au niveau de mipmap où une texture 16×16 tient en un pixel, qui est sa moyenne. Une lecture sur le
fil de rendu, quelques centaines de Ko, refaite après F3+T. Tant qu'elle n'est pas faite, les flancs gardent leur
vraie texture. Couleurs écrites dans le journal (`[OmniGen/Peinture]`).
## ⬛ Flancs peints noirs, verts ou cyan : première piste (mipmap)
- Le journal du 21/10 au soir montrait des couleurs lues justes et aucune face peinte noire : le défaut n'était pas
la couleur. La face peinte étalait tout le sprite du béton blanc ; un flanc fin à l'écran fait prendre à la carte un
mipmap très réduit, où un texel mélange le béton et ses VOISINS dans l'atlas. Les faces peintes échantillonnent
désormais un point unique au centre du sprite : blanc pur à toute distance.
## 🛡️ Garde-fou de la peinture
- Toute face qui sortirait CYAN ou presque NOIRE alors que sa texture ne l'est pas
n'est pas peinte : elle garde sa vraie texture. Chaque cas est écrit dans le journal (texture, teinte d'entrée,
multiplicateur) et compté sur la ligne `[OmniGen/GPU] … flancs`. Motif adouci (±18 % de luminosité, teinte proche de
la moyenne) : plus de minerais en pavés.
## 💥 Plantage du pilote graphique à 4 Go de géométrie
- Deux plantages natifs le 21/10 au soir (accès mémoire interdit dans `glMultiDrawElementsBaseVertex`), le second
0,4 s après l'agrandissement de la réserve de géométrie à 4 095 Mo. Plafond ramené à 3,5 Go : au-delà, le LOD
libère de la place au lieu de grossir (c'est aussi ce qui provoquait le gel de 10 s).
---
# ⚡ Performances
## 🎚️ Détail du terrain : le pilote ne dégrade plus l'image pour rien
- Mesure du 22/10 : le pilote de détail (crans 0 à 7, taille d'un bloc à l'écran) tombait au cran le plus grossier
pendant le chargement (« 33 FPS ») et y restait : 5 min de verrou, 115 FPS pour remonter. Or le cran ne décidait pas des
FPS (128 au cran 2, 100-115 au cran 0). D'où les méga-blocs devant, avec un lointain plus fin que le proche.
- Plus de jugement pendant la première minute ; il faut 5 s d'affilée sous 90 FPS pour baisser ; 30 s de répit après un
changement de cran ; chaque baisse est vérifiée et annulée si elle ne fait pas gagner 8 % d'images.
- Plus rapide (un joueur ne reste pas immobile des minutes devant le paysage) : montée en 8 s quand les FPS
dépassent 2× l'objectif, deux crans d'un coup au-delà de 2,5×. Le cran tenu 60 s est retenu
(`config/omnigen-detail.txt`) : la partie suivante démarre directement au bon cran. Mesuré : cran 1 → 7 en 34 s au
lieu de 3 min 30, puis directement au cran 7 ; 200 à 290 FPS au cran 7 avec Miniature (RTX 5070).
## 🏔️ Fond lointain : affiné au-delà de l'anneau
- Mesure : le fond n'affinait qu'une fois toute la portée couverte en 16×16 (~52 000 régions : jamais) ; au-delà de
~166 chunks, tout restait en pavés de 16 blocs. Il prend maintenant son palier fin (8, 12, 14) jusqu'à 350 chunks pendant
la couverture, le plus proche d'abord. Anneau fin : 1 Go sur les cartes de 12 Go (au lieu de 600 Mo).
- Le proche d'abord : le fond ne grandit plus au-delà de 80 % (fin) / 84 % (couverture) de la réserve, et rend sa
mémoire au-delà de 86 % (régions fines à plus de 200 chunks → couverture). Sans ça, la portée détaillée reculait de
64 à 30 chunks (« des gros blocs devant pendant quelques secondes »).
- Bouche-trous du proche (régions dont les chunks ne sont pas prêts) : 4×4 sous 32 chunks seulement, 8×8 au-delà
(3,5 Mo → 0,6 Mo par région ; 74 régions = 257 Mo en tournant la tête).
## 📦 Réserve de géométrie : 5 Go sur les cartes de 12 Go
- La réserve (3,5 Go) était le vrai frein du détail, pas les FPS. Sur les cartes de 12 Go et plus, elle passe à 5 Go et
le proche à 3 Go. Depuis les pages, aucun tampon ne dépasse 256 Mo (le plantage du 21/10 venait d'un tampon unique
de 4 Go).
## 📄 Réserve de géométrie en pages : plus de gel de 10 s ni de tampon géant
- Mesure du 21/10 : une image de 10,6 s au moment où la réserve passait de 3,7 à 4 Go — elle créait un tampon neuf et y
recopiait tout. La réserve est maintenant faite de pages de 256 Mo : grandir = ouvrir une page, rien n'est recopié ;
Le dessin se fait
page par page (dessin direct et dessin trié par la carte), chaque page a sa propre liste de commandes.
- Une page ouverte reste ouverte pour la session : les rendre à la carte dès que la fin de la réserve reculait
faisait ouvrir et fermer 40 pages en 30 s (premier essai du 22/10, image de 4,4 s).
- Les seuils de recul de la portée « pour la mémoire » suivent maintenant le plafond réel de la réserve (ils visaient
encore l'ancien plafond de 4 Go et ne se déclenchaient plus).
## 🗺️ L'horizon sur la carte charge bien plus vite
- Carte dézoomée : ~4 000 tuiles d'horizon à l'écran pour un cache de 384 → des milliers de fichiers relus à chaque
rafraîchissement, au pas le plus fin. La carte lit maintenant le pas qui correspond à son zoom (au plus grossier, un
fichier fait 300 octets) et garde jusqu'à ~24 Mo de tuiles en mémoire.
---
# 🔧 Diagnostic et développement
## 🔍 Diagnostic : trous sous shaderpack
- Constat (17/10) : sous shaderpack, des trous près du joueur (le LOD apparaît à la place du vrai sol). Sans pack,
rien.
- Cause probable, à confirmer en jeu : sous pack, Minecraft et le LOD n'utilisent pas le même plan lointain, donc
pas la même échelle de profondeur ; le LOD gardé sous les vrais chunks paraît plus proche qu'il n'est (~4 blocs à
64 blocs de distance) et passe devant le vrai sol.
- Nouvelle bascule de diagnostic (options avancées, coupée par défaut) : « Profondeur du LOD alignée sur Minecraft
(diagnostic) », et une ligne `[OmniGen/Profondeur]` dans le journal (plans lointains et écart calculé).
## 🔎 Mesures ajoutées
- Sonde F6 : sol de la colonne visée (hors feuillage), palier du maillage de chunk, région lointaine qui la dessine,
horizon AU POINT visé — pour les feuilles qui flottent au loin.
- À-coups : « chunks proches » détaillé (fond lointain, ordonnanceur, tri et dessin par la carte, dessin par le
processeur) ; les quatre étapes les plus lourdes sont écrites.
- Temps de carte du LOD découpé par part (horizon, terrain trié, chunks rejoués, fond, ordonnanceur, tri, attente du
processeur), triangles du fond lointain, temps processeur moyen de chaque étape ; composition de la réserve (proche,
fond fin, couverture, bouche-trous).
- Défragmentation moins gourmande tant que la réserve a de la marge (~8 Mo copiés par image au lieu de ~26).
## 🛠 Développement
- Compilation automatique sur GitHub Actions à chaque push sur `main` ; le jar est publié en artefact.
---
# 📌 À savoir
- **Serveur** : mettez le même jar sur le serveur (serveur arrêté) pour la génération par région et le terrain partagé.
- **Détail du terrain** : OmniGen règle tout seul la finesse du terrain lointain selon vos images par seconde (objectif
100 FPS, jamais plafonnées) ; le réglage trouvé est retenu pour les parties suivantes (`config/omnigen-detail.txt` —
supprimez-le pour repartir de zéro).
- **Profil** : Normal par défaut ; Streamer si vous enregistrez ou diffusez (OBS, Streamlabs…) ; Petit PC choisi tout
seul sur les petites machines. Commande `/omnigenprofil`.
- **À suivre en 0.3.40** : un nouveau format de stockage du terrain lointain (bien plus de détail au loin pour la même
mémoire, avec les vraies textures), et des corrections sur l'horizon prédit avec Terralith.
release
OmniGen 0.3.38
0.3.3817 окт. 2026 г.40Minecraft: 1.21.1neoforge
Что нового
### Change Log 3.0
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/SWVNNIpAc5M" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
# OmniGen 0.3.38
**Le Nether, les portails, et un terrain lointain qui se fond enfin dans le vrai monde.** Après la 0.3.37.24, dernière
version consacrée au terrain lointain de l'Overworld, le LOD ouvre sa deuxième dimension : le Nether se voit de loin,
à travers les portails, et l'on passe de l'un à l'autre sans écran de chargement.
> Testé sur NeoForge 1.21.1, avec Sodium et Iris. Les réglages conseillés par shaderpack seront publiés avec la prochaine
> version.
---
## 🔥 Le terrain lointain du Nether — première étape : la capture
- **Le Nether est capturé.** Jusqu'ici, la capture partait du plus haut bloc de chaque colonne : dans
le Nether, c'était le toit de bedrock, et le LOD ne ramenait qu'une dalle de roche pleine. Le LOD
était donc coupé dans toute dimension à plafond.
- **Mode caverne** (dimensions à plafond seulement — l'Overworld et l'End ne changent pas d'un octet) :
chaque colonne est coupée en deux. Le **plafond** (toute la roche pleine qui descend depuis le haut de la
dimension) est gardé en entier, pour que les murs de netherrack qui relient le toit au sol aient leurs
flancs. **Sous le plafond**, le premier bloc devient la « surface », et la capture habituelle s'y applique :
coquille, fond, ouvertures profondes, seconde fenêtre. La mer de lave, les deltas de basalte, les forêts
carmin et biscornues sont désormais dans les données.
- **Une seule règle pour les deux captures** : le serveur et la resynchronisation client (casser/poser un
bloc) appellent la même fonction (`util.CaveCeiling`). Pas de couture entre les deux.
- **Aucun changement de format** : le client retrouve le plafond tout seul (le groupe de tranches jointives
du haut de chaque colonne). Rien de plus sur le réseau ni sur le disque.
- **Lumière** : sous un plafond, plus de « plein jour » forcé sur la tranche du haut (c'est le toit), et une
lumière inconnue vaut l'ambiance du Nether au lieu du plein soleil.
- **Rendu** : le sol est la surface fusionnée (greedy) et celle des paliers lointains ; le plafond est
dessiné par sa face du dessous au palier fin.
- **Brouillard** : il recule dans le Nether comme dans l'Overworld quand le LOD est actif.
- La peinture (carte des hauteurs) reste coupée sous un plafond.
## Limites connues de cette étape
- Seuls les chunks **chargés** du Nether sont capturés (en jouant, ou générés neufs). Le terrain déjà
prégénéré loin du joueur n'est pas encore rattrapé : il faudra un backfill Nether (comme l'atlas de
l'Overworld).
- Aux paliers **fusionnés** (très loin), seul le sol est dessiné, pas encore le plafond.
- Pas de bascule dans le menu pour l'instant : coupe-circuit `CaveCeiling.ENABLED` dans le code.
## 🌋 Lumière du Nether (test du 26/09 après-midi)
- **La lave, la glowstone et les champilampes éclairent le LOD.** Le Nether a une heure figée à minuit :
l'effet jour/nuit du LOD assombrissait tout ×0,22. Il est coupé dans les dimensions sans ciel.
- **Plus de plaques rouge foncé sur les parois.** Sous un plafond, une lumière « inconnue » (tranche
enterrée) s'écrivait comme du noir mesuré, et les flancs sans mesure en face la reprenaient. Le rendu ne
lit plus « l'air du dessous » que s'il y a vraiment de l'air, et une tranche enterrée prend la lumière
du sommet de sa pile. Aucun changement dans l'Overworld, aucune recapture nécessaire.
- **Le plafond tient en une seule tranche** : moins de géométrie invisible, et le sol sous les surplombs
n'est plus sacrifié par la limite de tranches par colonne.
- **La carte montre le sol du Nether**, plus le toit.
## 🗺️ Carte
- **Nouveau cran de zoom : 1 px = 0,5 bloc.** Un cran de plus que « 1 px = 1 bloc », pour lire et viser
au bloc près autour de soi (poser un repère pile au bon endroit).
## 🎥 Caméra
- **Plus d'ondulation du terrain lointain quand on prend des dégâts.** La secousse de caméra des coups
(mobs, chute…) faisait bouger le LOD comme le balancement de la marche. Elle est retirée sous le même
« Verrou oscillation » (Avancé → Caméra). L'animation de la mort est conservée.
## 🐛 Fuite de mémoire en solo (le jeu finissait à 1 FPS)
- **Cause trouvée grâce à la sonde mémoire** : la prédiction du terrain lointain reconstruisait tout le
générateur de terrain de Minecraft pour CHAQUE chunk prédit (plusieurs milliers d'objets à chaque fois),
au lieu d'un seul par monde comme le fait le jeu. La mémoire montait de plusieurs Go en quelques minutes.
Le générateur est maintenant construit une fois et réutilisé : moins de mémoire, et une prédiction bien
plus rapide.
## 🔎 Diagnostic
- **Sonde mémoire automatique** : quand la mémoire du jeu dépasse 80 %, OmniGen écrit dans le journal la
liste des types d'objets qui l'occupent (une fois, puis au plus toutes les 5 minutes). Sert à trouver
la fuite qui mettait le solo à 1 FPS.
## 🌫️ Terrain prédit (non jouable) — reconnaissable
- Le terrain que le client calcule lui-même à partir de la graine (relief et biomes, sans structures ni
arbres) est maintenant **légèrement voilé** en jeu, comme vu à travers une brume, et **hachuré** sur la
carte. On distingue d'un coup d'œil le vrai terrain du terrain seulement prédit. Il n'est jamais fusionné
avec du vrai terrain au loin, pour que la frontière reste nette.
- **Prédiction bien plus rapide** : elle se fait à 4 blocs près au plus fin (au lieu du bloc près), puis de
plus en plus grossier au loin. Le terrain prédit atteint enfin l'horizon au lieu de s'épuiser à côté du joueur.
- **Plus de « tas de sable » sur l'océan prédit** : la prédiction prenait la surface de l'eau pour le sol
et y posait une plage. Elle lit maintenant le fond marin, et remet l'eau par-dessus.
- **La prédiction comble enfin les trous lointains** : la passe « proche » épuisait à chaque balayage tout
le budget d'examen vers 22 chunks, et la passe « lointaine » ne recevait jamais rien. Chacune a son budget.
- **Océan prédit correct** : l'eau est une surface (et non plus des cubes d'eau qui flottent), au même niveau
que la vraie mer. Les colonnes prédites ont la même épaisseur que le vrai terrain : plus d'îles « suspendues »
ni de trous noirs entre deux chunks de hauteurs différentes.
- Sur la carte, seuls les pixels réellement prédits sont hachurés (plus de vrai terrain hachuré).
## Nether et Overworld ne se mélangent plus
- En passant un portail, les chunks du nouveau monde pouvaient être rangés dans le cache (et sur le disque) de l'ancien : des morceaux de Nether apparaissaient dans l'Overworld, autour du portail, et revenaient à chaque visite. Le changement de monde se fait désormais au premier tick, avant toute écriture.
- Même correctif en quittant un serveur pour un monde solo.
## Génération par région (expérimental, activé par défaut)
- Le serveur génère le terrain **par régions de 8×8 chunks**, une à la fois, et finit chaque région avant de passer à la suivante (d'abord celle où vous êtes, puis celle que vous regardez).
- Côté client, une région s'affiche **soit entièrement en réel, soit entièrement en terrain prédit** : plus de damier mi-réel mi-prédit. Elle bascule d'un coup quand 90 % de ses chunks sont arrivés.
- Le mur de génération suit les régions terminées, **dans toutes les dimensions** (Nether et End compris).
- Désactivable côté serveur : `regionGeneration=false` dans `config/omnigen-server.properties`.
## 🌀 Portails : voir l'autre côté (remplace Immersive Portals pour la vue)
- **La destination se voit à travers le portail**, dessinée par le LOD : le Nether depuis l'Overworld et
inversement, avec la bonne orientation (rotation d'un quart de tour quand les deux cadres ne sont pas dans le
même axe), le ciel ou le brouillard d'en face au fond, et les grottes autour du portail d'arrivée.
- **Visible de loin** (jusqu'à ~40 blocs) et **dès le premier coup de briquet** : avant toute traversée, la vue
montre le portail que Minecraft choisira (même règle de placement que le jeu).
- **Plusieurs portails collés, chacun avec sa propre vue** (jusqu'à 4 à la fois, les plus proches d'abord). Seul
le plus proche fait charger son arrivée ; les autres lisent le terrain déjà connu, sans coût pour le serveur.
- **Animations** : la vue glisse en douceur quand la destination se précise, et apparaît en fondu.
- **Rendu fidèle** : feu, racines, vignes et toiles en plaques ; escaliers, dalles, trappes et barrières avec leur
vrai modèle ; bûches couchées dans le bon sens ; la vue continue de se compléter tant qu'on reste près du portail.
## 🔗 Portails : des liaisons stables
- **Une liaison faite est verrouillée** : A mène toujours à B et B ramène toujours à A, sans nouvelle recherche
ni nouveau portail au milieu de nulle part. Casser le portail d'en face libère la liaison.
- **Le portail créé de l'autre côté a la même taille** que celui qu'on traverse ; un portail existant de la même
taille est réutilisé.
- **Plus jamais renvoyé au spawn** : si l'arrivée n'est pas encore générée, le portail attend et l'affiche
(« ⏳ Le portail prépare l'arrivée… n/N ») ; quand tout est prêt, « ✔ Portail prêt ». Le statut s'affiche
en permanence au pied du portail.
## ✦ Passerelles nommées par panneau (nouveau)
- **Le même texte sur un panneau collé à deux portails les relie**, à n'importe quelle distance :
Overworld ↔ Overworld, Nether ↔ Nether, ou entre les deux (sans le ×8 du jeu).
- Les deux portails doivent avoir **la même forme** (largeur × hauteur) ; sinon le passage est refusé, avec un
message qui donne les deux tailles.
- Le panneau **s'illumine** et des glyphes d'enchantement montent autour tant que la liaison est active.
- **Un levier allumé près du panneau fait faire un demi-tour** : on ressort de l'autre côté du portail d'arrivée,
tourné à 180°, et la vue montre ce côté-là (pratique quand l'arrivée donne sur un mur). Le statut affiche « ↻ demi-tour ».
- Plus de deux portails du même nom : on arrive au plus récent, et un message le signale. Sans panneau, rien ne
change (liaison verrouillée habituelle).
## 🖥️ Serveur : plus de gels
- **Gels de 10 s corrigés** : la capture du terrain lointain lisait le biome « dans le monde » depuis un autre
fil, ce qui forçait le serveur à attendre la génération d'un chunk voisin. Le biome est lu dans le chunk.
- **Frein commun** : après un tick de plus d'une seconde, toutes les tâches de fond d'OmniGen (prégénération,
régions, rattrapage, envoi du LOD) s'arrêtent 10 s. Les joueurs et les portails ne sont jamais freinés.
- **Diagnostic** : en cas de gel, le journal montre la pile du serveur et celle du fil qui l'a provoqué ; la
ligne « Chargés » donne les chargements de chunks par source.
## 🛡️ Plus de chute à travers le terrain
- Quand le serveur est en retard et que le vrai chunk n'est pas encore arrivé, le joueur est retenu au dernier
endroit sûr (« ⏳ Chargement du terrain… ») au lieu de traverser le terrain lointain et de tomber dans le vide.
## 💬 Barre d'action
- **Plus de messages qui se chevauchent** : un gestionnaire décide qui s'affiche (Minecraft et les autres mods
d'abord, puis le portail, puis le chargement, puis le mur de génération).
## 🗺️ Carte et minimap
- **Repères et marqueur du joueur au bloc près** (ils étaient ramenés au coin de leur chunk, visible aux zooms forts).
- **En grotte, la minimap se fixe au zoom 0,5 bloc** pour lire les galeries.
## 🪨 Gravité
- **Plus de pans d'île qui tombent** en cassant un bloc : seuls les petits morceaux détachés (64 blocs au plus)
tombent ; le sable des âmes et les blocs porteurs comptent comme appuis ; un morceau qui touche de la lave ou
de l'eau reste en place.
## 🧱 Terrain lointain
- Escaliers en demi-bloc : **option expérimentale, coupée par défaut** (« Escaliers en demi-bloc »). Allumée, elle laisse
encore des fentes là où les escaliers sont nombreux (montagnes de certains packs).
## 🌄 Terrain lointain et vrais chunks : plus de bordure
- **Nouveau : à la première connexion à un monde**, OmniGen demande comment afficher le terrain : « seulement au loin »
(par défaut) ou « partout » (Mode LOD forcé, plus de FPS). Le choix est retenu pour ce monde et modifiable dans les options.
- **Plus de falaise autour du joueur** quand on regarde de haut : le terrain lointain recouvre le dernier anneau de vrais
chunks et s'efface progressivement, bloc par bloc, en s'approchant du joueur.
- **Plus de trous dans les coins** de la distance de rendu, ni quand le serveur envoie moins de chunks que la distance du client.
- Panneaux, leviers, torches et portails ne sortent plus en cubes par-dessus les vrais blocs.
- **Fondu « cape d'invisibilité »** : en s'approchant, le terrain lointain ne disparaît plus bloc par bloc mais pixel par
pixel, avec un léger miroitement au bord (sans shaderpack ; sous shaderpack, le fondu par blocs reste).
- **Plus de doublon en cassant un bloc** : là où vous jouez (votre chunk, ses 4 voisins et le chunk en diagonale que
vous regardez), le terrain lointain n'est jamais dessiné sous les vrais blocs. En Mode LOD forcé, au-delà de cette
zone, le doublon reste voulu (c'est le principe du mode).
- **Plus de dalle de terrain qui flotte** à côté des vrais chunks, ni de tranchée sombre dans les rivières : le terrain
lointain n'est plus enfoncé là où il est seul, et ne dessine plus d'eau sous la vraie eau.
- **Plus de trou en forme de « plus »** sous le joueur quand on vole très haut.
- **Plus de rectangles tramés qui restent derrière le joueur** : les zones de fondu se reconstruisent en entier quand on
s'éloigne, et en altitude (là où Minecraft ne dessine plus le sol) le terrain lointain reste plein.
- **Plus de petits trous à côté des dalles** (montagnes de dalles de certains packs) : le bloc voisin dessine toujours sa face.
## 🌀 Vue à travers les portails
- **Fonctionne aussi avec un shaderpack.**
- Plus de calcul inutile : la vue n'est plus recalculée en changeant de côté du portail, ni dessinée quand le portail
est hors de l'écran (gros gain de FPS près des portails).
## 🖥️ Serveur : beaucoup moins de lectures disque
- Le terrain lointain manquant est lu **directement dans les fichiers de région**, sans charger les chunks autour : jusqu'à
plusieurs centaines de chargements/déchargements par seconde en moins.
## 💧 Eau et lave qui s'écoulent
- **Dessinées comme dans Minecraft** : à leur vraie hauteur (7/9 de bloc au premier niveau d'écoulement, 1/9 au dernier)
et **en pente douce**, chaque coin prenant la moyenne des blocs voisins, au lieu de marches de cubes pleins. Les mers
et les lacs ne changent pas. Bascules « Hauteur réelle des fluides » et « Fluides en pente ». Les chunks capturés
avant cette version prennent la bonne forme à leur recapture.
## 🔥 Nether au loin
- **Le plafond est dessiné jusqu'à l'horizon** : au-delà du détail maximal, la caverne ne s'ouvre plus sur le vide.
Bascule « Plafond du Nether au loin ».
- **Brouillard du Nether** : le terrain lointain se voile dès le joueur et se fond dans la couleur du brouillard, comme
les vrais chunks, au lieu d'un mur de brume rouge suivi d'un horizon parfaitement net. Bascule « Brouillard du Nether ».
- Diagnostic : lignes `[OmniGen/Demi-tour]` (FPS avant/après un demi-tour, raison de chaque maillage refait) et
`[OmniGen/Arrivée]` (temps d'affichage après un changement de dimension).
## ⚡ FPS
- **Demi-tour plus fluide** : les chunks proches sortis du champ de vision sont gardés 30 s ; quand la mémoire graphique
est tendue, ce sont d'abord les chunks lointains qui partent. Avant, un demi-tour refaisait jusqu'à 3 000 chunks.
## 🖥️ Serveur : plus de rechargements en boucle, plus de gel
- **Prégénération** : elle lit le fichier de région avant de poser un ticket ; un chunk déjà généré n'est plus rechargé
(avec tout son voisinage) pour rien. Mesuré : de 250-300 chunks chargés par seconde à presque rien.
- **Tout changement de bloc met le terrain lointain à jour** (commande `/fill`, explosion, piston, machine…), plus
seulement la casse et la pose d'un joueur. Avant, l'ancien terrain revenait quelques minutes après.
- **Gel de 1 à 2 s du serveur intégré toutes les 30 s** : c'était une sonde de diagnostic, maintenant coupée par défaut
(« Sondes trous et parois », options avancées).
- Journal allégé : sondes de développement coupées par défaut.
## 🔀 Distant Horizons
- Choisir Distant Horizons à la place d'OmniGen **l'allume vraiment** (rendu et génération lointaine), au lieu de le
laisser à ses propres réglages, parfois éteints. La vue à travers les portails reste disponible.
beta
OmniGen 0.3.37.24
0.3.37.2425 сент. 2026 г.60Minecraft: 1.21.1neoforge
Что нового
### Change Log 2.0
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/hlFPwIevl40" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
# OmniGen 0.3.37.24
**La dernière version consacrée au LOD de l'Overworld.** La suivante ouvrira le Nether.
C'est aussi la plus grosse depuis la refonte voxel : le terrain lointain gagne ses hautes herbes, ses
vraies couleurs de biome, sa lave, son éclairage, ses fonds marins et son relief. **Les îles flottantes
ne sont plus trouées.** Et il tourne bien plus vite : de 18–30 images par seconde à **plus de 100**.
> ⚠️ **Serveurs : mettez le jar à jour.** Presque tout ce qui suit a besoin des deux côtés. Si le jar
> serveur n'est pas à jour, le client vous prévient désormais **en rouge dans le tchat** au lieu de vous
> laisser chercher.
> 🔄 **Les nouveautés visuelles sont de la DONNÉE.** Les plantes, la lave, les couleurs et la lumière
> n'apparaissent que sur les chunks capturés depuis cette version. Votre terrain existant reste tel
> qu'il est jusqu'à ce qu'il soit recapturé — automatiquement quand vous circulez, ou d'un coup avec la
> nouvelle commande décrite plus bas.
---
## 🏝️ Les îles flottantes ne sont plus trouées
Le bug le plus ancien du LOD : sous les îles flottantes, on voyait le ciel à travers le terrain, et la
mer disparaissait juste en dessous. Trois causes empilées, toutes corrigées :
- **La capture ratait la mer sous certaines îles.** En cherchant le fond des grottes profondes, elle
descendait dans le vide sous l'île et s'arrêtait juste au-dessus de la mer, selon l'altitude de l'île
au bloc près. Ni surface, ni fond : un trou béant.
- **La capture faisait confiance à la hauteur notée par le jeu**, qui peut s'arrêter à la mer alors
qu'une île flotte au-dessus. Le vrai sommet de chaque colonne est désormais vérifié.
- **L'affichage jetait la mer dès qu'une île flottait au-dessus**, même quand la donnée était juste.
> 🔄 Le serveur remet à niveau tout seul les chunks déjà enregistrés (voir « Remise à niveau
> automatique ») : rien à faire.
---
## 🌿 Les hautes herbes et les fleurs
Le terrain lointain n'affichait que des blocs pleins. Les hautes herbes, fleurs, pousses et champignons
— tout ce qui se dessine en croix — étaient simplement absents : une plaine fleurie devenait une nappe
verte unie.
Ils sont là. Et comme ils coûtent cher en géométrie, leur densité **décroît avec la distance** : pleine
près de vous, éclaircie au loin, avec un motif stable — une plante qui disparaît ne réapparaît pas en
clignotant quand vous bougez.
---
## 🔥 La lave
Elle était capturée comme de l'eau. Un lac de lave au loin ressortait **bleu**.
La cause était une seule ligne : la détection de surface acceptait n'importe quel fluide au lieu de
l'eau seule. La lave a maintenant sa propre apparence, en blocs cubiques.
---
## 🎨 Les vraies couleurs de biome
En mode LOD forcé, l'herbe était uniforme partout. Or Minecraft ne l'est pas : une savane, une jungle
et une taïga n'ont pas le même vert, et le passage de l'une à l'autre est un dégradé.
Le serveur envoie désormais le **biome** de chaque zone, et le client en déduit la couleur.
**Pourquoi le biome et pas la couleur.** La première version envoyait du RVB, et toute la végétation est
ressortie **noire** sur serveur dédié. Les couleurs d'herbe et de feuillage viennent d'un *colormap* —
c'est-à-dire d'une **texture**, qui n'existe pas sur un serveur sans ressources graphiques. Le serveur
répondait donc du zéro, en toute bonne foi.
Le partage correct est celui-ci : le serveur détient la donnée de **monde** (quel biome, où), le client
détient la donnée d'**apparence** (quelle couleur pour ce biome). En prime, **un pack de ressources qui
change la couleur de l'herbe est désormais respecté** — ce que l'envoi de RVB interdisait.
Trois précisions :
- **Quatre échantillons par chunk**, pas un seul. C'est la résolution native des biomes dans Minecraft
(des blocs de 4×4). Les petits biomes ne sont plus avalés par leur voisin.
- **Les transitions sont fondues**, en 3D comme sur la carte. Un quad fusionné peut enjamber une
frontière de biome : une teinte unique y dessinerait une ligne droite, quatre teintes aux coins la
dissolvent.
- **Rien à recapturer.** La grille de biomes ne dépend que de la seed du monde — elle se calcule sans
charger le moindre chunk.
---
## 💡 La lumière
C'est le plus gros morceau de cette version, et celui dont il reste le plus à faire.
Jusqu'ici, **chaque sommet du terrain lointain était écrit en plein jour**, en dur. Dehors, ça passait —
la nuit assombrit tout globalement. Sous terre, non : la pierre réelle est noire, la nôtre était en
plein soleil, et la différence sautait aux yeux à la jointure.
Le terrain lointain porte maintenant **sa propre lumière**, mesurée à la capture. Les grottes, les fonds
marins et les surplombs deviennent sombres.
Plusieurs mécanismes s'y ajoutent :
**Le dessous d'une tranche n'a pas la lumière de son dessus.** Un plafond de grotte est le dessous d'une
colonne qui monte jusqu'à la surface : les deux faces partageaient la même mesure, prise en plein air.
Le plafond était donc éclairé comme un midi d'été.
**Une face verticale prend la lumière de l'air qu'elle regarde**, lue dans la colonne d'en face — et non
celle mesurée au sommet de sa propre colonne, parfois cent blocs plus haut. Sans ça, deux colonnes
voisines d'une même paroi pouvaient ressortir l'une noire et l'autre claire, selon ce qui les coiffait
en surface.
**La lumière est lissée par sommet** : chaque sommet prend la moyenne des cellules qui le touchent, au
lieu de recopier la sienne. C'est le *smooth lighting* de Minecraft, appliqué au terrain lointain — sans
lui, l'éclairage apparaît en plaques à bords francs.
**Votre client corrige ce qu'il traverse.** Le serveur doit deviner l'éclairage au moment où il génère un
chunk, avant que le moteur de lumière ait fini son travail. Votre client, lui, lit le vrai moteur de
Minecraft. Les chunks que vous parcourez voient donc leur lumière relue, **et conservée sur le disque** :
la zone reste corrigée pour toujours. Le serveur fait le même rattrapage de son côté, ce qui répare le
décor **pour tous les joueurs**.
> 🚧 **Ce n'est pas terminé, et autant le dire.** Il subsiste des endroits où l'éclairage n'est pas
> celui qu'on attendrait, en particulier aux frontières de chunks et dans les grandes cavités. Le travail
> continuera dans une prochaine version.
---
## ✨ Occlusion ambiante
Le terrain lointain était uniformément éclairé : une nappe plate, sans creux ni relief perçu.
Les angles rentrants, le pied des falaises et le dessous des surplombs s'assombrissent désormais — c'est
ce qui fait qu'un terrain cubique cesse d'avoir l'air en plastique.
**Et ça marche avec tous les packs de shaders**, y compris ceux qui ignorent l'existence d'OmniGen.
L'effet est cuit dans la géométrie au moment où elle est construite, pas calculé à l'affichage : coût
par image **zéro**, compatibilité totale.
C'est un premier pas volontairement modeste. Si votre machine ne tient pas un pack de shaders complet,
OmniGen vous en donne au moins ça.
---
## ⚡ Performances
### Côté client
| | avant | après |
|---|---|---|
| FPS constatés | 18 – 30 | **100 – 120** |
Le principal coupable était le nombre de faces dessinées. Les changements, dans l'ordre de leur effet :
**Nouveaux paliers de détail par défaut**, réglés à l'œil en jeu : bloc par bloc jusqu'à 30 chunks,
puis un palier tous les 15 chunks, et les grands regroupements à partir de ~150 chunks. Plus de détail
autour de vous qu'avant, et moins de géométrie au loin.
**Texture allégée au loin.** Au-delà du détail maximal, la texture est posée une fois par cellule au
lieu d'une fois par bloc : quatre à neuf fois moins de géométrie, sans différence visible de loin.
**Fusion des dessus au loin.** Au-delà du terrain proche, les faces horizontales voisines de même
altitude et même bloc sont fusionnées en un seul grand quad. Au plus près, on garde une face par bloc :
c'est ce qui garde la texture nette, et la netteté a été préférée.
**Le zoom n'affine plus que ce que regarde la lunette** : fini les ~15 images par seconde au zoom.
**Rattrapage après une reconstruction complète** (changement de shaderpack, de réglage) : le terrain
lointain revient bien plus vite.
**Lecture correcte des chunks voisins.** Un chunk dégradé ne parvenait pas à lire ses voisins : il
émettait donc des faces de bordure qui auraient dû être masquées. Corrigé, avec un effet secondaire
bienvenu sur la quantité de géométrie.
**Densité des plantes** décroissante avec la distance (voir plus haut).
### Côté serveur
Le calcul des couleurs de biome faisait **16 384 échantillonnages d'un seul bloc**, sur le fil principal.
Résultat : des ticks de 60 secondes, et le chien de garde qui tuait le serveur.
Le travail est désormais **étalé sur plusieurs ticks**, avec un budget, et il **cède le pas** quand le
serveur prend du retard. Colorer un horizon n'a aucune urgence ; un joueur qui subit des à-coups, si.
Deux files internes comptaient leur longueur en **parcourant tous leurs éléments** — jusqu'à 130 000 —
plusieurs fois par tick. À elles deux, elles pesaient plus que le déchargement des chunks de Minecraft.
| | avant | après |
|---|---|---|
| Cadence serveur | 2,7 TPS | **20 TPS** |
| Marge sur le budget de tick | — | **80 %** |
Et aussi : la recherche des chunks manquants autour des joueurs ne tourne plus sur le fil principal, et
la recapture compte son budget en travail réel — une série d'échecs ne peut plus bloquer un tick.
---
## 🎛️ Régler soi-même la distance du détail
**Nouvel écran « Distance du détail »** (Options avancées → Niveau de détail) : trois curseurs en
chunks — détail maximal, détail moyen, terrain simplifié — et trois préréglages (Automatique,
Performances, Qualité). Le compteur d'images par seconde s'affiche en direct pendant qu'on règle.
Pour les curieux, le niveau Développeur donne accès à la table complète, palier par palier.
---
## 🔧 Capture plus profonde, et une commande pour rattraper
La capture s'arrêtait à une profondeur fixe sous la surface. Les grandes cavités et le dessous des îles
flottantes tombaient dans le vide : on voyait **à travers le monde**.
Elle descend maintenant jusqu'à ce que la coquille se referme, avec une sonde supplémentaire pour le
relief caché.
Et parce que tout cela est de la donnée, une commande permet de rattraper l'existant sans attendre :
```
/omnigen recapture [rayon]
```
Rayon en chunks, de 1 à 24, 6 par défaut. Les chunks sont recapturés **et renvoyés** aux clients —
l'oubli de ce second geste avait été, à lui seul, la cause de plusieurs faux diagnostics.
### Remise à niveau automatique
Chaque correctif de capture ne valait que pour les chunks capturés après lui. Désormais, **le serveur
repère tout seul les chunks enregistrés avec une ancienne capture et les refait par-dessus**, dix à la
fois, du plus proche du joueur au plus loin, en se mettant en pause dès que le serveur force. L'ancien
terrain reste affiché jusqu'à l'arrivée du nouveau : aucun trou pendant l'opération. Comptez plusieurs
heures pour un grand monde — sans rien faire.
---
## 🌊 L'océan et ses fonds
Le terrain lointain ne gardait que quarante blocs sous la surface. Sur un océan profond, le fond
tombait dans le vide : on voyait **le soleil à travers la mer**.
- **Le fond marin est capturé** : la capture descend jusqu'au premier bloc sous l'eau, et part de là.
Sous les îles, les icebergs et les monuments aussi — le toit d'un monument ne coupe plus le fond.
- **Là où rien n'est encore capturé**, un fond bleu très sombre ferme la vue au lieu d'un trou.
- **Le fond s'assombrit avec la profondeur**, comme dans le vrai jeu.
- **L'eau lointaine est translucide partout.** Elle devenait opaque, par plaques, sur les paliers
les plus lointains.
- **Fini les plaques d'eau carrées posées au-dessus de la mer.** À la connexion à un serveur moddé,
les blocs sont renumérotés : l'eau dormante était alors prise pour de l'eau qui coule, et dessinée
en cubes.
- **Les mares et les lacs** situés sous le niveau de la mer apparaissent enfin.
- **Les cascades et l'eau qui coule** apparaissent au loin, au lieu de disparaître ou de devenir des
plaques plates. Pour l'instant sous forme de cubes d'eau : un premier pas, à affiner.
---
## 🕳️ Les grottes
- **Le fond des grandes grottes ouvertes** disparaissait, remplacé par des trous couleur ciel. Les
tranches pleines qui se touchent sont maintenant fusionnées avant d'être triées : la forme de la
grotte est gardée entière.
- **Les ouvertures profondes** (crevasses, puits) sont suivies jusqu'à leur fond.
- **Les parois s'assombrissent avec la profondeur**, et plus aucune face ne sort d'un noir d'encre
sans texture : on devine toujours la pierre.
---
## ⚙️ Réglages
Les **réglages par défaut ont changé** : ce qui était réservé aux options avancées devient le
comportement normal. Un réglage qui n'est jamais activé par défaut est un réglage que personne n'aura.
Nouvelles bascules dans **Options avancées → Lumière et shaders**, toutes activées :
| Réglage | Ce qu'il fait |
|---|---|
| **Lumière par tranche** | Le terrain lointain porte sa propre lumière |
| **Lumière lissée** | Moyenne par sommet — supprime les plaques à bords francs |
| **Lumière des flancs** | Une face prend la lumière de l'air qu'elle regarde |
| **Lumière relue par le client** | Correction persistée des chunks que vous traversez |
| **Occlusion ambiante** | Creux et angles rentrants assombris |
| **Mipmaps du terrain lointain** | Atténue le grésillement des textures au loin |
Le texte d'aide de cet écran **revient à la ligne** au lieu de déborder de l'écran — il tenait sur une
seule ligne centrée depuis sa création.
---
## 🔗 Liens
Trois boutons dans les options d'OmniGen : la chaîne YouTube, la page Modrinth et le serveur Discord.
Chacun passe par l'écran de confirmation de Minecraft — aucun lien ne s'ouvre sans votre accord.
---
## 🧱 Chaque bloc à sa vraie forme
Le terrain lointain ne savait dessiner qu'une chose : un pavé. Un tapis de mousse devenait un **bloc**
de mousse, une couche de neige un bloc de neige, un nénuphar une **croix** plantée dans l'eau, et une
barrière était purement **omise** — parce qu'un mur de pierre continu à la place d'une balustrade est
pire que rien.
Ils ont tous leur forme, maintenant. Et pas une forme approchée à la main : **celle que le bloc
déclare lui-même**. Minecraft sait quelle place occupe chacun de ses blocs ; il suffisait de le lui
demander. Ça vaut donc aussi pour les blocs des mods, sans aucune liste à tenir à jour.
**Et surtout, le terrain lointain transporte désormais l'ÉTAT du bloc, pas seulement son identité.**
C'est le changement de fond de cette version. Jusqu'ici on stockait « ceci est un escalier » ; on
stocke maintenant « ceci est un escalier tourné vers le nord, moitié haute ». Le renderer peut alors
lire le **modèle** que Minecraft a déjà cuit pour cet état précis — une barrière avec ses bras, une
dalle du bon côté, un escalier dans le bon sens.
Trois précisions :
- **Ça ne coûte pas un octet de plus.** L'identifiant d'état tient dans le même entier que l'identifiant
de bloc — c'est celui qu'emploie le protocole réseau de Minecraft lui-même. Et le tableau n'est
transmis que si au moins un bloc du chunk n'est pas à son état par défaut : un chunk de terrain nu ne
coûte rien.
- **Le vrai modèle est réservé au champ proche.** Un cube fait six faces, une barrière avec ses bras une
trentaine. Au-delà, on redessine des boîtes — à cette distance, personne ne voit la différence.
- **Rien à recapturer pour que ça n'empire pas.** Les chunks capturés avant cette version s'affichent
exactement comme hier, et gagnent leur forme à leur prochaine capture.
Deux limites assumées : la neige est vue à **une** couche, et les **dalles restent des cubes**. Une dalle
haute dessinée en bas laisserait un trou à hauteur d'œil, là où un cube n'en laisse aucun — quand on
ignore l'orientation, le mensonge le moins coûteux est celui qui ne creuse pas.
**Les blocs décoratifs des mods sont de retour**, eux aussi, dès lors qu'on sait les dessiner. Restent
masqués ceux dont le sens tient à leur **contenu** et non à leur forme — un panneau d'affichage de
Create rendu sans son texte n'est pas approximatif, il est faux.
---
## 📏 Le bloc-parfait ne dépend plus de votre altitude
En prenant de la hauteur, le terrain proche se mettait à grossir par paliers — puis, près du plafond du
monde, **toute la carte basculait d'un coup en cellules de 2×2**, pour quelques blocs de montée.
La cause : l'altitude était comptée comme de la distance, et ajoutée à **tous** les chunks — y compris
celui qui est sous vos pieds. À y=255, le terrain à vos pieds était traité comme s'il était à vingt
chunks.
Ce poids a une vraie raison d'exister : vu d'avion, la surface visible explose et il faut dégrader plus
vite. Mais il n'a aucune raison de dégrader ce qui est à deux pas. **Les seize chunks autour de vous
sont désormais bloc-par-bloc, sans condition** — ni altitude, ni zoom, ni hystérésis. Au-delà, le poids
de l'altitude fait son travail comme avant.
---
## 🔌 La lumière traverse enfin les frontières de chunk
En creusant une galerie, le fond du tunnel restait **en plein jour** pendant que le reste s'assombrissait
correctement — définitivement, pas seulement en retard.
Casser un bloc ouvre un passage à la lumière, et on ne rafraîchissait que **quatre blocs** autour de la
pioche. La lumière de Minecraft porte à quinze, et bien plus loin dans un couloir qui la canalise. Tout
ce qui était au-delà gardait la valeur mesurée avant que le tunnel existe.
Élargir naïvement aurait relancé une recapture complète à chaque coup de pioche. On a donc séparé les
deux besoins, qui n'avaient aucune raison de partager le même mécanisme : la **géométrie** ne change
qu'au bloc cassé ; la **lumière** est relue sur tout le voisinage, sans rescanner le moindre bloc.
**Et la nuit atteint enfin le terrain lointain quand vous jouez sans shaderpack.** La modulation
jour/nuit était purement coupée hors Iris — un raccourci écrit du point de vue d'un shaderpack, qui
fait ce travail lui-même, et qui ne disait rien du cas où il n'y en a pas.
---
## ⚡ Démarrage et journal
**La connexion ne bloque plus le serveur.** La recette de génération était construite sur le fil
principal au premier login : deux secondes et demie de serveur figé, et un « Can't keep up » dans la
console. Elle est préchauffée en arrière-plan, en priorité minimale.
**Le journal ne se noie plus.** Le bilan de recapture s'imprimait à chaque passe de rattrapage
automatique — une centaine de fois en trois minutes. Il ne parle plus que quand quelque chose de réel
s'est passé.
**`BUILD CHECK` affiche l'heure de compilation du jar.** Savoir si le client et le serveur tournent sur
le même build était devenu une devinette ; c'est désormais une ligne à comparer.
---
## 🎬 Affichage
- **Les mobs vus de loin ne sont plus coupés en deux**, surtout en volant haut : le sol lointain passait
devant leurs jambes. (Sans shaderpack pour l'instant.)
- **Changer de shaderpack en pleine partie** ne fait plus disparaître le terrain lointain, ni ne le
déforme en grandes nappes étirées.
- **Le terrain lointain ne disparaît plus au démarrage** en ne laissant que la mer : il lui manquait
ses textures dès qu'aucune zone vide n'était à l'écran.
- **F3+T et le changement de pack de ressources** remettent le terrain lointain à jour.
- **Le haut des flancs des blocs d'herbe** prend la couleur du biome, comme sur les vrais blocs.
- **Sapins et bouleaux** gardent leur couleur fixe ; **les cerisiers** ne sortent plus vert olive.
- **L'animation de remontée** ne se joue plus qu'à la première apparition d'une zone.
- **Les hautes herbes ne clignotent plus** sous shaderpack. **Clôtures et murets** sont affichés par défaut.
---
## 🧹 L'ancien LOD « peinture » est retiré
Le premier moteur du terrain lointain — des plaques colorées plates — tournait encore dans le mod,
coupé mais présent, avec ses réglages. Il est retiré, avec ses quatre bascules. Le menu passe à
**75 réglages**, et les outils de diagnostic (table des paliers, sonde de colonne, shader de fondu)
sont rangés au niveau Développeur.
---
## 🐛 Corrections
**Océan saumon au crépuscule.** La valeur « plein jour » écrivait une lumière de ciel **et** de bloc au
maximum. Or la lumière de bloc est chaude : tout l'océan virait au rose. « Plein jour » ne veut pas dire
« toutes les lumières au maximum » — les deux canaux ont des couleurs différentes.
**Feuilles de cerisier vertes.** Les feuilles sans résolveur de couleur recevaient la teinte du feuillage
— précisément celles qui ne doivent pas être teintées.
**Blocs de terre noirs en plein champ.** Une colonne exposée au ciel pouvait être capturée avec un
éclairage à zéro, si le moteur de lumière n'avait pas encore propagé. Une tranche qui n'a rien au-dessus
d'elle voit le ciel, par définition : on ne le devine plus, on le déduit.
**Le LOD ne se mettait pas à jour quand vous cassiez un bloc**, ou se remettait en plein jour en le
faisant.
**La carte affamait le terrain.** Les deux partageaient une seule file de demandes de couleurs, et la
carte la monopolisait.
**Rechargement en boucle** à l'arrivée des couleurs : le problème n'était pas la fréquence mais la
**portée** — on reconstruisait tout le terrain pour une région.
**Les couleurs disparaissaient** après un nettoyage de cache, définitivement pour la session.
**Les recaptures n'étaient pas sauvegardées** : l'écran se mettait à jour, le disque non. Au redémarrage
du serveur, tout revenait à l'état d'avant.
**Déconnexion au chargement d'une région** (« 20 611 octets en trop ») : encodage et décodage d'un même
paquet ne variaient pas ensemble.
**Ralentissements à la connexion** : une clé de suivi provoquait des collisions massives dans une table
d'un million et demi d'entrées.
**Réglage changé, terrain en damier** : après un clic dans le menu, des morceaux construits avec l'ancien
réglage restaient affichés pour de bon.
**Des centaines d'erreurs OpenGL par minute** dans le journal (« VAO names must be generated ») : l'eau
d'une zone refaite était dessinée avec un tampon déjà détruit. Au passage, un léger scintillement de
l'eau disparaît.
**Et aussi** : lacs opaques près des arbres ; eau proche un demi-bloc trop basse sous shaderpack ; murs
de 25 blocs plantés au milieu du terrain lointain ; distance automatique trompée sous shaderpack ; eau
grise après un long déplacement ; couleurs de biome qui ne revenaient pas après un passage en teinte
par défaut.
---
## 🚧 Connu, et à améliorer
- **Cascades** : dessinées en cubes d'eau pour l'instant.
- **Grottes vues de loin** : il reste des défauts visuels et de lumière.
- **En solo sur un monde neuf**, les couleurs de biome peuvent mettre quelques minutes à arriver
(l'herbe reste brune puis verdit) pendant que le mod génère et capture en même temps.
- **Sous shaderpack**, les mobs lointains peuvent encore être coupés par le terrain.
---
beta
OmniGen 0.3.37.23
0.3.37.232 сент. 2026 г.65Minecraft: 1.21.1neoforge
Что нового
### Change Log 1.0
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/LjKJhuIt6ng" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
# OmniGen 0.3.37.23
Une version entièrement consacrée à **la carte**. Elle ne change rien au terrain lointain en jeu : ce qui suit concerne la minimap et la grande carte.
> ⚠️ **Serveurs : mettez le jar à jour.** La seconde fonctionnalité ci-dessous a besoin des deux côtés. Le reste marche avec un serveur en 0.3.37.22.
---
## 🗺 La carte n'oublie plus
Jusqu'ici, la carte lisait le cache du terrain lointain. Ce cache est borné en mémoire et **évince ce qui s'éloigne** — une zone explorée puis quittée disparaissait donc de la carte, et vous ne retrouviez que les gros pavés envoyés par le serveur.
OmniGen tient maintenant une **couche séparée**, sur votre disque : pour chaque bloc de surface, sa couleur et son altitude. Tout ce que vous avez vu une fois y reste, au bloc près, définitivement.
Pourquoi une couche à part plutôt qu'agrandir l'ancienne : le cache du terrain lointain stocke des **tranches verticales** — plusieurs par colonne, avec les grottes qui débouchent près de la surface. Il lui faut ça pour dessiner du relief en trois dimensions. La carte, elle, regarde d'en haut : une seule valeur par cellule lui suffit.
L'écart est considérable :
| | sur le disque |
|---|---|
| Cache du terrain lointain | **1,5 Go** |
| Couche de la carte | **38 Mo** |
Quarante fois plus petit, pour la même couverture au bloc près.
**Au premier lancement**, OmniGen reprend ce que vous possédez déjà : chez un joueur au gros cache, 1 567 675 chunks ont été repliés en 76 secondes, en tâche de fond, sans gêner la partie. Cette reprise n'a lieu qu'une fois par monde.
---
## 🔍 Affinage à la demande
La couche conserve la finesse qu'on lui donne — elle n'en invente pas. Les zones que vous n'avez jamais visitées restaient donc en pavés de 8 blocs : c'est l'atlas mondial du serveur, volontairement grossier pour couvrir toute la carte pour presque rien. Mesuré sur un écran type : **51 % des pixels**.
Or le serveur possède la vraie donnée. Il ne l'envoyait pas parce que son comblement travaille en anneaux **autour du joueur** — et sur une carte, on regarde ailleurs, parfois à des milliers de blocs.
Désormais, quand vous ouvrez la grande carte, le client dit au serveur quelle zone il affiche. Le serveur y applique le mécanisme d'envoi qui existait déjà, et les pavés se remplacent par du terrain réel **sous vos yeux**.
Ce n'est pas instantané et ce n'est pas censé l'être : l'envoi reste budgété à 8 chunks par tick, soit environ 160 par seconde. Laissez la carte ouverte quelques instants sur une zone inconnue.
**Bornes** — la demande est rognée à 96×96 chunks autour du centre de votre écran, une demande et demie par seconde au maximum, et ignorée si vous êtes trop dézoomé pour que le détail se voie. Un paquet venu du réseau est une demande, jamais un ordre : c'est le serveur qui décide de ce qu'il balaye.
---
## ⚙️ Réglages
Deux nouvelles bascules dans **Options avancées → Cartes et repères**, toutes deux activées :
**Carte détaillée** — la couche décrite plus haut. Coupée, la carte revient exactement au comportement de la 0.3.37.22, et aucun fichier n'est créé.
**Affinage à la demande** — la requête au serveur. Coupée, seules les zones que vous visitez physiquement s'affinent.
---
## 📊 Ce que vous pouvez vérifier vous-même
Le journal publie un relevé quand vous ouvrez la carte :
```
[OmniGen/Carte] Couche de surface — 1 070 371 pixels sur 1 070 870 servis par une tuile (99 %)
[OmniGen/Carte] Finesse à l'écran — 521 096 au BLOC PRÈS (48 %), 549 275 en pavés de 8 blocs (51 %)
```
La seconde ligne est celle qui compte : c'est la proportion de votre écran affichée au bloc près. Avec l'affinage à la demande, elle doit monter pendant que vous regardez.
---
## ⏭ À venir
Le prochain gros chantier concerne le **terrain lointain en 3D**, et non plus la carte : le *greedy meshing*. Aujourd'hui, une plaine de mille blocs d'herbe produit mille quads identiques côte à côte ; il s'agit de les fusionner en un seul. Rien ne change à l'écran, mais chaque image coûte beaucoup moins cher — donc, à performances égales, le terrain peut rester détaillé bien plus loin.
beta
OmniGen 0.3.37.22-BETA
0.3.37.22-BETA31 авг. 2026 г.39Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.22
Une version tournée vers **la carte** et **le confort d'utilisation**, avec deux optimisations du terrain lointain à la clé.
---
## 🗺 La minimap prend forme
**Trois formes au choix : ronde, carrée ou rectangulaire.** La ronde pour rester discret, la rectangulaire quand on veut voir large.
**Placement à gauche ou à droite.** À gauche, le compteur de FPS se décale tout seul pour lui laisser la place — plus de superposition.
**Le niveau de zoom est conservé.** Il était remis à zéro à chaque lancement. Il vous suit maintenant d'une session à l'autre.
**Le marqueur du joueur est recalé.** Il se dessinait à côté du bloc où vous vous trouvez au lieu d'être dessus. C'était particulièrement visible sur une poutre ou un pont étroit.
---
## 🌐 La grande carte s'ouvre autrement
L'ouverture ne se fait plus par agrandissement mais par **propagation circulaire** : la carte se déploie depuis votre position vers les bords. La fermeture suit le chemin inverse.
C'est une question de goût, mais c'est aussi plus juste : la carte se dévoile dans l'ordre où l'information vous parvient, du plus proche au plus lointain.
---
## 📋 Un vrai menu
Les options avancées étaient une longue colonne de 40 boutons sans structure. C'est maintenant un menu avec **les catégories à gauche, une barre de défilement à droite**, et les 42 réglages répartis en huit familles : rendu principal, niveau de détail, aspect du terrain, lumière et shaders, caméra, cartes et repères, distance et mémoire, diagnostic.
**Les outils de diagnostic ont leur propre catégorie** au lieu d'être mêlés aux réglages.
**« Préréglage sûr » a rejoint « Retour »** en bas d'écran — c'est une action, pas un réglage, elle n'avait rien à faire au milieu des interrupteurs.
L'option « Oscillation : ordre 2 » a été retirée : elle n'a jamais rien changé de mesurable.
---
## 🚀 Terrain lointain
**Nouveau — « Ne rien refaire derrière soi » (activé).** Le terrain situé dans votre dos n'est de toute façon pas affiché. Il n'est donc plus rafraîchi ni recalculé tant que vous ne le regardez pas.
Précision importante, parce que c'est le piège habituel de ce genre d'optimisation : **rien n'est dégradé et rien n'est effacé.** Un demi-tour retrouve le terrain intact — il est simplement affiné après coup au lieu de l'avoir été d'avance. Un terrain jamais construit l'est quand même, pour qu'aucun trou ne puisse s'ouvrir.
**Nouveau — « Cône resserré » (activé).** Le terrain très lointain n'était traité que dans un secteur de 100° autour du regard ; le champ de vision réel n'en fait que 51°. On en traitait donc deux fois trop, en permanence. Ramené à 75°, ce qui laisse encore une marge confortable.
> Si vous voyez du terrain lointain clignoter au bord de l'écran, c'est cette option : coupez-la et vous retrouvez le comportement précédent.
**L'apparition à la connexion est plus progressive.** Elle se faisait sur une durée fixe, ce qui la rendait brutale sur les grandes distances d'affichage. Elle avance maintenant à **cadence constante**, chunk par chunk : la vague est visible, régulière, et le travail de construction reste étalé quelle que soit votre distance d'horizon.
---
## 🔭 Détail au zoom — désactivé par défaut, et voici pourquoi
Cette option affine le terrain lointain quand vous utilisez un mod de zoom, pour qu'il reste net à la lunette. Elle fonctionne. Elle coûte aussi très cher, et le chiffre mérite d'être dit franchement : **affiner trois fois revient à traiter environ neuf fois plus de terrain**, tant que la lunette est levée.
Elle est donc **coupée par défaut** et retirée du Préréglage sûr. Elle reste disponible pour une capture d'écran immobile, avec son coût écrit dans l'infobulle plutôt que découvert en jeu.
Au passage, un vrai défaut a été corrigé : le zoom des mods de lunette est **animé**, et le terrain se reconstruisait à chaque image pendant toute l'animation. Cette part-là ne coûte plus rien.
---
## ⏭ Et ensuite
La prochaine version s'attaque à la carte elle-même. Aujourd'hui, les zones que vous n'avez jamais explorées s'affichent en pavés de 8 blocs — c'est la carte grossière envoyée par le serveur, volontairement légère. L'objectif de la 0.3.37.23 est **une carte détaillée bloc par bloc, partout**, stockée en tuiles sur le disque plutôt qu'en mémoire.
beta
OmniGen 0.3.37.21-BETA
0.3.37.21-BETA30 авг. 2026 г.28Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.21
Une version de correction, centrée sur deux choses : **les serveurs qui tombaient**, et **l'ondulation du terrain lointain**.
---
## 🔴 Crashs serveur — trois causes, toutes corrigées
Si vous hébergez un serveur, c'est la partie qui compte. Trois défauts distincts pouvaient bloquer un tick pendant 60 secondes, ce que Minecraft interprète comme un plantage : il coupe alors le serveur.
**Un joueur qui arrive faisait tomber le serveur.** À la connexion, le client annonce les chunks qu'il possède déjà. Ce traitement s'exécutait sur le thread principal et était proportionnel à sa mémoire — chez un joueur avec une grande carte, plus d'un million et demi de chunks à traiter d'un coup. Déplacé sur un fil dédié, et son coût par chunk divisé.
**Une file d'envoi sans limite réelle.** Un budget censé envoyer 8 chunks par tick comptait les réussites, pas les tentatives : dès qu'un envoi échouait, la boucle continuait et pouvait vider les 4096 chunks de la file dans un seul tick. Le compteur porte maintenant sur le travail effectué.
**Un inventaire annoncé trop tôt.** Le client déclarait ce qu'il possède avant d'avoir fini de relire son cache disque — il annonçait 53 000 chunks alors qu'il en avait 1 570 000. Le serveur croyait devoir tout renvoyer et déclenchait les deux défauts ci-dessus. Il attend désormais la fin de la relecture.
> ⚠️ Ces trois défauts ne se déclenchaient que pour un joueur à qui il **manque** des données — c'est-à-dire un nouvel arrivant. Un serveur pouvait donc tourner des semaines sans problème et tomber le jour de son ouverture.
---
## 🌊 L'ondulation du terrain lointain
Le terrain lointain semblait avancer et reculer à chaque pas, comme un écran qui se déroule. **La cause est identifiée** : l'oscillation de vue de Minecraft — le balancement de la caméra quand on marche — n'était pas transmise au terrain lointain. Le monde proche tanguait, le lointain restait immobile, et à cinq cents mètres ce décalage devient des dizaines de blocs.
Transmettre correctement ce balancement au terrain lointain n'est pas encore résolu. En attendant, **OmniGen désactive l'oscillation de vue** et affiche un message pour vous le dire.
Vous perdez le balancement de la marche, y compris celui de votre main. En échange, l'horizon est stable. Le verrou se retire dans **Options OmniGen → Avancé → « Verrou oscillation »**, et votre réglage d'origine est restauré.
---
## 🕳 Trous dans l'horizon
Une bande entière de terrain, entre 80 et 360 chunks, n'était dessinée par personne : ces régions étaient écartées **parce qu'elles n'avaient pas de maillage**, et cette décision intervenait avant le code qui en aurait construit un. Elles ne pouvaient donc jamais en obtenir. Mesuré : jusqu'à 1531 régions absentes en permanence.
Un second défaut du même genre laissait un anneau de 56 chunks au bord de l'horizon où aucun regroupement n'était jamais construit — les deux étages du rendu ne s'arrêtaient pas à la même distance.
---
## ⚙️ Réglages
**« Horizon LOD auto » est désormais désactivé.** Ce régulateur faisait varier la distance d'affichage selon les performances : il montait de 8 chunks toutes les trois secondes puis retombait d'un coup — soit un horizon qui avance de 768 blocs puis recule de 480, en boucle. Il est éteint chez tout le monde au premier lancement, avec un message dans le journal. Réactivable si vous y tenez.
**Le bouton « LOD » coupe enfin tout le terrain lointain.** Il ne coupait en réalité qu'une moitié du rendu. Le bouton « Textures » s'appelle maintenant **« Voxel »** : ce n'était pas une option cosmétique mais l'interrupteur principal du rendu détaillé.
**La peinture (l'ancien rendu lointain) est désactivable.** Elle tournait en permanence à côté du rendu voxel, sans interrupteur, et coupait au passage la sauvegarde du cache et la prégénération. Ces systèmes sont maintenant indépendants.
**Nouveau bouton « ✔ Préréglage sûr »** dans les options avancées : il pose les 39 réglages dans un état complet et connu, en un clic. Utile quand on a testé beaucoup de choses et qu'on ne sait plus où on en est.
**Apparition en vague** : à la connexion, le terrain lointain se dévoile du centre vers l'horizon en une dizaine de secondes. En plus d'être plus agréable, cela étale le travail de construction et supprime l'à-coup de l'arrivée.
---
## 🙏 Remerciements
L'ondulation était traquée depuis onze jours. C'est une observation d'un joueur qui l'a débusquée : le nom d'un point de repère affiché en jeu faisait le yoyo **exactement au même rythme** que le terrain. Un repère n'a ni géométrie, ni cache, ni niveau de détail — il n'a qu'une matrice de caméra. Cette seule remarque a éliminé onze jours de fausses pistes.
beta
OmniGen 0.3.37.20-BETA
0.3.37.20-BETA22 авг. 2026 г.21Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.20-BETA
**La version où le terrain lointain devient réellement jouable.**
Dix images par seconde avant, quatre-vingts après, au même endroit. Un horizon qui plafonnait à 64 chunks
et qui en atteint maintenant plus de 500. Un cache qui se corrompait silencieusement depuis des semaines,
et qu'on a fini par prendre la main dans le sac.
Tout ce qui suit a été mesuré en jeu, pas estimé.
---
## 🚀 Performances : 10 → 80 images par seconde
**Mesuré au même endroit, sans bouger.** Et surtout : entre 60 et 80 **stables**, que l'on regarde l'océan
lointain, une forêt ou des îles. Auparavant, tourner la tête vers du terrain boisé suffisait à diviser les
images par seconde par deux.
Trois réglages, désormais **activés par défaut** :
- **Lointain allégé** — le détail décroît deux fois plus vite avec la distance
- **Regroupement agressif** — les blocs de 32×32 chunks prennent le relais dès 48 chunks au lieu de 96
- **Reconstruction paresseuse** — le terrain lointain se reconstruit moins souvent
Tous restent désactivables individuellement dans les options avancées.
### Ce qui coûtait si cher
Le détail décroissait avec la distance, mais lentement : détail maximal jusqu'à 20 chunks, puis un cran
tous les 36. Conséquence peu intuitive — **à 64 chunks, le terrain était encore rendu presque bloc par
bloc**, soit 128 × 128 chunks de voxels quasiment pleine résolution envoyés à votre carte graphique à
chaque image. Le détail décroît maintenant deux fois plus vite. Les vingt premiers chunks autour de vous
ne changent pas d'un pixel ; c'est l'horizon qui devient plus grossier.
Ce réglage avait été assoupli fin juillet, avec la note « coût assumé, on a la marge ». La marge venait
d'une carte bien moins remplie. Un million et demi de chunks plus tard, elle n'existait plus — mais le
réglage, lui, était resté.
### Et un emballement qui s'auto-alimentait
Un régulateur interne augmentait le débit d'envoi vers la carte graphique quand les images ralentissaient.
L'intention était bonne pour le *lancement* des calculs, qui ne coûte rien. Mais la même règle s'appliquait
aux **envois**, qui se paient exactement là où ça ralentit : image lente → on envoie quatre fois plus →
image encore plus lente. Le remède était indexé sur le symptôme. Il est désormais inversé : plus l'image
est lente, moins on envoie.
Effet direct : à très grande distance d'affichage, le jeu reste jouable pendant que l'horizon se construit,
au lieu de s'effondrer à quelques images par seconde.
---
## 💾 Le cache du terrain est refait de fond en comble
C'est le changement le plus profond de cette version, et il corrige un défaut qui a coûté des semaines
sans jamais être vu.
Le cache était **un unique fichier compressé lu d'un bout à l'autre**. Trois conséquences, toutes
structurelles :
- **34 secondes de chargement au démarrage.** Pour connaître le terrain sous vos pieds, il fallait
décompresser tout le reste du monde. Rien ne s'affichait avant la fin.
- **Un octet abîmé faisait perdre tout ce qui suivait.** C'est ce qui arrivait : le fichier se corrompait
silencieusement, le jeu repartait avec un morceau arbitraire du monde, et le terrain apparaissait rayé —
un défaut longtemps cherché dans l'affichage alors qu'il était sur le disque.
- **Le fichier entier était réécrit** toutes les deux minutes pour y ajouter quelques milliers de chunks.
C'est ce volume qui rendait deux sauvegardes simultanées capables de se corrompre l'une l'autre.
Le nouveau format est **indexé** : chaque chunk se lit et s'écrit indépendamment.
- **L'horizon proche s'affiche en deux secondes** au lieu de trente-quatre, et le reste se charge pendant
que vous jouez. Le terrain est relu du plus proche au plus loin, dans l'ordre où il vous sert.
- **Une entrée abîmée ne coûte que son chunk.** Le reste demeure lisible.
- **On n'écrit plus que ce qui est neuf**, au moment où il arrive.
> **Reprise automatique.** Votre cache existant est converti au premier lancement, une seule fois. Sur un
> monde très exploré, comptez deux à trois minutes pendant lesquelles le terrain lointain n'apparaît pas —
> c'est normal, et ça n'arrivera plus jamais ensuite. L'ancien fichier est conservé sous
> `voxel.bin.migrated` : gardez-le un jour ou deux, puis supprimez-le.
>
> ⚠️ **Le cache prend plus de place qu'avant.** Compresser chaque chunk séparément coûte forcément plus que
> compresser tout le fichier d'un bloc — c'est précisément ce qui permet d'en lire un sans lire les autres.
> Sur un monde d'un million et demi de chunks, cela représente quelques centaines de mégaoctets
> supplémentaires. Le chargement instantané et la résistance à la corruption se paient là.
---
## 🗺️ Le terrain lointain se remplit enfin — trois blocages levés
Trois mécanismes empêchaient la carte de se compléter, chacun invisible seul.
**Le scanner de carte recommençait à zéro dès que vous marchiez.** Il balaie le monde en anneaux depuis
vous, et se recentrait — en repartant du premier anneau — dès que vous vous éloigniez de 64 chunks, soit
environ une minute de marche. Sur un monde joué pendant des semaines, il en était encore à **l'anneau 6**.
Il ne recentre désormais que si vous sortez réellement de la zone déjà balayée.
**Le serveur ignorait tout ce qui est à plus de 256 chunks.** Au-delà, un morceau de terrain manquant
n'était jamais mis en file : le serveur attendait que vous vous en approchiez. Cohérent quand l'horizon
plafonnait à 64 chunks, absurde depuis qu'il en atteint plus de 500. Porté à 512.
**Et le serveur remplissait le spawn pendant que vous jouiez ailleurs.** La prégénération globale reprend
maintenant uniquement quand plus personne n'est connecté — un serveur passe l'essentiel de son temps sans
joueurs, c'est là qu'il faut travailler. Le rayon prégénéré autour de vous passe par ailleurs de 96 à 256
chunks.
---
## 🌅 Le terrain apparaît en douceur
Le terrain lointain ne surgit plus d'un bloc : il **remonte à sa place** en sept dixièmes de seconde.
Combiné au remplissage en cercles concentriques depuis votre position — au lieu de bandes qui balayaient
l'écran — le paysage se construit autour de vous plutôt que par plaques.
L'effet ne repose sur aucun shader : il fonctionne donc **sous n'importe quel shaderpack**, contrairement
au flash blanc de l'ancienne transition, qui n'existait pas sous Iris.
*Désactivable : « Apparition en douceur » dans les options avancées.*
---
## 🧭 La carte
**La grande carte se met à jour toute seule.** Elle était figée entre deux actions ; elle vit maintenant
comme la minimap. La cadence s'ajuste d'elle-même à la taille de votre écran et à l'échelle : le calcul ne
prend jamais plus de la moitié du temps disponible, quelle que soit votre configuration.
**Une animation d'ouverture.** Appuyez sur **M** : la minimap quitte son coin, glisse vers le centre, puis
s'agrandit jusqu'à remplir l'écran. Purement esthétique — mais elle dit sans un mot que les deux cartes
sont le même objet vu de deux manières. Un clic ou une touche l'interrompt si vous êtes pressé.
**Le fond ne tranche plus.** Les zones non explorées et le pourtour de l'image partagent enfin la même
teinte : deux notions qui n'avaient aucune raison de se distinguer à l'œil.
---
## 🧠 Correctifs
**L'inventaire renvoyé en boucle.** Toutes les trente secondes, le client reconstruisait l'inventaire
complet de ce qu'il possède — plus d'un million et demi de chunks parcourus, une table de 24 000 régions
rebâtie de zéro — **sur le fil qui dessine vos images**, pour renvoyer au serveur un inventaire
rigoureusement identique au précédent. Deux à trois gigaoctets de déchets à ramasser toutes les trente
secondes, pour redire ce qui avait déjà été dit. Désormais : rien n'est envoyé si rien n'a changé, et le
calcul a quitté le fil de rendu.
**Des bandes entières de terrain qui n'apparaissaient pas.** Le rendu cédait la place aux grands blocs
regroupés en supposant qu'ils étaient prêts — sans vérifier. Entre le moment où il cédait et celui où la
relève arrivait, personne ne dessinait. Le terrain reste maintenant à l'écran tant que son remplaçant
n'existe pas réellement.
**Les réglages avancés sont enfin mémorisés.** Les vingt-cinq interrupteurs revenaient à leur valeur par
défaut à chaque lancement du jeu. Ils sont désormais écrits dans la configuration, sous des noms lisibles.
---
## 📊 Pour les curieux : le journal mesure ce qu'il fait
Rien de visible en jeu. Toutes les trente secondes, le journal indique en moyenne par image : combien de
dessins pour les chunks proches, combien pour les blocs regroupés, combien pour les grands blocs, et
combien d'envois vers la carte graphique. La carte publie de son côté le taux de chunks réellement
disponibles.
Si vous rencontrez une chute d'images par seconde, ces relevés disent **où** ça se passe. Ce sont eux qui
ont permis de trouver la plupart des correctifs de cette version — et notamment de cesser d'accuser
l'affichage d'un défaut qui était sur le disque.
---
## 🐛 Signaler un problème
Le formulaire de retour collecte votre configuration et pose les questions qui font gagner du temps.
Tout y est facultatif, mais chaque champ rempli peut représenter des jours de recherche en moins.
beta
OmniGen 0.3.37.19-BETA
0.3.37.19-BETA21 авг. 2026 г.16Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.19-BETA
## 🕳️ Le défaut le plus visible du mod est corrigé : le terrain manquant sous les îles flottantes
Depuis des semaines, sous une île flottante, l'océan et le sol n'apparaissaient pas dans l'horizon
lointain : un trou dans le paysage, exactement à l'aplomb de ce qui flotte. Le défaut a résisté à sept
correctifs successifs — parce qu'ils portaient tous sur l'**affichage**, alors que la cause était dans la
**capture**.
Pour rester léger, OmniGen ne lit qu'une « coquille » de 40 blocs sous le sommet de chaque colonne : le
reste est de la pierre invisible, inutile à stocker. Mais sous une île flottante, ce sommet, c'est l'île.
Une île à y=200 faisait lire 160→200 — et **l'océan à y=63 n'était jamais lu**. On cherchait pourquoi une
surface ne se dessinait pas, alors qu'elle n'avait jamais été enregistrée.
Le mod lit désormais une **seconde fenêtre**, sous le vide, quand il en détecte un : le terrain caché est
capturé comme n'importe quel autre. La coquille garde tout son intérêt ailleurs.
Trois défauts distincts se cachaient derrière le même symptôme, et il a fallu les trois :
- la coquille ne descendait pas jusqu'au terrain réel ;
- le test qui décidait d'ouvrir la seconde fenêtre ne lisait **qu'un seul bloc**, juste sous la coquille.
Il fonctionnait pour les petites îles, et échouait pour toutes celles plus épaisses que 40 blocs — sous
lesquelles ce bloc est de la roche, pas du vide. Le mod sonde maintenant toute la hauteur qui sépare la
coquille de la mer ;
- enfin, quand une colonne contenait trop de tranches, seules les **douze plus hautes** étaient conservées
— c'est-à-dire l'île, et jamais le terrain qu'on venait à peine de lire. La surface du sol caché est
désormais protégée de cet élagage.
## 🔧 Et surtout : les mondes déjà explorés sont réparés
Un correctif de capture ne vaut que pour ce qui reste à capturer. Les mondes déjà parcourus — donc ceux de
tous ceux qui utilisent déjà le mod — auraient gardé leurs trous pour toujours.
Au démarrage, le serveur **relit ses données enregistrées et repère les chunks incomplets** à leur
signature : des colonnes dont la matière la plus basse flotte loin au-dessus du niveau de la mer, ce qui
n'arrive jamais sur du terrain ordinaire. Ces chunks sont marqués pour être recapturés, progressivement,
sans aucune action de votre part.
Le balayage tourne en tâche de fond, à débit strictement borné, et ne se déclenche **qu'une seule fois par
monde**. Il est aussi plafonné : un chunk en attente de recapture est un trou de plus à l'écran, donc mieux
vaut réparer par vagues que tout effacer d'un coup.
⚠️ **Honnêtement** : cette détection ne peut pas distinguer avec certitude un chunk mutilé d'un authentique
sommet de montagne très élevé — la donnée enregistrée ne dit nulle part ce qu'il y avait sous la coquille.
Quelques sommets seront donc recapturés pour rien. C'est un coût ponctuel, payé une fois, et de très loin
préférable à un paysage troué.
---
## 🗺️ Nouveauté : la carte en grand
La minimap de la 0.3.37.18 avait un successeur prévu. Le voici : **touche M** ouvre la carte en plein
écran.
- glisser à la souris pour se déplacer
- molette pour zoomer, de 1 à 16 chunks par pixel — de la parcelle au continent
- **R** pour revenir sur soi, **Échap** pour fermer
- coordonnées en blocs et échelle affichées en permanence
Elle est aussi accessible par un bouton dans les options d'OmniGen, et utilise **exactement le même moteur
de rendu que la minimap** : ce que montre l'une, l'autre le montre aussi. Deux implémentations d'une même
carte finissent toujours par diverger, et le jour où l'une afficherait faux, on ne saurait plus laquelle
croire.
Le déplacement est instantané : pendant le glissement, l'image est décalée plutôt que recalculée — c'est
ce que fait toute carte, on tire le papier, on ne le redessine pas à chaque centimètre. Le calcul n'a lieu
qu'au relâchement, et déborde de l'écran pour qu'un geste ample n'expose aucun bord.
> Le monde continue de tourner pendant que la carte est ouverte : ce n'est pas un écran de pause.
*Si vous utilisez déjà Xaero ou JourneyMap, la touche M est partagée — elle se réassigne dans les options
de commandes de Minecraft, rubrique OmniGen.*
---
## 🐛 Signaler un problème
Le formulaire de retour collecte votre configuration et pose les questions qui font gagner du temps.
Tout y est facultatif, mais chaque champ rempli peut représenter des jours de recherche en moins.
beta
OmniGen 0.3.37.18-BETA
0.3.37.18-BETA20 авг. 2026 г.24Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.18-BETA
## 🗺️ Nouveauté : la minimap
Une carte du terrain en haut à droite de l'écran, alimentée par les données que le mod possède déjà.
Un pixel = un chunk, nord en haut, avec un ombrage du relief pour qu'on reconnaisse un paysage plutôt
qu'une nappe de couleur. Elle utilise exactement les mêmes couleurs que l'horizon lointain : ce que vous
voyez sur la carte est ce que vous verrez en tournant la tête.
Activée par défaut, et **désactivable dans les options d'OmniGen** (à côté du compteur de FPS). Le choix
est mémorisé : si vous préférez une autre minimap, coupez-la une fois et elle ne reviendra pas.
---
## ⚡ Performances : le défaut qui coûtait le plus cher
Un profilage a montré que **16,7 % du temps de rendu** partait dans des recherches de table de hachage.
La cause tenait en une ligne : la manière de calculer la clé d'un chunk faisait atterrir tous les chunks
d'une même diagonale au même endroit de la table. Sur une carte d'un million et demi de chunks, cela
revenait à ranger 1,5 million d'entrées dans 2 048 cases — chaque consultation devait alors parcourir un
arbre de plusieurs centaines d'éléments, seize fois par image.
Après correction, ce coût tombe à **2,3 %**. Un profil de contrôle le confirme : la fonction la plus
lourde a purement disparu du classement.
Effet le plus net : **le jeu ne se dégrade plus au fil de la session.** L'ancien coût grandissait avec le
nombre de chunks en mémoire — plus vous jouiez longtemps, plus chaque recherche devenait lente. Ce n'était
donc pas la distance d'affichage qui pesait, c'était la durée de jeu.
---
## 🔁 Correction : le terrain qui disparaissait et réapparaissait
Certains joueurs voyaient une zone lointaine s'effacer puis revenir, environ toutes les trente secondes.
La cause : le régulateur de distance automatique **oscillait**. Il réduisait la distance de 15 %, la
remontait de 10 %, et recommençait toutes les trois secondes — un aller-retour complet prenant vingt à
quarante secondes. À chaque réduction, l'anneau extérieur sortait du rayon d'affichage ; à chaque remontée,
il revenait.
Pire : le rayon de libération de mémoire suivait cette valeur mouvante. Une baisse d'images passagère ne
masquait donc pas le terrain lointain, elle le **supprimait** — et la remontée retrouvait un vide qu'elle
avait elle-même créé, ce qui déclenchait une nouvelle réduction. La boucle s'alimentait toute seule.
Quatre verrous ont été posés, réunis sous l'option **Distance stable** (activée) :
- une marge de tolérance à l'affichage : le rayon décide de ce qu'on **fabrique**, plus de ce qu'on efface
- la libération de mémoire suit désormais **votre réglage**, pas la valeur du moment
- après chaque augmentation, un délai laisse le terrain neuf arriver avant tout nouveau jugement
- le plancher du régulateur ne peut plus dépasser votre propre réglage (une distance basse était ignorée)
Le régulateur écrit maintenant chacune de ses décisions dans le journal.
---
## 🧠 Serveur : mémoire
⚠️ **Cette version ne garantit pas la disparition des problèmes de mémoire signalés.** Elle supprime un
gaspillage réel et mesuré, mais l'ampleur du gain dépend beaucoup de la façon dont votre serveur est
utilisé. Les mesures ci-dessous viennent d'un serveur de test, pas du vôtre.
Ce qui a changé :
- un cache serveur conservait **800 octets par chunk, indéfiniment**, pour répondre à une simple question
par oui ou non. Ces données étaient envoyées aux clients puis plus jamais relues. Le cache est devenu une
simple liste de repères : **seize fois plus léger**, comportement identique.
- le même défaut de hachage que côté client s'appliquait au serveur. Il ne coûtait pas que du temps :
les tables dégénérées y consomment aussi davantage de mémoire.
- une structure interne ajoutée récemment grandissait sans limite avec la durée de jeu. Elle est
maintenant bornée et nettoyée périodiquement.
**Nouveau : le serveur rend compte de lui-même.** Toutes les cinq minutes, une ligne indique la mémoire
utilisée et le nombre d'éléments suivis par OmniGen, avec une alerte au-delà de 85 % du tas. Si vous
rencontrez une saturation, votre journal contiendra désormais les chiffres nécessaires — sans avoir à
refaire l'incident.
---
## 🐌 Nouvelle option : reconstruction paresseuse *(désactivée par défaut)*
Le terrain très lointain se reconstruisait aussi souvent que celui sous vos pieds, pour des changements
invisibles à cette distance. Cette option étire ce délai avec l'éloignement — le proche reste réactif, le
lointain se regroupe. Sur les mesures de test, cela divise le nombre d'envois vers la carte graphique par
2 à 4 selon la distance d'affichage.
Elle vise **les à-coups**, pas la moyenne d'images par seconde. À essayer si votre jeu est globalement
fluide mais entrecoupé de saccades.
Un compteur d'envois est écrit dans le journal toutes les trente secondes, option activée ou non, pour que
vous puissiez comparer vous-même.
---
## 🎨 Correctifs divers
- **L'eau s'affichait en gris sur la minimap.** La texture d'eau de Minecraft est en niveaux de gris — tout
son bleu vient d'une teinte appliquée au rendu, qu'un fluide ne permettait pas de retrouver.
- Le brouillard du terrain lointain ne revenait pas correctement à son état normal lorsque deux couches de
rendu se superposaient, ce qui pouvait assombrir excessivement la scène de nuit.
- Le serveur ne redemande plus indéfiniment un chunk que le client vient d'écarter.
- L'écran des options avancées se dispose désormais selon la taille de votre interface. Avec vingt et une
bascules, la grille figée à deux colonnes pouvait faire sortir la première rangée hors de l'écran aux
grandes échelles d'affichage — des réglages étaient présents mais invisibles.
---
## 🐛 Signaler un problème
Le formulaire de retour a été enrichi : il collecte désormais votre configuration automatiquement et pose
les questions qui font vraiment gagner du temps — notamment **avez-vous testé avec OmniGen seul ?**, qui
permet à elle seule de distinguer un défaut du mod d'un conflit entre mods.
Tout y est facultatif, mais chaque champ rempli peut représenter des jours de recherche en moins.
---
*Merci à **KorinMC** pour le premier signalement extérieur du projet. Il a mis au jour un problème qu'un
serveur de développement, redémarré sans cesse et généreusement doté en mémoire, ne pouvait structurellement
pas révéler.*
beta
OmniGen 0.3.37.17-BETA
0.3.37.17-BETA2 авг. 2026 г.62Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.17
Une version de performances et de correctifs visuels. Le terrain lointain est nettement plus fluide, et
plusieurs défauts d'affichage tenaces sont enfin réglés — dont les forêts qui s'affichaient en bois.
---
## Performances
**Le rendu du terrain lointain a été profondément optimisé.**
Le mod reconfigurait entièrement la carte graphique pour *chaque* morceau de terrain dessiné. Sur un
horizon qui en compte des centaines, l'essentiel du temps ne servait plus à dessiner mais à préparer.
Le shader n'est désormais appliqué qu'une fois par lot.
Mesuré sur une même scène, avant et après :
| | avant | après |
|---|---|---|
| durée d'image médiane | 3,7 ms | **1,5 ms** |
| pire image | 146 ms | **22 ms** |
Concrètement : la moyenne double et les à-coups disparaissent. C'est cette dernière ligne qui compte —
une image à 146 ms, c'est un blocage que l'œil perçoit.
---
## Correctifs d'affichage
**Les forêts s'affichaient en bois.** Certains feuillages moddés — les séquoias de Biomes O' Plenty en
particulier — n'étaient jamais enregistrés dans le terrain lointain. On voyait donc les troncs et les
branches, sans une feuille : des arbres nus, pris pour des colonnes de planches. La capture ne dépend
plus d'une liste de blocs et reconnaît tous les feuillages, moddés compris.
> Si vos forêts lointaines sont encore en bois après la mise à jour, c'est que votre serveur les a
> enregistrées avant le correctif. Supprimez le dossier `omnigen_voxelstore` du monde, serveur arrêté :
> il se remplira de nouveau, correctement.
**Le feuillage prenait la couleur du biome où vous vous trouviez.** Toutes les feuilles de l'horizon
partageaient une seule teinte, prise sous vos pieds — debout dans des badlands, les forêts lointaines
viraient au brun. Elles suivent maintenant le climat du terrain qu'elles occupent.
**Trou sous les îles flottantes.** Vues de dessous, elles n'étaient pas fermées. Le volume est
désormais clos sur son épaisseur réelle, et non à une profondeur fixe.
**Terrain lointain trop lumineux la nuit sous shaders.** Il s'assombrit maintenant avec le reste du
monde. Correctif partiel : le terrain lointain partage encore une seule valeur de lumière.
---
## Stabilité
**Perte possible du cache d'affichage lointain.** Se déconnecter pendant que le cache se rechargeait
écrasait le fichier complet par la portion déjà lue — silencieusement, et sans retour possible. La
sauvegarde attend désormais la fin du chargement.
**Régulation serveur.** Le garde-fou censé mettre en pause les tâches de fond ne se déclenchait
qu'*après* la chute de TPS, jamais avant : il lisait l'intervalle entre deux ticks, qui vaut 50 ms tant
que le serveur tient la cadence, quelle que soit sa charge. Il lit maintenant le temps de calcul réel.
Le rapport de diagnostic affiche également la charge et la marge restante.
---
## Outils (options avancées)
Un menu **Options avancées** enrichi, accessible en jeu, qui sert autant au diagnostic qu'à dépanner :
chaque mécanisme du terrain lointain a son interrupteur, avec une ligne d'explication.
**Audit des textures** — vérifie chaque type de bloc présent dans le terrain lointain : texture
résolue, texture cohérente avec le bloc, teinte appliquée, identifiant valide. Un rapport est écrit dans
`omnigen/diag/`. C'est cet outil qui a permis de nommer le défaut des séquoias.
**Diagnostic** — écrit sur disque le contenu réel du terrain lointain en mémoire, avec la table
complète des blocs.
**Système hybride** (expérimental, désactivé) — convertit le terrain lointain peint en terrain texturé.
Très coûteux en l'état ; sera réactivé quand la reconstruction par région sera incrémentale.
---
## Compatibilité
Minecraft 1.21.1 · NeoForge · compatible Iris, Sodium, Biomes O' Plenty, Terralith.
Aucune action requise à la mise à jour, sauf pour les mondes dont les forêts étaient déjà enregistrées
en bois (voir la note plus haut).
beta
OmniGen 0.3.37.16-BETA
0.3.37.16-BETA29 июл. 2026 г.42Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.16-BETA — Changelog
**NeoForge 1.21.1** — La version de la **stabilité**. Trois causes distinctes d'effondrement des performances ont été identifiées et corrigées, et le remplissage automatique du terrain lointain fonctionne enfin — il ne fonctionnait tout simplement pas avant.
---
## Performances : de 22 à 75 images par seconde
**Le terrain proche était dessiné bien trop finement, quel que soit votre réglage.**
Un indice troublant a mis sur la piste : faire varier la distance d'affichage de 16 à 96 chunks ne changeait **rien** aux performances. Un coût insensible à la distance ne peut pas venir de l'horizon.
La cause : le terrain proche est dessiné morceau par morceau, soit un appel graphique par chunk — et le rayon de cette zone était bloqué à un minimum d'environ 32 chunks **indépendamment de vos réglages**. Près de quatre mille appels graphiques permanents, que vous affichiez 16 chunks ou 1024. Cette zone est désormais calée sur votre distance de rendu Minecraft.
**Résultat mesuré : 22 → 75 images par seconde**, et surtout des performances qui **redeviennent sensibles à la distance d'affichage** — le réglage reprend enfin son rôle.
---
## Trois causes d'effondrement corrigées
**Le remplissage travaillait de plus en plus dur… pour ne rien trouver.**
Le balayage qui cherche les zones à compléter limitait le nombre de chunks *produits*, mais jamais le nombre de chunks *examinés*. Une fois la carte bien remplie, il parcourait l'intégralité de chaque anneau pour constater qu'il n'y avait rien à faire — jusqu'à un million de vérifications par passage, plusieurs fois par seconde. **Plus votre carte était complète, plus le jeu ramait.** Le travail d'examen est maintenant borné, et reprend où il s'était arrêté.
**Un compteur de textures relancé pour chaque bloc.**
À l'injection des données, le mod résolvait l'apparence d'un bloc pour *chaque cellule* — des dizaines de milliers de fois par seconde, en plein rendu. Ces apparences sont désormais mémorisées.
**Un cercle vicieux dans le nettoyage mémoire.**
Les données graphiques inutilisées étaient libérées après un certain nombre d'**images**. À 140 images par seconde, cela représentait un tiers de seconde ; à 5 images par seconde, quarante-cinq secondes. Le nettoyage se paralysait donc exactement quand on en avait le plus besoin, et les performances ne pouvaient plus remonter. Il fonctionne maintenant en temps réel.
---
## Le remplissage automatique fonctionne enfin
**Il ne fonctionnait pas du tout.** Les informations nécessaires au client pour reconstituer le terrain étaient effacées à chaque connexion, par une course entre le réseau et l'affichage. Le mécanisme était donc inerte depuis longtemps — ce qui explique les régions restées vides malgré tous les réglages.
**Le balayage ne servait qu'un seul côté.** Il repartait systématiquement du même coin avec un petit quota : un côté du paysage se remplissait, les trois autres n'y arrivaient jamais. Il progresse désormais tout autour, et reprend où il s'est arrêté.
**Il ne dépassait jamais les environs immédiats.** Le parcours se réinitialisait à chaque chunk franchi ; en se déplaçant, de nouvelles zones proches apparaissant sans cesse, le lointain n'était jamais traité.
**Ordre garanti** : le remplissage part toujours de votre position vers l'extérieur, y compris après une téléportation ou une reconnexion. Et il consulte votre cache disque avant de fabriquer quoi que ce soit.
---
## Distance d'affichage automatique
La jauge devient un **plafond** plutôt qu'une valeur figée : le mod cherche la plus grande distance que votre machine tient réellement, dans une plage de 30 à 60 images par seconde.
Deux garde-fous ont été ajoutés après observation :
- **Il vérifie que ses réductions servent à quelque chose.** Si réduire n'améliore rien, il en conclut que le ralentissement vient d'ailleurs, **restaure la distance** et n'y touche plus pendant un moment. Il ne se dégrade plus pour rien.
- **Une soupape d'urgence** : sous 15 images par seconde, il réduit sans condition. Il ne peut plus vous enfermer dans une situation injouable.
Il refuse par ailleurs d'étendre l'horizon tant que ce qu'il affiche déjà n'est pas réellement rempli — mieux vaut un horizon proche et complet qu'un horizon lointain troué.
---
## Compteur d'images intégré
Dans les options OmniGen, un bouton **FPS** à trois positions : masqué, simple, détaillé.
Le mode détaillé affiche minimum, moyenne, maximum et surtout le **1 % le plus bas** — la vraie mesure de la fluidité ressentie. Une moyenne à 70 avec des chutes à 12 se joue beaucoup moins bien qu'un 60 régulier, et seule cette valeur le montre.
*(Utile si vous n'avez pas Sodium Extra. L'affichage s'efface automatiquement quand F3 est ouvert.)*
---
## Rendu
- **Regroupement du terrain très lointain** en blocs de 32×32 chunks, pour réduire le nombre d'appels graphiques au-delà de 96 chunks.
- **Reconstructions regroupées** : quand une zone reçoit beaucoup de données d'un coup, elle attend la fin de la rafale au lieu de se reconstruire en boucle.
- **Correction du dessous des surfaces** : les faces inférieures étaient décrites au moteur graphique comme tournées vers le ciel, ce qui les éclairait en plein soleil. Défaut invisible sans shaderpack, flagrant avec.
---
## À savoir
- **Mettez votre serveur à jour** : les versions antérieures à la 0.3.37.11 peuvent s'arrêter lorsqu'un joueur se connecte.
- Chaque nouveauté possède son propre interrupteur dans le code, indépendamment des autres.
- Si vos performances vous semblent limitées, vérifiez d'abord votre **distance de rendu Minecraft** : elle pèse souvent plus lourd que la distance d'affichage du mod.
---
## Défauts connus
- **Trous sous les îles flottantes** vues du dessous, et **arbres allongés en flèches** dans les forêts denses à moyenne distance. Deux tentatives de correction figurent dans cette version mais **restent sans effet** ; le sujet est repris dans la prochaine.
- Les zones visitées puis quittées sont conservées en qualité réduite et ne retrouvent pas leur finesse au retour.
---
## À venir
- Redonner leur finesse aux zones parcourues puis quittées.
- Reprendre les deux défauts visuels ci-dessus, correctement cette fois.
- Arbres et structures dans le terrain reconstitué par le client.
- Inventaire client → serveur, pour ne plus jamais retransmettre ce que le joueur possède déjà.
beta
OmniGen 0.3.37.15-BETA
0.3.37.15-BETA28 июл. 2026 г.18Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.15-BETA — Changelog
**NeoForge 1.21.1** — Une grosse passe de corrections visuelles et de remplissage : le terrain lointain gagne du volume, l'horizon se remplit enfin dans **toutes** les directions, et le mod n'affiche plus une distance qu'il ne tient pas.
---
## Le terrain lointain se remplissait d'un seul côté
**Le défaut le plus visible de la version précédente.** Le remplissage automatique parcourait un anneau autour du joueur en repartant systématiquement du même coin, avec un petit quota par passage. Sur un grand rayon, cela signifiait retraiter éternellement les mêmes zones : **un côté du paysage se remplissait, les trois autres n'y arrivaient jamais.**
Le parcours reprend désormais là où il s'est arrêté, et fait le tour complet. L'horizon se construit uniformément, à 360°.
**Deux autres blocages levés au passage :**
- Le balayage repartait de zéro à chaque chunk franchi. En vol, de nouvelles zones proches apparaissant sans cesse, il ne dépassait jamais les premiers anneaux : le lointain n'était **jamais** traité. Il ne se réinitialise plus que sur une téléportation.
- Le remplissage s'arrêtait au rayon configuré, souvent inférieur à la distance d'affichage — tout ce qui dépassait restait définitivement troué. Il couvre maintenant **ce qui est réellement affiché**.
Le débit a par ailleurs été multiplié par huit, ce que la répartition sur plusieurs fils d'exécution et la précision adaptée à la distance rendent possible sans coût pour les images.
---
## Ordre de chargement garanti
**Toujours depuis vous, vers l'extérieur.** Deux tiers du travail repartent systématiquement de votre position : un manque juste à côté de vous est comblé immédiatement, même si le remplissage lointain est occupé ailleurs. Le reste fait progresser l'horizon en arrière-plan.
**La réserve avant la fabrication.** Le client ne génère plus rien tant qu'il n'a pas fini de relire son cache disque — il produisait sinon du terrain qu'il possédait déjà, pour le voir remplacé quelques secondes plus tard.
**Reprise propre.** Après une déconnexion ou une téléportation, tout repart de votre position réelle. Auparavant, la progression survivait au changement de monde et le remplissage reprenait au milieu d'un parcours calculé pour l'ancien endroit, laissant un secteur vide autour de vous.
---
## Rendu
**Les îles ont un dessous.** Vu d'en bas, le terrain lointain n'avait aucune face inférieure : on voyait au travers. Le volume est désormais fermé.
**Fin du dessous blanchâtre.** Les faces inférieures étaient décrites au moteur graphique comme tournées vers le ciel — elles recevaient donc la lumière du soleil en plein. Défaut invisible sans shaderpack, flagrant avec.
**Plus de colonnes rayées.** Une île entourée d'océan profond engendrait un mur descendant sur plus de cent blocs, étiré en longues traînées de couleur. La profondeur de ces parois est désormais bornée.
**Terrain très lointain regroupé.** Au-delà d'une certaine distance, le paysage est assemblé par blocs de 32×32 chunks au lieu d'être découpé plus finement, ce qui réduit fortement le nombre d'appels graphiques sans changer un pixel.
---
## Distance d'affichage automatique
Le réglage automatique suit maintenant **deux** critères au lieu d'un.
**La fluidité**, sur une plage large de 30 à 60 images par seconde. Entre les deux, il ne touche à rien — l'ancienne fenêtre, trop étroite, provoquait des ajustements permanents.
**La complétude** : il ne repousse l'horizon que si ce qu'il affiche déjà est réellement rempli. Mieux vaut un horizon proche et complet qu'un horizon lointain troué. Si l'affichage est trop lacunaire, il resserre — même quand les images sont fluides.
**Et il rend ce qu'il a pris.** S'il constate qu'une réduction n'a rien amélioré, il en conclut que le ralentissement vient d'ailleurs, restaure la distance et n'y touche plus pendant dix minutes. Auparavant il ne faisait que descendre, sans jamais remonter sur une machine qui n'atteignait pas la cible.
---
## À savoir
- Changements purement **client**.
- Chaque nouveauté possède son propre interrupteur, indépendamment des autres.
- Le remplissage automatique travaille beaucoup plus qu'avant. Il s'exécute en priorité minimale et ne devrait pas peser sur les images.
---
## À venir
- Restaurer le fondu de transition entre terrain lointain et chunks réels.
- Prise en compte des blocs non pleins (barrières, dalles, vitres) dans le terrain lointain.
- Inventaire client → serveur, pour ne plus jamais retransmettre ce que le joueur possède déjà.
beta
OmniGen 0.3.37.14-BETA
0.3.37.14-BETA27 июл. 2026 г.19Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.14-BETA — Changelog
**NeoForge 1.21.1** — Le client ne se contente plus d'afficher ce que le serveur lui envoie : il **complète lui-même** ce qui manque. Et le mod commence à régler tout seul sa distance d'affichage.
---
## Le client comble les trous du serveur
**La carte lointaine se remplit même sans le serveur**
Jusqu'ici, une zone que le serveur n'avait pas encore transmise restait vide. Le client sait pourtant reconstituer le relief à partir de la recette du monde — il le faisait déjà, mais dans un format à part, plat et sans texture, visiblement différent du reste.
Ce terrain reconstitué est désormais produit dans le **même format que celui du serveur** : avec du volume et les vraies textures de blocs. Il passe par le même moteur de rendu, hérite des mêmes niveaux de détail, des mêmes ombrages. Résultat : les trous se comblent de façon **indiscernable** du terrain reçu, au lieu d'être rapiécés dans un autre style.
**La vérité prime toujours sur l'estimation**
Ce terrain reconstitué est une *prédiction* calculée depuis la graine du monde. Il ne peut jamais écraser une donnée réelle : il ne remplit que les vides. Dès que le serveur transmet la vraie version d'une zone, elle remplace la prédiction — même si celle-ci semblait plus détaillée.
*À savoir : la prédiction reproduit fidèlement le relief naturel, mais elle ignore ce qui a été construit ou creusé par les joueurs, ainsi que les arbres et villages. Sur les zones habitées, elle reste un bouche-trou temporaire, pas un remplaçant.*
**Le remplissage est enfin à l'échelle**
Le calcul tournait sur un seul fil d'exécution, à pleine précision quelle que soit la distance : couvrir un large rayon aurait demandé des heures. Deux changements le rendent réaliste : le travail est réparti sur plusieurs fils, et la précision **suit la distance** — inutile de calculer au bloc près un terrain que l'affichage simplifiera de toute façon. Au loin, le coût est divisé par plusieurs centaines.
Le balayage vise maintenant les **zones manquantes** plutôt qu'un simple anneau : il ignore ce que le serveur a déjà envoyé, et affine ses propres estimations à mesure que vous vous approchez.
---
## Chargement et fluidité
**Le terrain lointain ne rampe plus sous shaders**
Les quantités de terrain préparées à chaque image étaient comptées *par image*. Avec un shaderpack, le nombre d'images par seconde chute — et le remplissage devenait mécaniquement trois fois plus lent, alors que la machine n'était pas plus occupée. Ces quantités sont désormais calculées **en fonction du temps écoulé** : le débit reste constant, avec ou sans shaders.
**Distance d'affichage automatique**
Le mod mesure sa propre part dans le temps de calcul de chaque image et ajuste sa distance pour préserver la fluidité. La jauge devient un **plafond** — « je ne veux pas voir plus loin que ça » — et non plus une valeur figée.
Point important : avant de réduire quoi que ce soit, le mod vérifie qu'il est bien responsable du ralentissement. Si la lenteur vient d'ailleurs, il ne dégrade rien — inutile de sacrifier la qualité pour un gain nul.
*Le réglage se fait en mémoire : votre fichier de configuration n'est jamais modifié.*
---
## À savoir
- Changements purement **client** : rien à faire côté serveur.
- Si votre rayon de reconstitution est inférieur à votre distance d'affichage, le client ne comblera les trous que jusqu'à ce rayon — pensez à l'aligner.
- Chaque nouveauté peut être désactivée séparément en cas de souci.
---
## À venir
- Regrouper le terrain très lointain en blocs plus larges, pour réduire fortement le nombre d'appels graphiques.
- Restaurer le fondu de transition entre terrain lointain et chunks réels.
- Inventaire client → serveur, pour ne plus jamais retransmettre ce que le joueur possède déjà.
beta
OmniGen 0.3.37.13-BETA
0.3.37.13-BETA26 июл. 2026 г.21Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.13-BETA — Changelog
**NeoForge 1.21.1** — Cette version s'attaque aux **shaderpacks**. Le terrain lointain était jusqu'ici traité comme de la géométrie anonyme : il est désormais présenté au shader comme du vrai terrain.
---
## Compatibilité shaders
**Le LOD est enfin éclairé comme du terrain**
Le terrain lointain était construit sans **normales** — l'information qui indique dans quelle direction une surface est tournée. Or c'est exactement ce dont un shaderpack a besoin pour calculer l'éclairage, les ombres et les reflets. Sans elle, le LOD recevait un éclairage arbitraire et ne se raccordait pas au terrain réel.
Chaque face porte maintenant sa normale, et le terrain lointain est dessiné avec le **même shader que les vrais chunks**. Pour un shaderpack, le LOD ressemble désormais à du terrain ordinaire et reçoit le même traitement.
**Gain de performance sous shaders**
Un shaderpack dessine la scène **deux fois** : une passe pour les ombres, une pour l'image finale. Tout le terrain lointain était donc calculé en double. Comme les ombres projetées par du relief situé à plusieurs centaines de blocs sont invisibles à l'œil, cette passe est désormais **sautée pour le LOD**. Sur les configurations où le shader était le goulot d'étranglement, le gain peut être important.
*(Si votre version d'Iris ne permet pas cette détection, le rendu se comporte comme avant — sans gain, mais sans régression.)*
**Packs en liste noire**
Certains shaderpacks étaient jusqu'ici totalement privés de LOD, faute de savoir traiter notre géométrie. Ce correctif s'attaque à la cause du problème : si un pack de votre liste `lod_shader_blocklist` fonctionne désormais, vous pouvez l'en retirer.
---
## Ce que cette version retire temporairement
**Le fondu LOD → chunk réel**
L'animation de transition reposait sur un shader maison, incompatible avec le nouveau format de géométrie. Le maintenir aurait cassé le rendu **sans shaderpack** — le cas le plus courant. La transition est donc nette pour l'instant ; l'animation reviendra une fois ce shader porté.
---
## À savoir
- Changement purement **client** : rien à faire côté serveur.
- Réversible intégralement en cas de souci, sans perdre les autres nouveautés.
- **Testez d'abord sans shaderpack** : c'est le rendu qui a le plus changé, donc là où une régression est la plus probable.
---
## À venir
- Restaurer le fondu de transition au nouveau format.
- Peinture au très lointain : couleur plate au-delà d'une certaine distance, invisible à l'œil et bien moins coûteuse.
- Inventaire client → serveur, pour ne plus jamais retransmettre ce que le joueur possède déjà.
beta
OmniGen 0.3.37.12-BETA
0.3.37.12-BETA26 июл. 2026 г.16Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.12-BETA — Changelog
**NeoForge 1.21.1** — Une seule nouveauté, mais qui change l'aspect du terrain lointain : les niveaux de détail progressent maintenant **en douceur** au lieu de doubler d'un coup.
---
## Niveaux de détail progressifs
**Le terrain se dégrade d'un cran à la fois**
Jusqu'ici, la précision du LOD était divisée par deux à chaque palier : une cellule couvrait 1 bloc, puis 2, puis 4, puis 8, puis 16. Chaque changement doublait la taille des cellules d'un seul coup — d'où les **transitions visibles**, ces anneaux nets où le paysage devient brusquement plus grossier.
Désormais la progression est **linéaire** : une cellule couvre 1 bloc près de vous, puis 2, puis 3, puis 4, puis 5… en grossissant d'un seul bloc à chaque anneau. Les marches sont environ deux fois plus petites et deux fois plus nombreuses : le passage du détail au lointain devient **graduel** au lieu d'être marqué.
**Ce que ça change en pratique**
- Les cercles de démarcation autour du joueur sont beaucoup moins visibles.
- Le relief lointain garde plus longtemps sa forme réelle.
- Le coût reste maîtrisé : les cellules continuent de grossir avec la distance, simplement de façon régulière.
**Précision technique**
Les tailles intermédiaires (3, 5, 6, 7, 9…) ne divisent pas les 16 blocs d'un chunk. L'échantillonnage a donc été revu pour arrondir au supérieur, la dernière rangée de chaque bord étant simplement plus étroite. Toute la surface du chunk reste couverte : **pas de bande manquante ni de couture** entre chunks voisins.
---
## À savoir
- Ce changement est purement **client** : rien à faire côté serveur.
- Il peut être désactivé en cas de souci (retour au comportement de la 0.3.37.11).
- Aucun changement de format réseau : les clients 0.3.37.11 et 0.3.37.12 cohabitent sans problème.
---
## À venir
- **Épaisseur du terrain lointain** — les surfaces fusionnées les plus lointaines ne sont dessinées que par le dessus : superbes vues du ciel, plates vues d'en bas. Le correctif est écrit mais désactivé, en attente d'un test isolé.
- **Peinture au très lointain** — remplacer la texture par de la couleur plate au-delà d'une certaine distance, invisible à l'œil mais nettement moins coûteux.
- Intégration Iris complète, pour que tous les shaderpacks fonctionnent.
- Inventaire client → serveur, pour ne plus jamais retransmettre ce que le joueur possède déjà.
beta
OmniGen 0.3.37.11-BETA
0.3.37.11-BETA23 июл. 2026 г.29Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.11-BETA — Changelog
**NeoForge 1.21.1** — Build de **stabilisation**. Il corrige un crash serveur, verrouille les correctifs de performance de la 0.3.37.10, et adopte une distance d'affichage par défaut sûre pour éviter les problèmes de FPS et de mémoire.
---
## Corrections
**Crash serveur au join corrigé**
Sur les anciennes versions, la barrière de ralentissement pouvait tenter d'envoyer un paquet que le serveur n'était pas autorisé à émettre, ce qui **coupait le serveur entier** dès qu'un joueur se connectait (`safe_distance may not be sent to the client`). Le paquet est maintenant correctement déclaré côté serveur, et l'envoi est isolé par joueur : même en cas de souci réseau, **un incident sur un paquet ne peut plus jamais faire tomber le serveur**. Au pire, un joueur ne reçoit pas sa barrière pour un tick.
**Correctifs TPS confirmés et verrouillés**
Les corrections majeures de la 0.3.37.10 (la prégénération et le streaming LOD ne bloquent plus le thread serveur) sont vérifiées et consolidées dans ce build. Un serveur resté sur une version antérieure n'en bénéficie pas : **il faut passer en 0.3.37.11 côté serveur** pour retrouver les 20 TPS.
---
## Rendu et performances
**Distance d'affichage LOD par défaut : 48 chunks**
Le défaut passe de 512 à **48 chunks**. L'ancienne valeur affichait un horizon gigantesque qui pesait lourd sur les FPS et la mémoire ; 48 chunks est un point d'équilibre sans problème pour un usage normal. Le curseur reste réglable jusqu'à 1024 pour ceux qui veulent capturer toute la map en photo.
*Note : si votre configuration client contient déjà une valeur (par ex. 512), elle est conservée — ajustez la jauge en jeu ou éditez la ligne `lod_view_distance` pour adopter le nouveau défaut.*
---
## À savoir
- **Mettez le serveur à jour en priorité** : les versions antérieures peuvent crasher au join et n'ont pas les correctifs TPS.
- Aucun changement de format réseau : un client à jour et un client plus ancien peuvent cohabiter (le client ancien affichera un LOD moins détaillé).
---
## À venir
- **Peinture dans les niveaux intermédiaires** — remplacer le rendu texturé bloc par bloc par des surfaces peintes fusionnées à moyenne et longue distance : gros gain de FPS au sol, et fin du « tout plat vu d'en dessous ».
- Paliers de détail linéaires, pour des transitions encore plus douces.
- Intégration Iris complète, pour que tous les shaderpacks fonctionnent.
- Inventaire client → serveur, pour ne plus jamais retransmettre ce que le joueur possède déjà.
beta
OmniGen 0.3.37.10-BETA
0.3.37.10-BETA21 июл. 2026 г.24Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.10-BETA — Changelog
**NeoForge 1.21.1** — La plus grosse mise à jour depuis longtemps. Le serveur passe de **10 à 20 TPS**, et le LOD affiche désormais **toute la map générée** au lieu de la zone autour du joueur.
---
## Performances serveur
**Correction majeure : la prégénération ne bloque plus le serveur**
La génération de fond appelait une méthode de Minecraft qui, appelée depuis le thread serveur, **attend la fin du chargement du chunk**. Le serveur passait donc jusqu'à 95 % de son temps à ne rien faire d'autre qu'attendre. Le tick est désormais réellement libéré : **10 TPS → 20 TPS**, avec un temps de calcul autour de 5 ms sur les 50 disponibles.
**Correction des gels de plusieurs secondes**
Le cache LOD gardait un verrou pendant l'écriture de son index (plusieurs dizaines de Mo sur une grosse map), ce qui bloquait le thread serveur. Les messages `Can't keep up!` et les retards de 200+ ticks ont disparu.
**Régulation revue**
La prégénération et le scanner s'adaptent à la charge réelle, se mettent en pause quand le serveur souffre, et **cèdent la priorité aux joueurs connectés**.
---
## Le LOD affiche enfin toute la map
**Mémorisation du LOD sur disque**
Chaque chunk généré voit son LOD écrit sur le disque du serveur, **même quand personne n'est connecté**. Avant, le LOD calculé pendant la prégénération de nuit était simplement perdu : à la connexion, on ne voyait qu'un petit carré autour de soi.
**Carte du monde complète (« atlas »)**
Une version compacte du monde entier est transmise à chaque joueur — **y compris les zones où il n'a jamais mis les pieds**. Le rendu se rapproche de ce que propose Distant Horizons, mais sans mod supplémentaire. Le client la conserve sur son disque : envoyée une fois, gardée à vie.
**Priorité au joueur**
Tout part de vous et s'étend vers l'extérieur : le détail fin autour de vous d'abord, l'horizon lointain en tâche de fond. Le remplissage suit vos déplacements.
**Scanner de récupération**
Un balayage en arrière-plan reprend le terrain généré avant cette version, **détecte les entrées corrompues et les refait automatiquement**. Régulé par la charge serveur, il travaille sans jamais gêner le jeu, et reprend où il s'est arrêté après un redémarrage.
---
## Rendu
- **LOD proche bloc-parfait (1×1)** — la jonction avec vos vrais chunks est nette, même en render distance basse.
- **La glace est rendue** — fini les trous et la fausse « couche d'eau » dans les océans gelés.
- **Le LOD prend le relais en hauteur** — le sol s'affiche enfin sous vous quand vous volez ou depuis une île flottante.
- **Forêts denses optimisées** — le feuillage lointain est fusionné en volumes au lieu d'être dessiné feuille par feuille. Les arbres gardent leur silhouette pour une fraction du coût.
- **Jonction propre** — le LOD ne déborde plus par-dessus le terrain réel, y compris sous shaders.
- **Horizon stable** — il ne « respire » plus quand vous marchez sur un relief.
- **La distance d'affichage fait ce qu'elle annonce** — plus de coupure rectiligne aux grandes valeurs.
---
## Outils et interface
**Nouvelle commande `/omnigen tps`**
Affiche la **vraie** santé du serveur : le temps de calcul par tick rapporté à son budget, le pire tick observé, et le TPS réellement soutenable. Un serveur à 5 ms et un serveur à 45 ms affichent tous les deux « 20 TPS » — cette commande montre lequel est au bord du décrochage.
*(Les commandes passent de `/cc` à `/omnigen` ; `/cc` reste disponible en alias.)*
**Profileur serveur intégré**
Des rapports de performance sont écrits en silence dans `omnigen_diag/`. Ils indiquent où part le temps du serveur, mod par mod et méthode par méthode — utile pour diagnostiquer un ralentissement sans installer d'outil externe.
**Console lisible**
Un seul récapitulatif toutes les 30 secondes (TPS, prégen, LOD, charge) au lieu d'une trentaine de lignes par minute.
**Menu allégé** — les options devenues inutiles ont été retirées.
---
## À savoir
- Le cache LOD des clients est réinitialisé par cette version : le premier retour en jeu retélécharge la carte, puis tout est conservé.
- Sur un monde déjà généré, laissez le serveur tourner quelques heures : le scanner reconstitue le LOD de l'ancien terrain en arrière-plan.
- La compatibilité avec les shaderpacks reste partielle. Les packs connus pour poser problème peuvent être listés dans `lod_shader_blocklist` (config client).
- Le LOD ne peut afficher que du terrain **réellement généré** : au-delà du rayon de prégénération, il n'y a rien à montrer.
---
## À venir
- Paliers de détail linéaires, pour des transitions encore plus douces.
- Intégration Iris complète, pour que tous les shaderpacks fonctionnent.
- Inventaire client → serveur, pour ne plus jamais retransmettre ce que le joueur possède déjà.
beta
OmniGen 0.3.37.9-BETA
0.3.37.9-BETA19 июл. 2026 г.28Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.9-BETA — Changelog
**NeoForge 1.21.1** — La grosse pièce de cette version : le **store voxel disque**. Le LOD de tout le terrain généré est désormais mémorisé et retransmis, au lieu d'être perdu.
---
## Nouveautés
**Store voxel sur disque (le gros morceau)**
Jusqu'ici, quand la prégénération construisait le terrain **sans joueur connecté**, son LOD était calculé puis jeté — invisible ensuite. Résultat : une map générée à 70 % mais un client presque vide.
Maintenant, le LOD de **chaque chunk généré est écrit sur le disque** (`<monde>/omnigen_voxelstore/`). Quand vous explorez, le serveur **lit ce LOD depuis le disque et vous l'envoie**, sans recharger ni régénérer le chunk. Tout le terrain prégénéré devient enfin visible, et ça survit aux redémarrages.
**Le LOD prend le relais en hauteur (îles volantes)**
Quand vous êtes haut (île volante, vol), Minecraft cesse d'afficher le sol trop bas. Avant, le LOD ne comblait ce vide qu'en largeur, pas en hauteur → trou sous les pieds. Désormais le LOD prend le relais **aussi en vertical** — le sol s'affiche sous vous.
**Jonction propre sous shaders (Iris)**
Le LOD qui « débordait » légèrement par-dessus les vrais chunks à la jointure, **sous shaders**, est corrigé. La cause : Iris ignorait notre réglage de profondeur. On enfonce maintenant le LOD d'un demi-bloc dans l'espace monde — le vrai terrain garde la priorité, et Iris ne peut plus l'ignorer.
---
## Stabilité serveur
- **Garde TPS sur le streaming** : la génération forcée de chunks lointains se met en pause automatiquement quand le serveur est chargé (MSPT élevé) → l'horizon se remplit sans faire chuter les TPS.
- Anti-renvoi réseau : un LOD déjà envoyé n'est pas retransmis en boucle.
---
## À savoir (limites connues)
- Le store démarre **vide** à cette version : le terrain déjà généré avant la mise à jour se remplit **au fur et à mesure que vous passez à proximité**, pas d'un coup. Le futur terrain, lui, est capturé d'office.
- Un **balayage complet** de l'ancien terrain (pour tout rendre visible sans explorer) est prévu pour une prochaine version.
- Si vous changez de mods de blocs, supprimez le dossier `omnigen_voxelstore` (il se reremplira).
---
## À venir
- Scanner de remplissage de l'ancien terrain déjà généré.
- **Paliers de détail linéaires (1×1 → 10×10)** — *initialement prévus pour cette version*, mais **reportés** : les faire proprement demande de réécrire le constructeur de mesh (cellules de taille variable), et on a préféré ne pas risquer de casser le rendu actuel, qui est stable et propre. Ils arriveront dans une version dédiée. En attendant, les paliers actuels (1, 2, 4, 8, 16) ont leurs transitions repoussées assez loin pour être quasi invisibles.
beta
OmniGen 0.3.37.8-BETA
0.3.37.8-BETA19 июл. 2026 г.21Minecraft: 1.21.1neoforge
Что нового
# OmniGen 0.3.37.8-BETA — Changelog
**NeoForge 1.21.1** — Cette version se concentre sur le **LOD** : rendu de près comme de loin, netteté, et couverture de l'horizon.
---
## Nouveautés
**LOD proche bloc-parfait (1×1)**
Le LOD près de vous est désormais rendu **bloc pour bloc**, à la même finesse que vos vrais chunks. Fini le "2×2" qui trahissait la limite de rendu — la transition entre le monde réel et le LOD est propre, même en render distance basse.
**1×1 conservé jusqu'à ~320 blocs**
Le niveau de détail le plus fin s'étend loin autour de vous avant de commencer à se simplifier. Tout votre champ de vision proche est net.
**Horizon lointain rempli (streaming serveur)**
Le serveur diffuse maintenant le LOD voxel sur un **large rayon** autour de chaque joueur, en chargeant au besoin le terrain déjà généré. Plus de "petit carré autour de la base" : l'horizon se remplit jusqu'au loin.
**La glace est enfin rendue**
Les océans gelés, banquises et lacs gelés apparaissent correctement dans le LOD. Correction d'un vieux bug où la glace était invisible, laissant des trous et une fausse "couche d'eau" en dessous.
**Océan de fond propre**
Le remplissage d'arrière-plan (l'océan au loin) ne se superpose plus à l'horizon peint : chacun son territoire. Fini le clignotement "une case océan / une case terrain" visible depuis les hauteurs.
---
## Corrections
- **Horizon disparu** : correction d'une régression où couper la peinture éteignait aussi le remplissage complet de l'horizon.
- **Effet damier** entre l'océan de fond et le LOD : supprimé.
- **Jonction LOD ↔ vrais chunks** : le LOD ne "déborde" plus légèrement par-dessus le terrain réel à la jointure.
---
## Notes techniques
- Résolution d'échantillonnage voxel portée à **16** (1 échantillon par bloc) ; le lointain reste léger grâce aux paliers de détail par distance.
- Biais de profondeur (polygon offset) sur le LOD proche pour laisser la priorité aux vrais chunks.
- Exclusion mutuelle voxel / peinture / océan de fond (zéro chevauchement).
**Perf** : le LOD proche est plus détaillé qu'avant — pensez à ajuster la jauge de distance LOD si besoin sur les configs modestes. Testé jouable sous Iris.
---
## À venir (0.3.37.9)
- **Paliers de détail linéaires (1×1 → 10×10)** : des transitions de niveau de détail encore plus douces et progressives, quasi invisibles à distance.
beta
OmniGen 0.3.37.7-BETA
0.3.37.7-BETA18 июл. 2026 г.22Minecraft: 1.21.1neoforge
Что нового
── OmniGen — Optimisation LOD majeure ──
- Batching régional : draw calls divisés par ~64 → le FPS ne s'effondre plus avec la distance
- Optimisation CPU : plus de scan/tri du cache entier chaque frame (suivi événementiel)
- Paliers de détail par distance (façon Distant Horizons, en 3D)
- Jauge de distance LOD enfin fonctionnelle sur le voxel = vrai levier FPS
- Faces lointaines optimisées + exclusion de la passe d'ombres Iris → jouable sous shaders
- Eau LOD uniforme (fin des carrés de tailles différentes)
- Remplissage du vide : plan placeholder au lieu du néant noir
- Voxel uniquement (système peinture retiré)
- Serveur : seuils prégen corrigés, plancher TPS 10, mode PRO par défaut, soupape en veille
→ Résultat : de ~15 à 60 FPS sur grande vue, jouable avec shaders sur modpack lourd
beta
OmniGen 0.3.37.6-BETA
0.3.37.6-BETA17 июл. 2026 г.19Minecraft: 1.21.1neoforge
Что нового
version stable de la pré-gen
beta
OmniGen 0.3.37.5-BETA
0.3.37.5-BETA11 июл. 2026 г.31Minecraft: 1.21.1neoforge
Что нового
Réglage des derniers gros bugs qu'il y avait en rapport avec les LOD
_Prochaine étape La prégénération coté serveurs Grosse étape À savoir que le système client worker A été abandonné et par la même occasion le menu option de omnigen sera refait Pour retirer les boutons devenus inutiles Cela n'empêche pas que le système De pré-génération Qui ser En construction prochainement Sera incroyable_
beta
OmniGen 0.3.37.4-BETA
0.3.37.4-BETA10 июл. 2026 г.24Minecraft: 1.21.1neoforge
Что нового
Nous passons dans une phase d'optimisation des LOD Et nous avons rajouté un système d'animation Ou de transition vous pouvez l'appeler comme vous le souhaitez Entre les LOD Et les chunks Pour que ce soit Mieux et agréable visuellement
beta
OmniGen 0.3.37.3-BETA
0.3.37.3-BETA8 июл. 2026 г.15Minecraft: 1.21.1neoforge
Что нового
Amélioration et correction de bugs sur le système LOD
Les systèmes de gravité Sont toujours dans la même version qu'avant ils n'ont pas été modifiés Ils seront modifiés dans la prochaine version À savoir aussi que dans la prochaine version il y aura un système d'animation pour passer proprement des LOD au vrai chunk !
beta
OmniGen 0.3.37.2-BETA
0.3.37.2-BETA5 июл. 2026 г.20Minecraft: 1.21.1neoforge
Что нового
Juste de la pure magie visuelle même s'il est encore un paquet de défauts
j'ai failli au lit de vous le dire mais j'ai aussi rajouter un système de gravité bon le système fonctionnel mais il doit être amélioré
beta
OmniGen 0.3.37.1-BETA
0.3.37.1-BETA5 июл. 2026 г.27Minecraft: 1.21.1neoforge
Что нового
### Salut à tous !
J'ai travaillé sur une série de mises à jour pour vous. N'étant pas totalement satisfait de l'esthétique des LOD actuels, j'ai souhaité vous proposer cette nouvelle version. Elle est bien plus stable et agréable à jouer. Notez qu'il s'agit toujours d'une bêta, mais je tenais à vous la partager dès maintenant. J'espère qu'elle vous plaira !
### Hi everyone!
I’ve been working on a series of updates for the community. Since I wasn't entirely happy with how the current LODs looked, I wanted to provide you with this new version. It’s much more stable and enjoyable to play. Please note that it’s still in beta, but I really wanted to share it with you all. I hope you enjoy it!
beta
OmniGen 0.3.37-BETA
0.3.37-BETA17 июн. 2026 г.33Minecraft: 1.21.1neoforge
Что нового
# OmniGen v0.3.37-BETA — Refonte LOD
Cette version se concentre sur les **LOD** (le terrain lointain) : un gros travail de polish visuel et de stabilité. Le système de génération **distribuée partagée** n'est pas abandonné — il est simplement **décalé à plus tard** : par manque de testeurs, le créateur ne peut pas valider la distribution multi-joueurs en conditions réelles pour l'instant, donc le focus est mis sur les autres fonctionnalités prévues du mod.
## ✨ Nouveautés & améliorations LOD
- **Arbres voxelisés** : les arbres lointains ont enfin une vraie forme (tronc + houppier), y compris les grands arbres de jungle. Fini les « tours » de feuillage.
- **Teinte par biome** : le feuillage suit la couleur réelle du biome (taïga, jungle, savane…).
- **Relief amélioré** : ombrage directionnel par face (façon vanilla) → les collines et versants ont du volume.
- **Falaises en pierre** : les grandes falaises sont rendues en pierre, plus en terre.
- **Persistance LOD côté client** : le terrain lointain déjà exploré est sauvegardé sur disque et **rechargé automatiquement au spawn** — plus besoin de tout re-explorer à chaque session.
- **Affichage en hauteur** : quand on domine le terrain de très haut, le LOD bouche le trou laissé par les chunks déchargés.
## 🐛 Corrections
- **Crash à la création de monde** corrigé (pools de génération réutilisés au lieu d'être détruits).
- **Déconnexions en boucle + interface gelée** en solo : corrigées.
- **Faux positif de surcharge serveur** (la soupape s'ouvrait à vide) : corrigé.
- Jonctions de régions LOD nettoyées (plus de murs / bandes claires sur l'eau et les arbres).
- Cycle jour/nuit du LOD lointain corrigé (ne reste plus figé sur l'ancienne heure).
- Hautes herbes qui devenaient des cubes de terre : corrigées.
- Grandes montagnes : murs comblés (plus de fentes verticales).
## ⚠️ Connu
- Encore quelques imperfections visuelles sur les LOD (travail en cours).
- Génération **distribuée partagée** : reportée (manque de testeurs multijoueurs).
*Mod toujours en BÊTA — retours bienvenus via la page du projet.*
beta
OmniGen 0.3.36-BETA
0.3.36-BETA7 июн. 2026 г.32Minecraft: 1.21.1neoforge
Что нового
# OmniGen v0.3.36-BETA
> ⚠️ **Mod en développement actif (bêta).** OmniGen aide votre serveur Minecraft à générer le monde : quand le serveur est surchargé, il confie une partie du calcul aux clients connectés. Idéal pour les serveurs sur machine modeste. Vos retours sont les bienvenus !
**La version la plus stable à ce jour.** Refonte majeure du fonctionnement et fin des artefacts de génération.
## 🌍 Fini les murs de terrain (« seams »)
- **Zéro artefact de frontière.** Les falaises et blocs incohérents qui apparaissaient entre les zones générées par différents clients ont été **éliminés**. Le terrain se raccorde proprement, partout.
- **Comment ?** Le serveur fournit désormais aux clients le vrai terrain des chunks voisins, et il génère lui-même les chunks du « front d'exploration » (ceux qui n'ont pas encore de voisins) pour garantir un raccord parfait.
- **Fix biome (cause racine).** La source de biomes de l'Overworld était transmise sous une forme que les clients ne pouvaient pas décoder → coutures + latence. Désormais encodée explicitement et décodée à l'identique côté client.
## 🔧 Nouveau fonctionnement : « soupape de pression »
- **Le serveur reste maître du jeu.** Par défaut, il génère le monde lui-même (rapide et fluide). Il ne fait appel aux clients **que lorsqu'il surchauffe vraiment** (chute de TPS). Dès que la pression retombe, il reprend tout seul.
- **Conséquence :** sur un serveur en bonne santé, OmniGen reste discret — c'est normal. Il entre en action quand votre serveur en a réellement besoin, sans jamais le ralentir le reste du temps.
## 🚧 Mur de patience (anti-chute dans le vide)
- **Plus de saut dans le vide non généré.** Si vous explorez plus vite que la génération, vous êtes **doucement ralenti puis arrêté** à la limite du terrain prêt, avec un message « ⏳ Zone en génération — veuillez patienter… ». Fini les freezes et retours en arrière quand on file trop vite.
## ⚡ Performances & stabilité
- **Fix latence réseau.** La désérialisation des chunks reçus a été déchargée du thread réseau (Netty) vers un pool dédié → le réseau ne bloque plus, latence réduite sous charge.
- **Vraie grille 3×3 alignée** côté worker (fin des chunks redemandés en boucle).
- Plus de blocages serveur (deadlock) ni de déconnexions liés à la génération en multijoueur.
- Le serveur peut toujours tout régénérer lui-même : un client lent ou déconnecté ne casse jamais le monde.
---
### 🔩 Détails techniques (court)
- **Pivot « soupape » :** `PressureMonitor` (MSPT glissant + hystérésis 45/35 ms) déclenche la distribution ; sinon génération 100 % serveur. Garde central sur `submitChunkRequest`.
- **Fix seams :** `buildNeighborChunkData` fournit aussi le 3D des voisins générés par le serveur ; chunks avec < 4/8 voisins → générés en local (anti-seam du front). Surface + carvers + features refaits côté serveur (client = noise seul).
- **Biome :** `MultiNoiseBiomeSource.DIRECT_CODEC` inline + décodage symétrique worker. Désérialisation déchargée sur `OMNIGEN_INJECT_POOL`. Vrai mode 3×3 (`block5x5=false`).
- **Mur de patience :** `SafeDistancePayload` (S→C) + ralentissement client à la frontière du rayon généré.
- Licence : MIT.
## ⚠️ À savoir (limites connues de cette bêta)
- **Montée en charge multijoueurs pas encore optimisée.** Si plusieurs joueurs explorent **très vite en même temps** sur le même serveur, la génération peut prendre du retard. Vous ne risquez **pas** de crash (le serveur génère lui-même ce qu'il ne peut pas distribuer, et le « mur de patience » ralentit les joueurs trop rapides), mais le terrain peut mettre un instant à apparaître. L'optimisation de ce cas (meilleure répartition de la charge entre les clients) est prévue pour une prochaine version.
- Testé surtout en solo et à faible nombre de joueurs. Vos retours en conditions multijoueurs sont **précieux** !
> Bug ou retour ? Toujours en bêta — n'hésitez pas à signaler.
beta
OmniGen 0.3.35-BETA
0.3.35-BETA1 июн. 2026 г.18Minecraft: 1.21.1neoforge
Что нового
# OmniGen v0.3.35-BETA
> ⚠️ **Mod en développement actif (bêta).** OmniGen permet aux clients d'aider à générer le monde du serveur. Particulièrement utile quand le serveur tourne sur une machine moins puissante que celle des joueurs. Vos retours sont les bienvenus !
Cette version regroupe de nombreux correctifs de stabilité, de performances et de génération accumulés au fil du développement.
## 🌍 Génération du terrain
- **Grille alignée anti-coutures.** Le serveur ancre les blocs de chunks sur une grille fixe : deux zones voisines partagent exactement les mêmes frontières, ce qui réduit fortement les coutures (« seams ») entre chunks.
- **Mode 3×3 optimisé.** Les blocs générés par les clients passent de 25 à 9 chunks, pour une génération nettement plus rapide tout en gardant un buffer anti-couture.
- **Fix des rectangles de vide.** Les chunks reçus sont vérifiés avant intégration : fini les rectangles vides parfaits qui apparaissaient parfois.
- **Fix des zones grises.** La couche de surface (herbe, sable, terre…) est désormais toujours correctement appliquée, y compris après un rechargement.
- **Corrections Nether & End.** Meilleur échantillonnage des biomes dans le Nether (fin du terrain incohérent) et correctifs de génération inter-dimensions.
## ⚡ Performances & stabilité
- **Mode AUTO (nouveau).** À la connexion, un court benchmark mesure la puissance de votre processeur et choisit automatiquement le nombre de chunks générés en parallèle. L'écran Options propose 3 réglages : AUTO / ECO / TURBO.
- **Priorité proximité.** Les chunks proches du joueur sont générés en priorité, pour une exploration plus fluide.
- **Fix des pics de lag.** Plusieurs sources de ralentissements (« Can't keep up ») ont été corrigées, notamment lors des mouvements rapides et des bursts de génération.
- **Génération parallèle du buffer.** Les chunks de contour sont calculés en parallèle pour réduire la latence par bloc.
## 🔧 Confort & configuration
- **Auto-kick configurable.** Les joueurs sans le mod OmniGen sont déconnectés après un délai (configurable), avec exemption pour les OPs.
- **Grille de debug visuelle.** Un overlay optionnel (Options → Debug) permet de visualiser la grille de génération en jeu.
- **Logs allégés.** Les messages fréquents passent en niveau DEBUG pour soulager le thread serveur.
---
Merci à tous les testeurs pour vos retours, ils font avancer le mod ! 🙏
beta
OmniGen 0.3.34-BETA
0.3.34-BETA29 мая 2026 г.16Minecraft: 1.21.1neoforge
Что нового
# OmniGen v0.3.34-BETA
**Distribution intelligente** : seul, le serveur génère en local (fluide, plus de rollback). À 2+ joueurs, la charge est distribuée. Bascule automatique.
**Priorité proximité** : les chunks sous le joueur passent en premier → fin des « Can't keep up » en exploration rapide.
**Overlay grille 3×3** (debug) : Options → OmniGen → Debug. Bleu = grille, jaune = en cours, vert = généré, magenta = centre.
**Perf** : logs allégés (DEBUG), pool solo plafonné pour le rendu.
beta
OmniGen 0.3.33-BETA
0.3.33-BETA29 мая 2026 г.11Minecraft: 1.21.1neoforge
Что нового
affichage de la grill visuel de omnigen
beta
OmniGen 0.3.32-BETA
0.3.32-BETA28 мая 2026 г.19Minecraft: 1.21.1neoforge
Что нового
**v0.3.31** — Fix spike "Can't keep up" 14s
Le pool de fallback vanilla (`VANILLA_FALLBACK_OVERFLOW_POOL`) utilisait une `CallerRunsPolicy` avec queue bornée. Quand plusieurs `orTimeout(20s)` se déclenchaient simultanément, la queue se remplissait et le thread ForkJoin de Minecraft exécutait `super.fillFromNoise()` directement → deadlock `managedBlock` → 14s de freeze. Remplacé par une **queue illimitée + AbortPolicy** : les chunks en overflow attendent en RAM, jamais sur un thread ForkJoin.
---
**v0.3.32** — Mode AUTO : benchmark CPU au login
Nouveau mode de performance `AUTO` (défaut pour les nouvelles installations). Au login, un micro-benchmark de ~400ms tourne sur un thread daemon et mesure la vitesse brute du CPU. Le nombre de slots est calculé automatiquement :
`slots = min(800ms ÷ latence_estimée, cpu_threads ÷ 2, 16)`
Pendant le benchmark, 2 slots temporaires (ECO) sont déclarés au serveur pour éviter le kick. À la fin, le pool est resizé et un heartbeat mis à jour est envoyé. L'écran Options affiche maintenant trois boutons **AUTO / ECO / TURBO**, avec le nombre de slots mesuré visible directement sur le bouton AUTO.
beta
OmniGen 0.3.30-BETA
0.3.30-BETA28 мая 2026 г.12Minecraft: 1.21.1neoforge
beta
OmniGen 0.3.28-BETA
0.3.28-BETA28 мая 2026 г.21Minecraft: 1.21.1neoforge
beta
OmniGen 0.3.27-BETA
0.3.27-BETA28 мая 2026 г.13Minecraft: 1.21.1neoforge
Что нового
**v0.3.25-BETA**
- Ring ext parallèle : ~320ms → ~50ms pour les 16 chunks buffer extérieur 5×5
- Fix rectangle vide : payload vide ou sections air → fallback vanilla
- Fix crash login : suppression du PingPayload (UnsupportedOperationException au login)
**v0.3.26-BETA**
- Autokick : joueurs sans OmniGen client kickés après 20s avec message explicatif
- OP bypass : les OPs niveau ≥ 2 sont exemptés du kick
- Config : `workerKickEnabled` / `workerKickDelaySeconds` / `opBypassKick` dans `omnigen-server.properties`
**v0.3.27-BETA**
- Fix zones grises : `buildSurface` maintenant toujours exécuté — les chunks rechargés depuis disque n'ont plus leur surface écrasée en pierre brute
beta
OmniGen 0.3.24-BETA
0.3.24-BETA27 мая 2026 г.19Minecraft: 1.21.1neoforge
Что нового
# OmniGen v0.3.24-BETA — Changelog
> ⚠️ **Version non testée en conditions réelles**
> Cette version a été codée mais n'a pas encore pu être testée en multijoueur faute de disponibilité. Elle est publiée en avance pour les early adopters. Si vous rencontrez des régressions par rapport à la v0.3.23, revenez à cette dernière en attendant un correctif.
---
## Nouveauté principale — Grille virtuelle alignée 5×5
### Le problème ciblé
En v0.3.23, chaque worker générait un bloc 5×5 centré exactement sur le chunk demandé. Résultat : deux workers traitant des chunks proches l'un de l'autre pouvaient avoir des blocs 5×5 qui se chevauchent de façon asymétrique. Les frontières entre blocs tombaient à des positions différentes selon l'ordre d'arrivée des requêtes → artefacts visuels visibles tous les quelques chunks en exploration multijoueur.
### La solution
Le serveur ancre désormais tous les blocs 5×5 sur une **grille virtuelle fixe**, alignée depuis l'origine du monde avec un pas de 5 chunks :
```
Centre du bloc = ( floor(cx / 5) × 5 + 2 , floor(cz / 5) × 5 + 2 )
```
Conséquence : les frontières inter-blocs tombent **toujours aux mêmes coordonnées absolues**, quelle que soit l'ordre des requêtes ou le nombre de workers. Deux workers calculant des blocs adjacents utilisent exactement la même position → même seed → même bruit → même terrain de chaque côté de la frontière. Les seams aux frontières de blocs deviennent **structurellement impossibles**.
---
## Changements techniques détaillés
### Côté serveur — `ServerOrchestratorManager`
- **Grid snap** : `submitChunkRequest()` calcule le centre de grille avant tout dispatch. Si le chunk demandé n'est pas le centre de son bloc, la demande est redirigée vers le centre.
- **`gridBlockFutures`** : nouvelle map `(dim, gcx, gcz) → CompletableFuture` — une entrée par bloc 5×5 en vol. Les doublons partagent ce future au lieu de créer un nouveau dispatch.
- **`gridMemberFutures`** : future individuel par chunk du ring 3×3 (non-central). Complété automatiquement à la réception des `extraChunks` du payload résultat.
- **Fallback grille** : si le bloc tombe en timeout/vanilla, tous les futurs membres du bloc sont complétés avec `null` → chaque chunk du ring bascule en vanilla indépendamment, sans deadlock.
- **Nettoyage dimension-change** : purge des maps de grille à la traversée de portail (évite les fuites mémoire).
### Côté client — `ClientChunkWorker`
- **`generateGrid()`** : nouvelle méthode publique — génère le bloc 5×5 complet, applique `buildSurface` + `applyCarvers` sur les **9 chunks du ring intérieur** (au lieu du seul chunk central), et retourne une `Map<ChunkPos, byte[]>` des 9 sérialisations.
- **`doGenerateGrid5x5()`** : pipeline interne identique au mode 5×5 classique, mais le ring extérieur (16 chunks) sert uniquement de contexte — seuls les 9 chunks intérieurs sont renvoyés au serveur.
### Côté client — `ClientPayloadHandler`
- **Détection `block5x5`** : si le payload reçu a `block5x5 = true`, `executeGeneration()` appelle `generateGrid()` au lieu de `generate()`.
- **`ChunkResultPayload` gridMode** : le résultat envoyé au serveur contient le chunk central en principal + les 8 autres chunks en `ExtraChunk[]` (un seul paquet réseau pour 9 chunks).
### Protocole réseau — `ChunkResultPayload`
- Champ `gridMode : boolean` + tableau `extraChunks : ExtraChunk[]` (déjà introduit en v0.3.23 dans le code, activé en v0.3.24).
- Rétrocompatible : un serveur v0.3.24 peut recevoir des résultats d'un client v0.3.23 (gridMode sera false, comportement classique).
---
## Ce qui ne change pas
- Le mode solo fonctionne exactement comme avant (pas de régression attendue).
- La compatibilité avec Tectonic, Terralith, BoP et autres mods de génération est maintenue.
- Les mécanismes v0.3.23 (anti-seam v3, CAS1-allOf, queue_full fix, cache TTL 120s) sont conservés intacts.
---
## Notes pour les testeurs
Les points à valider en priorité en duo/multijoueur :
1. Absence de seams visibles aux frontières de blocs (surface, falaises, plages)
2. Absence de régression sur les zones de caves (pas de truncation nouvelle)
3. Comportement correct au premier chargement d'une zone vierge (9 chunks en un seul dispatch)
4. Pas de deadlock ou chunk bloqué indéfiniment (tous les chunks finissent par se charger, en distribué ou en vanilla fallback)
Merci de reporter tout bug ou régression sur le projet — cette version est une étape clé vers des artefacts zéro en multijoueur.
👾 Rejoindre le Discord pour informer des bugs trouver ! : https://discord.gg/F8T2UBFzYz
beta
OmniGen 0.3.23-BETA
0.3.23-BETA27 мая 2026 г.11Minecraft: 1.21.1neoforge
Что нового
# [OmniGen] v0.3.23-BETA — Distributed Chunk Generation (NeoForge 1.21.1)
## [OmniGen] ─── Correctifs artefacts visuels (multijoueur)
---
[OmniGen] • MODE 5×5 : chaque worker génère 25 chunks autour du chunk cible.
[OmniGen] Buffer de 2 chunks élimine le contexte Beardifier tronqué aux frontières
[OmniGen] inter-workers → plus de falaises / décalages de surface entre blocs.
[OmniGen] • Anti-seam v3 : garde finale avant dispatch — si un voisin du chunk cible
[OmniGen] est encore en vol, le dispatch est bloqué jusqu'à son complet retour.
beta
OmniGen 0.3.22-BETA
0.3.22-BETA27 мая 2026 г.10Minecraft: 1.21.1neoforge
beta
OmniGen 0.3.21-BETA
0.3.21-BETA27 мая 2026 г.11Minecraft: 1.21.1neoforge
Что нового
## OmniGen 0.3.21-BETA — Changelog
### 🔧 Correctifs critiques
**Bundle-once multi-dimension (Nether fix)**
Le système de sentinel "bundle-once" ne prenait pas en compte la dimension. Un worker ayant déjà généré de l'Overworld recevait une sentinel vide pour son premier chunk Nether → `IllegalStateException` → fallback pierre sur tous les chunks du Nether. Corrigé : la clé de tracking est maintenant composite `workerId:noiseKey`, une sentinel indépendante par dimension et par worker.
**PortalPreloader — boucle infinie**
Les chunks pré-générés près d'un portail Nether étaient déchargés après quelques secondes. `getChunkNow()` retournait alors `null`, ce qui faisait croire au PreLoader que les chunks n'existaient pas → re-dispatch toutes les 5s en boucle, monopolisant des slots worker en permanence. Corrigé : ajout d'un set persistant `completedPreloads` qui survit aux cycles `evict()`.
### ✨ Nouveau : Système anti-couture (Seam Verify + Retry)
Après injection d'un résultat worker, le serveur vérifie maintenant les hauteurs de terrain sur les 4 bordures cardinales du chunk. Si un décalage > 16 blocs est détecté avec un voisin, le chunk est re-dispatché automatiquement (max 2 tentatives, avec re-sampling des heightmaps voisins). Zero impact sur les chunks propres — la vérification est O(64) lectures heightmap.
### ✨ Nouveau : DegradedChunkRegistry — réparation post-promotion
Si un chunk présente encore un décalage de bordure après les 2 tentatives, il est enregistré dans le `DegradedChunkRegistry`. Toutes les 5 secondes, le serveur tente une réparation en `setBlock` sur les colonnes de bordure (remplissage STONE/AIR) une fois que le chunk et ses 4 voisins sont promus au statut `FULL`. Contrainte anti-domino stricte : aucune modification pendant `ChunkStatus.NOISE`, zéro risque de deadlock ChunkMap.
beta
OmniGen 0.3.20-BETA
0.3.20-BETA25 мая 2026 г.8Minecraft: 1.21.1neoforge
Что нового
**OmniGen 0.3.20-BETA**
- Déduplication multijoueur : deux joueurs demandant le même chunk simultanément ne créent plus une double injection / race condition
- Queues per-player avec round-robin fair drain : Player A et Player B voient le terrain charger au même rythme, même si A a 40 chunks en backlog
- `effectiveMaxConcurrentSent` dynamique (×1.5 slots) : réduit les timeouts en évitant de saturer les workers avec trop de tâches en pipeline
- Seuils back-pressure PAUSE/RESUME dynamiques (basés sur le nombre de slots réels) : plus de PAUSE prématuré avec plusieurs workers
- `onPlayerChangeDimension` : purge immédiate des tâches de l'ancienne dimension + envoi `TaskCancelPayload` aux workers pour libérer leurs slots
- `activateTpRecovery(UUID, long)` : surcharge avec durée configurable (préparation au fix 0.3.21)
- Suppression du sentinel bundle-once (causait race condition IAS) : bundle complet envoyé à chaque dispatch
- Stall detector désactivé : TIMED_WAITING normal du server thread entre deux ticks était indiscernable d'un vrai blocage → faux EMERGENCY en boucle
beta
OmniGen 0.3.18-BETA
0.3.18-BETA24 мая 2026 г.11Minecraft: 1.21.1neoforge
beta
OmniGen 0.3.17-BETA
0.3.17-BETA23 мая 2026 г.15Minecraft: 1.21.1neoforge
beta
OmniGen 0.3.16-BETA
0.3.16-BETA23 мая 2026 г.14Minecraft: 1.21.1neoforge
beta
OmniGen 0.3.15-BETA
0.3.15-BETA23 мая 2026 г.7Minecraft: 1.21.1neoforge
beta
OmniGen 0.3.14-BETA
0.3.14-BETA23 мая 2026 г.13Minecraft: 1.21.1neoforge
beta
OmniGen 0.3.13-BETA
0.3.13-BETA23 мая 2026 г.4Minecraft: 1.21.1neoforge
beta
OmniGen 0.3.12-BETA
0.3.12-BETA23 мая 2026 г.11Minecraft: 1.21.1neoforge
beta
OmniGen 0.3.11-BETA
0.3.11-BETA22 мая 2026 г.12Minecraft: 1.21.1neoforge
Что нового
## 🚀 OmniGen — Version 0.5.0 (BÊTA INITIALE)
> **Note de version :** Cette première version bêta pose les fondations d'un système de gestion réseau asynchrone totalement repensé. L'accent a été mis sur la stabilité du serveur lors des phases d'exploration intensive à haute vitesse (Élytres).
### 🔧 Correctifs & Optimisations Majeures (Réseau & Stabilité)
* **Implémentation du Back-Pressure Dynamique :** Intégration d'un système d'auto-régulation des flux réseau entre le client et le serveur. Les seuils de traitement s'adaptent désormais en temps réel selon la charge CPU pour éviter l'engorgement des workers.
* **Éradication des "Timeout" en Vol :** Correction du bug critique qui provoquait des déconnexions en cascade et des freezes du thread principal lors des déplacements rapides (disparition des alertes majeures de désynchronisation des ticks).
* **Gestion Asynchrone des Chunks :** Optimisation de la file d'attente (pipeline) du serveur pour lisser le chargement et la génération des zones vierges (temps de réponse moyen stabilisé entre 180ms et 200ms sous stress test).
* **Sécurisation Post-Sprint :** Stabilisation des phases d'écriture sur le disque et de déchargement de la mémoire lorsque le joueur s'immobilise après une phase de vol rapide.
### ⚠️ Problèmes Connus (En cours de résolution)
* **Glitchs Visuels Temporaires :** Présence résiduelle d'artefacts graphiques (trous noirs ou chunks transparents à la limite du champ de vision) dus à la vitesse brute de la génération asynchrone qui dépasse le taux de rafraîchissement du client. (Priorité visuelle de la prochaine version).
* **Instabilité en cas de Téléportation Massive :** Un saut instantané de très longue distance (ex: +5000 blocs) dans une zone non générée peut saturer le buffer et provoquer un crash serveur par surcharge instantanée.
* **Incompatibilité Distant Horizons :** Des conflits majeurs de threads subsistent avec le mod *Distant Horizons*, entraînant des blocages complets de la base de données SQLite et du client de 29 secondes. **(Il est fortement recommandé de désactiver DH pour cette version).**
alpha
OmniGen 0.3.7-ALPHA
0.3.7-ALPHA17 мая 2026 г.11Minecraft: 1.21.1neoforge
Что нового
FR
---
## 🌀 OmniGen v0.3.7-ALPHA - Fix Majeur : Désynchronisation du Relief & Lissage des Chunks
Cette mise à jour corrective résout enfin le problème des "falaises droites", des patchworks géométriques et des plateaux plats anormaux qui brisaient la génération du monde à distance.
### 🛠️ Ce qui a changé :
* **Nouveau système de génération 3x3 (Client-side) :** Pour chaque chunk demandé par le serveur, le worker client calcule désormais une ceinture de sécurité de 8 chunks autour de lui. Cela permet à l'interpolation vanilla de s'activer correctement et de lisser parfaitement les frontières entre les chunks.
* **Fix de la désynchronisation du relief (NoiseRouter) :** Correction d'un bug majeur lors de la sérialisation réseau. Le serveur force désormais l'inlining complet des 14 composants de densité du relief (`sloped_cheese`, `factor`, `jaggedness`...). Le client ne remplace plus les montagnes complexes par du vide ou des plateaux plats (les fameux plateaux à cochons).
* **Mise à jour du protocole réseau (Bundle v2) :** Le cache des chunks a été invalidé et mis à niveau pour supporter le nouveau format de données complet (~540 KB par envoi).
* **Optimisation des performances :** Les calculs de surface, de structures et de grottes ne sont appliqués que sur le chunk central. La génération reste fluide avec un temps moyen d'injection sous les 250ms.
---
*Note : Si vous observez encore de légères anomalies sur les bordures extrêmes du rendu de la carte, c'est le comportement normal du Watchdog serveur qui prend le relais en mode vanilla lorsque vous volez trop vite.*
---
EN
---
## 🌀 OmniGen v0.3.7-ALPHA - Major Fix: Terrain Desync & Chunk Border Smoothing
This corrective update finally resolves the "sheer cliffs", geometric artifacts, and abnormal flat plateaus that were breaking remote world generation.
### 🛠️ What's Changed:
* **New 3x3 Chunk Generation Layout (Client-side):** For every chunk requested by the server, the client worker now computes a 1-chunk safety buffer around it (8 surrounding chunks). This allows the vanilla interpolation system to kick in and perfectly smooth out transitions across chunk borders.
* **Fixed Terrain Height Desync (NoiseRouter):** Fixed a major issue during network serialization. The server now forces complete inlining of all 14 terrain density components (`sloped_cheese`, `factor`, `jaggedness`...). The client no longer replaces complex mountains with voids or sudden flat surfaces (the infamous pig plateaus).
* **Network Protocol Update (Bundle v2):** Invalidated and upgraded the chunk cache to support the new complete data format (~540 KB payload per transmission).
* **Performance Optimization:** Surface, structure, and cave passes are strictly limited to the central chunk. Generation remains fast and fluid, keeping average injection times under 250ms.
---
*Note: If you still experience minor visual artifacts at the extreme edge of your rendering distance, this is normal behavior as the server-side Watchdog takes back control using vanilla rendering when flying too fast.*
alpha
OmniGen 0.3.0-ALPHA
0.3.0-ALPHA16 мая 2026 г.9Minecraft: 1.21.1neoforge
Что нового
### Version Française
# 🌀 OmniGen — Alpha Changelog
### 🚀 Nouveautés & Changements Majeurs
* **Nouvelle Architecture Hybride (Serveur/Client) :** Pour maximiser la fluidité et poser les bases de la compatibilité future, les rôles ont été redistribués.
* **Le Client (Joueur) :** S'occupe désormais de toute la structure lourde (calcul du relief 3D, bruits de Perlin, grottes).
* **Le Serveur :** Reprend la main sur l'étape finale de **décoration** (génération exacte des arbres, fleurs, structures vanilla, etc.). Cela permet d'alléger drastiquement le CPU du serveur tout en garantissant que la flore apparaisse correctement !
---
### ⚠️ Problèmes Connus (Phase Alpha)
* **Artefacts de Génération :** Vous remarquerez de grosses coupures nettes ou des différences de relief aux frontières des chunks (notamment entre la zone du spawn générée par le serveur et les zones explorées par les joueurs).
* *C'est tout à fait normal pour le moment !* Les paramètres de configuration du bruit ne sont pas encore totalement synchronisés entre tous les clients. Il faut faire avec pour cette version, l'équipe est déjà sur le coup pour aligner tout ça au bloc près dans les prochaines mises à jour.
---
### English Version
# 🌀 OmniGen — Alpha Changelog
### 🚀 New Features & Major Changes
* **New Hybrid Architecture (Server/Client):** To maximize performance and lay the groundwork for future mod compatibility, generation tasks have been redistributed.
* **The Client (Player):** Now handles the heavy structural lifting (3D terrain shape, Perlin noise, caves).
* **The Server:** Takes over the final **decoration** step (correctly spawning trees, flowers, vanilla structures, etc.). This drastically reduces server CPU load while ensuring flora generates properly!
---
### ⚠️ Known Issues (Alpha Phase)
* **Generation Artifacts:** You will notice harsh world cuts or mismatched terrain heights at chunk borders (especially between the spawn area generated by the server and new areas explored by players).
* *This is expected behavior for now!* Noise configuration settings are not yet fully synchronized between clients. Please bear with us for this alpha release; we are already working on a fix to align everything perfectly block-for-block in upcoming updates.
alpha
OmniGen 0.2.0-ALPHA
0.2.0-ALPHA15 мая 2026 г.13Minecraft: 1.21.1neoforge
Что нового
## FR | OmniGen — Journal des modifications (Alpha v0.2)
### 🚀 Nouvelles Fonctionnalités
* **Logique Multi-Joueurs (Round-Robin) :** Implémentation d'un orchestrateur équitable. Le serveur répartit désormais les calculs de chunks entre les joueurs pour éviter qu'un seul utilisateur ne monopolise toute la puissance.
* **Menu de Performance GUI :** Ajout d'une interface dans les options pour basculer en temps réel entre les modes.
* **Mode TURBO (8 Workers) :** Génération ultra-rapide pour les PC puissants.
* **Mode ECO (2 Workers) :** Consommation réduite, idéal pour le streaming ou les petits serveurs.
### 📊 Interface & Affichage
* **ActionBar Intégrée :** Suivi de la progression des 9 étapes directement au-dessus de la barre d'inventaire.
* **Mode Streamer :** Nettoyage complet du chat. Seule l'ActionBar reste visible pour une immersion totale.
* **Mode Dev :** Conservation des logs détaillés dans le chat pour le débogage technique.
### 🛠️ Corrections & Stabilité
* **Synchronisation en temps réel :** Correction du bug où les boutons du menu n'affectaient pas immédiatement les Workers.
* **Isolation des Tâches :** Ajout d'un `TaskId` unique par chunk pour garantir la stabilité en multijoueur.
* **Thread Safety :** Optimisation des variables locales pour éviter les conflits de données entre les fils de calcul.
---
## EN | OmniGen — Change Log (Alpha v0.2)
### 🚀 New Features
* **Multiplayer Fairness Logic (Round-Robin):** Implemented a task orchestrator. The server now balances chunk calculations between players to prevent a single user from hogging all the CPU power.
* **Performance GUI Menu:** Added an in-game options menu to toggle engine settings on the fly.
* **TURBO Mode (8 Workers):** High-speed generation for high-end hardware.
* **ECO Mode (2 Workers):** Low resource usage, perfect for streaming or low-spec servers.
### 📊 UI & HUD
* **Integrated ActionBar:** Track the 9-step generation progress directly above the hotbar.
* **Streamer Mode:** Complete chat cleanup. Only the ActionBar remains visible for a clean recording experience.
* **Dev Mode:** Detailed chat logs remain available for technical troubleshooting.
### 🛠️ Fixes & Stability
* **Real-time Synchronization:** Fixed an issue where GUI buttons didn't immediately update the active Worker count.
* **Task Isolation:** Added a unique `TaskId` per chunk to ensure multiplayer stability and data integrity.
* **Thread Safety:** Optimized local variables to prevent data races between concurrent threads.
alpha
OmniGen 0.1.0-ALPHA
0.1.0-ALPHA14 мая 2026 г.19Minecraft: 1.21.1neoforge
Что нового
# EN :
## 🌀 OmniGen Alpha v0.1.0 - The Great Awakening
This is the very first stable release of the OmniGen engine! After a long battle against Minecraft's internal registries, the generation pipeline is finally fully operational.
### 🚀 Key Features
* **Dynamic Terrain Engine:** Successful injection into Minecraft's `RandomState` (PASS3/PASS4 validated).
* **9-Step Generation Pipeline:** A robust, asynchronous system that handles everything from Registry synchronization to final Biome creation.
* **Multi-Worker System:** Off-thread calculations to ensure your client never freezes during world generation.
### ⚙️ Performance & Settings (New!)
* **ECO Mode:** Limits calculation to **2 Workers**. Perfect for saving CPU cycles while streaming or playing on lower-end hardware.
* **TURBO Mode:** Unleashes **8 Workers**. Maximum raw power for ultra-fast terrain generation.
* **Native Integration:** Access OmniGen options directly from the vanilla **Options** menu—no clunky chat commands required!
### 🛠️ Bug Fixes & Polishing
* **Critical Fix:** Resolved the `UnsupportedOperationException` on Java Records via dynamic `NoiseGeneratorSettings` reconstruction.
* **Step 9 Fix:** Fixed the `createBiomes` crash by properly initializing the climate sampler.
* **Streamer-Friendly:** Cleaned up the chat. Technical logs are now hidden in favor of a sleek **Action Bar** overlay above your hotbar.
* **Silent System:** Removed "Heartbeat" spam for total immersion.
---
**Author's Note:** This is an Alpha version. While the terrain relief is stable, please report any issues you find with decoration or biome placement!
> **Aurel (ZAurel360)** — *World Architect.*
# FR :
---
## 🌀 OmniGen Alpha v0.1.0 - Le Grand Éveil
C'est la toute première version stable du moteur OmniGen ! Après des heures de combat contre les registres de Minecraft, le pipeline de génération est enfin opérationnel.
### 🚀 Nouvelles Fonctionnalités
* **Moteur de Relief Dynamique :** Injection réussie dans le `RandomState` de Minecraft (PASS3/PASS4 OK).
* **Pipeline de Génération à 9 étapes :** De la récupération des Registries jusqu'à la création finale des biomes.
* **Système Multi-Worker :** Gestion asynchrone des calculs pour ne jamais faire freeze votre client.
### ⚙️ Performance & Paramètres (Nouveau !)
* **Mode ECO :** Utilise seulement **2 Workers**. Idéal pour économiser votre CPU pendant un stream ou sur un PC portable.
* **Mode TURBO :** Libère **8 Workers**. Génération de terrain ultra-rapide pour les explorateurs pressés.
* **Intégration Native :** Accédez aux options OmniGen directement depuis le menu **Options** de Minecraft (pas de commandes compliquées !).
### 🛠️ Corrections & Polissage
* **Fix Critique :** Résolution de l'erreur `UnsupportedOperationException` sur les Records Java (Reconstruction dynamique des `NoiseGeneratorSettings`).
* **Fix Step 9 :** Correction du crash `createBiomes` lié au sampler de climat.
* **Mode Streamer :** Nettoyage du chat. Les logs techniques sont masqués au profit d'une **Action Bar** élégante au-dessus de l'inventaire.
* **Silence Radio :** Suppression du spam "Heartbeat" pour une immersion totale.
---
**Note de l'auteur :** C'est une version Alpha. Bien que le relief soit stable, n'hésitez pas à faire des retours si vous croisez des bugs de décoration !
> **Aurel (ZAurel360)** — *Concepteur de mondes.*