3 changed files with 39 additions and 3 deletions
@ -1,3 +1,39 @@ |
|||
# SDFRT |
|||
|
|||
Implicit surface rendering via ray tracing |
|||
Implicit surface rendering via ray tracing |
|||
|
|||
## Introduction |
|||
|
|||
采用Ray Tracing(其实本质上是Ray Marching)解决隐式曲面的渲染问题,Backend为Vulkan,引入Nvidia的```NVVK```来简化各种资源的申请和初始化,输出可视实时渲染结果。目前仅支持硬编码隐式函数的渲染 |
|||
|
|||
## Dependencies |
|||
|
|||
+ cmake >= 3.15 |
|||
+ VulkanSDK >= 1.3 |
|||
+ Nvpro_cores |
|||
|
|||
## Project |
|||
|
|||
+ ```implicit_surface_ray_tracing```:主项目,输出带GUI的隐式曲面实时渲染程序 |
|||
+ ```Sphere_Tracing_CPU_Test```:在CPU上对```Sphere Tracing```的测试和同```Adaptive Marching Points```的对比(因为调试```Compute Shader```过于困难) |
|||
|
|||
## Build |
|||
|
|||
经测试在Win10 + MSVC下构建顺利,按照```Nvpro_cores```库的说明应该在Linux下也能正常构建,但没有测试 |
|||
|
|||
构建完成后需要```install```来移动资源,从而实现```Spirv```格式的Shader Module的加载 |
|||
|
|||
## Performance |
|||
|
|||
以下测试中步进步数和其余项目是分开测试的,因为测试步进步数需要```Atomic Operation```,对实时性能影响较大 |
|||
|
|||
> 实际上用```glslc```对Shader做了控制,只有在```Debug```构建时才会测试步进步数 |
|||
|
|||
## Screenshot |
|||
|
|||
 |
|||
|
|||
## Known issues |
|||
|
|||
+ 目前```Release```模式构建出来无法正常渲染,推测是目前暴力将Output image直接Blit到Swapchain Framebuffer上的操作水土不服 |
|||
+ 现在```Adaptive Step Size Relaxation```渲染模式还在施工,估计会比```Sphere Tracing```还要快一些 |
After Width: | Height: | Size: 510 KiB |
Loading…
Reference in new issue