Skip to content

Commit

Permalink
Deploying to gh-pages from @ 28cab87 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
hsimpson committed May 31, 2023
1 parent ae5c27a commit 068e2af
Show file tree
Hide file tree
Showing 29 changed files with 18,777 additions and 17,727 deletions.
791 changes: 341 additions & 450 deletions assets/compute.worker.dfd04421.js → assets/compute.worker-155b2df9.js

Large diffs are not rendered by default.

Large diffs are not rendered by default.

17,963 changes: 17,963 additions & 0 deletions assets/index-87efcf0d.js

Large diffs are not rendered by default.

File renamed without changes.
3,726 changes: 0 additions & 3,726 deletions assets/index.05af1dd8.js

This file was deleted.

22 changes: 11 additions & 11 deletions assets/shaders/camera.wgsl
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
#include "./ray.wgsl"

struct Camera {
origin: vec4<f32>;
lowerLeftCorner: vec4<f32>;
horizontal: vec4<f32>;
vertical: vec4<f32>;
u: vec4<f32>;
v: vec4<f32>;
w: vec4<f32>;
lensRadius: f32;
t0: f32;
t1: f32;
origin: vec4<f32>,
lowerLeftCorner: vec4<f32>,
horizontal: vec4<f32>,
vertical: vec4<f32>,
u: vec4<f32>,
v: vec4<f32>,
w: vec4<f32>,
lensRadius: f32,
t0: f32,
t1: f32,
};
[[group(0), binding(1)]] var<uniform> camera: Camera;
@group(0) @binding(1) var<uniform> camera: Camera;


fn cameraGetRay(s: f32, t: f32) -> Ray {
Expand Down
22 changes: 11 additions & 11 deletions assets/shaders/hittable/hittable.wgsl
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@

let HITTABLETYPE_SPHERE = 0u;
let HITTABLETYPE_MOVINGSPHERE = 1u;
let HITTABLETYPE_XYRECT = 2u;
let HITTABLETYPE_XZRECT = 3u;
let HITTABLETYPE_YZRECT = 4u;
let HITTABLETYPE_CONSTANTMEDIUM = 5u;
let HITTABLETYPE_TRIANGLE = 6u;
const HITTABLETYPE_SPHERE = 0u;
const HITTABLETYPE_MOVINGSPHERE = 1u;
const HITTABLETYPE_XYRECT = 2u;
const HITTABLETYPE_XZRECT = 3u;
const HITTABLETYPE_YZRECT = 4u;
const HITTABLETYPE_CONSTANTMEDIUM = 5u;
const HITTABLETYPE_TRIANGLE = 6u;

#include "../ray.wgsl"
#include "./hittable_base.wgsl"
Expand All @@ -18,10 +18,10 @@ let HITTABLETYPE_TRIANGLE = 6u;

fn hitPrimitve(
primitve: Primitve,
ray: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
tMin: f32,
tMax: f32,
rec: ptr<function, HitRecord, read_write>
rec: ptr<function, HitRecord>
) -> bool {
let primitiveType = primitve.primitiveType;
var hitted: bool = false;
Expand All @@ -48,10 +48,10 @@ fn hitPrimitve(
}

fn hittableListHit(
ray: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
tMin: f32,
tMax: f32,
rec: ptr<function, HitRecord, read_write>
rec: ptr<function, HitRecord>
) -> bool {
var tempRec: HitRecord;
var hitAnything = false;
Expand Down
46 changes: 23 additions & 23 deletions assets/shaders/hittable/hittable_base.wgsl
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
struct Primitve {
objectToWorld: mat4x4<f32>;
inverseMatrix: mat4x4<f32>;
inverseRotation: mat4x4<f32>;
objectToWorld: mat4x4<f32>,
inverseMatrix: mat4x4<f32>,
inverseRotation: mat4x4<f32>,

bounds: vec4<f32>;
center0: vec4<f32>; // center0 xyz, time0 w
center1: vec4<f32>; // center1 xyz, time1 w
bounds: vec4<f32>,
center0: vec4<f32>, // center0 xyz, time0 w
center1: vec4<f32>, // center1 xyz, time1 w

v0: vec4<f32>; // triangle vertex normal
v1: vec4<f32>; // triangle vertex normal
v2: vec4<f32>; // triangle vertex normal
v0: vec4<f32>, // triangle vertex normal
v1: vec4<f32>, // triangle vertex normal
v2: vec4<f32>, // triangle vertex normal

n0: vec4<f32>; // triangle vertex normal
n1: vec4<f32>; // triangle vertex normal
n2: vec4<f32>; // triangle vertex normal
n0: vec4<f32>, // triangle vertex normal
n1: vec4<f32>, // triangle vertex normal
n2: vec4<f32>, // triangle vertex normal

uv0: vec4<f32>; // triangle vertex texture coordinate
uv1: vec4<f32>; // triangle vertex texture coordinate
uv2: vec4<f32>; // triangle vertex texture coordinate
uv0: vec4<f32>, // triangle vertex texture coordinate
uv1: vec4<f32>, // triangle vertex texture coordinate
uv2: vec4<f32>, // triangle vertex texture coordinate

radius: f32;
k: f32;
radius: f32,
k: f32,

primitiveType: u32;
materialIndex: u32;
primitiveType: u32,
materialIndex: u32,

// padding
// float pad_0;
// float pad_1;
// float pad_0,
// float pad_1,
};

struct Primitives {
primitives: array<Primitve>;
primitives: array<Primitve>,
};

[[group(0), binding(4)]] var<storage, read_write> primitivesBuffer: Primitives;
@group(0) @binding(4) var<storage, read_write> primitivesBuffer: Primitives;
4 changes: 2 additions & 2 deletions assets/shaders/hittable/movingsphere.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ fn center(sphere: Primitve, time: f32) -> vec3<f32> {

fn hitMovingSphere(
sphere: Primitve,
ray: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
tMin: f32,
tMax: f32,
rec: ptr<function, HitRecord, read_write>
rec: ptr<function, HitRecord>
) -> bool {
var transformedRay = transformRay(ray, sphere.inverseMatrix, sphere.inverseRotation);

Expand Down
12 changes: 6 additions & 6 deletions assets/shaders/hittable/rect.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

fn hitXYRect(
rect: Primitve,
ray: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
tMin: f32,
tMax: f32,
rec: ptr<function, HitRecord, read_write>
rec: ptr<function, HitRecord>
) -> bool {
var transformedRay = transformRay(ray, rect.inverseMatrix, rect.inverseRotation);

Expand Down Expand Up @@ -38,10 +38,10 @@ fn hitXYRect(

fn hitXZRect(
rect: Primitve,
ray: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
tMin: f32,
tMax: f32,
rec: ptr<function, HitRecord, read_write>
rec: ptr<function, HitRecord>
) -> bool {
var transformedRay = transformRay(ray, rect.inverseMatrix, rect.inverseRotation);

Expand Down Expand Up @@ -72,10 +72,10 @@ fn hitXZRect(

fn hitYZRect(
rect: Primitve,
ray: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
tMin: f32,
tMax: f32,
rec: ptr<function, HitRecord, read_write>
rec: ptr<function, HitRecord>
) -> bool {
var transformedRay = transformRay(ray, rect.inverseMatrix, rect.inverseRotation);

Expand Down
4 changes: 2 additions & 2 deletions assets/shaders/hittable/sphere.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

fn hitSphere(
sphere: Primitve,
ray: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
tMin: f32,
tMax: f32,
rec: ptr<function, HitRecord, read_write>
rec: ptr<function, HitRecord>
) -> bool {
var transformedRay = transformRay(ray, sphere.inverseMatrix, sphere.inverseRotation);

Expand Down
8 changes: 4 additions & 4 deletions assets/shaders/hittable/triangle.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
#include "../utils.wgsl"
#include "./hittable_base.wgsl"

let EPSILON = 0.000001;
let TEST_CULL = true;
const EPSILON = 0.000001;
const TEST_CULL = true;

fn hitTriangle(
tri: Primitve,
ray: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
tMin: f32,
tMax: f32,
rec: ptr<function, HitRecord, read_write>
rec: ptr<function, HitRecord>
) -> bool {
let v0 = tri.v0.xyz;
let v1 = tri.v1.xyz;
Expand Down
8 changes: 4 additions & 4 deletions assets/shaders/material/dielectric.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ fn schlick(cosine: f32, refractIdx: f32) -> f32 {

fn dielectricScatter(
material: Material,
ray: ptr<function, Ray, read_write>,
rec: ptr<function, HitRecord, read_write>,
attenuation: ptr<function, vec3<f32>, read_write>,
scattered: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
rec: ptr<function, HitRecord>,
attenuation: ptr<function, vec3<f32>>,
scattered: ptr<function, Ray>,
) -> bool {
*attenuation = vec3<f32>(1.0, 1.0, 1.0);
var etaiOverEtat: f32;
Expand Down
2 changes: 1 addition & 1 deletion assets/shaders/material/diffuselight.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include "./material_base.wgsl"
#include "../texture/texture.wgsl"

fn diffuseLightEmitted(material: Material, rec: ptr<function, HitRecord, read_write>) -> vec3<f32> {
fn diffuseLightEmitted(material: Material, rec: ptr<function, HitRecord>) -> vec3<f32> {
let textureIndex = material.textureIndex;
let texture = textureBuffer.textures[textureIndex];

Expand Down
8 changes: 4 additions & 4 deletions assets/shaders/material/lambertian.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

fn lambertScatter(
material: Material,
ray: ptr<function, Ray, read_write>,
rec: ptr<function, HitRecord, read_write>,
attenuation: ptr<function, vec3<f32>, read_write>,
scattered: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
rec: ptr<function, HitRecord>,
attenuation: ptr<function, vec3<f32>>,
scattered: ptr<function, Ray>,
) -> bool {
let scatterDirection = (*rec).normal + randomUnitVector();
*scattered = Ray((*rec).p, scatterDirection, (*ray).time);
Expand Down
24 changes: 12 additions & 12 deletions assets/shaders/material/material.wgsl
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
let MATERIALTYPE_LAMBERTIAN = 0u;
let MATERIALTYPE_METAL = 1u;
let MATERIALTYPE_DIELECTRIC = 2u;
let MATERIALTYPE_ISOTROPIC = 3u;
let MATERIALTYPE_DIFFUSELIGHT = 4u;
let MATERIALTYPE_NORMAL = 5u;
const MATERIALTYPE_LAMBERTIAN = 0u;
const MATERIALTYPE_METAL = 1u;
const MATERIALTYPE_DIELECTRIC = 2u;
const MATERIALTYPE_ISOTROPIC = 3u;
const MATERIALTYPE_DIFFUSELIGHT = 4u;
const MATERIALTYPE_NORMAL = 5u;

#include "../utils.wgsl"
#include "../ray.wgsl"
Expand All @@ -16,10 +16,10 @@ let MATERIALTYPE_NORMAL = 5u;
#include "./normal.wgsl"

fn materialScatter(
ray: ptr<function, Ray, read_write>,
rec: ptr<function, HitRecord, read_write>,
attenuation: ptr<function, vec3<f32>, read_write>,
scattered: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
rec: ptr<function, HitRecord>,
attenuation: ptr<function, vec3<f32>>,
scattered: ptr<function, Ray>,
) -> bool {
let materialIndex = (*rec).materialIndex;
let material = materialBuffer.materials[materialIndex];
Expand All @@ -43,8 +43,8 @@ fn materialScatter(
}

fn materialEmitted(
ray: ptr<function, Ray, read_write>,
rec: ptr<function, HitRecord, read_write>,
ray: ptr<function, Ray>,
rec: ptr<function, HitRecord>,
) -> vec3<f32> {
let materialIndex = (*rec).materialIndex;
let material = materialBuffer.materials[materialIndex];
Expand Down
14 changes: 7 additions & 7 deletions assets/shaders/material/material_base.wgsl
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
struct Material {
baseColor: vec4<f32>;
roughness: f32;
indexOfRefraction: f32;
materialType: u32;
textureIndex: u32;
baseColor: vec4<f32>,
roughness: f32,
indexOfRefraction: f32,
materialType: u32,
textureIndex: u32,
};

struct Materials {
materials: array<Material>;
materials: array<Material>,
};

[[group(0), binding(5)]] var<storage, read_write> materialBuffer: Materials;
@group(0) @binding(5) var<storage, read_write> materialBuffer: Materials;
8 changes: 4 additions & 4 deletions assets/shaders/material/metal.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

fn metalScatter(
material: Material,
ray: ptr<function, Ray, read_write>,
rec: ptr<function, HitRecord, read_write>,
attenuation: ptr<function, vec3<f32>, read_write>,
scattered: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
rec: ptr<function, HitRecord>,
attenuation: ptr<function, vec3<f32>>,
scattered: ptr<function, Ray>,
) -> bool {
let reflected = reflect(normalize((*ray).direction), (*rec).normal);
*scattered = Ray((*rec).p, reflected + material.roughness * randomInUnitSphere(), (*ray).time);
Expand Down
10 changes: 5 additions & 5 deletions assets/shaders/material/normal.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
#include "../ray.wgsl"
#include "./material_base.wgsl"

let NORMAL_CORRECTED = true;
const NORMAL_CORRECTED = true;

fn normalScattered(
material: Material,
ray: ptr<function, Ray, read_write>,
rec: ptr<function, HitRecord, read_write>,
attenuation: ptr<function, vec3<f32>, read_write>,
scattered: ptr<function, Ray, read_write>,
ray: ptr<function, Ray>,
rec: ptr<function, HitRecord>,
attenuation: ptr<function, vec3<f32>>,
scattered: ptr<function, Ray>,
) -> bool {
if(NORMAL_CORRECTED) {
*attenuation = normalize(((*rec).normal + 1.0) * 0.5);
Expand Down
Loading

0 comments on commit 068e2af

Please sign in to comment.