Skip to content

Commit 6fbbdf8

Browse files
committed
Correct triangles's drawing orders
I'm so happy right now you can't even imagine and this was so hecking a stupid bug
1 parent 578f19d commit 6fbbdf8

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

core/eclRenderer.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -231,21 +231,24 @@ def onRender(self):
231231
for tri_ in obj.mesh.tri:
232232

233233
triProj = elcTriangle()
234+
triRoted = elcTriangle()
234235
triPosed = elcTriangle()
235236
for x in range(3):
236-
posTemp = tri_[x]+absPosObj+absPosSelf
237+
triPosed[x] = tri_[x]+absPosObj+absPosSelf
238+
posTemp = eclVector3(triPosed[x].x,triPosed[x].y,triPosed[x].z) # copy
237239
posTemp.x, posTemp.z = self.rotate2d((posTemp.x,posTemp.z),absRotObj.x+absRotSelf.x)
238240
posTemp.y, posTemp.x = self.rotate2d((posTemp.y,posTemp.x),absRotObj.y+absRotSelf.y)
239241
posTemp.z, posTemp.y = self.rotate2d((posTemp.z,posTemp.y),absRotObj.z+absRotSelf.z)
240-
triPosed[x] = posTemp
242+
triRoted[x] = posTemp
241243

242244
for x in range(3):
243245
#posTemp.z, posTemp.x = self.rotate2d((posTemp.z,posTemp.x),absRotObj.y+absRotSelf.y)
244-
triProj[x] = self._projection(triPosed[x])
246+
triProj[x] = self._projection(triRoted[x])
245247

246248
shouldDraw = False
247249
normal_proj = triProj.calculateNormal()
248250
normal_posed = triPosed.calculateNormal()
251+
normal_roted = triRoted.calculateNormal()
249252
if (dotProduct(normal_proj,triProj[0] - self.transform.position) > 0):shouldDraw = True
250253
shouldDraw = True
251254

@@ -255,8 +258,8 @@ def rescale(x,min_,max_):return (x/2+0.5)*(max_+min_)
255258
color = rescale(dotProduct(normal_posed,self.light.transform.position),0,255)
256259
print(color)
257260
white = int(color)
258-
tris_sorted.append([triProj,[white,white,white],sum(sum(triPosed[j][i] for j in range(3))**2 for i in range(3))])
259-
print("ok")
261+
tris_sorted.append([triProj,[white,white,white],sum(abs(sum(triPosed[j][i] for j in range(3))) for i in range(3))])
262+
260263
tris_sorted = sorted(tris_sorted,key=lambda x:x[2],reverse=True)
261264
for tri,color,_ in tris_sorted:
262265
self.draw(elcTriangle(

0 commit comments

Comments
 (0)