this shit is finally working
This commit is contained in:
parent
f1dcc0f1b5
commit
b781938559
5 changed files with 107 additions and 82 deletions
|
|
@ -4,17 +4,18 @@ in vec3 vertexPosition;
|
|||
in vec2 vertexTexCoord;
|
||||
in vec3 vertexNormal;
|
||||
in vec2 vertexTileTexCoord;
|
||||
in vec4 vertexMetadata1;
|
||||
in uvec4 vertexMetadata1;
|
||||
in uvec4 vertexOcclusionSides;
|
||||
|
||||
out vec2 fragTexCoord;
|
||||
out vec3 fragNormal;
|
||||
out vec2 fragTileTexCoord;
|
||||
|
||||
flat out int ambientOcclusionSide1;
|
||||
flat out int ambientOcclusionSide2;
|
||||
flat out int ambientOcclusionCorner1;
|
||||
flat out int ambientOcclusionCorner2;
|
||||
flat out int ambientOcclusionCorner3;
|
||||
flat out uvec4 occlusionSides;
|
||||
flat out int topLeftObscured;
|
||||
flat out int topRightObscured;
|
||||
flat out int bottomLeftObscured;
|
||||
flat out int bottomRightObscured;
|
||||
flat out int quadHeight;
|
||||
flat out int quadWidth;
|
||||
|
||||
|
|
@ -24,16 +25,15 @@ void main() {
|
|||
fragTexCoord = vertexTexCoord;
|
||||
fragTileTexCoord = vertexTileTexCoord;
|
||||
fragNormal = vertexNormal;
|
||||
occlusionSides = vertexOcclusionSides;
|
||||
gl_Position = mvp*vec4(vertexPosition, 1.0);
|
||||
|
||||
// metadata 1 parsing
|
||||
ambientOcclusionSide1 = floatBitsToInt(vertexMetadata1.x);
|
||||
ambientOcclusionSide2 = floatBitsToInt(vertexMetadata1.y);
|
||||
int metadata1Z = floatBitsToInt(vertexMetadata1.z);
|
||||
int metadata1W = floatBitsToInt(vertexMetadata1.w);
|
||||
ambientOcclusionCorner1 = (metadata1Z & 0x1) >> 0; // Take 0th bit.
|
||||
ambientOcclusionCorner2 = (metadata1Z & 0x2) >> 1; // Take 1st bit.
|
||||
ambientOcclusionCorner3 = (metadata1Z & 0x4) >> 2; // Take 2nd bit.
|
||||
quadHeight = (metadata1Z & 0x1f8) >> 3; // Take 3rd-8th bits.
|
||||
quadWidth = (metadata1Z & 0x7e00) >> 9; // Take 9th-14th bits.
|
||||
int metadata1W = int(vertexMetadata1.w);
|
||||
topLeftObscured = (metadata1W & 0x1); // Take 0th bit.
|
||||
topRightObscured = (metadata1W & 0x2) >> 1; // Take 1st bits.
|
||||
bottomLeftObscured = (metadata1W & 0x4) >> 2; // Take 2nd bits.
|
||||
bottomRightObscured = (metadata1W & 0x8) >> 3; // Take 3rd bits.
|
||||
quadHeight = (metadata1W & 0x3f0) >> 4; // Take 4rd-9th bits.
|
||||
quadWidth = (metadata1W & 0xfc00) >> 10; // Take 10th-16th bits.
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue