aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/makamys/neodymium/renderer
diff options
context:
space:
mode:
authormakamys <makamys@outlook.com>2022-06-23 10:26:38 +0200
committermakamys <makamys@outlook.com>2022-06-23 12:22:23 +0200
commit07c988f5a0ce2f7c60b864dd5ee64860d7cea457 (patch)
treec201085eba5e33b1713618ed4f90977b7a9ab356 /src/main/java/makamys/neodymium/renderer
parent83b035c243b3ffeac9d57f7ab6d4cd89c0e25851 (diff)
downloadNeodymium-07c988f5a0ce2f7c60b864dd5ee64860d7cea457.tar.gz
Neodymium-07c988f5a0ce2f7c60b864dd5ee64860d7cea457.tar.bz2
Neodymium-07c988f5a0ce2f7c60b864dd5ee64860d7cea457.zip
Make UV shortification disableable
Diffstat (limited to 'src/main/java/makamys/neodymium/renderer')
-rw-r--r--src/main/java/makamys/neodymium/renderer/MeshQuad.java17
-rw-r--r--src/main/java/makamys/neodymium/renderer/NeoRenderer.java12
2 files changed, 19 insertions, 10 deletions
diff --git a/src/main/java/makamys/neodymium/renderer/MeshQuad.java b/src/main/java/makamys/neodymium/renderer/MeshQuad.java
index 0fe580c..23617a4 100644
--- a/src/main/java/makamys/neodymium/renderer/MeshQuad.java
+++ b/src/main/java/makamys/neodymium/renderer/MeshQuad.java
@@ -166,8 +166,13 @@ public class MeshQuad {
float u = us[vi];
float v = vs[vi];
- out.writeShort((short)(u * 16384));
- out.writeShort((short)(v * 16384));
+ if(Config.shortUV) {
+ out.writeShort((short)(u * 16384));
+ out.writeShort((short)(v * 16384));
+ } else {
+ out.writeFloat(u);
+ out.writeFloat(v);
+ }
int b = bs[vi];
@@ -208,10 +213,10 @@ public class MeshQuad {
public static int getStride() {
return
- 3 * 4 // XYZ (float)
- + 2 * 2 // UV (float)
- + 4 // B (int)
- + 4 // C (int)
+ 3 * 4 // XYZ (float)
+ + 2 * (Config.shortUV ? 2 : 4) // UV (float)
+ + 4 // B (int)
+ + 4 // C (int)
+ (Config.simplifyChunkMeshes ? 4 : 0) // megaquad XY (byte)
;
}
diff --git a/src/main/java/makamys/neodymium/renderer/NeoRenderer.java b/src/main/java/makamys/neodymium/renderer/NeoRenderer.java
index 43e3546..701e009 100644
--- a/src/main/java/makamys/neodymium/renderer/NeoRenderer.java
+++ b/src/main/java/makamys/neodymium/renderer/NeoRenderer.java
@@ -443,11 +443,12 @@ public class NeoRenderer {
int stride = MeshQuad.getStride();
glVertexAttribPointer(0, 3, GL_FLOAT, false, stride, 0);
- glVertexAttribPointer(1, 2, GL_SHORT, false, stride, 3 * 4);
- glVertexAttribPointer(2, 2, GL_SHORT, false, stride, 4 * 4);
- glVertexAttribPointer(3, 4, GL_UNSIGNED_BYTE, false, stride, 5 * 4);
+ glVertexAttribPointer(1, 2, Config.shortUV ? GL_SHORT : GL_FLOAT, false, stride, 3 * 4);
+ int uvEnd = Config.shortUV ? 4 * 4 : 5 * 4;
+ glVertexAttribPointer(2, 2, GL_SHORT, false, stride, uvEnd);
+ glVertexAttribPointer(3, 4, GL_UNSIGNED_BYTE, false, stride, uvEnd + 1 * 4);
if(Config.simplifyChunkMeshes) {
- glVertexAttribPointer(4, 4, GL_UNSIGNED_BYTE, false, stride, 6 * 4);
+ glVertexAttribPointer(4, 4, GL_UNSIGNED_BYTE, false, stride, uvEnd + 2 * 4);
}
glEnableVertexAttribArray(0);
@@ -479,6 +480,9 @@ public class NeoRenderer {
if(Config.simplifyChunkMeshes) {
defines.add("SIMPLIFY_MESHES");
}
+ if(Config.shortUV) {
+ defines.add("SHORT_UV");
+ }
boolean errors = false;