From 4cbad80aafff684eb61f3ae9e1748792d427c811 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Tue, 22 Apr 2025 15:02:24 +0200 Subject: [PATCH] begin 3d --- .gitattributes | 3 +-- app/src/main/java/chess/App.java | 10 +++++++--- app/src/main/java/chess/OpenGLMain.java | 9 +++++++++ .../java/chess/view/{render => DDDrender}/Camera.java | 2 +- .../view/{render => DDDrender}/ElementBuffer.java | 2 +- .../chess/view/{render => DDDrender}/Renderer.java | 10 +++++----- .../chess/view/{render => DDDrender}/VertexArray.java | 2 +- .../{render => DDDrender}/VertexAttribPointer.java | 2 +- .../chess/view/{render => DDDrender}/VertexBuffer.java | 2 +- .../java/chess/view/{render => DDDrender}/Window.java | 6 +++++- .../view/{render => DDDrender}/shader/BoardShader.java | 2 +- .../{render => DDDrender}/shader/ShaderProgram.java | 2 +- app/src/main/resources/3d/bishop.glb | 3 +++ app/src/main/resources/3d/king_darth_sidious.glb | 3 +++ app/src/main/resources/3d/king_darth_sidious_solid.glb | 3 +++ app/src/main/resources/3d/king_yoda.glb | 3 +++ app/src/main/resources/3d/knight_darth_maul.glb | 3 +++ app/src/main/resources/3d/knight_luke.glb | 3 +++ app/src/main/resources/3d/pawn_r2d2.glb | 3 +++ app/src/main/resources/3d/pawn_strooper.glb | 3 +++ app/src/main/resources/3d/piece.glb | 3 +++ app/src/main/resources/3d/queen_leia.glb | 3 +++ app/src/main/resources/3d/queen_lumiya.glb | 3 +++ app/src/main/resources/3d/rook.glb | 3 +++ 24 files changed, 70 insertions(+), 18 deletions(-) create mode 100644 app/src/main/java/chess/OpenGLMain.java rename app/src/main/java/chess/view/{render => DDDrender}/Camera.java (98%) rename app/src/main/java/chess/view/{render => DDDrender}/ElementBuffer.java (95%) rename app/src/main/java/chess/view/{render => DDDrender}/Renderer.java (95%) rename app/src/main/java/chess/view/{render => DDDrender}/VertexArray.java (96%) rename app/src/main/java/chess/view/{render => DDDrender}/VertexAttribPointer.java (71%) rename app/src/main/java/chess/view/{render => DDDrender}/VertexBuffer.java (97%) rename app/src/main/java/chess/view/{render => DDDrender}/Window.java (97%) rename app/src/main/java/chess/view/{render => DDDrender}/shader/BoardShader.java (96%) rename app/src/main/java/chess/view/{render => DDDrender}/shader/ShaderProgram.java (98%) create mode 100644 app/src/main/resources/3d/bishop.glb create mode 100644 app/src/main/resources/3d/king_darth_sidious.glb create mode 100644 app/src/main/resources/3d/king_darth_sidious_solid.glb create mode 100644 app/src/main/resources/3d/king_yoda.glb create mode 100644 app/src/main/resources/3d/knight_darth_maul.glb create mode 100644 app/src/main/resources/3d/knight_luke.glb create mode 100644 app/src/main/resources/3d/pawn_r2d2.glb create mode 100644 app/src/main/resources/3d/pawn_strooper.glb create mode 100644 app/src/main/resources/3d/piece.glb create mode 100644 app/src/main/resources/3d/queen_leia.glb create mode 100644 app/src/main/resources/3d/queen_lumiya.glb create mode 100644 app/src/main/resources/3d/rook.glb diff --git a/.gitattributes b/.gitattributes index 097f9f9..c3786a9 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3,7 +3,6 @@ # # Linux start script should use lf /gradlew text eol=lf - # These are Windows script files and should use crlf *.bat text eol=crlf - +*.glb filter=lfs diff=lfs merge=lfs -text diff --git a/app/src/main/java/chess/App.java b/app/src/main/java/chess/App.java index 2de48b3..0fd5919 100644 --- a/app/src/main/java/chess/App.java +++ b/app/src/main/java/chess/App.java @@ -1,16 +1,17 @@ package chess; -import chess.view.consolerender.Colors; - import java.util.Scanner; +import chess.view.consolerender.Colors; + public class App { public static void main(String[] args) { System.out.println(Colors.RED + "Credits: Grenier Lilas, Pribylski Simon." + Colors.RESET); System.out.println(""" Pick the version to use: 1 - Console - 2 - Window."""); + 2 - Window + 3 - 3D."""); switch (new Scanner(System.in).nextLine()) { case "1", "Console", "console": ConsoleMain.main(args); @@ -18,6 +19,9 @@ public class App { case "2", "Window", "window": SwingMain.main(args); break; + case "3", "3D", "3d": + OpenGLMain.main(args); + break; default: System.out.println("Invalid input"); break; diff --git a/app/src/main/java/chess/OpenGLMain.java b/app/src/main/java/chess/OpenGLMain.java new file mode 100644 index 0000000..3929ae5 --- /dev/null +++ b/app/src/main/java/chess/OpenGLMain.java @@ -0,0 +1,9 @@ +package chess; + +import chess.view.DDDrender.Window; + +public class OpenGLMain { + public static void main(String[] args) { + new Window().run(); + } +} diff --git a/app/src/main/java/chess/view/render/Camera.java b/app/src/main/java/chess/view/DDDrender/Camera.java similarity index 98% rename from app/src/main/java/chess/view/render/Camera.java rename to app/src/main/java/chess/view/DDDrender/Camera.java index 58a403a..8efdbeb 100644 --- a/app/src/main/java/chess/view/render/Camera.java +++ b/app/src/main/java/chess/view/DDDrender/Camera.java @@ -1,4 +1,4 @@ -package chess.view.render; +package chess.view.DDDrender; import org.joml.Matrix4f; import org.joml.Vector3f; diff --git a/app/src/main/java/chess/view/render/ElementBuffer.java b/app/src/main/java/chess/view/DDDrender/ElementBuffer.java similarity index 95% rename from app/src/main/java/chess/view/render/ElementBuffer.java rename to app/src/main/java/chess/view/DDDrender/ElementBuffer.java index 2ac7746..fc55725 100644 --- a/app/src/main/java/chess/view/render/ElementBuffer.java +++ b/app/src/main/java/chess/view/DDDrender/ElementBuffer.java @@ -1,4 +1,4 @@ -package chess.view.render; +package chess.view.DDDrender; import org.lwjgl.opengl.GL30; diff --git a/app/src/main/java/chess/view/render/Renderer.java b/app/src/main/java/chess/view/DDDrender/Renderer.java similarity index 95% rename from app/src/main/java/chess/view/render/Renderer.java rename to app/src/main/java/chess/view/DDDrender/Renderer.java index 3ddeed8..2033785 100644 --- a/app/src/main/java/chess/view/render/Renderer.java +++ b/app/src/main/java/chess/view/DDDrender/Renderer.java @@ -1,11 +1,11 @@ -package chess.view.render; +package chess.view.DDDrender; + +import static org.lwjgl.opengl.GL11.GL_UNSIGNED_INT; import org.joml.Vector3f; -import org.lwjgl.opengl.*; +import org.lwjgl.opengl.GL30; -import chess.view.render.shader.BoardShader; - -import static org.lwjgl.opengl.GL30.*; +import chess.view.DDDrender.shader.BoardShader; public class Renderer { private BoardShader shader; diff --git a/app/src/main/java/chess/view/render/VertexArray.java b/app/src/main/java/chess/view/DDDrender/VertexArray.java similarity index 96% rename from app/src/main/java/chess/view/render/VertexArray.java rename to app/src/main/java/chess/view/DDDrender/VertexArray.java index 13bd712..85d879a 100644 --- a/app/src/main/java/chess/view/render/VertexArray.java +++ b/app/src/main/java/chess/view/DDDrender/VertexArray.java @@ -1,4 +1,4 @@ -package chess.view.render; +package chess.view.DDDrender; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/chess/view/render/VertexAttribPointer.java b/app/src/main/java/chess/view/DDDrender/VertexAttribPointer.java similarity index 71% rename from app/src/main/java/chess/view/render/VertexAttribPointer.java rename to app/src/main/java/chess/view/DDDrender/VertexAttribPointer.java index b2335eb..f4af07e 100644 --- a/app/src/main/java/chess/view/render/VertexAttribPointer.java +++ b/app/src/main/java/chess/view/DDDrender/VertexAttribPointer.java @@ -1,4 +1,4 @@ -package chess.view.render; +package chess.view.DDDrender; public record VertexAttribPointer(int index, int size, int offset) { diff --git a/app/src/main/java/chess/view/render/VertexBuffer.java b/app/src/main/java/chess/view/DDDrender/VertexBuffer.java similarity index 97% rename from app/src/main/java/chess/view/render/VertexBuffer.java rename to app/src/main/java/chess/view/DDDrender/VertexBuffer.java index 1e6f347..1995736 100644 --- a/app/src/main/java/chess/view/render/VertexBuffer.java +++ b/app/src/main/java/chess/view/DDDrender/VertexBuffer.java @@ -1,4 +1,4 @@ -package chess.view.render; +package chess.view.DDDrender; import static org.lwjgl.opengl.GL11.GL_FLOAT; diff --git a/app/src/main/java/chess/view/render/Window.java b/app/src/main/java/chess/view/DDDrender/Window.java similarity index 97% rename from app/src/main/java/chess/view/render/Window.java rename to app/src/main/java/chess/view/DDDrender/Window.java index 6855dea..e2b8ff7 100644 --- a/app/src/main/java/chess/view/render/Window.java +++ b/app/src/main/java/chess/view/DDDrender/Window.java @@ -1,4 +1,4 @@ -package chess.view.render; +package chess.view.DDDrender; import org.lwjgl.*; import org.lwjgl.glfw.*; @@ -26,6 +26,10 @@ public class Window { this.cam = new Camera(); } + public static void main(String[] args) { + new Window().run(); + } + public void run() { System.out.println("LWJGL " + Version.getVersion() + "!"); diff --git a/app/src/main/java/chess/view/render/shader/BoardShader.java b/app/src/main/java/chess/view/DDDrender/shader/BoardShader.java similarity index 96% rename from app/src/main/java/chess/view/render/shader/BoardShader.java rename to app/src/main/java/chess/view/DDDrender/shader/BoardShader.java index dee6299..cc3fdbe 100644 --- a/app/src/main/java/chess/view/render/shader/BoardShader.java +++ b/app/src/main/java/chess/view/DDDrender/shader/BoardShader.java @@ -1,4 +1,4 @@ -package chess.view.render.shader; +package chess.view.DDDrender.shader; import org.joml.Matrix4f; diff --git a/app/src/main/java/chess/view/render/shader/ShaderProgram.java b/app/src/main/java/chess/view/DDDrender/shader/ShaderProgram.java similarity index 98% rename from app/src/main/java/chess/view/render/shader/ShaderProgram.java rename to app/src/main/java/chess/view/DDDrender/shader/ShaderProgram.java index 5853f75..cfeb07f 100644 --- a/app/src/main/java/chess/view/render/shader/ShaderProgram.java +++ b/app/src/main/java/chess/view/DDDrender/shader/ShaderProgram.java @@ -1,4 +1,4 @@ -package chess.view.render.shader; +package chess.view.DDDrender.shader; import java.nio.FloatBuffer; import java.nio.IntBuffer; diff --git a/app/src/main/resources/3d/bishop.glb b/app/src/main/resources/3d/bishop.glb new file mode 100644 index 0000000..8497e63 --- /dev/null +++ b/app/src/main/resources/3d/bishop.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9de4cc336a3758a7285ca5dcc5c01409f1ff5d50e764f38857cdf5900590751 +size 1862504 diff --git a/app/src/main/resources/3d/king_darth_sidious.glb b/app/src/main/resources/3d/king_darth_sidious.glb new file mode 100644 index 0000000..d7351a6 --- /dev/null +++ b/app/src/main/resources/3d/king_darth_sidious.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fba82d694608f48ba85224f9d1099ae6d884b4588e1e9b355b136824ba12993 +size 38924264 diff --git a/app/src/main/resources/3d/king_darth_sidious_solid.glb b/app/src/main/resources/3d/king_darth_sidious_solid.glb new file mode 100644 index 0000000..5befd9f --- /dev/null +++ b/app/src/main/resources/3d/king_darth_sidious_solid.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2b10052a3e58ff14020f737c4493266a9fae7bd8318527ebf32cddfb97b21fe +size 40833600 diff --git a/app/src/main/resources/3d/king_yoda.glb b/app/src/main/resources/3d/king_yoda.glb new file mode 100644 index 0000000..e4c6c49 --- /dev/null +++ b/app/src/main/resources/3d/king_yoda.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6782c2627d0de0de695baaeaca286da3c77f443cc5788d8c3a0057406296776 +size 3503068 diff --git a/app/src/main/resources/3d/knight_darth_maul.glb b/app/src/main/resources/3d/knight_darth_maul.glb new file mode 100644 index 0000000..5e073a2 --- /dev/null +++ b/app/src/main/resources/3d/knight_darth_maul.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b714c3884dbcb0c8863ae8583c9dd61b5a3c4531e38bb5af8a403d7b69f52183 +size 2249344 diff --git a/app/src/main/resources/3d/knight_luke.glb b/app/src/main/resources/3d/knight_luke.glb new file mode 100644 index 0000000..d820f2a --- /dev/null +++ b/app/src/main/resources/3d/knight_luke.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3ebb87642f2f7f205dbfac65ed2bdef1ab4f4b67cf9929619d2e681004655cc +size 15926128 diff --git a/app/src/main/resources/3d/pawn_r2d2.glb b/app/src/main/resources/3d/pawn_r2d2.glb new file mode 100644 index 0000000..3fb9faa --- /dev/null +++ b/app/src/main/resources/3d/pawn_r2d2.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c58aaab69205d56e6f41f94dc2c4e759d2d7cd43fa4fdd7cf615d21a6f18c30f +size 5458016 diff --git a/app/src/main/resources/3d/pawn_strooper.glb b/app/src/main/resources/3d/pawn_strooper.glb new file mode 100644 index 0000000..6c9261d --- /dev/null +++ b/app/src/main/resources/3d/pawn_strooper.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2929607904bde363cbd4fc3766ba2f9a55b7d37f5e6d0c8ad6995dc311775a7 +size 10249428 diff --git a/app/src/main/resources/3d/piece.glb b/app/src/main/resources/3d/piece.glb new file mode 100644 index 0000000..e0170d6 --- /dev/null +++ b/app/src/main/resources/3d/piece.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81da4beec7bf500fea31b5626c58edc2d9f575b3d5ef743b16854ca40e9d86c8 +size 2110080 diff --git a/app/src/main/resources/3d/queen_leia.glb b/app/src/main/resources/3d/queen_leia.glb new file mode 100644 index 0000000..9d656fa --- /dev/null +++ b/app/src/main/resources/3d/queen_leia.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d812a5ddd17844e71fa8216722413065b46b12ce37f9d5591d6120e29393686 +size 25214944 diff --git a/app/src/main/resources/3d/queen_lumiya.glb b/app/src/main/resources/3d/queen_lumiya.glb new file mode 100644 index 0000000..a3f4dcc --- /dev/null +++ b/app/src/main/resources/3d/queen_lumiya.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56f9ca7da9758b8f4801a829cf92b03c4ee3fbf4d306e55f1526236a12a8931d +size 9602776 diff --git a/app/src/main/resources/3d/rook.glb b/app/src/main/resources/3d/rook.glb new file mode 100644 index 0000000..27e9ea2 --- /dev/null +++ b/app/src/main/resources/3d/rook.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cd5999920bf1919a6c37fbb3405272fe8721e915f3fd1dac9114a154cf23898 +size 19819784