diff --git a/src/models.zig b/src/models.zig index 7aa1b922d..e7f350f2f 100644 --- a/src/models.zig +++ b/src/models.zig @@ -430,7 +430,11 @@ fn addQuad(info_: QuadInfo) error{Degenerate}!u16 { } if(cornerEqualities >= 2) return error.Degenerate; // One corner equality is fine, since then the quad degenerates to a triangle, which has a non-zero area. const index: u16 = @intCast(quads.items.len); - info.opaqueInLod = @intFromBool(Model.getFaceNeighbor(&info) != null); + if(info.opaqueInLod == 2) { + info.opaqueInLod = 0; + } else { + info.opaqueInLod = @intFromBool(Model.getFaceNeighbor(&info) != null); + } quads.append(info); quadDeduplication.put(std.mem.toBytes(info), index) catch unreachable; diff --git a/src/rotation.zig b/src/rotation.zig index 8d68c77b6..1e7aa6d01 100644 --- a/src/rotation.zig +++ b/src/rotation.zig @@ -975,6 +975,7 @@ pub const RotationModes = struct { for(0..len) |i| { quadList.append(quadList.items[i]); quadList.items[i + len].textureSlot += 16; + quadList.items[i].opaqueInLod = 2; } const modelIndex = main.models.Model.init(quadList.items); modelCache = modelIndex;