new voxel audio, foliage fix, ui test fix
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit

This commit is contained in:
austin 2024-09-11 23:39:32 -04:00
parent 5fce9bc292
commit dd763b31a9
33 changed files with 61 additions and 29 deletions

View File

@ -82,6 +82,45 @@
"Audio/movement/surface/dirt/Land Step Gravel A.wav", "Audio/movement/surface/dirt/Land Step Gravel A.wav",
"Audio/movement/surface/dirt/Land Step Gravel B.wav" "Audio/movement/surface/dirt/Land Step Gravel B.wav"
] ]
},
{
"voxelTypeIds" : [2,3],
"footstepRegularBareAudioPaths" : [
"Audio/movement/surface/grass/Bare Step Grass Medium A.wav",
"Audio/movement/surface/grass/Bare Step Grass Medium B.wav",
"Audio/movement/surface/grass/Bare Step Grass Medium C.wav",
"Audio/movement/surface/grass/Bare Step Grass Medium D.wav",
"Audio/movement/surface/grass/Bare Step Grass Medium E.wav"
],
"footstepHeavyBareAudioPaths" : [
"Audio/movement/surface/grass/Bare Step Grass Hard A.wav",
"Audio/movement/surface/grass/Bare Step Grass Hard B.wav",
"Audio/movement/surface/grass/Bare Step Grass Hard C.wav",
"Audio/movement/surface/grass/Bare Step Grass Hard D.wav",
"Audio/movement/surface/grass/Bare Step Grass Hard E.wav"
],
"footstepRegularShoeAudioPaths" : [
"Audio/movement/surface/grass/Shoe Step Grass Medium A.wav",
"Audio/movement/surface/grass/Shoe Step Grass Medium B.wav",
"Audio/movement/surface/grass/Shoe Step Grass Medium C.wav",
"Audio/movement/surface/grass/Shoe Step Grass Medium D.wav",
"Audio/movement/surface/grass/Shoe Step Grass Medium E.wav"
],
"footstepHeavyShoeAudioPaths" : [
"Audio/movement/surface/grass/Shoe Step Grass Hard A.wav",
"Audio/movement/surface/grass/Shoe Step Grass Hard B.wav",
"Audio/movement/surface/grass/Shoe Step Grass Hard C.wav",
"Audio/movement/surface/grass/Shoe Step Grass Hard D.wav",
"Audio/movement/surface/grass/Shoe Step Grass Hard E.wav"
],
"jumpAudioPaths" : [
"Audio/movement/surface/grass/Jump Step Grass A.wav",
"Audio/movement/surface/grass/Jump Step Grass B.wav"
],
"landAudioPaths" : [
"Audio/movement/surface/grass/Land Step Grass A.wav",
"Audio/movement/surface/grass/Land Step Grass B.wav"
]
} }
] ]
} }

View File

@ -16,7 +16,6 @@
Ticketed randomizer node for BTs to more heavily weight attacking and waiting Ticketed randomizer node for BTs to more heavily weight attacking and waiting
+ bug fixes + bug fixes
Fix grass rendering distance
Fix return to title menu synchronization bug Fix return to title menu synchronization bug
+ unreproducible bugs + unreproducible bugs

View File

@ -720,9 +720,16 @@ Fix empty item slot not showing underneath dragged item
Fix voxel selection popout rendering, nav logic Fix voxel selection popout rendering, nav logic
(09/11/2024) (09/11/2024)
Voxel updates Voxel updates (+new type!)
Fix return-to-title button from ingame main menu Fix return-to-title button from ingame main menu
Fix F2 controls bug with title menu Fix F2 controls bug with title menu
ChunkOctree implementation
Octree approach for rendering foliage on client
Foliage scaled cell generation
DBody key refactor
Audio for grass/leaves
Re-enable UI test
Fix foliage chunk-level radius being too low (causing grass cutoff)
# TODO # TODO

View File

@ -24,7 +24,7 @@ public class ClientFoliageManager {
/** /**
* Number of chunks to check * Number of chunks to check
*/ */
int chunkRadius = 1; int chunkRadius = 2;

View File

@ -27,12 +27,12 @@ public class FoliageChunk {
/** /**
* The distance to draw at full resolution * The distance to draw at full resolution
*/ */
static final double FULL_RES_DIST = 20; static final double FULL_RES_DIST = 15;
/** /**
* The distance for half resolution * The distance for half resolution
*/ */
static final double HALF_RES_DIST = 40; static final double HALF_RES_DIST = 30;
/** /**
* The octree holding all the chunks to evaluate * The octree holding all the chunks to evaluate

View File

@ -285,8 +285,10 @@ public class Framebuffer {
int offsetY = 0; int offsetY = 0;
int width = openGLState.getViewport().x; int width = openGLState.getViewport().x;
int height = openGLState.getViewport().y; int height = openGLState.getViewport().y;
//the formats we want opengl to return with
int pixelFormat = GL40.GL_RGBA; int pixelFormat = GL40.GL_RGBA;
int type = GL40.GL_UNSIGNED_INT; int type = GL40.GL_UNSIGNED_BYTE;
bind(openGLState); bind(openGLState);
@ -296,8 +298,6 @@ public class Framebuffer {
GL40.glReadBuffer(GL40.GL_BACK); GL40.glReadBuffer(GL40.GL_BACK);
} else if(attachTextureMap.containsKey(0)){ } else if(attachTextureMap.containsKey(0)){
Texture texture = attachTextureMap.get(0); Texture texture = attachTextureMap.get(0);
pixelFormat = texture.getFormat();
type = texture.getDataType();
width = texture.getWidth(); width = texture.getWidth();
height = texture.getHeight(); height = texture.getHeight();
} else { } else {
@ -353,19 +353,7 @@ public class Framebuffer {
LoggerInterface.loggerRenderer.WARNING("Trying to export framebuffer that has image of unsupported pixel format"); LoggerInterface.loggerRenderer.WARNING("Trying to export framebuffer that has image of unsupported pixel format");
} break; } break;
} }
int bytesPerComponent = 1; return multiplier;
switch(type){
case GL40.GL_UNSIGNED_INT: {
bytesPerComponent = 4;
} break;
case GL40.GL_UNSIGNED_BYTE: {
bytesPerComponent = 1;
} break;
default: {
LoggerInterface.loggerRenderer.WARNING("Trying to export framebuffer that has image of unsupported datatype");
} break;
}
return multiplier * bytesPerComponent;
} }
} }

View File

@ -48,7 +48,7 @@ public class FramebufferUtils {
public static Texture generateScreenTextureColor(OpenGLState openGLState, int width, int height){ public static Texture generateScreenTextureColor(OpenGLState openGLState, int width, int height){
Texture texture = new Texture(); Texture texture = new Texture();
texture.bind(openGLState); texture.bind(openGLState);
texture.glTexImage2D(openGLState, width, height, GL_RGB, GL_UNSIGNED_BYTE); texture.glTexImage2D(openGLState, width, height, GL_RGB, GL45.GL_UNSIGNED_INT);
texture.setMinFilter(openGLState, GL_LINEAR); texture.setMinFilter(openGLState, GL_LINEAR);
texture.setMagFilter(openGLState, GL_LINEAR); texture.setMagFilter(openGLState, GL_LINEAR);
//these make sure the texture actually clamps to the borders of the quad //these make sure the texture actually clamps to the borders of the quad
@ -67,7 +67,7 @@ public class FramebufferUtils {
public static Texture generateScreenTextureColorAlpha(OpenGLState openGLState, int width, int height){ public static Texture generateScreenTextureColorAlpha(OpenGLState openGLState, int width, int height){
Texture texture = new Texture(); Texture texture = new Texture();
texture.bind(openGLState); texture.bind(openGLState);
texture.glTexImage2D(openGLState, width, height, GL_RGBA, GL45.GL_UNSIGNED_INT_8_8_8_8); texture.glTexImage2D(openGLState, width, height, GL_RGBA, GL45.GL_UNSIGNED_INT);
texture.setMinFilter(openGLState, GL_LINEAR); texture.setMinFilter(openGLState, GL_LINEAR);
texture.setMagFilter(openGLState, GL_LINEAR); texture.setMagFilter(openGLState, GL_LINEAR);
//these make sure the texture actually clamps to the borders of the quad //these make sure the texture actually clamps to the borders of the quad

View File

@ -1,7 +1,5 @@
package electrosphere.renderer.ui.elements; package electrosphere.renderer.ui.elements;
import org.junit.jupiter.api.Disabled;
import electrosphere.test.annotations.IntegrationTest; import electrosphere.test.annotations.IntegrationTest;
import electrosphere.menu.WindowUtils; import electrosphere.menu.WindowUtils;
import electrosphere.menu.mainmenu.MenuGeneratorsUITesting; import electrosphere.menu.mainmenu.MenuGeneratorsUITesting;
@ -16,18 +14,19 @@ public class WindowTest extends RenderingTestTemplate {
/** /**
* Tests creating a window * Tests creating a window
*/ */
@Disabled
@IntegrationTest @IntegrationTest
public void testCreateWindow(){ public void testCreateWindow(){
//create ui testing window //create ui testing window
TestEngineUtils.simulateFrames(1); TestEngineUtils.simulateFrames(1);
WindowUtils.replaceMainMenuContents(MenuGeneratorsUITesting.createUITestMenu()); WindowUtils.replaceMainMenuContents(MenuGeneratorsUITesting.createUITestMenu());
//only simulating 1 frame after updating ui contents does not trigger re-render in local dev environment, but DOES in CI env //wait for ui updates
//2 frames seems to fix this TestEngineUtils.flush();
TestEngineUtils.simulateFrames(60); TestEngineUtils.simulateFrames(60);
// TestRenderingUtils.saveTestRender("./test/java/electrosphere/renderer/ui/elements/window.png"); // TestRenderingUtils.saveTestRender("./test/java/electrosphere/renderer/ui/elements/window.png");
this.checkRender("Basic", "./test/java/electrosphere/renderer/ui/elements/window.png"); this.checkRender("Basic", "./test/java/electrosphere/renderer/ui/elements/ui-test.png");
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB