Browse Source

added rotation for normals

IverMartinson 7 months ago
parent
commit
67bdf806d6

BIN
builds/final binaries/librasteriver.so


BIN
builds/final binaries/main.bin


+ 11 - 0
src/RasterIver/kernels/master_kernel.h

@@ -244,6 +244,17 @@ __kernel void raster_kernel(__global float* objects, __global float* verticies,
                     float u_y2 = uvs[i8 + 1];\
                     float u_z2 = uvs[i8 + 2];\
                     \
+                    if (object_r_w <= -9999999){\
+                        rotate_euler(&n_x0, &n_y0, &n_z0, object_r_x, object_r_y, object_r_z);\
+                        rotate_euler(&n_x1, &n_y1, &n_z1, object_r_x, object_r_y, object_r_z);\
+                        rotate_euler(&n_x2, &n_y2, &n_z2, object_r_x, object_r_y, object_r_z);\
+                    }\
+                    else{\
+                        rotate_euler(&n_x0, &n_y0, &n_z0, object_r_x, object_r_y, object_r_z);\
+                        rotate_euler(&n_x1, &n_y1, &n_z1, object_r_x, object_r_y, object_r_z);\
+                        rotate_euler(&n_x2, &n_y2, &n_z2, object_r_x, object_r_y, object_r_z);\
+                    }\
+                    \
                     switch (show_buffer){\
                         case 0:{\
                             double ux = w0 * u_x0 + w1 * u_x1 + w2 * u_x2;\

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

@@ -15,13 +15,13 @@ int main(){
     RI_SetFlag(RI_FLAG_DEBUG_FPS, 0);
     RI_SetFlag(RI_FLAG_SHOW_FPS, 1);
     RI_SetFlag(RI_FLAG_SHOW_FRAME, 1);
-    RI_SetFlag(RI_FLAG_SHOW_BUFFER, RI_BUFFER_COMPLETE);
+    RI_SetFlag(RI_FLAG_SHOW_BUFFER, RI_BUFFER_NORMAL);
     RI_SetFlag(RI_FLAG_CLEAN_POLYGONS, 1);
     RI_SetFlag(RI_FLAG_POPULATE_POLYGONS, 0);
     RI_SetFlag(RI_FLAG_BE_MASTER_RENDERER, 1);
     RI_SetFlag(RI_FLAG_SHOW_INFO, 1);
     RI_SetFlag(RI_FLAG_SHOW_INFO, 1);
-    RI_SetFpsCap(120);
+//    RI_SetFpsCap(120);
 
     if (RI_Init(width, height, "Rasteriver Test") == RI_ERROR){
         return 1;