Пример #1
0
 def draw_scanline(self, va: Vertex, vb: Vertex, y: int, texture: Texture):
     x1 = int(va.position.x)
     x2 = int(vb.position.x)
     sign = 1 if x2 > x1 else -1
     factor = 0
     for x in range(x1, x2 + sign * 1, sign):
         if x1 != x2:
             factor = (x - x1) / (x2 - x1)
         # color = interpolate(v1.color, v2.color, factor)
         v = interpolate(va, vb, factor)
         color = texture.sample(v.u, v.v)
         self.draw_point(Vector(x, y), color)
Пример #2
0
 def draw_scanline(self, va: Vertex, vb: Vertex, y: int, texture: Texture):
     x1 = int(va.position.x)
     x2 = int(vb.position.x)
     sign = 1 if x2 > x1 else -1
     factor = 0
     for x in range(x1, x2 + sign * 1, sign):
         if x1 != x2:
             factor = (x - x1) / (x2 - x1)
         # color = interpolate(v1.color, v2.color, factor)
         v = interpolate(va, vb, factor)
         color = texture.sample(v.u, v.v)
         self.draw_point(Vector(x, y), color)