Home Technical Talk

Animating Normal maps to achieve rain drops in 3DS Max or Unity3D

13
polycounter lvl 6
Offline / Send Message
D4N005H polycounter lvl 6
Hello.

How to achieve dynamic rain drops (and water drops) in 3DS Max for games or Unity?

Watch some photos of my point below:
Photo one Have a look at the wet body of this car in NFS Rivals:
need-for-speed-rivals-screenshots-wallpaper-04.jpg

Photo two Just look at the dynamic water drops in the Project C.A.R.S photo below:
maxresdefault.jpg

Photo Three and Four Then we have GranTurismo here, watch the tiny water drops in the Project C.A.R.S screenshot:

maxresdefault.jpg

Photo five This is a photo that should be watched, look at GTA V's rain drops:

hqdefault.jpg

And finally A photo of real world rain drops.

shutterstock_165839348_windshield_rain_car_CBCKv2.png

I know programming, I've used Unity3D and I've used 3DS Max for a while, I also know it is hard to achieve these shaders but everything today is almost hard to get. So please express a way to get such effect for my games if possible.

Regards.

Replies

  • Eric Chadwick
    Drive Club looks great.

    DaringMetallicBovine.gif

    [ame]http://www.youtube.com/watch?v=hViwrRGfuHU[/ame]


    Discussing this on another forum, probably a 2D particle sim for the front window, wind forces, deflectors on the wipers, maybe using a metaball system for clumping. Side window probably is done with looping normal maps/height maps (water streaks repeat).
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Thanks Mr.Eric, you've helped me a lot. Yes Driveclub is so realistic in graphics.

    Okay. I am learning how to code shaders. what you've said is really useful for me, thanks again.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    According to what I've learned so far, This way should work, write your comments and opinions about this if possible.
    swzdr6.jpg

    considering render times so much fast, we can assume that there are multiply passes in a frame.
  • Eric Chadwick
    Try it out! This is the best way to learn, by finding out what does or doesn't work, trial and error. I learn the most from my mistakes.

    Get good reference video & pictures. Try to replicate a real effect. This will keep you on the path.

    Look into dUdV, a shader trick for water refraction. http://wiki.polycount.com/wiki/DuDv_map
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Okay, thanks. I am working on a node based shader editor called "Shader Forge", I will share the results here as soon as I get an appropriate result.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Hm... With that you are in an easy case. There are many example images on the net for flowing water material setup with nodes. Probably you'll find a thing that is really close to what you want.

    Here is one basic example, I think you could start from here:
    https://udn.epicgames.com/Three/MaterialExamples.html#Wet

    If you need explanation about it, let me know.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Thanks for your reply.Well that was the one of the cases, the harder one (windshield) and the water drops of the car body is remained. I will read the link and then if possible, ask questions here.

    But one thing, in 3DS Max, I used a normal map and specular map to simulate a wet surface:
    28tjcm0.jpg

    but this should be animated in Unity3D some how (water drops movements on car body, I mean), I should figure this out too.
  • RN
    Offline / Send Message
    RN sublime tool
    A possible way to generate the rainy glass is to use a dynamic texture. Through programming you 'blit' water droplet normal map textures onto the normal map of the windshield of the car.
    Then that normal map is used in the refraction shader that distorts the scene.

    To "clean" the windshield (say, when the wipers sweep the glass), you can also blit a neutral (blue) rectangle onto the window normal map, with a rotation and scale that matches the wiper state in the windshield.
    There's a minimal calibration necessary for this to be visually convincing.

    In the shader the normal map is just used to offset the sampled pixels. So a neutral direction (which will be [0, 0, 1]) will indicate that no distortion will happen, for parts of the windshield without water.
    The rendering order should be: environment, windshield and then the car. The windshield rendering will sample the current framebuffer (containing only the environment).

    Edit: there's some great ideas here https://seblagarde.wordpress.com/2012/12/27/water-drop-2a-dynamic-rain-and-its-effects/
  • Shrike
    Offline / Send Message
    Shrike interpolator
    dont forget the refraction effect thats pretty important for water drops , can be done with the same normals or displacement map, theres also a built in function for that in shader forge if I recall correctly
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    but this should be animated in Unity3D some how (water drops movements on car body, I mean), I should figure this out too
    I just found a way to simulate it in Unity3D and also animate the maps, here is the result:
    FixedAnotherDromedary.gif
    I will explain how to recreate this effect as soon as possible. However this is not really prefect and yet windshield and the car body are still in queue.

    EDIT: Kryzon, your suggestion is very useful, I should think about this soon. @Shrike, thanks for your seggestion, I just did that. I just added refraction and is awesome (see the picture below). However for car body, Refraction seems not working, logically. However Eric said about the refraction and DuDvs and I will use that approach for the exhaust heat later. Please share your knowledge more here and I also am trying to do my best to make this thread useful for other developers,too.

    op_Untitled.jpg
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Watching Drive Club video clips, I believe they only used a kind of particles and it is nothing to do with normals... Although Mr.Chadwick said something about it , but this is just not clear for me.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    A Car body one:
    21km3kl.jpg
    what do you think?
    EDIT: did some tweaks.
    5ul3l3.jpg
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    I think the water bubbles are too dense and small. Also, you should use a direction mask or something, so it wouldn't appear on the angles/directions where it shouldn't. For the moving one, you could make them stretching a bit and making them leaking. Also, you can make them flow more naturally, and not completely straight. For that, you can use a simple black and white blurred image with brighter blurred (not straight) lines. Tiling is also very apparent atm. And lastly, I see you use the basic UV coordinates to map the water normal, which is causing unwanted stretching where you didn't relax the faces enough. Maybe you should project them in world space so it would be regardless of your uvmap, so no unwanted stretching.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Hmmm...Okay thanks for the info. But I'll do those later. I am obsessed with the windshield effects.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Okay now I have a question. Why you ask, if you don't implement anything that we advice? xD No anger though, I'm just not understanding.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Obscura wrote: »
    Okay now I have a question. Why you ask, if you don't implement anything that we advice? xD No anger though, I'm just not understanding.
    No problem, may be a good question,too. I am taking your advices, I can't continue working without your suggestions and guidance . Your advices are taking too long to be implemented. I'm very new to shaders, so just give me some time to learn the basics and then I definitely share the results with you. For example you've said I should use world space UV and stuff like that, I have no idea how to do them, so I should have a research about them and then apply them to the game.

    for example Shrike told me to add refractions, I did it or Kryzon told me about "bliting" and later I should learn that. Even I am reading the link that you've shared (the UDK page) and that is very useful, I am only one person so I can't do everything very fast. I am taking note of all of your suggestions. And mr.Erick's suggestions are vital for my projects; I need all of your recommendations guys,though.

    [Deleted Text]
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 20
    why the pressure or stress? This is a personal project right, just do whatever you feel like at the pace you feel like. Playing around with it... No reason to promise anyone anything, you do this for yourself only.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Yeah you're right, but I actually want to finish this fast.

    Anyways, although I am studying the ways that were mentioned here for the windshield, but I'm just wondering something else....how about simulating water in 3DS Max and then import it into Unity3D?
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Hey, I just made an example for you for the windshield wiper+dynamic bubbles... Sorry for the poor video quality, but hopefully its visible. I added only 1 dynamic bubble yet, but the others would work the same.
    [ame="http://www.youtube.com/watch?v=JAJ-pImnqKc"]https://www.youtube.com/watch?v=JAJ-pImnqKc[/ame]

    Also here is the material setup and the animation setup.
    R2HATlP.jpg

    These are just the basic I didn't add distortion or any fancy thing, I just wanted to show how the moving bubbles could be approached. This is just one option btw.

    I think there is no easier way without coding... A similar animation tool is available for Unity.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    A few other things: I made the bubble not tiling with setting the texture address to clamp instead of wrap. The wiper need proper rotation center, this can be set in the rotator. For more bubbles, you need more or the related normalmap setup, and then each of them can be controlled individually. It won't be the cheapest material, but it isn't so expensive and it can look almost the same as in Drive Club (I think...). You can do some math with the values in code if you want to add physics and such, but I'm not sure if this is really necessary. The reason for the opacity thing is that you can reuse the bubbles, and give them new starting position without making it visible.

    As a last note, you should take a look at clear coat effects, so you won't loose the specular and normal direction of the underlaying surface (car body).
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Hmmm... I tried making merging bubbles, but it wasn't successful. I could find the intersections, but I couldn't average intersected parts normal values properly. Any idea on how to do it? I can average values, but I don't know yet how to magic the values together properly into proper normal data. Also I figured out that this merge thing can be very problematic because finding which bubbles are intersecting each other is hard, it would need a lot of nodes.

    Intersection search:

    I used a black-white bubble mask with the same coordinates as what the given bubble normal use. I did that with an another one too. I Added the 2 masks together, so I get value above 1 where they are intersecting. Now we can know where are the intersections, an IF can tell it. If A (added masks any pixel value) is greater than 1.0001 then it returns the union.

    It would also require some sort of filtering on the edges of the union, so soft transition between the original normals and the averaged normals would be possible. Maybe a sobel edge detection method would work?
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    WOW, a good guidance! thanks for the effort, yet it looks freakin' hard. :D
    I should try it with shader forge in Unity3D. Lots of new things there.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Well... before I start doing anything, I simulated the particles in RealFlow because Obscura and Kryzon just clarified about the window shaders but the meta balls are still mysterious for me, And I thought I was in the best way to make those meta balls, I then imported the simulated meta ball particles into 3DS Max, but I couldn't import it to Unity3D because it is not a keyframe animation, even I couldn't import it with an unofficial vertex animation importer. (More info about the script is here) and also it seems that Unity's built in particles can't be used for the target that we have.

    wjtird.jpg
    So... Unity3D particles won't work as expected, Unity3D can't import RealFlow meshes... this looks impossible for unity3D to handle.

    For now, I paused this project since I just got puzzled. I will study the "blit" and what Obscura said in the last posts soon. Hopefully I will find a way for that. This is way harder than I thought,though.
  • Eric Chadwick
    This might be interesting to you. I did a search for "metaball" on the Unity website, tried a couple links, found this one.
    http://codeartist.mx/tutorials/liquids/
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    I will try to work on a solution for the dynamically merging normals, I just have to understand the sobel thing first. Unfortunately I don't remember to the name of the anim tool for Unity but as I saw it is close to Matinee in Unreal, so it could work.

    About the realflow thing: I don't think that you could use that animated mesh in any way in a game engine, because it has changing topology for example, and they doesn't have bones or any reference point to animate. Game engines can handle only vertex anim driven by bones, or morphs, or vertex anim with material effects. But, I think you could bake a flipbook texture from the real flow mesh, which can work perfectly, it just need huge resolution for what you want. A flipbook material setup is very simple, it require only a few nodes. But it wouldn't be dynamic at all.

    So this is how a flipbook texture looks. Sprite sheets works the same way... You have frames rendered out and put next to each other, and are simply stepping on then with modifying the current texture coordinate.
    Flame_FlipCard01.jpg

    Here is an example for the flipbook. He is showing the material setup around 1:10. With a very little bit of coding, or with an anim tool you can make it playing the frames.
    [ame="http://www.youtube.com/watch?v=6K8XMc6Z89M"]https://www.youtube.com/watch?v=6K8XMc6Z89M[/ame]
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    This might be interesting to you. I did a search for "metaball" on the Unity website, tried a couple links, found this one.
    http://codeartist.mx/tutorials/liquids/

    Oh yes, I saw that yesterday. Thanks for sharing the link,though.

    That's for 2D games, I did tried it in my game and I tried it with the Unity3D's particle emitter, unfortunately the particles couldn't get affected by the wipers, also some minor errors occurred,either. Drove me nuts... .
    :)
    However, I work on it more when possible.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Obscura wrote: »
    I will try to work on a solution for the dynamically merging normals, I just have to understand the sobel thing first. Unfortunately I don't remember to the name of the anim tool for Unity but as I saw it is close to Matinee in Unreal, so it could work.

    About the realflow thing: I don't think that you could use that animated mesh in any way in a game engine, because it has changing topology for example, and they doesn't have bones or any reference point to animate. Game engines can handle only vertex anim driven by bones, or morphs, or vertex anim with material effects. But, I think you could bake a flipbook texture from the real flow mesh, which can work perfectly, it just need huge resolution for what you want. A flipbook material setup is very simple, it require only a few nodes. But it wouldn't be dynamic at all.

    So this is how a flipbook texture looks. Sprite sheets works the same way... You have frames rendered out and put next to each other, and are simply stepping on then with modifying the current texture coordinate.[...]
    Okay.
    Thanks for the info, it seems it gets too much ram and is not 3D. (particles in RealFlow were at least 3D). I will use this technique for other things,though. It is useful.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Well, actually maybe this flipbook thing could be one of the best solutions. You don't need it to be 3D. Also, you would use compression so it wouldn't use that much of memory. I would highly recommend to at least give it a try. I'm sure it can look good because you would bake from the RealFlow mesh.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Hmm okay then, I'll try this. If I go to the details, I should bake a normal map, am I right?
    I mean I should bake a normal map of the particles that were created in RealFlow and then put it on the windshield, is this true?

    Sadly these ways are - as you've said - not dynamic... I might retry working on that 2D particle, If I failed, I'll try this flipbook method.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    We will be out of solutions soon though :D There aren't too much other ways other than what we already mentioned.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Yeah, you should bake a normalmap sequences.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    We will be out of solutions soon though :D There aren't too much other ways other than what we already mentioned.
    Yes! hopefully. :D I've got headache!
    Yeah, you should bake a normalmap sequences.
    Okay.


    I believe it's highly possible to achieve the meta ball effect with the asset that Mr.Chadwick provided it's link. (the 2D particle) I will be working on it next two days, since tomorrow I should work on an other project.
    EDIT: I changed my mind, I will work on the 2D Particles tomorrow morning. I highly believe that it is super easy to make those meta balls with the 2D Particle.
  • RN
    Offline / Send Message
    RN sublime tool
    I still think a dynamic, render-target texture is the way to go.

    With a random timer and some random properties you can "stamp" as many water drops as you want onto the windshield normal map:

    Water_drop_normal_map.png (Notice the fringe of neutral normal map colour so when a drop falls on top of another it'll clear the one below.)

    Windshield_normal_map.gif

    Each time the internal timer ticks you change the delay to some random value, so drops fall at random moments.
    The drops are rendered as quads onto the dynamic windshield normal map texture using manual GL commands.

    - http://answers.unity3d.com/questions/31651/random-delay-time.html
    - http://docs.unity3d.com/ScriptReference/WaitForSeconds.html
    - http://docs.unity3d.com/Manual/class-RenderTexture.html
    - http://docs.unity3d.com/ScriptReference/GL.Begin.html

    You can also encode some other information in the alpha channel of that normal map texture. Something like turning the effect on or off for a pixel, if the alpha value is above 127 etc.

    When you want to clear the normal map (for example when the wiper sweeps) you can also render some primitive into the texture like a polygonal fan and using a neutral normal map colour (127, 127, 255):

    Windshield_normal_map_clear.png

    03fig02.jpg
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    This is great! So you are dynamically creating quad meshes? How would you do that on a bended windshield?
  • RN
    Offline / Send Message
    RN sublime tool
    Even if the windshield is bended, isn't it mapped onto a flat plane (in order for the normal map to cover it)?

    Windshield_mesh.png

    I'm not sure if this would introduce too much distortion.
    EDIT: The normal map texture is always flat, so when rendering to this texture you just use screen-aligned quads.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    About the "bended windshields" I believe it is not that much important. Great tips here.

    Here is what I did with the 2D Particles, it is now more ready to behave like the water drops of the DriveClub's metaballs.
    o5owv6.jpg
    This needs more time, I hope in the meanwhile, the problem about the normal maps gets solved.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    @Kryzon - I think now I understand your idea better. So you have a 2d scenecapture somewhere in the level with a plane in front of it, and you are spawning the quads. Then it gets into a dynamic rendertarget2d so you can use it as a normalmap right? I'll do a test about this for myself. Maybe it works even with physics.

    @D4NOO5H - I don't think Driver Club used metaballs in the way you think. That would be as expensive and impossible (in my opinion) as using a RealFlow mesh. Because of the same reasons. If they used them then they must had to bake them. I'd like to ask Eric about this, cause I don't THINK 3D metaballs is possible to use in games especially with physics. That would be extremely expensive. If it would be possible then we could do complex 3d fluid simulations in games.
  • Eric Chadwick
    I think they're using 2d-only metaball particles.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    FINALLY (somehow) ...
    IncompleteUnlinedFairybluebird.gif

    After 6 hours I made that 2D particle act as the water drops dynamically as DriveClub. However each emitter slows down frame rate ( -4 FPS per 2D particle emitter).
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Obscura wrote: »
    ... I'll do a test about this for myself.
    We'd be happy if you share the results with us,though.
    Obscura wrote: »
    @D4NOO5H - I don't think Driver Club used metaballs in the way you think. That would be as expensive and impossible (in my opinion) as using a RealFlow mesh. Because of the same reasons. If they used them then they must had to bake them. I'd like to ask Eric about this, cause I don't THINK 3D metaballs is possible to use in games especially with physics. That would be extremely expensive. If it would be possible then we could do complex 3d fluid simulations in games.
    Please have a look at my previous post. I do bake or add fake water drops and those dynamic things that you've showed us in your last post,too. Then when this part of the project finished, I'll describe it here.

    So up to now, the wetness of the car body and the windshield's particle are 50% done. That's awesome.

    @Obscura, I'm going to do what you've said about the water drops of the car body tomorrow or sooner (Outed below) :
    Obscura wrote: »
    I think the water bubbles are too dense and small. Also, you should use a direction mask or something, so it wouldn't appear on the angles/directions where it shouldn't. For the moving one, you could make them stretching a bit and making them leaking. Also, you can make them flow more naturally, and not completely straight. For that, you can use a simple black and white blurred image with brighter blurred (not straight) lines. Tiling is also very apparent atm. And lastly, I see you use the basic UV coordinates to map the water normal, which is causing unwanted stretching where you didn't relax the faces enough. Maybe you should project them in world space so it would be regardless of your uvmap, so no unwanted stretching.


    I was wondering if there is anything more about that to do?
  • Eric Chadwick
    Excellent progress, keep going! You might be able to use 1 emitter.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Excellent progress, keep going! You might be able to use 1 emitter.

    Thanks Eric, Actually I actually should thank you for that 2D Particle again.
    Here is a new problem, when the car goes faster than 20 Km/h, it looks like it goes over 400 Km/h. (Please have a look at the image below)
    I don't know what to do for that, although I've increased frictions, changed weights and added forces via script. So asked a question here:
    http://answers.unity3d.com/questions/1026813/fake-rigidbody-speed.html
    still no answer for that.

    EDIT: I asked this with more details here: Click Here .
    NegligibleHeavyIslandwhistler.gif
  • Eric Chadwick
    Damping might help, I'm not sure what is exposed in Unity's particle system. You are probably getting near the limits of what you can do with the base system, so you need to write C# to make it better.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Damping might help, I'm not sure what is exposed in Unity's particle system. You are probably getting near the limits of what you can do with the base system, so you need to write C# to make it better.
    Yes I should do something via script. However I didn't use the Unity's particle system for it, because I had used it for this effect before but I was not successful, I then modified the 2D Particle's script so I should do something with that script.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    That 2D particle works perfectly when the car is not moving or is going too slow, it's sad that I can't do anything more for it (till I am writing this, at least). However that technique might be useful for splashing water effects, like when a car goes to a pit full of dirty water or something. Here is an image for more details.
    BriefChiefArizonaalligatorlizard.gif
    I decided not to waste time and paused working on the particles, instead I'm going to do what Kryzon said after finishing the car body water drops.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Is it possible to move a 2D texture on another texture 2D in a shader according to external forces? If so, we can combine that shader with the shader that this 2D particle uses then we can get the desired result easily.
  • RN
    Offline / Send Message
    RN sublime tool
    I like that last GIF, it shows that it's really some kind of particle system that's involved in the original effect.

    The problem with using a 3D particle system is that the particles need to be created in 3D as well. Right now they're all being created at the same spot on the windshield; it would need some spread as if the car is under heavy rain.

    I think you need to use a custom particle system -- something written in C# -- with abstract 2D particles that are only used to render normal map "stamps" onto the normal map texture of the windshield and any other part of the car that you want drops to be seen.
    You can still have particle physics related to car movement, wind, windshield wipers etc., it's just that it'd all be done in code, manually.

    The GIF from Drive Club posted by Eric seems to have particle physics only on the windshield. If you look close, the side windows just seem to erase and recreate particles at random, so there seems to be "tricks" involved (you don't need particle physics in the entire car).

    - - - - -

    When rendering, you set up a normal map texture as your render-target (everything you draw will appear on that texture), then you generate a single mesh consisting of several quads that represent each particle. All quads have the same "water drop normal map" texture like in post #34.
    Then you clear the normal map with a neutral colour and draw that mesh so the particles are stamped on it.
    The resulting normal map texture with the water drops is applied to the windshield and is what the refraction shader uses.

    The more particles, the slower it'll be. If it's extremely slow for the desired number of particles (since their logic would be written in C#) then it's possible to pass on all processing to the GPU in the form of "GPU-based particles" which is a technique that stores (and processes) particle data on textures, but it's much more complex.

    These are just ideas of course.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    D4N005H wrote: »
    Is it possible to move a 2D texture on another texture 2D in a shader according to external forces? If so, we can combine that shader with the shader that this 2D particle uses then we can get the desired result easily.

    That would be the same thing as what I suggested on the previous page :P The animated thing, you would just control it with physics instead of hand setting the parameters in an animation.The material setup could be the same or almost the same and you could control the material parameters with C#. So I think it should be possible, if you can get physics values and do some math with them.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Well this metaball thing drove me nuts, there was a problem of speed (as I've written in my last post) in these two days I managed to control the speed of the particles when the car goes fast by using 2D colliders and it was okay, look at the GIF below:
    GrimWearyIslandwhistler.gif


    Here is how it works:

    29divpj.jpg


    but suddenly I figured out a weird problem accidentally, look at the image below for more details about the new problem:

    148jg1z.jpg

    All that mean is that I should revert back to working with 2D particles with 3D colliders (like two days ago). But I'm going to do something about the normal maps and shaders first.
  • D4N005H
    Offline / Send Message
    D4N005H polycounter lvl 6
    Kryzon wrote: »
    I like that last GIF, it shows that it's really some kind of particle system that's involved in the original effect.

    The problem with using a 3D particle system is that the particles need to be created in 3D as well. Right now they're all being created at the same spot on the windshield; it would need some spread as if the car is under heavy rain.

    I think you need to use a custom particle system -- something written in C# -- with abstract 2D particles that are only used to render normal map "stamps" onto the normal map texture of the windshield and any other part of the car that you want drops to be seen.
    You can still have particle physics related to car movement, wind, windshield wipers etc., it's just that it'd all be done in code, manually.

    The GIF from Drive Club posted by Eric seems to have particle physics only on the windshield. If you look close, the side windows just seem to erase and recreate particles at random, so there seems to be "tricks" involved (you don't need particle physics in the entire car).

    Yes, thanks for your info. According to what I've done in these 4 days, it is the best option to use 3D particles instead of 2D.
13
Sign In or Register to comment.