kunz Difference between revisions of "Live 2022.11.15"

Difference between revisions of "Live 2022.11.15"

From kunz
 
(14 intermediate revisions by the same user not shown)
Line 2: Line 2:
[[File:content_thumbnail_2022_11_15.jpg | 960px]]
[[File:content_thumbnail_2022_11_15.jpg | 960px]]
== Introduction ==
== Introduction ==
Bismuth Crystals are a really interesting area to study.  The [https://jungler.tv/directors/xk-studio/PROTECT%20-%20XK%20STUDIO] and [https://en.wikipedia.org/wiki/Iridescence iridescent colors] are very nice to look at and create an almost alien or p
This was my attempt trying to recreate the foam techniques from [https://xk.studio/XKR_002-PROTECT the amazing PROTECT project from XK Studio]. Shown below is one of the frames from their project that I used as reference.


== Stream Summary ==
[[File:2022_11_15_XK-Studio-XKR_002-Protect3.jpeg | 960px]]
The [https://autodesk.github.io/standard-surface/#closures/metal Standard Surface] model implemented in Karma and MaterialX has a thin film model for metallic reflections, which can create these rainbow-like iridescence effects.


I wanted to try out the thin film model and initially test it on a shaderball to get a sense of how the settings and parameters work.


After experimenting with the shader, I procedurally model a simple maze-like geometric form using the path finding node in Houdini.  This form is then instanced to a point cloud to create the repetitive fractal-like form, similar to Bismuth crystals.
For more insight in to their process and development, take a look at their video here: [https://twitter.com/xk_studio/status/1575807058355445760/video/1 XK Studio BTS]




Below is the final render with some animation applied to the geometry as well as the lights ⤵
Below are some of my results while testing and iterating on simulation settings.


[[File:2022_09_16_mtlx_metal_spin.gif | 960px]]
[[File:2022_11_15_foam_settings_flbk.gif| 960px]]


= Video On Demand =
== Part 1 ==
<embedvideo service="youtube" dimensions="960x540" urlargs="modestbranding=1&showinfo=0">https://youtu.be/Zd1PIjUXyhU</embedvideo>


Karma viewport example tumbling around the scene ⤵
* 00:00 Introduction
* 00:50 Flipbook iterations
* 06:10 Scene walkthrough
* 06:30 Vellum wire simulation setup
* 09:50 Setting up the FLIP emission source
* 12:33 Initial velocity for FLIP emission
* 14:10 Procedural noise from rest coordinates
* 15:28 FLIP simulation overview
* 15:50 VEX wrangle to control divergence
* 18:50 Surface tension settings
* 20:35 Post simulation workflow
* 23:10 Visualize shader noise from rest attribute
* 39:10 Visualize age particle attribute
* 44:18 Visualizing divergence in FLIP simulation
* 51:00 Wrapping up and overview


[[File:2022_09_16_viewport_karma.gif | 960px]]


== References ==
== Part 2 ==
<gallery mode="packed">
<embedvideo service="youtube" dimensions="960x540" urlargs="modestbranding=1&showinfo=0">https://youtu.be/bmGEJe4bVe4</embedvideo>
File:tumblr_a7bf2660521796e6367ca575582d53d9_7e787c34_400.gif
File:tumblr_04dba021c256ac91d428c8883b402acd_705bd507_400.gif
File:tumblr_2738878e8295d008c2bde1ce7fefb091_46e6964a_400.gif
File:tumblr_1cce04bdfe9893740dc1b2b7a92ae69b_835dbf49_400.gif
File:tumblr_02b2b5e580b2e69da710889d9cf353fb_f2ce7241_400.gif
</gallery>


<gallery mode="packed">
* 00:16 Introduction
File:2022_09_16_Bismuth-crystal-1.jpeg
* 02:30 Adjusting Vellum bend stiffness
File:8059147.jpeg
* 02:40 Rotating emitters
File:ffc2f761fd8c9ed38faf004a8308a0b8.jpeg
* 03:10 Increase Vellum substeps for inter-frame motion
File:29f0eaec2754d2d70c20446f67e0b61e.jpeg
* 03:35 Update flipsource and rest assignment
File:100177_1578067750.jpeg
* 04:50 Flatten all surface VDBs into one
</gallery>
* 06:58 Divergence and viscosity control using VEX
* 12:15 Visualizing rest texture coordinates
* 13:20 Using and age and life to find emission time
* 15:50 How emission time is used to offset texture coordinates
* 17:50 VEX calculation of particle emission time
* 18:30 Using sin funtion with emission time
* 25:00 Redshift procedural noise from the rest attribute
* 28:30 Scaling and adjusting the noise
* 29:00 Visualize the noise value
* 32:45 Comparing noise results when rest attribute is used
* 36:30 Using RS State VOP to retrieve the rest attribute
* 38:40 Using color ramps with rest
* 39:10 Visulaizing displacement quality wireframe
* 43:00 Subsurface radius and color
* 49:00 Detecting and removing droplets after the sim
* 57:50 Customizing the Houdini menu
* 59:00 Wrapping up


I also suggest taking a look at [https://www.brunomilitelli.com/portfolio/bismuto Bruno Militelli's Bismuth photographs]


You can also [https://sketchfab.com/3d-models/bismuth-e95f85960c5344d2857ef948ad103e20 find some 3d models of Bismuth on Sketchfab] which can be downloaded and imported into Houdini to test shaders on.
= Scene File =
 
== Part 1 ==
== Modeling with Find Shortest Path ==
[[:File:22_11_15_foam_sprayers_pt1.hiplc | 22_11_15_foam_sprayers_pt1.hiplc]]
[[File:2022_09_16_find_shortes_path_examples.gif | 960px]]
 
The [https://www.sidefx.com/docs/houdini/nodes/sop/findshortestpath.html Find Shortest Path node] can be used not only for finding the shortest path between two points, but can be used to create complex, interesting path networks.
 
This file contains the example animation above, and shows a few different ways the node can be used: [[:File:2022_09_16_find_shortest_path_examples.hiplc | 2022_09_16_find_shortest_path_examples.hiplc]]
 
= Video On Demand =
<embedvideo service="youtube" dimensions="960x540" urlargs="modestbranding=1&showinfo=0">https://youtu.be/Zd1PIjUXyhU</embedvideo>
 
* 0:00:00 introduction
* 0:01:00 MaterialX shaderball
* 0:04:50 creating MaterialX shader
* 0:05:40 adding a dome light
* 0:08:40 loading a .mtlx example shader
* 0:10:00 graphing the .mtlx shader
* 0:12:40 examine the .mtlx file text
* 0:21:00 adjusting thin film thickness and for
* 0:32:30 using noise to drive thin film
* 0:37:00 using facing ratio to drive thin film
* 0:40:00 procedural modeling in SOPs
* 0:41:00 find shortest path
* 0:48:00 sweeping a custom font profile
* 0:53:40 applying our shader
* 0:58:00 duplicating and instancing
* 0:59:00 adding camera and area lights
* 1:04:40 extending the instancing workflow
* 1:06:50 sphere packing with vdbtospheres SOP
* 1:15:00 rendering
* 1:20:00 adjusting lights for better highlights
* 1:28:00 adding depth of field
* 1:44:00 adding physical lens shader
* 1:56:00 final render
* 1:59:00 wrapping up


00:00 Introduction
== Part 2 ==
00:50 Flipbook iterations
[[:File:22_11_20_foam_sprayers_pt2.hiplc | 22_11_20_foam_sprayers_pt2.hiplc]]
06:10 Scene walkthrough
06:30 Vellum wire simulation setup
09:50 Setting up the FLIP emission source
12:33 Initial velocity for FLIP emission
14:10 Procedural noise from rest coordinates
15:28 FLIP simulation overview
15:50 VEX wrangle to control divergence
18:50 Surface tension settings
20:35 Post simulation workflow
23:10 Visualize shader noise from rest attribute
39:10 Visualize age particle attribute
44:18 Visualizing divergence in FLIP simulation
51:00 Wrapping up and overview
 
= Scene File =
[[:File:2022_09_16_mtlx_bismuth_metals.hiplc | 2022_09_16_mtlx_bismuth_metals.hiplc]]

Latest revision as of 23:25, 9 March 2024

Foam Sprayers

content thumbnail 2022 11 15.jpg

Introduction

This was my attempt trying to recreate the foam techniques from the amazing PROTECT project from XK Studio. Shown below is one of the frames from their project that I used as reference.

2022 11 15 XK-Studio-XKR 002-Protect3.jpeg


For more insight in to their process and development, take a look at their video here: XK Studio BTS


Below are some of my results while testing and iterating on simulation settings.

2022 11 15 foam settings flbk.gif

Video On Demand

Part 1

  • 00:00 Introduction
  • 00:50 Flipbook iterations
  • 06:10 Scene walkthrough
  • 06:30 Vellum wire simulation setup
  • 09:50 Setting up the FLIP emission source
  • 12:33 Initial velocity for FLIP emission
  • 14:10 Procedural noise from rest coordinates
  • 15:28 FLIP simulation overview
  • 15:50 VEX wrangle to control divergence
  • 18:50 Surface tension settings
  • 20:35 Post simulation workflow
  • 23:10 Visualize shader noise from rest attribute
  • 39:10 Visualize age particle attribute
  • 44:18 Visualizing divergence in FLIP simulation
  • 51:00 Wrapping up and overview


Part 2

  • 00:16 Introduction
  • 02:30 Adjusting Vellum bend stiffness
  • 02:40 Rotating emitters
  • 03:10 Increase Vellum substeps for inter-frame motion
  • 03:35 Update flipsource and rest assignment
  • 04:50 Flatten all surface VDBs into one
  • 06:58 Divergence and viscosity control using VEX
  • 12:15 Visualizing rest texture coordinates
  • 13:20 Using and age and life to find emission time
  • 15:50 How emission time is used to offset texture coordinates
  • 17:50 VEX calculation of particle emission time
  • 18:30 Using sin funtion with emission time
  • 25:00 Redshift procedural noise from the rest attribute
  • 28:30 Scaling and adjusting the noise
  • 29:00 Visualize the noise value
  • 32:45 Comparing noise results when rest attribute is used
  • 36:30 Using RS State VOP to retrieve the rest attribute
  • 38:40 Using color ramps with rest
  • 39:10 Visulaizing displacement quality wireframe
  • 43:00 Subsurface radius and color
  • 49:00 Detecting and removing droplets after the sim
  • 57:50 Customizing the Houdini menu
  • 59:00 Wrapping up


Scene File

Part 1

22_11_15_foam_sprayers_pt1.hiplc

Part 2

22_11_20_foam_sprayers_pt2.hiplc