wip tinting
This commit is contained in:
@@ -109,34 +109,8 @@ uvec3 makeRemainingAttributes(const in BlockModel model, const in Quad quad, uin
|
||||
addin = encodedData;
|
||||
}
|
||||
|
||||
//Apply face tint
|
||||
#ifdef DARKENED_TINTING
|
||||
if (isShaded) {
|
||||
//TODO: make branchless, infact apply ahead of time to the texture itself in ModelManager since that is
|
||||
// per face
|
||||
if ((face>>1) == 1) {//NORTH, SOUTH
|
||||
tinting.xyz *= 0.8f;
|
||||
} else if ((face>>1) == 2) {//EAST, WEST
|
||||
tinting.xyz *= 0.6f;
|
||||
} else {//UP DOWN
|
||||
tinting.xyz *= 0.9f;
|
||||
}
|
||||
} else {
|
||||
tinting.xyz *= 0.9f;
|
||||
}
|
||||
#else
|
||||
if (isShaded) {
|
||||
//TODO: make branchless, infact apply ahead of time to the texture itself in ModelManager since that is
|
||||
// per face
|
||||
if ((face>>1) == 1) {//NORTH, SOUTH
|
||||
tinting.xyz *= 0.8f;
|
||||
} else if ((face>>1) == 2) {//EAST, WEST
|
||||
tinting.xyz *= 0.6f;
|
||||
} else if (face == 0) {//DOWN
|
||||
tinting.xyz *= 0.5f;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
tinting.rgb *= computeDirectionalFaceTint(isShaded, face);
|
||||
|
||||
attributes.x = packVec4(tinting);
|
||||
attributes.y = conditionalTinting;
|
||||
attributes.z = addin|(face<<8);
|
||||
@@ -193,3 +167,39 @@ vec2 getCornerUV(const in QuadData quad, uint cornerId) {
|
||||
return quad.uvCorner + quad.quadSizeAddin*vec2((cornerId>>1)&1u, cornerId&1u);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef PATCHED_SHADER
|
||||
float computeDirectionalFaceTint(bool isShaded, uint face) {
|
||||
//Apply face tint
|
||||
#ifdef DARKENED_TINTING
|
||||
if (isShaded) {
|
||||
//just index on a const array with the face as an index, will be much faster
|
||||
// or use a vector and select/sum
|
||||
// but per face might be easier?
|
||||
//TODO: make branchless, infact apply ahead of time to the texture itself in ModelManager since that is
|
||||
// per face
|
||||
if ((face>>1) == 1) {//NORTH, SOUTH
|
||||
return 0.8f;
|
||||
} else if ((face>>1) == 2) {//EAST, WEST
|
||||
return 0.6f;
|
||||
} else {//UP DOWN
|
||||
return 0.9f;
|
||||
}
|
||||
} else {
|
||||
return 0.9f;
|
||||
}
|
||||
#else
|
||||
if (isShaded) {
|
||||
//TODO: make branchless, infact apply ahead of time to the texture itself in ModelManager since that is
|
||||
// per face
|
||||
if ((face>>1) == 1) {//NORTH, SOUTH
|
||||
return 0.8f;
|
||||
} else if ((face>>1) == 2) {//EAST, WEST
|
||||
return 0.6f;
|
||||
} else if (face == 0) {//DOWN
|
||||
return 0.5f;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return 1.0f;
|
||||
}
|
||||
Reference in New Issue
Block a user