add textures

This commit is contained in:
mcrcortex
2025-07-15 12:10:33 +10:00
parent 2023ac6ad2
commit 45e2ea897f
2 changed files with 23 additions and 4 deletions

View File

@@ -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;

View File

@@ -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));
}