Skip to content

Commit 70c4228

Browse files
Update
1 parent 61becaf commit 70c4228

File tree

12 files changed

+78
-10
lines changed

12 files changed

+78
-10
lines changed

.idea/discord.xml

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pom.xml

+2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@
3030
<dependency><groupId>org.lwjgl</groupId><artifactId>lwjgl</artifactId></dependency>
3131
<dependency><groupId>org.lwjgl</groupId><artifactId>lwjgl-glfw</artifactId></dependency>
3232
<dependency><groupId>org.lwjgl</groupId><artifactId>lwjgl-opengl</artifactId></dependency>
33+
<dependency><groupId>org.lwjgl</groupId><artifactId>lwjgl-stb</artifactId></dependency>
3334
<dependency><groupId>org.lwjgl</groupId><artifactId>lwjgl</artifactId><classifier>natives-windows</classifier></dependency>
3435
<dependency><groupId>org.lwjgl</groupId><artifactId>lwjgl-glfw</artifactId><classifier>natives-windows</classifier></dependency>
36+
<dependency><groupId>org.lwjgl</groupId><artifactId>lwjgl-stb</artifactId><classifier>natives-windows</classifier></dependency>
3537
<dependency><groupId>org.lwjgl</groupId><artifactId>lwjgl-opengl</artifactId><classifier>natives-windows</classifier></dependency>
3638
<dependency><groupId>org.joml</groupId><artifactId>joml</artifactId><version>1.10.5</version></dependency>
3739
</dependencies>

src/main/java/de/fabulousfox/engine/Renderer.java

+12-9
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class Renderer {
3434
private int FRAMEBUFFER_COLORBUFFER;
3535
private int FRAMEBUFFER_RENDERBUFFER1;
3636

37-
private final Shader SHADER_GRID_DEBUG, SHADER_POST_DEBUG;
37+
private final Shader SHADER_GRID, SHADER_POST;
3838

3939
private int VAO_WORLD;
4040
private int vaosize;
@@ -141,6 +141,8 @@ public Renderer(int windowWidth, int windowHeight, String windowTitle){
141141

142142
GL.createCapabilities();
143143

144+
glEnable(GL_TEXTURE_3D);
145+
144146
float[] quadVertices = {
145147
-1.0f, 1.0f,
146148
-1.0f, -1.0f,
@@ -184,12 +186,12 @@ public Renderer(int windowWidth, int windowHeight, String windowTitle){
184186

185187
System.out.println("Initializing Shaders...");
186188
System.out.println("SHADER_GRID_DEBUG");
187-
SHADER_GRID_DEBUG = new Shader(
189+
SHADER_GRID = new Shader(
188190
"shader/debug/SHADER_GRID_DEBUG.vert",
189191
"shader/debug/SHADER_GRID_DEBUG.frag"
190192
);
191193
System.out.println("SHADER_POST_DEBUG");
192-
SHADER_POST_DEBUG = new Shader(
194+
SHADER_POST = new Shader(
193195
"shader/debug/SHADER_POST_DEBUG.vert",
194196
"shader/debug/SHADER_POST_DEBUG.frag"
195197
);
@@ -266,6 +268,7 @@ public Renderer(int windowWidth, int windowHeight, String windowTitle){
266268
glEnableVertexAttribArray(1); // UV
267269
VBO_WORLD.add(v);
268270

271+
Texture3D voxelData = new Texture3D("models/debug", 2);
269272
}
270273

271274
public boolean shouldClose(){
@@ -292,10 +295,10 @@ public void render(Vector3f position, Vector3f direction){
292295

293296
viewMatrix = getViewMatrix(position, direction);
294297

295-
SHADER_GRID_DEBUG.use();
296-
SHADER_GRID_DEBUG.setMatrix4f("projection", projectionMatrix);
297-
SHADER_GRID_DEBUG.setMatrix4f("view", viewMatrix);
298-
SHADER_GRID_DEBUG.setMatrix4f("model", modelMatrix);
298+
SHADER_GRID.use();
299+
SHADER_GRID.setMatrix4f("projection", projectionMatrix);
300+
SHADER_GRID.setMatrix4f("view", viewMatrix);
301+
SHADER_GRID.setMatrix4f("model", modelMatrix);
299302

300303
glBindBuffer(GL_ARRAY_BUFFER, VAO_WORLD);
301304
glDrawArrays(GL_TRIANGLES, 0, vaosize);
@@ -313,8 +316,8 @@ public void render(Vector3f position, Vector3f direction){
313316

314317
//glPolygonMode(GL_FRONT_FACE, GL_LINE);
315318

316-
SHADER_POST_DEBUG.use();
317-
SHADER_POST_DEBUG.setVector2f("iResolution", new Vector2f(windowWidth, windowHeight));
319+
SHADER_POST.use();
320+
SHADER_POST.setVector2f("iResolution", new Vector2f(windowWidth, windowHeight));
318321
glBindVertexArray(VAO_POST);
319322
glActiveTexture(GL_TEXTURE0);
320323
glBindTexture(GL_TEXTURE_2D, FRAMEBUFFER_COLORBUFFER);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package de.fabulousfox.engine;
2+
3+
import org.lwjgl.BufferUtils;
4+
5+
import java.io.File;
6+
import java.nio.ByteBuffer;
7+
import java.nio.IntBuffer;
8+
import java.util.Objects;
9+
10+
import static org.lwjgl.opengl.GL33.*;
11+
import static org.lwjgl.stb.STBImage.*;
12+
13+
public class Texture3D {
14+
private int texID;
15+
16+
public Texture3D(String folderpath, int texChannel) {
17+
glActiveTexture(texChannel);
18+
texID = glGenTextures();
19+
glBindTexture(GL_TEXTURE_3D, texID);
20+
21+
// set the texture wrapping parameters
22+
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
23+
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
24+
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
25+
26+
// set texture filtering parameters
27+
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
28+
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
29+
30+
String[] files = new File(getClass().getResource(folderpath).getPath()).list();
31+
32+
int WIDTH = 8;
33+
int HEIGHT = 8;
34+
int DEPTH = 8;
35+
36+
glTexImage3D(GL_TEXTURE_3D, 0, GL_RGB8, WIDTH, HEIGHT, DEPTH, 0, GL_RGBA, GL_UNSIGNED_BYTE, (ByteBuffer) null);
37+
38+
for(int i = 0; i < files.length; i++){
39+
String absolutePath = Objects.requireNonNull(getClass().getClassLoader().getResource(
40+
folderpath + File.separator + i + ".png"
41+
)).getPath().substring(1);
42+
if(!System.getProperty("os.name").contains("Windows")){
43+
absolutePath = File.separator + absolutePath;
44+
}
45+
stbi_set_flip_vertically_on_load(true);
46+
IntBuffer x = BufferUtils.createIntBuffer(1);
47+
IntBuffer y = BufferUtils.createIntBuffer(1);
48+
IntBuffer channels = BufferUtils.createIntBuffer(1);
49+
ByteBuffer image = stbi_load(absolutePath, x, y, channels, STBI_rgb_alpha);
50+
if (image == null) {
51+
throw new IllegalStateException("Could not decode image file ["+ absolutePath +"]: ["+ stbi_failure_reason() +"]");
52+
}
53+
54+
glTexSubImage3D(GL_TEXTURE_3D, 0, 0, 0, i, WIDTH, HEIGHT, 1, GL_RGBA, GL_UNSIGNED_BYTE, image);
55+
56+
stbi_image_free(image);
57+
}
58+
}
59+
60+
public int get() {
61+
return texID;
62+
}
63+
}

src/main/resources/models/debug/1.png

576 Bytes
Loading

src/main/resources/models/debug/2.png

576 Bytes
Loading

src/main/resources/models/debug/3.png

575 Bytes
Loading

src/main/resources/models/debug/4.png

579 Bytes
Loading

src/main/resources/models/debug/5.png

579 Bytes
Loading

src/main/resources/models/debug/6.png

575 Bytes
Loading

src/main/resources/models/debug/7.png

576 Bytes
Loading

src/main/resources/models/debug/8.png

576 Bytes
Loading

0 commit comments

Comments
 (0)