Snow accumulation ideas ?
#1
Hello there,

I've been playing with tyflow and its absolutely amazing.

What would be the best option to simulate snow accumulation on an object ?

I've been thinking about a brute force version were you actually let particles fall on an object for a long time and let them stick together on top of each other when they get closer to each other... but it feels like its going to be massively boring to watch a virtual snow fall happening for hours (and its going to be massively ressource consuming)  

Another option I tested is to let snow emerge from the surface, let the particles go up and then stop at some point. It works pretty ok but in some case the results are not convincing, especialy when the surface is very steep where you would expect the snow to accumulate less compared to an horizontal surface.

So my question is : Can you control the speed of a particle going upward depending on the surface's normal it was born on ?



This is an example of accumulated snow as I want to simulate :
https://mvistatic.com/photosmvi/2018/01/...x_640_.jpg

Does using tyflow makes sense in this situation?
  Reply
#2
You can select polygons in top view (with "ignore backfacing" on), and probably you need to deselect some polygons. 
Then spawn particles on selected geometry, and use tymesher to mesh it. 
You can animate grow with spread operator (make animated Z axis). 

I'll attach file. 

Hope this helps. 

[Image: Screen-01.jpg]


Attached Files
.rar   snow.rar (Size: 80.28 KB / Downloads: 299)
  Reply
#3
Thanks for your answer and the time you have dedicated to show me your idea !

I like your simple and straightforward solution and it works pretty well from afar. I think the face selection can be done automaticaly by using a Position Object operator and by checking "density by normals" in it.

Your method add one uniform "layer" of snow and I was wondering how this idea can be pushed further, simulating more snow accumulation where it would naturaly happens.

This is what I would like see :

[Image: tyflow-snow-accu-02.jpg]

I've been playing around the idea and I can get up to here :

[Image: tyflow-snow-accu-00.jpg]

Event 1 : I generate particles on the surface depending on the Z normal of the mesh and send them to Event 2, otherwise they are deleted.

Event 2 : I push the particles upward but only if they have enough neighbors, so the particles at the edge stays where they are and are sent to Event 3 where they can rest.

Event 3 : For the demo I just use small sphere to see how it looks but it can be tymeshed for the final result.

It looks ok so far but this system is not considering the steepness of the mesh, so it generates to much particles where it should not (the steepy part of the tube, around the middle). This is why I was wondering if there was a way to prevent this ?
  Reply
#4
Now, that's a tricky question (for me), and if I come up with something simple, I'll definitely post here. 

So, you basically want them to pile up... basic rule would be... the more polygon is horizontal, the higher is piling up. 
There's, of course, always an option where you could just "let it snow, let it snow"  Smile with PsysX, and high friction, and then mesh them. 
But I guess, for larger scenes, that would be absolutely masochistic. 

I am thinking of a way... let's say... we render one texture strictly from the top view using a falloff map. Whites would be most horizontal polygon, blacks would be most verticals polygons. We project that map back to the model, and use it as a displace on mesh that will be used for particle placement... that's one idea... 
You can also play with Tyselect modifier on the mesh itself. Check "raycast", and you will see icon in submenu... raise that Icon up, and make it point down to the model... it will select your model in similar way like you already did. Then you can play with soft selection.. maybe shrink selection a little bit... 
Also, there's an raycast object placement operator in Tyflow that do same kind of selection (raycast)... I didn't also know about it, until today :Smile

So... lot's of stuff to try... I just don't have time. 

Maybe Tyson, or someone else, will have some really simple solution for this.
  Reply
#5
Quote:So, you basically want them to pile up... basic rule would be... the more polygon is horizontal, the higher is piling up.

That is exactly what I would like to see happen. I know that with tymesher and a relax modifier on top of it you can get interesting results to soften the big masses and I think I would be happy with it.

Quote:There's, of course, always an option where you could just "let it snow, let it snow"  [Image: smile.png] with PsysX, and high friction, and then mesh them. 

But I guess, for larger scenes, that would be absolutely masochistic.
I haven't played the PhysX operators, I should give it a try to see how it goes and post my results here. Its a brute force option but sometimes its the best thing to do Smile


Quote:I am thinking of a way... let's say... we render one texture strictly from the top view using a falloff map. Whites would be most horizontal polygon, blacks would be most verticals polygons. We project that map back to the model, and use it as a displace on mesh that will be used for particle placement... that's one idea...
This is intersting, even if it requires some setup, if the map is fine enough it can give intersting results. I've been vaguely thinking about it as a last chance scenario, I have to give it a try too Smile

Quote:You can also play with Tyselect modifier on the mesh itself. Check "raycast", and you will see icon in submenu... raise that Icon up, and make it point down to the model... it will select your model in similar way like you already did. Then you can play with soft selection.. maybe shrink selection a little bit...
Oh god I didn't know there was tymodifiers ! New toys ! Yay !

Anyway, thanks for your contribution, it helps me a lot, I hope to come back with interesting results to share !
  Reply
#6
I think I came up with pretty simple solution. Smile
Yes, it's with using map, but is very easy.

I will try to record small video tutorial later, and will post here.
I say I will try, because I am going to dentist soon, so depending on his torture methods, I might be able, or not, to record later today. Smile
  Reply
#7
hmmm how about using a vray curvature map?
  Reply
#8
Ok.. here it is. 
https://www.youtube.com/watch?v=ewwNJHOa...e=youtu.be

So, maybe this approach.
  Reply
#9
Hey, d4rk3lf thanks for the video !

I really like this proposition, I'll play around it and see if I can use it production wise.
I've been a bit busy in the the last few days but I hope beiing able to test this idea this weekend. 

@joe_coke playing with a curvature map can be another option but maybe its going to generate not so realistic results in some cases. But its better to try first. I have a feeling the curvature map will prevent snow to appear on flat surfaces even if they are facing the sky ... but yeah, thanks for the suggestion Smile
  Reply
#10
I think I found a way to script all my troubles away Smile

I basically ask the particles to scale verticaly depending on the grey value picked on a texture map

So with a texture based on a falloff map I get this :


[Image: tyflow-accu-script.jpg]

I'll try this idea with different geometry to see how it goes !
  Reply
#11
-----------------
Very cool. 

It would be cool if we could find a way to do that falloff texture proceduraly, so it's straight-forward solution. 
Basically, we would "only" need to find a way each polygon getting whiter according to his horizontal position. (100% horizontal - pure white, vertical -  pure black). 
Maybe something with Tyselect modifier... or particle property operator... 

not sure really... but it would be really good if we can get rid of that step.
  Reply
#12
This so funny, I had the same picture as a reference, I came here via Google, because I wanted to recreate that.

I found a quick and simple solution without using a texture or script.

May not be perfect, but you can tweak it yourself, I will try to see if I can make a tutorial or post some pics!

   
https://linktr.ee/jaynl - Twitter and Behance for the latest renders!
  Reply
#13
[Image: materials_closeup.jpg]

[Image: materials_acc_flakes_800.jpg]

[Image: tyFlow.jpg]

More tests here:
https://www.behance.net/gallery/11480949...rial-study

tyFlow:
Birth 250.000
Surface Force 0.1, Distance 1.0 and Steering Angle 90.0

tyMesher:
Absolute 1.5
Mulitplier 1.2
Voxel size 1.2
Gaussian filter

Not perfect, but it works for some quick accumulation.

I would really love a real way that just stacks up flakes as soon as they touch another one or the selected surface.
https://linktr.ee/jaynl - Twitter and Behance for the latest renders!
  Reply


Forum Jump: