dev #12

Merged
Persson-dev merged 44 commits from dev into main 2025-05-17 15:05:24 +00:00
2 changed files with 16 additions and 7 deletions
Showing only changes of commit f8ae19fee8 - Show all commits

View File

@@ -22,6 +22,9 @@ public class Renderer {
private VertexArray boardVao; private VertexArray boardVao;
private final PieceModel models; private final PieceModel models;
private static final Vector3f BLACK = new Vector3f(0.1f, 0.1f, 0.1f);
private static final Vector3f WHITE = new Vector3f(0.7f, 0.7f, 0.7f);
public Renderer() { public Renderer() {
this.boardShader = new BoardShader(); this.boardShader = new BoardShader();
this.pieceShader = new PieceShader(); this.pieceShader = new PieceShader();
@@ -37,7 +40,8 @@ public class Renderer {
public void RenderPiece(Piece piece, Coordinate pos) { public void RenderPiece(Piece piece, Coordinate pos) {
try { try {
DDDModel pieceModel = this.models.getModel(piece); DDDModel pieceModel = this.models.getModel(piece);
Render(pieceModel, DDDPlacement.coordinates_to_vector(pos), piece.getColor() == Color.White ? 0.0f : 3.14f); Render(pieceModel, piece.getColor() == Color.White ? WHITE : BLACK, DDDPlacement.coordinates_to_vector(pos),
piece.getColor() == Color.White ? 0.0f : 3.14f);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -51,9 +55,10 @@ public class Renderer {
RenderVao(this.boardShader, this.boardVao); RenderVao(this.boardShader, this.boardVao);
} }
public void Render(DDDModel model, Vector2f position, float rotation) { public void Render(DDDModel model, Vector3f color, Vector2f position, float rotation) {
Vector3f realPos = new Vector3f(position.x(), 0, position.y()); Vector3f realPos = new Vector3f(position.x(), 0, position.y());
this.pieceShader.Start(); this.pieceShader.Start();
this.pieceShader.setModelColor(color);
this.pieceShader.setModelTransform(new Matrix4f().translate(realPos).rotate(rotation, new Vector3f(0, 1, 0))); this.pieceShader.setModelTransform(new Matrix4f().translate(realPos).rotate(rotation, new Vector3f(0, 1, 0)));
Render(model); Render(model);
} }

View File

@@ -1,6 +1,7 @@
package chess.view.DDDrender.shader; package chess.view.DDDrender.shader;
import org.joml.Matrix4f; import org.joml.Matrix4f;
import org.joml.Vector3f;
public class PieceShader extends ShaderProgram { public class PieceShader extends ShaderProgram {
@@ -18,8 +19,6 @@ public class PieceShader extends ShaderProgram {
out vec3 toLightVector; out vec3 toLightVector;
out vec3 surfaceNormal; out vec3 surfaceNormal;
flat out vec3 pass_color;
void main(void){ void main(void){
vec4 worldPos = modelTransform * vec4(position, 1.0); vec4 worldPos = modelTransform * vec4(position, 1.0);
@@ -27,7 +26,6 @@ public class PieceShader extends ShaderProgram {
surfaceNormal = (modelTransform * vec4(normal, 0.0)).xyz; surfaceNormal = (modelTransform * vec4(normal, 0.0)).xyz;
gl_Position = camMatrix * worldPos; gl_Position = camMatrix * worldPos;
pass_color = position;
} }
"""; """;
@@ -37,7 +35,7 @@ public class PieceShader extends ShaderProgram {
in vec3 toLightVector; in vec3 toLightVector;
in vec3 surfaceNormal; in vec3 surfaceNormal;
flat in vec3 pass_color; uniform vec3 modelColor = vec3(1, 1, 1);
out vec4 out_color; out vec4 out_color;
@@ -49,7 +47,7 @@ public class PieceShader extends ShaderProgram {
float brightness = diffuse; float brightness = diffuse;
out_color = vec4(pass_color, 1.0) * brightness; out_color = vec4(modelColor, 1.0) * brightness;
out_color.w = 1.0; out_color.w = 1.0;
} }
@@ -57,6 +55,7 @@ public class PieceShader extends ShaderProgram {
private int location_CamMatrix = 0; private int location_CamMatrix = 0;
private int location_ModelTransform = 0; private int location_ModelTransform = 0;
private int location_ModelColor = 0;
public PieceShader() { public PieceShader() {
@@ -70,6 +69,7 @@ public class PieceShader extends ShaderProgram {
protected void GetAllUniformLocation() { protected void GetAllUniformLocation() {
location_CamMatrix = GetUniformLocation("camMatrix"); location_CamMatrix = GetUniformLocation("camMatrix");
location_ModelTransform = GetUniformLocation("modelTransform"); location_ModelTransform = GetUniformLocation("modelTransform");
location_ModelColor = GetUniformLocation("modelColor");
} }
public void SetCamMatrix(Matrix4f mat) { public void SetCamMatrix(Matrix4f mat) {
@@ -79,4 +79,8 @@ public class PieceShader extends ShaderProgram {
public void setModelTransform(Matrix4f mat) { public void setModelTransform(Matrix4f mat) {
LoadMat4(location_ModelTransform, mat); LoadMat4(location_ModelTransform, mat);
} }
public void setModelColor(Vector3f color) {
LoadVector(location_ModelColor, color);
}
} }