Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Mighty-A/OptimizedMetaBall
🔮GPU-based real-time raytracing rendering of transparent metaball. (Project for CS337 Computer Graphics)
https://github.com/Mighty-A/OptimizedMetaBall
Last synced: 2 months ago
JSON representation
🔮GPU-based real-time raytracing rendering of transparent metaball. (Project for CS337 Computer Graphics)
- Host: GitHub
- URL: https://github.com/Mighty-A/OptimizedMetaBall
- Owner: Mighty-A
- License: other
- Created: 2021-12-07T13:36:25.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-28T05:39:50.000Z (about 3 years ago)
- Last Synced: 2024-08-01T19:47:24.770Z (6 months ago)
- Language: C++
- Homepage:
- Size: 5.02 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
- awesome-cs - @Mighty-A @Healthcliff-Ding, 2021 Fall
README
# Optimized Raytracing MetaBall: Acceleration and Transparent
🔮GPU-based real-time raytracing rendering of transparent metaball. (Project for CS337 Computer Graphics)## Features
* Implement BVH acceleration for MetaBalls
* Implement transparent (trace refraction rays) for MetaBalls
* GPU-based real-time rendering of the final scene (acceleration and transparent).## Final Scene
Transparent metaballs: 25
w: 1920, h: 1080
recursion depth: 8
fps: > 60![](./img/final_scene.png)
## Requirements
* GPU and driver with support for [DirectX 12 Ultimate](http://aka.ms/DirectX12UltimateDev)
* Windows 10 SDK 22000
* Shader model >= 6.5## Controls
* ALT+ENTER - toggles between windowed and fullscreen modes.
* C - enable/disable camera animation.
* L - enable/disable light animation.## Performance Benchmark
### BVH acceleration
We test two cases (with and without BVH acceleration) on a scene with 9 non-transparent metaballs. (1920 x 1080, recursion depth = 3)| BVH | fps |
| ----------- | ---- |
| BVH unabled | 89 |
| BVH enabled | 601 |- Without BVH
![Benchmark without BVH](./img/benchmark_without_bvh.png)
- With BVH![Benchmark without BVH](./img/benchmark_with_bvh.png)
### Interval Refinement
We test two cases (with interval refinment and without) on a scene with 125 non-transparent metaballs. (1920 x 1080, recursion depth = 3)Visible differences in visual effects
![Interval Refinement](./img/interval_refinement.png)### Transparent
left: transparency in deformation
middle: refracted virtual image
right: total reflection
![Transparent](./img/transparent.png)## Known Issues
* Hardcoded shader index
* MetaBalls need a wraper for closest-hit shader## Reference Code
[DirectX-Graphics-Samples](https://github.com/microsoft/DirectX-Graphics-Samples)## Report
[report](https://1drv.ms/w/s!AqTcPxnfNYjMj5ocZhqJx9TrpvWDQA?e=tQS7Rd)