Browse Source

added backface culling in rasterizer

Iver 2 months ago
parent
commit
74e2ab0e1c
3 changed files with 5 additions and 2 deletions
  1. BIN
      builds/main.bin
  2. 3 0
      src/kernels/kernels.cl
  3. 2 2
      src/launch program/main.c

BIN
builds/main.bin


+ 3 - 0
src/kernels/kernels.cl

@@ -627,6 +627,9 @@ __kernel void rasterizer(__global RI_renderable_face *renderable_faces, __global
         double denominator, w0, w1, w2;
 
         denominator = (pos_1.y - pos_2.y) * (pos_0.x - pos_2.x) + (pos_2.x - pos_1.x) * (pos_0.y - pos_2.y);
+        
+        if (denominator >= 0) continue; 
+        
         w0 = ((pos_1.y - pos_2.y) * (x - pos_2.x) + (pos_2.x - pos_1.x) * (y - pos_2.y)) / denominator;
         w1 = ((pos_2.y - pos_0.y) * (x - pos_0.x) + (pos_0.x - pos_2.x) * (y - pos_0.y)) / denominator; 
         w2 = 1.0 - w0 - w1; 

+ 2 - 2
src/launch program/main.c

@@ -4,8 +4,8 @@
 int main(){
     RI_context* context = RI_get_context();
     
-    context->window.width = 700;
-    context->window.height = 700;
+    context->window.width = 600;
+    context->window.height = 600;
     context->window.title = "This is RasterIver 3.0!!!!!!!";
     
     if (RI_init() != 0){