add textures
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
#version 460 core
|
||||
|
||||
#extension GL_NV_fragment_shader_barycentric : require
|
||||
|
||||
layout(binding = 0) uniform sampler2D blockModelAtlas;
|
||||
layout(binding = 2) uniform sampler2D depthTex;
|
||||
|
||||
layout(location=1) perprimitiveNV in PerPrimData {
|
||||
uvec4 data;
|
||||
vec4 uvData;
|
||||
} primIn;
|
||||
|
||||
layout(location = 0) out vec4 outColour;
|
||||
@@ -45,9 +48,22 @@ vec2 getBaseUV() {
|
||||
return modelUV + (vec2(face>>1, face&1u) * (1.0/(vec2(3.0, 2.0)*256.0)));
|
||||
}
|
||||
|
||||
bool isTri0() {
|
||||
return (gl_PrimitiveID&(1<<31))==0;
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec2 uv = vec2(0);
|
||||
bool tri0 = isTri0();
|
||||
//1,2,0
|
||||
//1,3,2
|
||||
//vec2((corner>>1)&1u, corner&1u)
|
||||
|
||||
//vec2(0,gl_BaryCoordNV.x)+vec2(gl_BaryCoordNV.y,0)+vec2(0,0);
|
||||
//vec2(0,gl_BaryCoordNV.x)+vec2(gl_BaryCoordNV.y,gl_BaryCoordNV.y)+vec2(gl_BaryCoordNV.z,0);
|
||||
|
||||
|
||||
vec2 uv = fma(mix(gl_BaryCoordNV.zx+gl_BaryCoordNV.y, gl_BaryCoordNV.yx, bvec2(tri0)), primIn.uvData.zw, primIn.uvData.xy);
|
||||
//Need to interpolate
|
||||
|
||||
//Tile is the tile we are in
|
||||
vec2 tile;
|
||||
|
||||
@@ -29,6 +29,7 @@ layout(std430) taskNV in Task {
|
||||
|
||||
layout(location=1) perprimitiveNV out PerPrimData {
|
||||
uvec4 data;
|
||||
vec4 uvData;
|
||||
} primOut[];
|
||||
|
||||
|
||||
@@ -172,7 +173,7 @@ void setup(Quad quad) {
|
||||
}
|
||||
|
||||
vec2 getUvCorner(uint corner) {
|
||||
return faceSize.xz + axisFaceSize*vec2((corner>>1)&1u, corner&1u);;
|
||||
return faceSize.xz + axisFaceSize*vec2((corner>>1)&1u, corner&1u);
|
||||
}
|
||||
|
||||
uvec4 createQuadData(Quad quad) {
|
||||
@@ -293,7 +294,8 @@ void main() {
|
||||
gl_MeshVerticesNV[vertId++].gl_Position = p0;
|
||||
|
||||
primOut[triId].data = data;
|
||||
gl_MeshPrimitivesNV[triId++].gl_PrimitiveID = int(qid);
|
||||
primOut[triId].uvData = vec4(faceSize.xz, axisFaceSize);
|
||||
gl_MeshPrimitivesNV[triId++].gl_PrimitiveID = int(qid|(0u<<31));
|
||||
}
|
||||
|
||||
{
|
||||
@@ -304,7 +306,8 @@ void main() {
|
||||
gl_MeshVerticesNV[vertId++].gl_Position = p3;
|
||||
|
||||
primOut[triId].data = data;
|
||||
gl_MeshPrimitivesNV[triId++].gl_PrimitiveID = int(qid);
|
||||
primOut[triId].uvData = vec4(faceSize.xz, axisFaceSize);
|
||||
gl_MeshPrimitivesNV[triId++].gl_PrimitiveID = int(qid|(1u<<31));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user