All Projects → huwb → Volsample

huwb / Volsample

Licence: mit
Structured Volume Sampling - sample placement algorithm for real-time volume rendering with low aliasing, for camera-in-volume case.

Projects that are alternatives of or similar to Volsample

Firefly
Unity ECS example for special effects
Stars: ✭ 489 (-10.44%)
Mutual labels:  unity
Unity3d Rainbow Folders
This asset allows you to set custom icons for any folder in unity project browser.
Stars: ✭ 519 (-4.95%)
Mutual labels:  unity
Openupm
OpenUPM - Open Source Unity Package Registry (UPM)
Stars: ✭ 537 (-1.65%)
Mutual labels:  unity
Unity Reorderable List
Extended version of the Reorderable List in Unity
Stars: ✭ 489 (-10.44%)
Mutual labels:  unity
Unity Frosted Glass
❄️ Test of a frosted glass material in Unity.
Stars: ✭ 506 (-7.33%)
Mutual labels:  unity
Hedera
paint 3D ivy in the Unity Editor, watch procedurally generated meshes simulate growth and clinging in real-time
Stars: ✭ 526 (-3.66%)
Mutual labels:  unity
Assetsextractor
『Assets提取工具』是一款OSX平台上用于将Assets.car或xxx.app中打包的png图片、pdf等资源重新提取出来的开发者工具。Assets.car常见于iOS/Mac/Unity等开发中的资源打包。
Stars: ✭ 486 (-10.99%)
Mutual labels:  unity
Swarm
An example of use of compute shaders and procedural instancing.
Stars: ✭ 547 (+0.18%)
Mutual labels:  unity
Textinlinesprite
UGUI图文混排 unity version: 2017.2+
Stars: ✭ 516 (-5.49%)
Mutual labels:  unity
Unitypcss
Nvidia's PCSS soft shadow algorithm implemented in Unity
Stars: ✭ 533 (-2.38%)
Mutual labels:  unity
Consolation
In-game debug console for Unity.
Stars: ✭ 489 (-10.44%)
Mutual labels:  unity
Cytoid
A community-driven touchscreen music game.
Stars: ✭ 493 (-9.71%)
Mutual labels:  unity
Unity Shadergraph Sandbox
✏️ Collection of ShaderGraph examples for Unity.
Stars: ✭ 525 (-3.85%)
Mutual labels:  unity
Cshotfix
C# HotFix C#热更新 unity3d 热更新
Stars: ✭ 489 (-10.44%)
Mutual labels:  unity
Rsvfx
An example that shows how to connect RealSense depth camera to Unity VFX Graph
Stars: ✭ 541 (-0.92%)
Mutual labels:  unity
Randomation Vehicle Physics
Vehicle physics system for the Unity engine.
Stars: ✭ 487 (-10.81%)
Mutual labels:  unity
Fontainebleaudemo
Fontainebleau demo
Stars: ✭ 524 (-4.03%)
Mutual labels:  unity
Super Blur
Screen and UI gaussian blur for Unity
Stars: ✭ 543 (-0.55%)
Mutual labels:  unity
Anything about game
A wonderful list of Game Development resources.
Stars: ✭ 541 (-0.92%)
Mutual labels:  unity
Texturepanner
This repository hosts a shader for Unity3D whose main goal is to facilitate the creation of neon-like signs, conveyor belts and basically whatever based on scrolling textures
Stars: ✭ 528 (-3.3%)
Mutual labels:  unity

Structured Volume Sampling

MIT-licensed implementation of Structured Volume Sampling technique, along with simple framework for comparing other techniques.

Teaser
Teaser video here.

Draft slides describing latest approach here.

Shadertoy volume rendering demo: Mt3GWs
Shadertoy sampling diagram: ll3GWs

Impressive application of this technique by Felix Westin: https://twitter.com/FewesW , in particular https://twitter.com/FewesW/status/1364935000790102019

Alternative implementation: https://github.com/gokselgoktas/structured-volume-sampling

Contacts: Huw Bowles (@hdb1 , huw dot bowles at gmail dot com), Daniel Zimmermann (daniel dot zimmermann at studiogobo dot com), Beibei Wang (bebei dot wang at gmail dot com)

Retweet to support this work: https://twitter.com/hdb1/status/769615284672028672


Introduction

Volume rendering in real-time applications is expensive, and sample counts are typically low. When the camera is inside the volume, the volume samples typically move around with the camera which can cause severe aliasing. This repository provides a new, fast, efficient and simple algorithm for eliminating aliasing for this camera-in-volume case.

This repos started as the source code for the course titled A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Rendering, in the Advances in Real-Time Rendering in Games course at SIGGRAPH 2015 [1]. The full presentation PPT is available for download from the course page here. While this is useful reading, the latest implementation takes a new approach which completely replaces most of the approaches introduced in the talk.

The latest approach, Structured Volume Sampling, works differently. See the Algorithm section below.


Running

This is implemented as a Unity 5 project (last run on 5.6) and should "just work" without requiring any set up steps. It should be very easily ported to other Unity versions as well.

Find the current test scenes in the Scenes/ folder. A few volume sampling schemes are implemented for comparison and can be selected via the on screen GUI.

All volume sampling methods and volumetric scenes are implemented into VolumeRender.shader, as shader features. This is a quick and dirty way to associate shader code with unity scenes, and at the same time support different volume sampling approaches, without requiring a ton of shader code duplication.


Algorithm

Overview

Draft slides describing latest approach here.

For further understanding it may help to enable the define DEBUG_BEVEL and play with the Bevel amount on the Platonic Solid Blend script. Doing a GPU trace capture in unity can also be helpful to see the dodecahedron.

We hope to publish a full description of this technique soon. Stay tuned!


Bugs and improvement directions

  • The adaptive sampling method published here should be compatible with the new approach and could be reinstated.
  • If enough of the code that samples the volume / does the lighting is scalar (calculations on floats/ints rather than vectors), it may make sense to vectorize the loop to calculate 4 samples simultaneously.

References

[1] Bowles H. and Zimmermann D., A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Rendering, Advances in Real-Time Rendering in Games course, SIGGRAPH 2015. Course page.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].