cornellbox angefangen, aber cube ist seeeehr dunkel
This commit is contained in:
+20
-5
@@ -72,13 +72,13 @@ void exampleCornell( int width, int height, int channels, unsigned char **image)
|
||||
cam1.direction.z = 1;
|
||||
cam1.resolutionX = width;
|
||||
cam1.resolutionY = height;
|
||||
cam1.screenDistance = 1;
|
||||
cam1.width = 1.920;
|
||||
cam1.screenDistance = 0.6;
|
||||
cam1.width = 1.080;
|
||||
cam1.height = 1.080;
|
||||
int objectCount = 7;
|
||||
int objectCount = 13;
|
||||
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[1] = (object){1, &(makroObj1.quad2), 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[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};
|
||||
|
||||
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);
|
||||
|
||||
@@ -38,37 +38,37 @@ cube createCuboid(vec3 origin, vec3 right, vec3 up, vec3 forward, RGBA color) {
|
||||
object.quad1.origin = origin;
|
||||
object.quad1.v1 = right;
|
||||
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.quad2.origin = vec3Add(origin, forward);
|
||||
object.quad2.v1 = vec3Scale(forward, -1);
|
||||
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.quad3.origin = vec3Add(object.quad2.origin, right);
|
||||
object.quad3.v1 = vec3Scale(right, -1);
|
||||
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.quad4.origin = vec3Add(origin, right);
|
||||
object.quad4.v1 = forward;
|
||||
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.quad5.origin = origin;
|
||||
object.quad5.v1 = forward;
|
||||
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.quad6.origin = vec3Add(origin, up);
|
||||
object.quad6.v1 = right;
|
||||
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;
|
||||
|
||||
return object;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "collision.h"
|
||||
#include "raytrace.h"
|
||||
int main() {
|
||||
int width = 1920;
|
||||
int width = 1080;
|
||||
int height = 1080;
|
||||
int channels = 4;
|
||||
unsigned char *image = (unsigned char*)malloc(width * height * channels );
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
#include "helper.h"
|
||||
#include <math.h>
|
||||
#define epsilon 1e-8
|
||||
#define RAYSPERPIXEL 3
|
||||
#define RAYSPERPIXEL 10
|
||||
#define lightBounces 3
|
||||
enum objectType {
|
||||
SPHERETYPE,
|
||||
|
||||
Reference in New Issue
Block a user