gpu: add sin/cos table to UBO

This commit is contained in:
Dennis
2018-11-18 15:36:36 +01:00
committed by Adam
parent 1e83a36c42
commit 9c791f5b09
5 changed files with 36 additions and 8 deletions

View File

@@ -29,8 +29,9 @@
* Rotate a vertex by a given orientation in JAU
*/
ivec4 rotate(ivec4 vertex, int orientation) {
int s = int(65536.0f * sin(orientation * UNIT));
int c = int(65536.0f * cos(orientation * UNIT));
ivec2 sinCos = sinCosTable[orientation];
int s = sinCos.x;
int c = sinCos.y;
int x = vertex.z * s + vertex.x * c >> 16;
int z = vertex.z * c - vertex.x * s >> 16;
return ivec4(x, vertex.y, z, vertex.w);

View File

@@ -33,6 +33,7 @@ layout(std140) uniform uniforms {
int centerX;
int centerY;
int zoom;
ivec2 sinCosTable[2048];
};
shared int totalNum[12]; // number of faces with a given priority

View File

@@ -33,6 +33,7 @@ layout(std140) uniform uniforms {
int centerX;
int centerY;
int zoom;
ivec2 sinCosTable[2048];
};
shared int totalNum[12]; // number of faces with a given priority

View File

@@ -37,6 +37,7 @@ layout(std140) uniform Uniforms {
int centerX;
int centerY;
int zoom;
ivec2 sinCosTable[2048];
};
uniform mat4 projectionMatrix;