-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathray.h
More file actions
31 lines (29 loc) · 936 Bytes
/
Copy pathray.h
File metadata and controls
31 lines (29 loc) · 936 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once
#include "vector.h"
#include "shapes.h"
#include "rng.h"
#include <vector>
#include "scene.h"
class Ray {
public:
Vector3 origin;
Vector3 direction;
Vector3 inv_dir;
Vector3 original_direction;
Vector3 original_origin;
Vector3 original_inv_dir;
PCG32& rng;
int max_bounces = 10;
Vector3 radiance = Vector3(0);
Vector3 throughput = Vector3(1);
bool hit_nothing = false;
bool has_hit_diffuse = false;
int bounces = 0;
Scene& scene;
CollisionInfo firstHitCollision = CollisionInfo();
CollisionInfo info = CollisionInfo();
Ray(const Vector3& orig, const Vector3& dir, PCG32& rng, Scene& scene) : original_origin(orig), origin(orig), original_direction(dir.normalize()), direction(dir.normalize()), original_inv_dir((1 / dir).normalize()), inv_dir((1 / dir).normalize()), rng(rng), scene(scene) {}
int bounce();
Vector3 trace();
void reset();
};