Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
6301a1f
fix same fluid type test
douira Dec 4, 2024
50b6d65
remove unnecessary direction parameter from fluidHeight method
douira Dec 4, 2024
74888e2
fix block occlusion cache java doc
douira Dec 5, 2024
6963be1
move accurate fluid culling to BlockOcclusionCache as well
douira Dec 5, 2024
b8eea56
consistent scratch pos usage
douira Dec 5, 2024
ff954d5
refactor block pos handling, use correct facing for occlusion shape i…
douira Dec 5, 2024
d93cb8a
break out self occlusion into own method
douira Dec 5, 2024
628f3b7
fix fluid occlusion for non-full height blocks
douira Dec 7, 2024
897deeb
change fluid behavior around opaque waterlogged blocks to not slant t…
douira Dec 5, 2024
0ded396
fix fluid mesh continuity and refactor corner fluid height calculation,
douira Dec 10, 2024
a2131c3
refactor flags to make them less confusing, rename methods, remove re…
douira Dec 10, 2024
a7bdaad
add flowing water flattening factor to approximate the previous look …
douira Dec 10, 2024
7646e6f
improved neighbor check for up face occlusion
douira Dec 10, 2024
84327a7
cleanup ordering and formatting
douira Dec 10, 2024
898c17d
fix shaping of fluids around diagonal waterfalls,
douira Dec 10, 2024
5f6b793
add inwards facing quads for fluid down faces,
douira Dec 10, 2024
47ed7be
remove unnecessary self visibility checks
douira Dec 11, 2024
b186ab1
improve top face hiding heuristic to also check for source blocks
douira Dec 11, 2024
296c896
weight samples like reference implementation to prevent weird flow pa…
douira Dec 11, 2024
234f31a
add documentation for what the visibility concepts are, opportunistic…
douira Dec 11, 2024
eda9236
improve inwards facing bottom fluid face test, it was too frequent
douira Dec 11, 2024
631be35
avoid unnecessary coordinate fetch
douira Dec 13, 2024
b95bc3c
use same inwards water quad heuristic for down face as for side faces
douira Dec 15, 2024
bcf9231
better cave water occlusion heuristic using floodfill
douira Dec 15, 2024
8b036c7
make cave water occlusion faster by using a stack instead of a queue …
douira Dec 15, 2024
0af2b32
cleanup
douira Dec 15, 2024
0af769c
Fix bug with cave water heuristic
douira Dec 18, 2024
90e8e87
add documentation
douira Dec 18, 2024
9249793
use overlay test for rendering flush inward upper fluid quads,
douira Dec 21, 2024
6600fb2
fix perfectly occluding shapes from having water connectedness
douira Mar 7, 2026
eae5bad
make cave water detection have a 3x3 context
douira Mar 7, 2026
105d5df
refactor to introduce options for improved fluid shaping around water…
douira Mar 8, 2026
a6ca248
move UVs back into corner, but retain correct orientation
douira Mar 8, 2026
1e425a4
enable hidden fluid culling by default
douira Mar 8, 2026
368d8c1
also allow C instead of W as key to change fluid renderer
douira Mar 8, 2026
37cb04e
refactor top face culling to show flowing water and reduce flickering…
douira Mar 18, 2026
dfbbd28
remove debugging code
douira Mar 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,28 @@ private OptionPageBuilder buildQualityPage(ConfigBuilder builder) {
}, Identifier.parse("sodium:quality.filtering_mode"))
)
);

qualityPage.addOptionGroup(builder.createOptionGroup()
.addOption(
builder.createBooleanOption(Identifier.parse("sodium:quality.hidden_fluid_culling"))
.setStorageHandler(this.sodiumStorage)
.setName(Component.translatable("sodium.options.hidden_fluid_culling.name"))
.setTooltip(Component.translatable("sodium.options.hidden_fluid_culling.tooltip"))
.setImpact(OptionImpact.MEDIUM)
.setDefaultValue(DEFAULTS.quality.hiddenFluidCulling)
.setBinding(value -> this.sodiumOpts.quality.hiddenFluidCulling = value, () -> this.sodiumOpts.quality.hiddenFluidCulling)
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
)
.addOption(
builder.createBooleanOption(Identifier.parse("sodium:quality.improved_fluid_shaping"))
.setStorageHandler(this.sodiumStorage)
.setName(Component.translatable("sodium.options.improved_fluid_shaping.name"))
.setTooltip(Component.translatable("sodium.options.improved_fluid_shaping.tooltip"))
.setDefaultValue(DEFAULTS.quality.improvedFluidShaping)
.setBinding(value -> this.sodiumOpts.quality.improvedFluidShaping = value, () -> this.sodiumOpts.quality.improvedFluidShaping)
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
)
);
return qualityPage;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import net.caffeinemc.mods.sodium.client.gui.options.TextProvider;
import net.caffeinemc.mods.sodium.client.render.chunk.DeferMode;
import net.caffeinemc.mods.sodium.client.render.chunk.translucent_sorting.QuadSplittingMode;
import net.caffeinemc.mods.sodium.client.services.PlatformRuntimeInformation;
import net.caffeinemc.mods.sodium.client.util.FileUtil;
import net.minecraft.network.chat.Component;
import org.jspecify.annotations.NonNull;

import java.io.FileReader;
Expand All @@ -20,10 +18,12 @@
public class SodiumOptions {
private static final String DEFAULT_FILE_NAME = "sodium-options.json";

public final AdvancedSettings advanced = new AdvancedSettings();
public final QualitySettings quality = new QualitySettings();
public final PerformanceSettings performance = new PerformanceSettings();
public final NotificationSettings notifications = new NotificationSettings();
public final AdvancedSettings advanced = new AdvancedSettings();

public @NonNull DebugSettings debug = new DebugSettings();
public final NotificationSettings notifications = new NotificationSettings();

private boolean readOnly;

Expand All @@ -35,6 +35,11 @@ public static SodiumOptions defaults() {
return new SodiumOptions();
}

public static class QualitySettings {
public boolean hiddenFluidCulling = true;
public boolean improvedFluidShaping = false;
}

public static class PerformanceSettings {
public int chunkBuilderThreads = 0;
public DeferMode chunkBuildDeferMode = DeferMode.ALWAYS;
Expand Down

This file was deleted.

Loading
Loading