cornellbox angefangen, aber cube ist seeeehr dunkel

This commit is contained in:
any
2026-08-26 02:55:42 +02:00
parent 5111a7693c
commit a9d83e82ff
5 changed files with 28 additions and 13 deletions
+20 -5
View File
@@ -72,13 +72,13 @@ void exampleCornell( int width, int height, int channels, unsigned char **image)
cam1.direction.z = 1; cam1.direction.z = 1;
cam1.resolutionX = width; cam1.resolutionX = width;
cam1.resolutionY = height; cam1.resolutionY = height;
cam1.screenDistance = 1; cam1.screenDistance = 0.6;
cam1.width = 1.920; cam1.width = 1.080;
cam1.height = 1.080; cam1.height = 1.080;
int objectCount = 7; int objectCount = 13;
object objectList[objectCount]; object objectList[objectCount];
cube makroObj1 = createCuboid((vec3){0.5,-0.5,5}, (vec3){1,0,0}, (vec3){0,1,0}, (vec3){0,0,1},(RGBA){1,0,0.5,1}); cube makroObj1 = createCuboid((vec3){-1,-2,3}, (vec3){1.5,0,0}, (vec3){0,1.5,0}, (vec3){0,0,1.5},(RGBA){1,1,0.5,1});
objectList[0] = (object){1, &(makroObj1.quad1), 0}; objectList[0] = (object){1, &(makroObj1.quad1), 0};
objectList[1] = (object){1, &(makroObj1.quad2), 0}; objectList[1] = (object){1, &(makroObj1.quad2), 0};
objectList[2] = (object){1, &(makroObj1.quad3), 0}; objectList[2] = (object){1, &(makroObj1.quad3), 0};
@@ -86,9 +86,24 @@ void exampleCornell( int width, int height, int channels, unsigned char **image)
objectList[4] = (object){1, &(makroObj1.quad5), 0}; objectList[4] = (object){1, &(makroObj1.quad5), 0};
objectList[5] = (object){1, &(makroObj1.quad6), 0}; objectList[5] = (object){1, &(makroObj1.quad6), 0};
quad light1 = (quad){(vec3){0,1,5}, (vec3){0,0,1}, (vec3){0,1,0}, (vec3){0,-1,0}, (RGBA){1,1,1,1}}; quad light1 = (quad){(vec3){-0.5,1.9,2.5}, (vec3){0,0,1}, (vec3){1,0,0}, (vec3){0,-1,0}, (RGBA){1,1,1,1}};
objectList[6] = (object){1, &(light1), 1}; objectList[6] = (object){1, &(light1), 1};
cube makroObj2 = createCuboid((vec3){-2,-2,-0.1}, (vec3){4,0,0}, (vec3){0,4,0}, (vec3){0,0,4},(RGBA){1,1,1,1});
makroObj2.quad1.normal = vec3Scale(makroObj2.quad1.normal, -1);
makroObj2.quad2.normal = vec3Scale(makroObj2.quad2.normal, -1);
makroObj2.quad3.normal = vec3Scale(makroObj2.quad3.normal, -1);
makroObj2.quad4.normal = vec3Scale(makroObj2.quad4.normal, -1);
makroObj2.quad5.normal = vec3Scale(makroObj2.quad5.normal, -1);
makroObj2.quad6.normal = vec3Scale(makroObj2.quad6.normal, -1);
objectList[7] = (object){1, &(makroObj2.quad1), 0};
objectList[8] = (object){1, &(makroObj2.quad2), 0};
objectList[9] = (object){1, &(makroObj2.quad3), 0};
objectList[10] = (object){1, &(makroObj2.quad4), 0};
objectList[11] = (object){1, &(makroObj2.quad5), 0};
objectList[12] = (object){1, &(makroObj2.quad6), 0};
displaySzene(objectList, objectCount, cam1, width, height, channels, image); displaySzene(objectList, objectCount, cam1, width, height, channels, image);
+6 -6
View File
@@ -38,37 +38,37 @@ cube createCuboid(vec3 origin, vec3 right, vec3 up, vec3 forward, RGBA color) {
object.quad1.origin = origin; object.quad1.origin = origin;
object.quad1.v1 = right; object.quad1.v1 = right;
object.quad1.v2 = up; object.quad1.v2 = up;
object.quad1.normal = vec3Normalize(vec3Cross(object.quad1.v1, object.quad1.v2)); object.quad1.normal = vec3Normalize(vec3Cross(object.quad1.v2, object.quad1.v1));
object.quad1.color = color; object.quad1.color = color;
object.quad2.origin = vec3Add(origin, forward); object.quad2.origin = vec3Add(origin, forward);
object.quad2.v1 = vec3Scale(forward, -1); object.quad2.v1 = vec3Scale(forward, -1);
object.quad2.v2 = up; object.quad2.v2 = up;
object.quad2.normal = vec3Normalize(vec3Cross(object.quad2.v1, object.quad2.v2)); object.quad2.normal = vec3Normalize(vec3Cross(object.quad2.v2, object.quad2.v1));
object.quad2.color = color; object.quad2.color = color;
object.quad3.origin = vec3Add(object.quad2.origin, right); object.quad3.origin = vec3Add(object.quad2.origin, right);
object.quad3.v1 = vec3Scale(right, -1); object.quad3.v1 = vec3Scale(right, -1);
object.quad3.v2 = up; object.quad3.v2 = up;
object.quad3.normal = vec3Normalize(vec3Cross(object.quad3.v1, object.quad3.v2)); object.quad3.normal = vec3Normalize(vec3Cross(object.quad3.v2, object.quad3.v1));
object.quad3.color = color; object.quad3.color = color;
object.quad4.origin = vec3Add(origin, right); object.quad4.origin = vec3Add(origin, right);
object.quad4.v1 = forward; object.quad4.v1 = forward;
object.quad4.v2 = up; object.quad4.v2 = up;
object.quad4.normal = vec3Normalize(vec3Cross(object.quad4.v1, object.quad4.v2)); object.quad4.normal = vec3Normalize(vec3Cross(object.quad4.v2, object.quad4.v1));
object.quad4.color = color; object.quad4.color = color;
object.quad5.origin = origin; object.quad5.origin = origin;
object.quad5.v1 = forward; object.quad5.v1 = forward;
object.quad5.v2 = right; object.quad5.v2 = right;
object.quad5.normal = vec3Normalize(vec3Cross(object.quad5.v1, object.quad5.v2)); object.quad5.normal = vec3Normalize(vec3Cross(object.quad5.v2, object.quad5.v1));
object.quad5.color = color; object.quad5.color = color;
object.quad6.origin = vec3Add(origin, up); object.quad6.origin = vec3Add(origin, up);
object.quad6.v1 = right; object.quad6.v1 = right;
object.quad6.v2 = forward; object.quad6.v2 = forward;
object.quad6.normal = vec3Normalize(vec3Cross(object.quad6.v1, object.quad6.v2)); object.quad6.normal = vec3Normalize(vec3Cross(object.quad6.v2, object.quad6.v1));
object.quad6.color = color; object.quad6.color = color;
return object; return object;
+1 -1
View File
@@ -13,7 +13,7 @@
#include "collision.h" #include "collision.h"
#include "raytrace.h" #include "raytrace.h"
int main() { int main() {
int width = 1920; int width = 1080;
int height = 1080; int height = 1080;
int channels = 4; int channels = 4;
unsigned char *image = (unsigned char*)malloc(width * height * channels ); unsigned char *image = (unsigned char*)malloc(width * height * channels );
+1 -1
View File
@@ -7,7 +7,7 @@
#include "helper.h" #include "helper.h"
#include <math.h> #include <math.h>
#define epsilon 1e-8 #define epsilon 1e-8
#define RAYSPERPIXEL 3 #define RAYSPERPIXEL 10
#define lightBounces 3 #define lightBounces 3
enum objectType { enum objectType {
SPHERETYPE, SPHERETYPE,
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 802 KiB