VFXWeaver API 2.2.1 для Minecraft 26.1.2 (Fabric)
Файлы · 1
Что изменилось
Added
Two optional box bounds for a GLSL mask shape â a containment box and a skip box. A world plugin leaf on
"volume": "aura"may now declare an axis-aligned box as its broad phase, in two further optional functions (vfx_shape_custom_bounds_box,vfx_shape_custom_skip_bounds). The containment box must contain the whole region where the field is<= 0; the skip box must lie entirely inside a region where the field is> 0and be inscribed in that hole â the AABB of a set of circles does not qualify, because its corners sit in the coverage region and would skip real coverage. Getting the two the wrong way round is a declaration bug rather than a cull: it buys nothing, because the coverage region outside such a box is unbounded. A miss on the containment box's padded interval culls the leaf with no march at all, and a camera inside the skip box starts the march at its far side instead of at the camera. The slab test is padded bysoftness / 2and the skip keeps the lastsoftnessbefore the range limit sampled, so no cliff appears at a box face and the plugin never has to knowsoftness. Both are optional and consulted per leaf (skip, then box, then the existing sphere, then no bounds), so a plugin that declares none of them renders exactly as before. Additive: two default methods onVFXMaskShapeGlsl, no newVFXAPIoverload, no datapack field, no wire or UBO layout change,PROTOCOL_VERSIONunchanged. See API. Not verified in game; the contracts and the arithmetic are asserted byscripts/check-aura-bounds.ps1â the GLSL cannot compile headless here."aura_steps"on a custom aura mask leaf â an optional per-leaf cap on the march. The march budget is an upper bound a typical ray never approaches (it leaves early on a saturated sample, on the dive bound and on the range limit, and spends 1 to 20 of the loop's 40 + 16 iterations on the check's ray classes), so the new number is a cap, not a spend â a last resort for a leaf that really does burn the budget, and a declared broad phase is the real lever. Accepted only on a custom leaf with"volume": "aura"(a parse error naming the shape anywhere else, since only a plugin leaf has a march to bound); a negative value is a parse error, and a value above the compiled budget is clamped to it. Absent, or0, means no cap and the leaf is identical to today. A truncated march is best-effort and never saturates; because a march cut short while still inside meets the shippedtExit = tLimitrule, a low cap can read slightly higher than uncapped (measured: +0.23 at a cap of 2, bounded by the uncapped silhouette factor). Additive: one new optional leaf field on an existing reserved slot, no UBO or Config field added, no field renamed,PROTOCOL_VERSIONunchanged. See masks. Not verified in game; asserted byscripts/check-aura-bounds.ps1â the GLSL cannot compile headless here.