iREAL Animated Ocean Water System

13

Comments

  • fixmypcmikefixmypcmike Posts: 19,685

    It uses all 5632 cores, with the scene loaded onto both cards.

  • IvyIvy Posts: 7,165
    edited September 2016

     

    It uses all 5632 cores, with the scene loaded onto both cards.

    I wonder why Daz can untilize all the cuda cores from 2 cards but not all the vram?    Is there a way I can load  a scene on both cards or set it up so I can use use all the vram from both cards?.

    Post edited by Ivy on
  • outrider42outrider42 Posts: 3,679

    Can this be used as water in a swimming pool? Like the public indoor pool? Can the tile itself be shaped, rather than be a square, like say a circle?

    On the Iray gpu thing... if you multiple cards, one with 6gb, and one with 2gb, and the scene takes 5gb, does only the 2gb card drop out, or does the entire scene get booted to cpu only mode? That would really, really suck if so.

  • hphoenixhphoenix Posts: 1,335
    edited September 2016

    Ivy,

    When you have the nVidia cards selected, if the whole scene will fit within THAT cards memory, it will be used.  This is done for ALL cards in your system.  So in your case (2x 980Ti), if the scene fits within the 6GB limit (of a single card) it will be rendered using BOTH cards.  Each card will get its own copy of the scene (so if your scene is 4 GB total, each card will use 4GB, for a total used of 8GB for the two cards) and will use its CUDA cores to render.  So the VRAM is used in BOTH cards (if the scene fits) and BOTH cards will use their CUDA cores toward the render.

    If you had two DIFFERENT nVidia cards (say a 4GB 970 and a 6GB 980Ti), and the scene fits in one but not the other (say, 5GB in this example) then ONLY the one(s) it will fit in the VRAM of will be used. (In this example again, the 980Ti card will render, but the 970 won't be used.)  If the scene took up 6.1GB, neither card would be used, and the render would drop to CPU.  If the scene were only 3GB, it will fit in BOTH cards, and both would be used.

    As to why it doesn't share the memory between them....Iray uses a lot of interacting calculations.  Within the card, memory access from the GPU chip is VERY fast.  But the moment it has to communicate with the other card (since SLI isn't used in Iray) it has to do it over the PCI-E bus.  Compared to the local memory, the slowdown is easily a factor of 20.  It would slow the rendering to a crawl.  This is why each card gets its own copy of the scene.  Trying to randomly pull data to the card across the PCI-E bus (even with a 16x slot) would slow down the rendering horribly.  Since the whole point of Iray (and GPU rendering in general) is to speed up renders, this was NOT allowed.

    Now, that said, SLI _should_ allow for memory sharing between GPUs.....slower than on-board memory, but not nearly as bad of a slowdown.  But you then run into the every confusing but nasty problem of 'cache coherency' where things get out of sync and what one card thinks a certain cards memory should have in it isn't what another card thinks it should.  Keeping everything synced results in even MORE of a slowdown.  When GPUs are simply using fixed-pipeline rendering (OpenGL/DirectX stuff) this isn't a problem.....it simply runs stuff through and it never 'revisits' GPU memory once something is through the pipeline for a given frame.  But in Iray, the algorithms (for ray-tracing, global illumination, and other high-end computations) the values can change based on nearby results, refinement, and more.  This means SLI does not work well for Iray-style rendering, due to issues with memory synchronization (there are other issues too, but this is the primary limiter for this particular problem.)

     

    Post edited by hphoenix on
  • mjc1016mjc1016 Posts: 15,001
    Ivy said:

    Interesting, I guess that is properly why I have maybe been having some issues then with these large scene.. thanks for that information.  Does daz utilize all 5632 cuda cores from both cards or does daz only use the 2816 cuda cores from the one card its using for Vram from?

    CUDA cores are added together, RAM is not.

  • IvyIvy Posts: 7,165
    hphoenix said:

    Ivy,

    When you have the nVidia cards selected, if the whole scene will fit within THAT cards memory, it will be used.  This is done for ALL cards in your system.  So in your case (2x 980Ti), if the scene fits within the 6GB limit (of a single card) it will be rendered using BOTH cards.  Each card will get its own copy of the scene (so if your scene is 4 GB total, each card will use 4GB, for a total used of 8GB for the two cards) and will use its CUDA cores to render.  So the VRAM is used in BOTH cards (if the scene fits) and BOTH cards will use their CUDA cores toward the render.

    If you had two DIFFERENT nVidia cards (say a 4GB 970 and a 6GB 980Ti), and the scene fits in one but not the other (say, 5GB in this example) then ONLY the one(s) it will fit in the VRAM of will be used. (In this example again, the 980Ti card will render, but the 970 won't be used.)  If the scene took up 6.1GB, neither card would be used, and the render would drop to CPU.  If the scene were only 3GB, it will fit in BOTH cards, and both would be used.

    As to why it doesn't share the memory between them....Iray uses a lot of interacting calculations.  Within the card, memory access from the GPU chip is VERY fast.  But the moment it has to communicate with the other card (since SLI isn't used in Iray) it has to do it over the PCI-E bus.  Compared to the local memory, the slowdown is easily a factor of 20.  It would slow the rendering to a crawl.  This is why each card gets its own copy of the scene.  Trying to randomly pull data to the card across the PCI-E bus (even with a 16x slot) would slow down the rendering horribly.  Since the whole point of Iray (and GPU rendering in general) is to speed up renders, this was NOT allowed.

    Now, that said, SLI _should_ allow for memory sharing between GPUs.....slower than on-board memory, but not nearly as bad of a slowdown.  But you then run into the every confusing but nasty problem of 'cache coherency' where things get out of sync and what one card thinks a certain cards memory should have in it isn't what another card thinks it should.  Keeping everything synced results in even MORE of a slowdown.  When GPUs are simply using fixed-pipeline rendering (OpenGL/DirectX stuff) this isn't a problem.....it simply runs stuff through and it never 'revisits' GPU memory once something is through the pipeline for a given frame.  But in Iray, the algorithms (for ray-tracing, global illumination, and other high-end computations) the values can change based on nearby results, refinement, and more.  This means SLI does not work well for Iray-style rendering, due to issues with memory synchronization (there are other issues too, but this is the primary limiter for this particular problem.)

     

    Thank you so very much for this information and taking the time to write it out to explain ti to me..  I have a better understanding how daz uses vram now .  this information will be a very big help in how i build my scenes in the futures,

  • BeeMKayBeeMKay Posts: 7,019

    Can this be used as water in a swimming pool? Like the public indoor pool? Can the tile itself be shaped, rather than be a square, like say a circle?

    On the Iray gpu thing... if you multiple cards, one with 6gb, and one with 2gb, and the scene takes 5gb, does only the 2gb card drop out, or does the entire scene get booted to cpu only mode? That would really, really suck if so.

     

    Swimming pool should work fine, the tile can be resized along the x/z axis to get smaller, but you could probably make it a circle by playing around with a cutout opacity preset.

  • IvyIvy Posts: 7,165
    edited September 2016

    Okay here is my iReal water pane test  Link- forgot to fill the boat with gas

     

    Forgot to fill the boat with gas. is a Daz Studio Iray & 3delight water pane comparison test. no sound in this test animation.. . this is only a test the scenes are combined.
    Scene one NVIDIA gpu rendering with Iray, Film length10 seconds . render time 9 hours 23 minutes Scene 2 CPU rendering with 3dl. Film length, 14 seconds, render time, 4 hours 53 minutes.

     both scenes are 1080HD
    this was only a test. .. thank you for watching.

    Post edited by Ivy on
  • hphoenixhphoenix Posts: 1,335
    Ivy said:
    hphoenix said:

    Ivy,

    When you have the nVidia cards selected, if the whole scene will fit within THAT cards memory, it will be used.  This is done for ALL cards in your system.  So in your case (2x 980Ti), if the scene fits within the 6GB limit (of a single card) it will be rendered using BOTH cards.  Each card will get its own copy of the scene (so if your scene is 4 GB total, each card will use 4GB, for a total used of 8GB for the two cards) and will use its CUDA cores to render.  So the VRAM is used in BOTH cards (if the scene fits) and BOTH cards will use their CUDA cores toward the render.

    If you had two DIFFERENT nVidia cards (say a 4GB 970 and a 6GB 980Ti), and the scene fits in one but not the other (say, 5GB in this example) then ONLY the one(s) it will fit in the VRAM of will be used. (In this example again, the 980Ti card will render, but the 970 won't be used.)  If the scene took up 6.1GB, neither card would be used, and the render would drop to CPU.  If the scene were only 3GB, it will fit in BOTH cards, and both would be used.

    As to why it doesn't share the memory between them....Iray uses a lot of interacting calculations.  Within the card, memory access from the GPU chip is VERY fast.  But the moment it has to communicate with the other card (since SLI isn't used in Iray) it has to do it over the PCI-E bus.  Compared to the local memory, the slowdown is easily a factor of 20.  It would slow the rendering to a crawl.  This is why each card gets its own copy of the scene.  Trying to randomly pull data to the card across the PCI-E bus (even with a 16x slot) would slow down the rendering horribly.  Since the whole point of Iray (and GPU rendering in general) is to speed up renders, this was NOT allowed.

    Now, that said, SLI _should_ allow for memory sharing between GPUs.....slower than on-board memory, but not nearly as bad of a slowdown.  But you then run into the every confusing but nasty problem of 'cache coherency' where things get out of sync and what one card thinks a certain cards memory should have in it isn't what another card thinks it should.  Keeping everything synced results in even MORE of a slowdown.  When GPUs are simply using fixed-pipeline rendering (OpenGL/DirectX stuff) this isn't a problem.....it simply runs stuff through and it never 'revisits' GPU memory once something is through the pipeline for a given frame.  But in Iray, the algorithms (for ray-tracing, global illumination, and other high-end computations) the values can change based on nearby results, refinement, and more.  This means SLI does not work well for Iray-style rendering, due to issues with memory synchronization (there are other issues too, but this is the primary limiter for this particular problem.)

     

    Thank you so very much for this information and taking the time to write it out to explain ti to me..  I have a better understanding how daz uses vram now .  this information will be a very big help in how i build my scenes in the futures,

    Glad to help.  Also, remember that the biggest drain on VRAM are textures.  Geometry (how many faces an object is made up of) is considerably cheaper, memory-wise.  A single 4k x 4k 32-bit texture is 64MB of VRAM (uncompressed).....texture compression helps, but it's still a LOT of VRAM.  IF something is small in the resulting render, using a 4k x 4k texture on it probably doesn't make sense.  Use an image-editing program (like photoshop, gimp, etc.) to resize the image (save it with a slightly different name, don't overwrite the original!) and use the smaller texture.  Also, if using Depth of Field, textures that will be 'out of focus' in the final image can use considerably reduced size textures too.

    (I do have a script I'm still perfecting to do this for people.  It does require them to install ImageMagick, a freely available command-line tool for image processing, to do the actual resizing of the images.  And a script to shift selected items to the normal/medium/small textures it generates.  I just need to finish it and upload it somewhere....)

     

  • IvyIvy Posts: 7,165

    I have been reducing texture sizes for 3DL for a few years , so it sounds like maybe i should apply that practise to Iray scene as well.  I also got in a habit to remove or hide any geometry or .obj's in the scene that do not show in the render or are needed for casting shadows. that seems to help speed up render times some as well.

  • PA_ThePhilosopherPA_ThePhilosopher Posts: 1,039
    edited October 2016
    BeeMKay said:

    I did, and have 120 frames rendered, but haven't had time to finish making a video. Also, I want to try the "dead" ocean in combination with the calm one. I also wonder if changing the scale along one of the axis will create a good effect for gurgling shoreline waters... But I can post some image from the run to illustrate the problems I ran into.

    @BeeMKay,

    Interesting ideas. I never thought of combining different oceans together to create a new effect. I'd be curious to see how it turns out, as well as the shorline ideas.

     

    Ivy said:

    check out the wave tool used in this animation

    @Ivy,

    Nice. A shorline like that should be fairly straightfoward. But if I were to do one, it would have to be as realistic as possible (I like hyper-realism), like the photo above that BeeMKay posted. Otherwise I tend to steer clear if I could not accomplish that.

    -P

    Post edited by PA_ThePhilosopher on
  • IvyIvy Posts: 7,165
    edited September 2016
    BeeMKay said:

    I did, and have 120 frames rendered, but haven't had time to finish making a video. Also, I want to try the "dead" ocean in combination with the calm one. I also wonder if changing the scale along one of the axis will create a good effect for gurgling shoreline waters... But I can post some image from the run to illustrate the problems I ran into.

    @BeeMKay,

    Interesting ideas. I never thought of combining different oceans together to create a new effect. I'd be curious to see how it turns out, as well as the shorline ideas.

     

    Ivy said:

    check out the wave tool used in this animation

    @Ivy,

    Nice. A shorline like that should be fairly straightfoward. But if I were to do one, it would have to be as realistic as possible, like the photo above that BeeMKay posted. Otherwise I tend to steer clear.

    -P

    I made this film in 2012 so the render technology & my animation skills was not as good as they are today.. but for back then when i was learning animation this was a big accomplishment for me.

    Post edited by Ivy on
  • PA_ThePhilosopherPA_ThePhilosopher Posts: 1,039
    edited September 2016
    Ivy said:
    I made this film in 2012 so the render technology & my animation skills was not as good as they are today.. but for back then when i was learning animation this was a big accomplishment for me.

    @Ivy,

    I hear you. Animation has come a long way even in the past year. It is opening up whole new worlds for hobbyists and artists, with technology that was only previously available to major motion production studios. 

    -P

    Post edited by PA_ThePhilosopher on
  • Ivy said:

    Okay here is my iReal water pane test  Link- forgot to fill the boat with gas

     

    Forgot to fill the boat with gas. is a Daz Studio Iray & 3delight water pane comparison test. no sound in this test animation.. . this is only a test the scenes are combined.
    Scene one NVIDIA gpu rendering with Iray, Film length10 seconds . render time 9 hours 23 minutes Scene 2 CPU rendering with 3dl. Film length, 14 seconds, render time, 4 hours 53 minutes.

     both scenes are 1080HD
    this was only a test. .. thank you for watching.

    Nice. yes

  • Oso3DOso3D Posts: 15,085

    Yeah, I gave up on CGI around 2000 because I just despaired of doing anything I was really interested in making with personal hobbyist investment.

    That has changed radically.

    (and I'm thrilled)

  • Your iReal Animated Ocean System looks surprisingly well at low iterations. Below is at 1920x1080 at only 100 iterations. I used 20 instances.

     

  • Ivy said:

    So what happens if i were to build a set over 6 gigs would Daz then use the other cards as a shared memory? or will it still be independent to the scene and crash studio? I think maybe thats why some of these large expansive sets Ive been building have been crashing i maybe going over the 6 gigs all this time thinking i had 12 gigs available.. I think I just learned something new.

     

    Hey Ivy, the fact that you said PrecisionX says you have 12GB available, tells me you that have SLI enabled. Make sure you have SLI turned off in the EVGA control panel when you use DS. Thats causing your crashing, as the render should go to CPU if you go over your limit, but if you have SLI enabled, your computer probably doesn't know what to do with it. I have 2 x EVGA 980ti as well, but SLI disabled and I never crash.

  • Can this be used as water in a swimming pool? Like the public indoor pool? Can the tile itself be shaped, rather than be a square, like say a circle?

    On the Iray gpu thing... if you multiple cards, one with 6gb, and one with 2gb, and the scene takes 5gb, does only the 2gb card drop out, or does the entire scene get booted to cpu only mode? That would really, really suck if so.

    if it only fits on one card, the other card will drop out, but it would still render on the larger card in your scenario. It won't drop to CPU unless it won't fit on any cards in your system.

    But I've also heard there are other problems when you mix cards of different sizes. There was another thread which discussed this but I don't remember the exact issue. Less efficiency maybe? I know its best to have cards of the same size and clock speed.

  • RuphussRuphuss Posts: 2,631
    Ivy said:

    Okay here is my iReal water pane test  Link- forgot to fill the boat with gas

     

    Forgot to fill the boat with gas. is a Daz Studio Iray & 3delight water pane comparison test. no sound in this test animation.. . this is only a test the scenes are combined.
    Scene one NVIDIA gpu rendering with Iray, Film length10 seconds . render time 9 hours 23 minutes Scene 2 CPU rendering with 3dl. Film length, 14 seconds, render time, 4 hours 53 minutes.

     both scenes are 1080HD
    this was only a test. .. thank you for watching.

    hi Ivy

    the water looks great

    how many instances did you use ?

  • wolf359wolf359 Posts: 3,929

    @DvoraszeniaStudios Great job and Hilarious!!laugh
    I like how you took the time to include  Ambient sound design
    it added so much more to the clip.

  • fastbike1fastbike1 Posts: 4,078
    edited September 2016

    If the scene fits in the Vram of both cards, then both cards will be utilized for the render. There is some debate about how much increased speed you will get. Some say twice as much, some say about 1.5 times, some say it depends (on all of the various variables in the scene). In your case since your cards are identical (and both are checked in the render options?), then Studio will usee both cards or neither card.

    Edit: Sorry about piling on. Didn't see the other responses.

    Post edited by fastbike1 on
  • IvyIvy Posts: 7,165
    edited September 2016
    Ivy said:

    So what happens if i were to build a set over 6 gigs would Daz then use the other cards as a shared memory? or will it still be independent to the scene and crash studio? I think maybe thats why some of these large expansive sets Ive been building have been crashing i maybe going over the 6 gigs all this time thinking i had 12 gigs available.. I think I just learned something new.

     

    Hey Ivy, the fact that you said PrecisionX says you have 12GB available, tells me you that have SLI enabled. Make sure you have SLI turned off in the EVGA control panel when you use DS. Thats causing your crashing, as the render should go to CPU if you go over your limit, but if you have SLI enabled, your computer probably doesn't know what to do with it. I have 2 x EVGA 980ti as well, but SLI disabled and I never crash.

    Yes I do run SLi for my gaming, But i Disabled it this morning after I seen what you wrote so I'll try rendering with out my sli bridge not enabled to see if that corrects the crashing issues. Thanks for the advice

    Post edited by Ivy on
  • IvyIvy Posts: 7,165
    Ruphuss said:
    Ivy said:

    Okay here is my iReal water pane test  Link- forgot to fill the boat with gas

     

    Forgot to fill the boat with gas. is a Daz Studio Iray & 3delight water pane comparison test. no sound in this test animation.. . this is only a test the scenes are combined.
    Scene one NVIDIA gpu rendering with Iray, Film length10 seconds . render time 9 hours 23 minutes Scene 2 CPU rendering with 3dl. Film length, 14 seconds, render time, 4 hours 53 minutes.

     both scenes are 1080HD
    this was only a test. .. thank you for watching.

    hi Ivy

    the water looks great

    how many instances did you use ?

    I used 6 for Iray and 6 for 3dl.  I scaled the water instances up to 200% each to make the water scale match the boat and characters in the render better .

  • IvyIvy Posts: 7,165
    fastbike1 said:

    If the scene fits in the Vram of both cards, then both cards will be utilized for the render. There is some debate about how much increased speed you will get. Some say twice as much, some say about 1.5 times, some say it depends (on all of the various variables in the scene). In your case since your cards are identical (and both are checked in the render options?), then Studio will usee both cards or neither card.

    Edit: Sorry about piling on. Didn't see the other responses.

    I guess what it was I was thinking vram was being used as cumulatively instead of respectively .. I understand now that the cards use only the available ram for each card and not a combination of both of them.. I guess having the SLi set up what was confusing me because i was seeing 12 gigs available in my monitoring tool collectively , but since i disabled SLi  my monitoring tools shows 6 gigs each  independently but running cumulatively ... thanks guys for explaining  this to me.  I now have a better understanding, So i actually only have 6 gigs to work with building a scene and not the collectively 12 gigs SLI set up was showing me.

  • IvyIvy Posts: 7,165
    Ruphuss said:

    Your iReal Animated Ocean System looks surprisingly well at low iterations. Below is at 1920x1080 at only 100 iterations. I used 20 instances.

     

    ha! a whale on a whale

    took the words right out of my mouth..lol

  • BeeMKayBeeMKay Posts: 7,019
    edited September 2016

    @DvoraszeniaStudios  Poor George... or maybe not. wink A fun little animation, well done.

    @Ivy The videos are really great! The scaling up of the ocean worked great with the larger scale boat.

    Last, but not least, the video of the waves hitting the beach finally is completed: https://vimeo.com/184923405

     

    Post edited by BeeMKay on
  • IvyIvy Posts: 7,165

    @ BeeMKay  that was awesome.  what was you using for the beach? 

  • PA_ThePhilosopherPA_ThePhilosopher Posts: 1,039
    edited September 2016

    Your iReal Animated Ocean System looks surprisingly well at low iterations. Below is at 1920x1080 at only 100 iterations. I used 20 instances.

     

    @Ruphuss,

    I was surprised about this as well. My promo video is also rendered out to 100 iterations per frame.... not bad... I think part of the reason is its an open environment with very little overhead in terms of textures and settings.

    Ivy said:

    I scaled the water instances up to 200% each to make the water scale match the boat and characters in the render better .

    @Ivy,

    Good thinking. This seems to be a point that is often overlooked. Proper scaling of the object/boat to the ocean can make a big difference in the final appearance.

     

    BeeMKay said:

    @DvoraszeniaStudios  Poor George... or maybe not. wink A fun little animation, well done.

    @Ivy The videos are really great! The scaling up of the ocean worked great with the larger scale boat.

    Last, but not least, the video of the waves hitting the beach finally is completed: https://vimeo.com/184923405

    @BeeMKay,

    Great work with that experimental video. It's nice to see how users expand on more possibilities that I hadn't even thought about (nice music too). yes

    -P

    Post edited by PA_ThePhilosopher on
  • RuphussRuphuss Posts: 2,631

    there should be an animated plane with a straight flat end for the shoreline

    so no ups and downs there

    the end could be hidden under the shore mesh

    thanks for the clip Bee

  • BeeMKayBeeMKay Posts: 7,019
    Ruphuss said:

    there should be an animated plane with a straight flat end for the shoreline

    so no ups and downs there

    the end could be hidden under the shore mesh

    thanks for the clip Bee

     

    Yes, that was my thought, too. If you have a flat end section (one or two meters), you could model the gurgling part without a Problem. It also would solve the problem of having to work with more or less steep angles at the beach. If you work with a combination, like in my test, having a "flat" ending would also help with combining the two wave segments. This would really be a helpful add on.

    Oh, and what I noticed (too late in case of the renders) is that you really have to watch what direction the waves are running. It's not always entirely clear from the preview, and if you get it wrong, the waves run away from the camera, rather than towards it.

    There are still a couple of tests I hope to do on this product during the weekend. I want to experiment with scaling and cutout opacity, to see what the result ist.

    A suggestion for an add on for this product would also be smaller animated segments of calmer water for pools, and such.

Sign In or Register to comment.