Andrew O'Neil
f013badc22
Use vulkan synchronization2
2 months ago
Andrew O'Neil
54a846f9f1
Update to rust_gpu 0.6.0
2 months ago
Andrew O'Neil
78f9b1db6d
Reduce log spam
6 months ago
Andrew O'Neil
f2f267e8e1
Update dependencies
6 months ago
Andrew O'Neil
7f0ffcb3e9
Avoid doubles - now runs on intel, but there are no intersections
7 months ago
Andrew O'Neil
4085fed72d
Add readme
7 months ago
Andrew O'Neil
aacf046fca
Add license
7 months ago
Andrew O'Neil
9f7b5b5df8
Terminate path when it no longer contributes a meaningful amount of light
7 months ago
Andrew O'Neil
9d9966beb3
Refactor the path tracer to be a bit more understandable
8 months ago
Andrew O'Neil
fbd7e9fcad
Update dependencies
8 months ago
Andrew O'Neil
a57e23c6c2
Use a more manageable default window size
8 months ago
Andrew O'Neil
1cfc7bbf3e
Working path tracing!
10 months ago
Andrew O'Neil
0cdb6d7215
Ensure triangle normals are in the ray direction
10 months ago
Andrew O'Neil
d24b8adb1c
Reinhard tone mapping
...
No automatic white point yet.
https://64.github.io/tonemapping/
11 months ago
Andrew O'Neil
c4db165e84
Add rotation to boxes
11 months ago
Andrew O'Neil
5883adab19
Render boxes with a triangle mesh
...
ray/box intersection is getting complicated for extending beyond AABBs,
so lets just use triangles as the primitive instead. rust_gpu doesn't
support using buffer address yet, so I'm just concatenating all vertices
and indices into single buffers for now.
11 months ago
Andrew O'Neil
7ad45c7c85
Define materials from host side
11 months ago
Andrew O'Neil
f8add67504
Add basic cornell box scene
11 months ago
Andrew O'Neil
4e5e8d8ecb
Use bevy_ecs as a basic scene graph
11 months ago
Andrew O'Neil
e249286c79
Move bindings into the scene
11 months ago
Andrew O'Neil
e15d8aa390
Use the slot layout to provide more safety around descriptor sets
11 months ago
Andrew O'Neil
d43b7c16dc
Move scene creation into its own module
11 months ago
Andrew O'Neil
54f928c1e8
Basic box shape
...
Box must be AABB, and normals are broken at non-uniform scales
11 months ago
Andrew O'Neil
f47c1c68bd
Check for visibility of the light source to give shadows
11 months ago
Andrew O'Neil
0159c89fb0
Add specular highlights
11 months ago
Andrew O'Neil
8db095fe04
Add diffuse lighting
11 months ago
Andrew O'Neil
818e711225
Better explain sphere math, and fix behind-camera intersections
11 months ago
Andrew O'Neil
72f602c451
Shade based on normal
11 months ago
Andrew O'Neil
768b413bfc
Implement positional camera
...
Largely taken from https://raytracing.github.io/books/RayTracingInOneWeekend.html#positionablecamera
11 months ago
Andrew O'Neil
ea85738c4d
Add field of view to camera
11 months ago
Andrew O'Neil
c956d99416
Refactor camera into it's own module
11 months ago
Andrew O'Neil
633963927c
Visualise depth :D
11 months ago
Andrew O'Neil
5b71c86d92
Move sphere math to sphere mod
11 months ago
Andrew O'Neil
66a32b178f
Report hit, but let the raygen shader control shading
11 months ago
Andrew O'Neil
8ad2ac0798
Reorganise shader crate
11 months ago
Andrew O'Neil
1817c366f4
Fullscreen 4k
...
This matches my current test setup (laptop on the couch, host PC connected to TV).
11 months ago
Andrew O'Neil
28f68f1e0c
Use RHS with Y pointing up
11 months ago
Andrew O'Neil
359929261a
Wrap swapchain present
11 months ago
Andrew O'Neil
39c8ef3e30
Wrap queue submissions
11 months ago
Andrew O'Neil
d7a282f39a
Reuse commands across frames
11 months ago
Andrew O'Neil
67901021ea
Don't call build() on ash builders until necessary
...
This helps ash's lifetimes keep us safer
11 months ago
Andrew O'Neil
3e9f6d1c01
Don't need all this debug info for now
11 months ago
Andrew O'Neil
521378e3f8
Clean up warnings
11 months ago
Andrew O'Neil
f20963f994
Simplify buffer fill
...
I think the ash util alignment is for padding data like we're
doing for the shader binding table. Using it for buffer fills might
cause overflows
11 months ago
Andrew O'Neil
9e26cb49a0
Both spheres and triangles work on AMD!
...
The triangle is scaled incorrectly on mesa drivers, but is correct with amdgpu-pro.
Still very unreliable on GTX1080
11 months ago
Andrew O'Neil
c6ea686154
Allocator has better debug messages itself
11 months ago
Andrew O'Neil
16846a35f3
push geometry changes for debugging too
11 months ago
Andrew O'Neil
673923b0ee
Ask allocator for most restrictive alignment
11 months ago
Andrew O'Neil
d9f2411d35
It started working!!!
11 months ago
Andrew O'Neil
7a28638628
Fix memory size calculation for shader binding table
11 months ago