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: 7 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 (almost 4 years ago)
 - Default Branch: main
 - Last Pushed: 2021-12-28T05:39:50.000Z (almost 4 years ago)
 - Last Synced: 2024-11-07T13:40:58.381Z (12 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

## 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  

- With BVH  

### 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

### Transparent 
left: transparency in deformation  
middle: refracted virtual image  
right: total reflection  

## 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)