Browse Source

fixed more mistakes

iver 7 months ago
parent
commit
370feadf62

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

@@ -75,9 +75,6 @@ __kernel void raster_kernel(__global float* objects, __global float* verticies,
     int id_x = get_global_id(0) - width / 2; \
     int id_y = get_global_id(1) - height / 2; \
     \
-    float vertical_fov_factor = height / tan(0.5 * fov);\
-    float horizontal_fov_factor = width / tan(0.5 * fov);\
-    \
     float z_pixel = INFINITY; \
     uint frame_pixel = 0x22222222; \
     \
@@ -140,26 +137,6 @@ __kernel void raster_kernel(__global float* objects, __global float* verticies,
             float x2 = verticies[i2 + 0];\
             float y2 = verticies[i2 + 1];\
             \
-            if (object_r_w <= -9999999){\
-                rotate_euler(&x0, &y0, &z0, object_r_x, object_r_y, object_r_z);\
-                rotate_euler(&x1, &y1, &z1, object_r_x, object_r_y, object_r_z);\
-                rotate_euler(&x2, &y2, &z2, object_r_x, object_r_y, object_r_z);\
-            }\
-            else{\
-                rotate_euler(&x0, &y0, &z0, object_r_x, object_r_y, object_r_z);\
-                rotate_euler(&x1, &y1, &z1, object_r_x, object_r_y, object_r_z);\
-                rotate_euler(&x2, &y2, &z2, object_r_x, object_r_y, object_r_z);\
-            }\
-            \
-            z0 = (z0 * object_s_z + object_z);\
-            x0 = (x0 * object_s_x + object_x) / z0 * horizontal_fov_factor;\
-            y0 = (y0 * object_s_y + object_y) / z0 * vertical_fov_factor;\
-            z1 = (z1 * object_s_z + object_z);\
-            x1 = (x1 * object_s_x + object_x) / z1 * horizontal_fov_factor;\
-            y1 = (y1 * object_s_y + object_y) / z1 * vertical_fov_factor;\
-            z2 = (z2 * object_s_z + object_z);\
-            y2 = (y2 * object_s_y + object_y) / z2 * horizontal_fov_factor;\
-            x2 = (x2 * object_s_x + object_x) / z2 * vertical_fov_factor;\
             \
             if (i3 < 0 || i4 < 0 || i5 < 0){\
                 has_normals = 0;\
@@ -248,16 +225,6 @@ __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:{\

+ 6 - 3
src/RasterIver/kernels/transformer.h

@@ -40,9 +40,12 @@ void rotate_euler(float *x, float *y, float *z, float r_x, float r_y, float r_z)
     *z = temp_z;\
 };\
 \
-__kernel void transformer_kernel(__global float* objects, __global float* verticies, __global float* normals, __global float* transformed_verticies, __global float* transformed_normals){ \
+__kernel void transformer_kernel(__global float* objects, __global float* verticies, __global float* normals, __global float* triangles, __global float* transformed_verticies, __global float* transformed_normals, float fov){ \
     int id_x = get_global_id(0);\
     \
+    float vertical_fov_factor = height / tan(0.5 * fov);\
+    float horizontal_fov_factor = width / tan(0.5 * fov);\
+    \
     int has_normals = 1;\
     int has_uvs = 1;\
     \
@@ -114,13 +117,13 @@ __kernel void transformer_kernel(__global float* objects, __global float* vertic
         \
         transformed_verticies[i0 + 2] = (z0 * object_s_z + object_z);\
         transformed_verticies[i0 + 0] = (x0 * object_s_x + object_x) / z0 * horizontal_fov_factor;\
-        transformed_verticies[i0 + 1] = (y0 * object_s_y + object_y) / z0 * vartical_fov_factor;\
+        transformed_verticies[i0 + 1] = (y0 * object_s_y + object_y) / z0 * vertical_fov_factor;\
         transformed_verticies[i1 + 2] = (z1 * object_s_z + object_z);\
         transformed_verticies[i1 + 0] = (x1 * object_s_x + object_x) / z1 * horizontal_fov_factor;\
         transformed_verticies[i1 + 1] = (y1 * object_s_y + object_y) / z1 * vertical_fov_factor;\
         transformed_verticies[i2 + 2] = (z2 * object_s_z + object_z);\
         transformed_verticies[i2 + 0] = (y2 * object_s_y + object_y) / z2 * horizontal_fov_factor;\
-        transformed_verticies[i2 + 1] = (x2 * object_s_x + object_x) / z2 * vertican_fov_factor;\
+        transformed_verticies[i2 + 1] = (x2 * object_s_x + object_x) / z2 * vertical_fov_factor;\
         \
         transformed_normals[i3 + 0] = n_x0;\
         transformed_normals[i3 + 1] = n_y0;\

+ 4 - 2
src/RasterIver/source code/rasteriver.c

@@ -1382,8 +1382,10 @@ RI_result RI_Tick(){
             erchk(clSetKernelArg(compiled_kernel_transformer, 0, sizeof(cl_mem), &object_memory_buffer));
             erchk(clSetKernelArg(compiled_kernel_transformer, 1, sizeof(cl_mem), &verticies_memory_buffer));
             erchk(clSetKernelArg(compiled_kernel_transformer, 2, sizeof(cl_mem), &normals_memory_buffer));
-            erchk(clSetKernelArg(compiled_kernel_transformer, 3, sizeof(cl_mem), &transformed_verticies_memory_buffer));
-            erchk(clSetKernelArg(compiled_kernel_transformer, 4, sizeof(cl_mem), &transformed_normals_memory_buffer));
+            erchk(clSetKernelArg(compiled_kernel_transformer, 3, sizeof(cl_mem), &triangles_memory_buffer));
+            erchk(clSetKernelArg(compiled_kernel_transformer, 4, sizeof(cl_mem), &transformed_verticies_memory_buffer));
+            erchk(clSetKernelArg(compiled_kernel_transformer, 5, sizeof(cl_mem), &transformed_normals_memory_buffer));
+            erchk(clSetKernelArg(compiled_kernel_transformer, 6, sizeof(float), (void*)&fov)); 
 
             size_t size_1d = object_count;