Fix texture misalignment when u1 > u2
This commit is contained in:
parent
3e9834c7d5
commit
f6021f153c
@ -589,14 +589,22 @@ cdef class BlockModels(object):
|
|||||||
v1 = faceInfo.v1
|
v1 = faceInfo.v1
|
||||||
v2 = faceInfo.v2
|
v2 = faceInfo.v2
|
||||||
|
|
||||||
uw = (w * (u2 - u1)) / 16
|
# u1..u2 is on the scale 0..16, convert it to l..l+w
|
||||||
vh = (w * (v2 - v1)) / 16 # w is assumed to be the height of a single frame in an animation xxxxx read .mcmeta
|
# v1..v2 is also 0..16, but should be flipped to t+h..t
|
||||||
u1 += l
|
# u /= 16.
|
||||||
u2 = u1 + uw
|
# u *= w
|
||||||
|
# u += l
|
||||||
|
# v /= 16.
|
||||||
|
# v = -v
|
||||||
|
# v *= h
|
||||||
|
# v += h
|
||||||
|
# v += t
|
||||||
|
|
||||||
# flip v axis - texcoords origin is top left but model uv origin is from bottom left
|
u1 = <short>(l + (u1 * w) / 16.)
|
||||||
v1 = t + h - v1
|
u2 = <short>(l + (u2 * w) / 16.)
|
||||||
v2 = v1 - vh
|
|
||||||
|
v1 = <short>(t + h + (v1 * -h) / 16.)
|
||||||
|
v2 = <short>(t + h + (v2 * -h) / 16.)
|
||||||
|
|
||||||
quadface = faceInfo.face
|
quadface = faceInfo.face
|
||||||
cullface = faceInfo.cullface
|
cullface = faceInfo.cullface
|
||||||
|
Reference in New Issue
Block a user