voxel weight change
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
This commit is contained in:
parent
c8e6c02a1e
commit
745dbe224b
@ -1125,6 +1125,8 @@ Foliage manager non-collision engine height lookups
|
|||||||
Fix foliage manager not respecting graphics settings
|
Fix foliage manager not respecting graphics settings
|
||||||
Small noise sampling refactor
|
Small noise sampling refactor
|
||||||
Fix test data for main menu render test
|
Fix test data for main menu render test
|
||||||
|
Change voxel weight reporting from server to align with foliage
|
||||||
|
Use jenkins data for unit test temporarily
|
||||||
|
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
|
|||||||
@ -69,7 +69,7 @@ public class FoliageModel {
|
|||||||
/**
|
/**
|
||||||
* Cutoff to place foliage at, weight-wise
|
* Cutoff to place foliage at, weight-wise
|
||||||
*/
|
*/
|
||||||
static final double FOLIAGE_CUTOFF = 0.0;
|
static final double FOLIAGE_CUTOFF = -1.0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cutoff for the cummulative weight to place foliage at
|
* Cutoff for the cummulative weight to place foliage at
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import electrosphere.game.data.voxel.sampler.SamplerFile;
|
|||||||
import electrosphere.server.terrain.generation.interfaces.GeneratedVoxel;
|
import electrosphere.server.terrain.generation.interfaces.GeneratedVoxel;
|
||||||
import electrosphere.server.terrain.generation.interfaces.GenerationContext;
|
import electrosphere.server.terrain.generation.interfaces.GenerationContext;
|
||||||
import electrosphere.server.terrain.generation.noise.NoiseSampler;
|
import electrosphere.server.terrain.generation.noise.NoiseSampler;
|
||||||
import io.github.studiorailgun.MathUtils;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates voxels based on a noise config
|
* Generates voxels based on a noise config
|
||||||
@ -54,14 +53,14 @@ public class NoiseVoxelGen implements VoxelGenerator {
|
|||||||
double heightDiff = realY - surfaceHeight;
|
double heightDiff = realY - surfaceHeight;
|
||||||
double sample = this.sampler.getValue(0, realX, realY, realZ);
|
double sample = this.sampler.getValue(0, realX, realY, realZ);
|
||||||
if(sample <= 0){
|
if(sample <= 0){
|
||||||
voxel.weight = -1.0f;
|
voxel.weight = (float)(sample * 2);
|
||||||
voxel.type = 0;
|
voxel.type = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(heightDiff < -strideMultiplier * SURFACE_VOXEL_WIDTH){
|
if(heightDiff < -strideMultiplier * SURFACE_VOXEL_WIDTH){
|
||||||
//below surface
|
//below surface
|
||||||
double finalSurface = MathUtils.clamp(sample,0,1);
|
double finalSurface = sample;
|
||||||
voxel.weight = (float)finalSurface * 2 - 1;
|
voxel.weight = (float)finalSurface;
|
||||||
voxel.type = 1;
|
voxel.type = 1;
|
||||||
} else if(heightDiff > 0) {
|
} else if(heightDiff > 0) {
|
||||||
//above surface
|
//above surface
|
||||||
@ -69,8 +68,8 @@ public class NoiseVoxelGen implements VoxelGenerator {
|
|||||||
voxel.type = 0;
|
voxel.type = 0;
|
||||||
} else if(heightDiff < -strideMultiplier){
|
} else if(heightDiff < -strideMultiplier){
|
||||||
//generate full-size surface-type voxel
|
//generate full-size surface-type voxel
|
||||||
double finalHeight = MathUtils.clamp(sample,0,1);
|
double finalHeight = sample;
|
||||||
voxel.weight = (float)finalHeight * 2 - 1;
|
voxel.weight = (float)finalHeight;
|
||||||
voxel.type = 2;
|
voxel.type = 2;
|
||||||
} else {
|
} else {
|
||||||
//surface
|
//surface
|
||||||
@ -78,7 +77,7 @@ public class NoiseVoxelGen implements VoxelGenerator {
|
|||||||
if(surfacePercent > 1.0 || surfacePercent < 0){
|
if(surfacePercent > 1.0 || surfacePercent < 0){
|
||||||
throw new Error("surfacePercent " + surfacePercent + " " + realY + " " + surfaceHeight + " " + heightDiff + " " + strideMultiplier);
|
throw new Error("surfacePercent " + surfacePercent + " " + realY + " " + surfaceHeight + " " + heightDiff + " " + strideMultiplier);
|
||||||
}
|
}
|
||||||
double finalHeight = MathUtils.clamp(sample,0,1) * surfacePercent;
|
double finalHeight = sample * surfacePercent;
|
||||||
voxel.weight = (float)finalHeight * 2 - 1;
|
voxel.weight = (float)finalHeight * 2 - 1;
|
||||||
voxel.type = 2;
|
voxel.type = 2;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Loading…
Reference in New Issue
Block a user