Fix texture misalignment when u1 > u2

This commit is contained in:
David Vierra 2016-06-09 10:53:10 -10:00
parent 3e9834c7d5
commit f6021f153c

View File

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