reduce projection near clip + grass work
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
This commit is contained in:
parent
9db672321f
commit
dc00a20bb0
@ -26,7 +26,7 @@
|
|||||||
"name" : "Add",
|
"name" : "Add",
|
||||||
"first" : {
|
"first" : {
|
||||||
"name" : "Const",
|
"name" : "Const",
|
||||||
"value" : 0.5
|
"value" : 1.0
|
||||||
},
|
},
|
||||||
"second" : {
|
"second" : {
|
||||||
"name" : "OpenSimplex"
|
"name" : "OpenSimplex"
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 87 KiB |
@ -1108,6 +1108,11 @@ Fix ClientTerrainManager concurrent editing bug
|
|||||||
Fix point lights not being cleared from buffer after deletion
|
Fix point lights not being cleared from buffer after deletion
|
||||||
Remove point lights from skeleton + human
|
Remove point lights from skeleton + human
|
||||||
|
|
||||||
|
(11/21/2024)
|
||||||
|
Change grass texture
|
||||||
|
Fix allocations on FoliageChunk child iterations
|
||||||
|
Reduce near clip to remove flickering on far chunks
|
||||||
|
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
|
|
||||||
@ -1139,8 +1144,6 @@ Bug Fixes
|
|||||||
- Calculate bounding sphere for meshes by deforming vertices with bone default pose instead of no bone deform
|
- Calculate bounding sphere for meshes by deforming vertices with bone default pose instead of no bone deform
|
||||||
- Fix light cluster mapping for foliage shader
|
- Fix light cluster mapping for foliage shader
|
||||||
- Fix foliage placement
|
- Fix foliage placement
|
||||||
- Fix lights not being deleted
|
|
||||||
- Not sending a "light count" var to light calculations, so the data stays in buffer even though it is not being updated
|
|
||||||
- Fix block tree preventing initiating an attack
|
- Fix block tree preventing initiating an attack
|
||||||
- Fix particles not spawning in correct positions
|
- Fix particles not spawning in correct positions
|
||||||
- Fix flickering when applying yoga signal (may need to rethink arch here)
|
- Fix flickering when applying yoga signal (may need to rethink arch here)
|
||||||
@ -1230,8 +1233,6 @@ Build a lod system
|
|||||||
Refactor attach logic to better encapsulate semantic attachment
|
Refactor attach logic to better encapsulate semantic attachment
|
||||||
|
|
||||||
Light Manager
|
Light Manager
|
||||||
- Creates and manages light entities
|
|
||||||
- Uses priority queue mechanism like foliage manager to only draw the most important lights
|
|
||||||
- Support "flickering" somehow
|
- Support "flickering" somehow
|
||||||
- Eventually support spot lights?
|
- Eventually support spot lights?
|
||||||
- Point shadows ???
|
- Point shadows ???
|
||||||
|
|||||||
@ -54,12 +54,12 @@ public class FoliageCell {
|
|||||||
/**
|
/**
|
||||||
* the length of the ray to ground test with
|
* the length of the ray to ground test with
|
||||||
*/
|
*/
|
||||||
static final float RAY_LENGTH = 2.0f;
|
static final float RAY_LENGTH = 1.0f;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* the height above the chunk to start from when sampling downwards
|
* the height above the chunk to start from when sampling downwards
|
||||||
*/
|
*/
|
||||||
static final float SAMPLE_START_HEIGHT = 1.0f;
|
static final float SAMPLE_START_HEIGHT = 0.5f;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ID of the air voxel
|
* The ID of the air voxel
|
||||||
@ -159,6 +159,11 @@ public class FoliageCell {
|
|||||||
*/
|
*/
|
||||||
boolean hasGenerated = false;
|
boolean hasGenerated = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tracks whether this cell should be evaluated or not
|
||||||
|
*/
|
||||||
|
boolean shouldEvaluate = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inits the foliage cell data
|
* Inits the foliage cell data
|
||||||
*/
|
*/
|
||||||
@ -269,6 +274,7 @@ public class FoliageCell {
|
|||||||
this.addEntity(grassEntity);
|
this.addEntity(grassEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.shouldEvaluate = false;
|
||||||
this.hasGenerated = true;
|
this.hasGenerated = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -488,6 +494,22 @@ public class FoliageCell {
|
|||||||
return this.hasGenerated;
|
return this.hasGenerated;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the cell should be continuously evaluated
|
||||||
|
* @return true if should be evaluated, false otherwise
|
||||||
|
*/
|
||||||
|
public boolean shouldEvaluate() {
|
||||||
|
return shouldEvaluate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets if the cell should be continuously evaluated
|
||||||
|
* @param shouldEvaluate true if should be evaluated, false otherwise
|
||||||
|
*/
|
||||||
|
public void setShouldEvaluate(boolean shouldEvaluate) {
|
||||||
|
this.shouldEvaluate = shouldEvaluate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SCAFFOLDING FOR BUILDING SCALE>1 CELLS AND ALSO FOR TOP LEVEL CELL CHECKING
|
* SCAFFOLDING FOR BUILDING SCALE>1 CELLS AND ALSO FOR TOP LEVEL CELL CHECKING
|
||||||
|
|||||||
@ -47,27 +47,27 @@ public class MenuGeneratorsTitleMenu {
|
|||||||
optionPanel.addChild(titleLabel);
|
optionPanel.addChild(titleLabel);
|
||||||
|
|
||||||
//button (multiplayer)
|
//button (multiplayer)
|
||||||
optionPanel.addChild(Button.createButtonCentered("Singleplayer", 2.0f, () -> {
|
optionPanel.addChild(Button.createButtonCentered("Singleplayer", 1.0f, () -> {
|
||||||
WindowUtils.replaceMainMenuContents(MenuGenerators.createWorldSelectMenu());
|
WindowUtils.replaceMainMenuContents(MenuGenerators.createWorldSelectMenu());
|
||||||
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
||||||
|
|
||||||
//button (multiplayer)
|
//button (multiplayer)
|
||||||
optionPanel.addChild(Button.createButtonCentered("Multiplayer", 2.0f, () -> {
|
optionPanel.addChild(Button.createButtonCentered("Multiplayer", 1.0f, () -> {
|
||||||
WindowUtils.replaceMainMenuContents(MenuGenerators.createMultiplayerMenu());
|
WindowUtils.replaceMainMenuContents(MenuGenerators.createMultiplayerMenu());
|
||||||
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
||||||
|
|
||||||
//button (static level)
|
//button (static level)
|
||||||
optionPanel.addChild(Button.createButtonCentered("Level Editor", 2.0f, () -> {
|
optionPanel.addChild(Button.createButtonCentered("Level Editor", 1.0f, () -> {
|
||||||
WindowUtils.replaceMainMenuContents(MenuGeneratorsLevelEditor.createLevelEditorTopMenu());
|
WindowUtils.replaceMainMenuContents(MenuGeneratorsLevelEditor.createLevelEditorTopMenu());
|
||||||
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
||||||
|
|
||||||
//button (options)
|
//button (options)
|
||||||
optionPanel.addChild(Button.createButtonCentered("Options", 2.0f, () -> {
|
optionPanel.addChild(Button.createButtonCentered("Options", 1.0f, () -> {
|
||||||
WindowUtils.replaceMainMenuContents(MenuGenerators.createOptionsMainMenu());
|
WindowUtils.replaceMainMenuContents(MenuGenerators.createOptionsMainMenu());
|
||||||
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
||||||
|
|
||||||
//button (sp debug)
|
//button (sp debug)
|
||||||
optionPanel.addChild(Button.createButtonCentered("Debug SP Quickstart", 2.0f, () -> {
|
optionPanel.addChild(Button.createButtonCentered("Debug SP Quickstart", 1.0f, () -> {
|
||||||
LoadingThread loadingThread = new LoadingThread(LoadingThreadType.DEBUG_RANDOM_SP_WORLD);
|
LoadingThread loadingThread = new LoadingThread(LoadingThreadType.DEBUG_RANDOM_SP_WORLD);
|
||||||
Globals.RUN_CLIENT = true;
|
Globals.RUN_CLIENT = true;
|
||||||
Globals.RUN_SERVER = true;
|
Globals.RUN_SERVER = true;
|
||||||
@ -75,7 +75,7 @@ public class MenuGeneratorsTitleMenu {
|
|||||||
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
||||||
|
|
||||||
//button (sp debug)
|
//button (sp debug)
|
||||||
optionPanel.addChild(Button.createButtonCentered("Load Test Generation Realm", 2.0f, () -> {
|
optionPanel.addChild(Button.createButtonCentered("Load Test Generation Realm", 1.0f, () -> {
|
||||||
LoadingThread loadingThread = new LoadingThread(LoadingThreadType.CHUNK_GENERATION_REALM);
|
LoadingThread loadingThread = new LoadingThread(LoadingThreadType.CHUNK_GENERATION_REALM);
|
||||||
Globals.RUN_CLIENT = true;
|
Globals.RUN_CLIENT = true;
|
||||||
Globals.RUN_SERVER = true;
|
Globals.RUN_SERVER = true;
|
||||||
@ -83,12 +83,12 @@ public class MenuGeneratorsTitleMenu {
|
|||||||
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
||||||
|
|
||||||
//button (ui testing)
|
//button (ui testing)
|
||||||
optionPanel.addChild(Button.createButtonCentered("UI Testing", 2.0f, () -> {
|
optionPanel.addChild(Button.createButtonCentered("UI Testing", 1.0f, () -> {
|
||||||
WindowUtils.replaceMainMenuContents(MenuGeneratorsUITesting.createUITestMenu());
|
WindowUtils.replaceMainMenuContents(MenuGeneratorsUITesting.createUITestMenu());
|
||||||
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
||||||
|
|
||||||
//button (Viewport Test)
|
//button (Viewport Test)
|
||||||
optionPanel.addChild(Button.createButtonCentered("Viewport Test", 2.0f, () -> {
|
optionPanel.addChild(Button.createButtonCentered("Viewport Test", 1.0f, () -> {
|
||||||
Globals.threadManager.start(new LoadingThread(LoadingThreadType.LOAD_VIEWPORT));
|
Globals.threadManager.start(new LoadingThread(LoadingThreadType.LOAD_VIEWPORT));
|
||||||
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
}).setOnClickAudio(AssetDataStrings.UI_TONE_BUTTON_TITLE));
|
||||||
|
|
||||||
|
|||||||
@ -258,7 +258,7 @@ public class Globals {
|
|||||||
|
|
||||||
public static float verticalFOV = 90;
|
public static float verticalFOV = 90;
|
||||||
public static float aspectRatio = 2.0f;
|
public static float aspectRatio = 2.0f;
|
||||||
public static float nearClip = 0.001f;
|
public static float nearClip = 0.01f;
|
||||||
|
|
||||||
//matrices for drawing models
|
//matrices for drawing models
|
||||||
public static Matrix4f viewMatrix = new Matrix4f();
|
public static Matrix4f viewMatrix = new Matrix4f();
|
||||||
|
|||||||
@ -183,6 +183,22 @@ public class ChunkTree<T> {
|
|||||||
this.data = data;
|
this.data = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets whether this node is a leaf or not
|
||||||
|
* @param isLeaf true if it is a leaf, false otherwise
|
||||||
|
*/
|
||||||
|
public void setLeaf(boolean isLeaf){
|
||||||
|
this.isLeaf = isLeaf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the data of the node
|
||||||
|
* @param data The data
|
||||||
|
*/
|
||||||
|
public void setData(T data){
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the data associated with this node
|
* Gets the data associated with this node
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user