Files
CPU-Raytracer/raytrace.c
T

18 lines
478 B
C

#include "structs.h"
#include "collision.h"
#include "vectorOp.h"
RGBA raytraceSphere(sphere *obj, ray *lightray) {
RGBA pixel;
pixel.r = 0;
pixel.g = 0;
pixel.b = 0;
pixel.a = 1;
vec3 collisionPoint = collisionPointSphere(lightray, obj);
if (collisionPoint.x == -1) {return pixel;}
vec3 sphereNormal = vec3Normalize(vec3Subtract(collisionPoint, obj->origin));
pixel.r = -vec3Product(sphereNormal, lightray->direction);
return pixel;
}