Author Topic: Phoenix FD Foam and Splashes playground!  (Read 28548 times)

2020-04-29, 15:10:16
Reply #15

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12690
  • Marcin
    • View Profile
3. The displacement used in Phoenix Simulator... Is that being handled differently by Phoenix and not by Corona? I am asking this because Corona's displacement is far superior(literally cutting edge quality ). If I apply the same Phoenix FD ocean tex map to a simple plane with corona displacement and the exact same map to the Phoenix FD ocean mesh simulator, the phoenix one looks really bad. And even if I increase the ocean subdivision it takes ages to calculate and it still looks bad.  EDIT: Even if I disable displacement from the Common Tab from 3dsmax own render setup, Phoenix still renders the displacement. This I assume has something to do with Phoenix devs..but it worth trying ...if Corona could handle that displacement as it's the best in class. Ever..

We will see if some improvements can be done here, but can't promise anything at this point.
Possible workarounds:
- Disable the native Phoenix object displacement. Then connect the displacement map to the material which is applied to your Phoenix object.
- Disable the native Phoenix object displacement. Then put the Corona Displacement Modifier on top of your Phoenix object and plug your displacement map there.

I tried this, and honestly did not see much improvement in quality/pre-rendering time, but maybe it is worth trying? Also, this way you let Corona handle the displacement, with autobump.
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2020-04-29, 16:40:16
Reply #16

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12690
  • Marcin
    • View Profile
1. !!Outstanding!! A Render element to contain only directly seen foam would be really really nice! This would help a lot compositing jobs and fine tuning the look!

Update: just adding a CMasking_Mask render element and picking the Particle Shader object seems to work fine. Please test this and let us know here if something seems to be missing.
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2020-04-30, 10:10:24
Reply #17

Flavius

  • Active Users
  • **
  • Posts: 167
    • View Profile
1. !!Outstanding!! A Render element to contain only directly seen foam would be really really nice! This would help a lot compositing jobs and fine tuning the look!

Update: just adding a CMasking_Mask render element and picking the Particle Shader object seems to work fine. Please test this and let us know here if something seems to be missing.

Hi there, sorry I was busy with *actual work :( *. I will get back to you, I remember trying this initially but there were some issues with above/under water. I will double check, and will get back, hopefully I find some time this week.

Congrats for all the hard work for this!

2020-05-03, 18:33:45
Reply #18

Flavius

  • Active Users
  • **
  • Posts: 167
    • View Profile


Yep, I remembered correctly, the C_Masking element doesn't work properly I think. Please see attached. It seems like the masking element ignores the size of the particles and only "reads' the dots...I don't know how to say it. I have specific size values in the Foam and Splash shaders and probably is not taking those into account?

Another thing, and this really is important. The Cutter geometry in the shader rollout is not working with Corona. It ignores it completely. Is this difficult to implement?

Thanks!


2020-05-04, 19:14:10
Reply #19

Flavius

  • Active Users
  • **
  • Posts: 167
    • View Profile

We will see if some improvements can be done here, but can't promise anything at this point.
Possible workarounds:
- Disable the native Phoenix object displacement. Then connect the displacement map to the material which is applied to your Phoenix object.
- Disable the native Phoenix object displacement. Then put the Corona Displacement Modifier on top of your Phoenix object and plug your displacement map there.

I tried this, and honestly did not see much improvement in quality/pre-rendering time, but maybe it is worth trying? Also, this way you let Corona handle the displacement, with autobump.

Hi,

As I mentioned in the email, this doesn't because the geometry is very "turbulent" at the back part of the sihp and it messes up the ship's wake as well. Another HUGE problem is thar Phoenix goes out of RAM(I have 64 GB) even with ocean subdivisions to 2.5 and off screen margin to only 20. I cannot render over 1600 px height. Corona displacement has no issues AT ALL with this. I know this is a Phoenix problem but that is why I am trying to get Corona to handle the displacement...Also the time to parse the scene is insane with Phoenix. You can try it out, with the a simulation frame loaded ( I think I've sent that with the scene, if not please let me know and I will send it.) I can also record the screen to show the problem or? I don't know, I'm getting desperate here :))
« Last Edit: 2020-05-04, 19:26:18 by Flavius »

2020-05-05, 11:55:56
Reply #20

svetlin.nikolov

  • Users
  • *
  • Posts: 2
    • View Profile
Hey,

Just a few notes that should help you understand the setup better in case you've not found these in the Phoenix docs.

Phoenix in Max always produces a standard Max mesh in the viewport.

This means that you can do whatever you like with it - turn it into an editable poly, add modifiers, etc - it's just any other geometry, it just changes each frame.

So you can put any kind of displacement modifier on top of it. You just gotta know that the mesh detail in Mesh render mode comes directly from the simulator grid resolution. If you want more detail, you might need to subdivide it additionally.

In Ocean Mesh and Cap Mesh modes Phoenix subdivides the mesh into screen space according to the Ocean Subdivs. Note that 2.5 is a huge value. It means that per each rendered image pixel, you will get 2.5x2.5 -> 6 quads or 12 triangles. This is likely the reason you run out of RAM.

Since the Phoenix mesh is just like any other mesh, you could throw a displacement modifier on top of it without using the Displacement under the Rendering rollout of the Simulator. The difference between the displacement modifier and the built in displacement is that the latter produces the viewport mesh, while the former is calculated at render time. This is why there is no problem even to have both, though I doubt that this would be useful. So you can have a flat Phoenix Mesh or Ocean Mesh, and you can put any displacement modifier on top of it.

Additionally, if you are missing detail in the displacement and you use a Phoenix Ocean Tex, you might need to look at the Ocean Tex option and increase its level of detail.

I hope this helps shed some light on the inner workings of the tools, so you can have better control over what happens. Cheers :)

2020-05-05, 12:03:31
Reply #21

Flavius

  • Active Users
  • **
  • Posts: 167
    • View Profile
Hey,

Just a few notes that should help you understand the setup better in case you've not found these in the Phoenix docs.

Phoenix in Max always produces a standard Max mesh in the viewport.

This means that you can do whatever you like with it - turn it into an editable poly, add modifiers, etc - it's just any other geometry, it just changes each frame.

So you can put any kind of displacement modifier on top of it. You just gotta know that the mesh detail in Mesh render mode comes directly from the simulator grid resolution. If you want more detail, you might need to subdivide it additionally.

In Ocean Mesh and Cap Mesh modes Phoenix subdivides the mesh into screen space according to the Ocean Subdivs. Note that 2.5 is a huge value. It means that per each rendered image pixel, you will get 2.5x2.5 -> 6 quads or 12 triangles. This is likely the reason you run out of RAM.

Since the Phoenix mesh is just like any other mesh, you could throw a displacement modifier on top of it without using the Displacement under the Rendering rollout of the Simulator. The difference between the displacement modifier and the built in displacement is that the latter produces the viewport mesh, while the former is calculated at render time. This is why there is no problem even to have both, though I doubt that this would be useful. So you can have a flat Phoenix Mesh or Ocean Mesh, and you can put any displacement modifier on top of it.

Additionally, if you are missing detail in the displacement and you use a Phoenix Ocean Tex, you might need to look at the Ocean Tex option and increase its level of detail.

I hope this helps shed some light on the inner workings of the tools, so you can have better control over what happens. Cheers :)

Hi Svetlin!

Thanks so much for clearing out some things. I recently got the latest nightly build of Phoenix(and permission to write on the forums) and I have a couple of things I have noticed, maybe even some small bugs I discovered. I will prepare screenshots and everything needed and we will continue (hopefully) the discussion on the Phoenix FD forums.


2020-05-05, 14:40:10
Reply #22

svetlin.nikolov

  • Users
  • *
  • Posts: 2
    • View Profile
Absolutely, please ping us if there is anything fishy you stumble upon :)

2020-05-05, 17:15:12
Reply #23

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12690
  • Marcin
    • View Profile
Since there is a large number of requests, I made this little summary. Hope it's correct and up-to-date:

Render element showing foam particles
Internal report: 496887441
Suggested solution: use CMasking_Mask render element
Problems: Renders incorrectly? Something wrong when under/above water?
@Flavius - I am not able to see what is wrong in the images you provided. Could you please send me an example scene, where the CMasking_Mask element is not producing the expected result? Please make the scene as lightweight as possible. :)


Motion vectors
Internal report: 496892730
Solution: Fixed, should work fine.
Problems: are there any?


Phoenix vs Corona displacement performance
Internal report: 497834853
Suggested solution: (as suggested by Svetlin) Disable the displacement option in the Phoenix object. Put Corona Displacement modifier on top. Does that help?
Problems: @Flavius - are there any when using the suggested solution above?


Cutter geometry
Internal report: 499361546
Status: we probably won't have this in V6, but we may have it later.


Separate environment map
Internal report: 499377255
Status: most probably this won't happen, because:
- it's adding unnecessary physical incorrectness
- it would be hard to implement in Corona, and might introduce some further issues


Wetmaps
Internal report: not reported yet
Status: We should look into it. I am on it!

Update: here https://forum.corona-renderer.com/index.php?topic=28883.msg169718#msg169718






« Last Edit: 2020-05-05, 18:14:16 by maru »
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2020-05-05, 17:32:39
Reply #24

thilima3d

  • Active Users
  • **
  • Posts: 26
    • View Profile
    • Thi Lima - 3D, Consulting & Online School

* This is a TEST... I was not worried about wetmaps or veg animation *
Another simple test using Phoenix FD (with foam) + Corona 6.0 (Daily Build) + Caustics + Motion Blur.
Hope you like it :)

https://thilima.com.br/course/coronarender/
https://www.instagram.com/thilima3d/
https://www.facebook.com/thilima3d
https://www.behance.net/thilima3d
https://www.youtube.com/user/thilima3d

2020-05-05, 17:52:58
Reply #25

caioquintana

  • Active Users
  • **
  • Posts: 11
    • View Profile
Hey guys,

could not find any details how corona renders phoenix particles. I have a simulation made in Houdini, is it possible to render in corona? If I export particles and ocean mesh in alembic, can I use velocity attributes? Can I render foam particles as volume or just points/spheres?

Thanks

2020-05-05, 17:59:25
Reply #26

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12690
  • Marcin
    • View Profile
Update on wetmaps:
It seems to work fine as soon as you DISABLE the "Render-time Only" checkbox in the Particle Texture map. See the attached renders from Corona and Vray.
I will now report this to our devs.

Update:
Reported:
(Internal ID=502846150)
« Last Edit: 2020-05-05, 18:13:55 by maru »
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2020-05-06, 09:56:13
Reply #27

Flavius

  • Active Users
  • **
  • Posts: 167
    • View Profile
Hi Maru,

Regarding the Corona Mask for the foam shader, please see attached. I have put a curves layer, dragged the sliders all down so the difference is visible. It looks like the mask is not covering the foam particles, and even if I adjust the levels of the mask to be in full range there are still gaps.

-----

As for the displacement, I will take this on the Phoenix FD Forums, maybe I am doing something wrong, but to reach the same level of detail I have with Corona Displacement in Phoenix displacement I would need insane amount of ocean subdivisons values which leads me out of RAM (I do now understand why but still...)  See the attached example... I realise one is calculated at the render time, and one is actually displaced. But in the end for me, using Phoenix displacement at an animation of 600 frames leads to over 8hours in extra rendering time and a bad horizon. Phoenix is a great tool and Corona has epic displacement, I 'm just trying to combine them :)). I will try to use displacement over the mesh but that leads to other problems for example, Phoenix moves the particles up/down according to the displacement map.

EDIT: Putting Corona displacement over Phoenix FD mesh leads to a 3dsmax crash on pressing the cancel button or unlimited calculations of displacement.  EVEN LATER EDIT : If I put Edit Poly on top of phoenix sim and then add corona displacement it works, but...the displacement calculation times goes of the roof again. I thought it's about the number of polygons, but putting the displacement on a 3 million poly plane is really fast so it's not the number of polygons of the underyling mesh that the displacement is added on... I will convert the phoenix mesh to alembic and see how that goes.

---

One more thing..the height parameter in the Phoenix Ocean Map seems to be ignored by Corona displacement? even setting it to 0 makes no changes? Is this a know issues that I missed or am I being doing something wrong?

---
!! Thanks !!
« Last Edit: 2020-05-06, 12:09:05 by Flavius »

2020-05-06, 21:35:00
Reply #28

Flavius

  • Active Users
  • **
  • Posts: 167
    • View Profile
!!

Collapsing the mesh to edit poly and applying the Corona displacement modifier reduces the calculation time back to 2-3-10 seconds tops.

exporting the phoenix fd mesh to alembic works, it calculates the displacement really fast. But doing it this way complicates my workflow a lot...


« Last Edit: 2020-05-06, 23:58:30 by Flavius »

2020-05-07, 14:09:47
Reply #29

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12690
  • Marcin
    • View Profile
Regarding the Corona Mask for the foam shader, please see attached. I have put a curves layer, dragged the sliders all down so the difference is visible. It looks like the mask is not covering the foam particles, and even if I adjust the levels of the mask to be in full range there are still gaps.
Do you have the "Propagate masks" option enabled for your water material? If not, try setting it to "Always" (see screenshot).
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us