aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

This commit is contained in:
2025-04-25 17:03:28 +02:00
parent 098b605799
commit cff2d92070
7 changed files with 159 additions and 22 deletions

View File

@@ -1,7 +1,8 @@
package chess.view.DDDrender;
import static org.lwjgl.opengl.GL11.GL_FLOAT;
import static org.lwjgl.opengl.GL11.GL_DEPTH_TEST;
import static org.lwjgl.opengl.GL11.GL_UNSIGNED_INT;
import static org.lwjgl.opengl.GL11.glEnable;
import java.io.IOException;
@@ -11,6 +12,7 @@ import org.joml.Vector3f;
import org.lwjgl.opengl.GL30;
import chess.model.Coordinate;
import chess.model.Piece;
import chess.view.DDDrender.shader.BoardShader;
import chess.view.DDDrender.shader.PieceShader;
import chess.view.DDDrender.shader.ShaderProgram;
@@ -19,7 +21,7 @@ public class Renderer {
private BoardShader boardShader;
private PieceShader pieceShader;
private VertexArray vao;
private DDDModel yoda;
private final PieceModel models;
private static int BOARD_WIDTH = 8;
private static int BOARD_HEIGHT = 8;
@@ -29,17 +31,14 @@ public class Renderer {
public Renderer() {
this.boardShader = new BoardShader();
this.pieceShader = new PieceShader();
this.models = new PieceModel();
}
public void Init() {
boardShader.LoadShader();
pieceShader.LoadShader();
glEnable(GL_DEPTH_TEST);
InitBoard();
try {
this.yoda = ModelLoader.loadModel("3d/king_yoda.glb");
} catch (IOException e) {
e.printStackTrace();
}
}
private float[] GetBoardPositions() {
@@ -126,17 +125,22 @@ public class Renderer {
this.vao.Unbind();
}
public void RenderPiece(Piece piece, Coordinate pos) {
try {
DDDModel pieceModel = this.models.getModel(piece);
Render(pieceModel, DDDPlacement.coordinates_to_vector(pos));
} catch (IOException e) {
e.printStackTrace();
}
}
public void Render(Camera cam) {
GL30.glClear(GL30.GL_DEPTH_BUFFER_BIT);
this.boardShader.Start();
this.boardShader.SetCamMatrix(cam.getMatrix());
this.pieceShader.Start();
this.pieceShader.SetCamMatrix(cam.getMatrix());
RenderVao(this.boardShader, vao);
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
Render(yoda, DDDPlacement.coordinates_to_vector(new Coordinate(i, j)));
}
}
}
public void Render(DDDModel model, Vector2f position) {