All Projects → ACskyline → Wave Particles With Interactive Vortices

ACskyline / Wave Particles With Interactive Vortices

Licence: mit
A dx12 river renderer using wave particles with interactive vortices.

Projects that are alternatives of or similar to Wave Particles With Interactive Vortices

Imgui Ext
Rust library for building imgui GUIs using a derive macro
Stars: ✭ 100 (-30.56%)
Mutual labels:  imgui
Qtimgui
Qt (QOpenGLWidget / QOpenGLWindow) backend for ImGui
Stars: ✭ 119 (-17.36%)
Mutual labels:  imgui
Imgui
Immediate Mode GUI for C#
Stars: ✭ 133 (-7.64%)
Mutual labels:  imgui
Nodable
a node-able bidirectionnal expression editor.
Stars: ✭ 103 (-28.47%)
Mutual labels:  imgui
Jimgui
💖 Pure Java binding for dear-imgui
Stars: ✭ 113 (-21.53%)
Mutual labels:  imgui
Sonyheadphonesclient
A {Windows, macOS, Linux} client recreating the functionality of the Sony Headphones app
Stars: ✭ 123 (-14.58%)
Mutual labels:  imgui
Fury3d
A simple but modern graphic engine
Stars: ✭ 84 (-41.67%)
Mutual labels:  imgui
Phy Net
compressing physics with neural networks
Stars: ✭ 133 (-7.64%)
Mutual labels:  fluid-simulation
Implot
Immediate Mode Plotting
Stars: ✭ 2,014 (+1298.61%)
Mutual labels:  imgui
Node editor framework
A flexible and modular Node Editor Framework for creating node based displays and editors in Unity
Stars: ✭ 1,751 (+1115.97%)
Mutual labels:  imgui
Horus ui
HorusUI Immediate Mode Graphical User Interface
Stars: ✭ 106 (-26.39%)
Mutual labels:  imgui
Osiris
Free open-source game cheat for Counter-Strike: Global Offensive, written in modern C++. GUI powered by Dear ImGui.
Stars: ✭ 1,851 (+1185.42%)
Mutual labels:  imgui
Gpu Gems 2d Fluid Simulation
2D fluid simulation in Unity
Stars: ✭ 126 (-12.5%)
Mutual labels:  fluid-simulation
Yakc
Yet another KC emulator
Stars: ✭ 102 (-29.17%)
Mutual labels:  imgui
Sequentity
A single-file, immediate-mode sequencer widget for C++17, Dear ImGui and EnTT
Stars: ✭ 134 (-6.94%)
Mutual labels:  imgui
Imgui Rs
Rust bindings for Dear ImGui
Stars: ✭ 1,258 (+773.61%)
Mutual labels:  imgui
Hello imgui
Hello, Dear ImGui: cross-platform Gui apps for Windows / Mac / Linux / iOS / Android / Emscripten with the simplicity of a "Hello World" app
Stars: ✭ 120 (-16.67%)
Mutual labels:  imgui
Gpu Gems 3d Fluid Simulation
3D fluid simulation on the in Unity
Stars: ✭ 141 (-2.08%)
Mutual labels:  fluid-simulation
Imgui sdl
ImGuiSDL: SDL2 based renderer for Dear ImGui
Stars: ✭ 134 (-6.94%)
Mutual labels:  imgui
Nukleardotnet
.NET binding for the Nuklear immediate mode GUI
Stars: ✭ 126 (-12.5%)
Mutual labels:  imgui

Wave Particles with Interactive Vortices

Final Result

Overview

In game industry water can be divided into two domains, ocean and river. This project focuses on river. Not too long ago, a demo of a real-time river editor was developed by graphics programmer Jean-Philippe Grenier from Ubisoft(now Unity). We think what he did was awesome and want to replicate it (as possible as we can).

Traditionally, rivers are rendered using flow maps. Flow maps are generated by fluid simulations or created by artist or even both. Flow maps are used for advection of water properties such as normal and uv. This technique can give the river a deterministic fluid look, but it fails to capture the sense of height compared with the less controlled ocean rendering techniques, which basically stack several noise functions together to generate the waves. Stacking noise functions together only works for ocean because the ocean does not flow. When you want the water both flow and have the sense of height, a new method should be used.

(picture from Rendering rapids in Uncharted 4 by Carlos Gonzalez-Ochoa, Siggraph 2016 Advances in Real-Time Rendering in Games course)

The new method is Wave Particles. Initially, Wave Particles were introduced into game industry by Naughty Dog for Uncharted 3 to simulate local high frequency wave of oceans. Then it was adopted and adapted to render rivers by Naughty Dog for Uncharted 4 paired with stacking technique.

(picture from Implementing Wave Particles for Real-time Water Waves 2007)

The significance of the Jean-Philippe Grenier's work is that it generates flow map in real-time. That is why the user can interactively create rocks to block the river and affect the flow of river as we can see in the video. When performing advection on height and normal, previous implementations from Naughty Dog or Valve use noise and blending techniques to minimize repetition and pulsing caused by advection of a finite sized texture. But in this demo the developer used a new technique called Wave Profile Buffer to solve the repetition and pulsing.

(picture from Water Flow in Portal 2 by Alex Vlachos, Siggraph 2010 Advances in Real-Time Rendering course)

(picture from Rendering rapids in Uncharted 4 by Carlos Gonzalez-Ochoa, Siggraph 2016 Advances in Real-Time Rendering in Games course)

Goals

  • Simple wave particle rendering.

  • Combine wave particle with flow map.

  • Update flow map in real-time.

  • Identify and solve the problems caused by advection of height, uv, normal. (extra features)

Milestones

  • [x] Milestone 1

    • [x] DX12 frame work

      • [x] Tessellation shader

      • [x] Basic Interaction

      • [x] Basic UI

    • [x] Basic wave particle rendering

      • [x] Single particle
  • [x] Milestone 2

    • [x] Advanced wave particle rendering

      • [x] Multiple particles
    • [x] Combine flow map with wave particle

      • [x] Find some interesting flow maps

      • [x] Use flow map to advect wave particle

    • [x] Fluid simulation

  • [x] Milestone 3

    • [x] Improve rendering method

      • [x] Foam
    • [x] Update flow map in real-time

      • [x] Create blockers (rocks and etc.)

      • [x] Advect properties using simulation result

  • [x] Final

    • [x] Finish unfinished work

    • [x] Identify the problems caused by advection of height, uv, normal

Milestone 1 Update

  • Camera Interaction

  • Wave Praticle Scale

  • Tessellation level

Milestone 2 Update

  • Radius

  • Speed

  • Wave particle with flow map

  • Flow map

  • Flow map driven texture

  • Wave particle

  • Horizontal blur

  • Vertical blur

  • Horizontal and vertical blur

  • Wave particle driven deviation

  • Fluid with different cell size

  • Fluid with different impulse location

  • Influence of fluid density/velocity dissipation

  • Flow map we will be using to guide the movement of wave particles

Milestone 3 Update

  • Specularity

  • Fluid sim with vorticity confinement

  • Divergence

  • Divergence as foam

  • Render with interactions

References

River Editor Water Simulation in Real-Time

Wave Particles Slides

Wave Particles Paper

Water Surface Wavelets

Uncharted 3 Ocean Rendering

Uncharted 4 River Rendering

Valve Flow Map

A 2D Fluid Solver

GPU Gems: Fast Fluid Dynamics Simulation on the GPU

A Similar Workflow

Caustics

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].