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.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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user