Kaleido: UE4 Compute Shader and GPU Instancing
Kaleido is a custom plugin for experimenting with UE4's compute shader and GPU instancing to manipulate massive number of transforms. There are in total of over 20k instances running at over 60 FPS, with ray tracing on.
In this plugin, the instanced static meshes are called Kaleido. The concept is to have a few spherical "influencers" to overlap kaleidos to impact their transforms. Each kaleido has inertia values towards location, rotation and scale to signify how easily they can be affected by "influencers". Kaleidos can observe overlapping "influencers" to figure out the necessary compute passes that they need to be operated on.
I used custom macros and C++'s template specialization to allow flexibility in authoring compute shaders that can be applied to Kaleidos. I can simply register a "kaleido shader" to the system with just one line of code. For each "influencer", it can simply keep track of a list of shader names. And the list can be updated on the fly, during gameplay.
Credit: Special thanks to Silence&Moon for his awesome VFX course. I used some of his materials and functions in this demo.
Music: The Wolf and The Swallow - Mikolai Stroinski, Marcin Przybyłowicz
Source code: https://github.com/UnrealXinda/Kaleido
Видео Kaleido: UE4 Compute Shader and GPU Instancing канала Unreal Xinda
In this plugin, the instanced static meshes are called Kaleido. The concept is to have a few spherical "influencers" to overlap kaleidos to impact their transforms. Each kaleido has inertia values towards location, rotation and scale to signify how easily they can be affected by "influencers". Kaleidos can observe overlapping "influencers" to figure out the necessary compute passes that they need to be operated on.
I used custom macros and C++'s template specialization to allow flexibility in authoring compute shaders that can be applied to Kaleidos. I can simply register a "kaleido shader" to the system with just one line of code. For each "influencer", it can simply keep track of a list of shader names. And the list can be updated on the fly, during gameplay.
Credit: Special thanks to Silence&Moon for his awesome VFX course. I used some of his materials and functions in this demo.
Music: The Wolf and The Swallow - Mikolai Stroinski, Marcin Przybyłowicz
Source code: https://github.com/UnrealXinda/Kaleido
Видео Kaleido: UE4 Compute Shader and GPU Instancing канала Unreal Xinda
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
Getting Started with Compute Shaders in UnityUE4 25 Niagara audio experiment - AudioCreatureCoding Adventure: Compute ShadersOpenGL 4.3 compute shader demoThis one node makes almost any shader faster. (Unreal Engine)Volumetric Ice Shader - UE4 Materials 101 - Episode 11Unreal Engine 4 Beginner Tutorial: Getting StartedVariable Rate Compute Shaders - Halving Deferred Lighting TimeCompute shader 101UE4 Optimization: InstancingProcedural Water Ripples in Unity using Shader Graph OnlyMesh Animator 2.0 Walkthrough - Massive Unity crowds and GPU InstancingLive Optitrack Motion Capture Demo and Testing in Unreal EngineModern OpenGL Tutorial - Compute ShadersPlayer Based Materials MasksUnity Compute Shader Experiments: GPU PathfindingOutline Transition Effect Using Postprocess Material - (UE4)Toon Outlines in Unity URP, Shader Graph Using Sobel Edge Detection! ✔️ 2020.3 | Game Dev TutorialIntro to Compute ShadersWinter 2021 Compute Shaders Talk