Real-Time Fluid Raytracing with OpenCL (on an old GTX GPU)

Поделиться
HTML-код
  • Опубликовано: 10 апр 2023
  • This is a demo of a hydraulic jump simulation with FluidX3D, running on a single Nvidia Titan Xp GPU, which lacks RTX. The grid resolution is 96x352x96 (3.2 Million) cells. Both simulation and raytracing run in real time.
    The simulation software used is FluidX3D, the fastest and most memory efficient lattice Boltzmann CFD software, running on all GPUs via OpenCL. Find FluidX3D on GitHub: github.com/ProjectPhysX/FluidX3D
    The latest update FluidX3D v2.5 featured in this demo adds light attenuation in the fluid and improved raytracing performance when the camera is inside the fluid. Full changelog: github.com/ProjectPhysX/Fluid...
    #FluidX3D #OpenCL #Raytracing #GPU #LBM
  • НаукаНаука

Комментарии • 52

  • @ChipboardDev
    @ChipboardDev Год назад +79

    I keep saying that we need to stop investing in overpriced hardware, and write more efficient software. People blow my statement off, but this just proves my point further.

    • @ProjectPhysX
      @ProjectPhysX  Год назад +32

      Exactly. I don't have the budget for high-end professional GPUs with large VRAM either, so I optimized my software to work with 1/6 the VRAM of competition, without impacting accuracy. FluidX3D does on an old $75 RX580 what other CFD software needs a $6000 RTX A6000 for. And on the high-end hardware, it pushes the boundaries of what's possible in CFD.

    • @ChipboardDev
      @ChipboardDev Год назад +13

      @@ProjectPhysX I love the sound of this and greatly appreciate the contribution(s) you are working on in the field of computer science, simulation, and software. I myself am running an RX580. Finally, somebody who understands my point. This new hardware is just a marketing scheme, and a gateway to lazier programming styles. It's getting to the point where it's not going to be viable to keep drawing more and more power. Our computers are growing instead of shrinking, as they were!

    • @jotham123
      @jotham123 Год назад +4

      My Linux PC in 2010 booted faster with spinning metal and Pentium 4, than windows 10 does on my new fast 2tb SSD. You're in the money.

    • @Finder245
      @Finder245 Год назад +9

      In practice though, the engineers who can make efficient software are very rare. It’s often cheaper to throw more hardware at a problem than to make the existing software run more efficiently.

    • @ChipboardDev
      @ChipboardDev Год назад +2

      @@Finder245 while I think I partially understand where you are coming from, I am going to have to disagree because once you invent a way to do high performance operations in software, those methods can be reapplied in the future to other projects and also turned into either a paid or open source library for simulations, games, computer graphics, etcetera. In the long run, it's definitely worth it to have skilled developers create better performing and revolutionary tech without needing to make all consumers purchase a massive power hog of a graphics card that is at large unaffordable to a great portion of the consumer population

  • @vijf
    @vijf 8 дней назад +1

    wow... just wow. this is amazing...

  • @exhilex
    @exhilex 3 месяца назад +1

    I love your content! Keep pushing out more! You are a motivation to me!

  • @NUCLEARARMAMENT
    @NUCLEARARMAMENT Год назад +18

    This is amazing, I guess my 1080 Tis aren't useless after all despite being over 6 years old.

    • @ProjectPhysX
      @ProjectPhysX  Год назад +4

      Yep, still very capable card, and almost identical to the Titan Xp I have!

    • @NUCLEARARMAMENT
      @NUCLEARARMAMENT Год назад +1

      @@ProjectPhysX Indeed. I also wanted to mention that it's someday my goal to use this software to produce visual effects, I remember talking to you a while back and stated that the .vtk files generated could be used to enable rendering in other software like Paraview, or possibly Unreal Engine or RenderMan for Maya/Katana.
      Your realtime isosurface raytracing engine is fantastic and the fact you generate frames on the fly straight from VRAM to disk is second-to-none! However, I would love to use the recently released Moonray engine to render simulations from FluidX3D.
      Moonray is a Monte Carlo path tracing engine that is fully vectorized end-to-end, and I have a small renderfarm of Xeon Platinum and Core i9 Extreme CPUs, and 1 TB of RAM and 600 GB/sec RAM bandwidth for all the nodes with a total of 8 CPUs, each one is connected to a fat IB switch with 15 GB/sec of bandwidth to the rest of the nodes, and over 30 GB/sec of interconnect bandwidth via UPI between two sockets of each node (there are 4 total, for 8 CPUs) all connected via an InfiniBand switch, and several NVIDIA Tesla P100 GPUs that it can take advantage of.
      This is to run large-scale simulations that cannot fit inside GPU memory limits, but I still have GPUs around for simpler stuff. I cannot afford a $32k Radeon Instinct GPU, but a small cluster of x86 Xeon Platinum 8180s (8 CPUs = 224 cores/448 threads, 10 TFLOPS FP64 in LINPACK), including workstations, RAM, InfiniBand FDR (56 Gb/sec), was only $8K total.
      The plan is to recreate the scene from MIB 3 someday, with the Saturn V rocket having a formation of ice crystals outside the liquid hydrogen tank of the 2nd and 3rd stages of the launch vehicle. The gases given off by that should be more than possible to simulate with FluidX3D. It would make for an amazingly fast and accurate VFX tool!

    • @username8644
      @username8644 Год назад +2

      My 1070 ti still works great. Still overclocks just as high as it did new.

    • @sarvesh5866
      @sarvesh5866 Год назад +2

      @@username8644 its optimized so well and runs like butter on my older PC with 1060 too. But I think it depends on VRAM if I'm not wrong.

    • @username8644
      @username8644 Год назад +1

      @@sarvesh5866 That would make sense. It probably does.

  • @lq_12
    @lq_12 Год назад +5

    Tutorials men!!!! There's already one, but a good tutorial from the creator himself is priceless. Doesn't matter if it's waffle aerodynamics

    • @ProjectPhysX
      @ProjectPhysX  Год назад +4

      Working on it!!

    • @lq_12
      @lq_12 Год назад +3

      ​@@ProjectPhysX Dr, I know you may have not too much free time and I would like to know if you could give me and advisory (how to set up my own simulation mostly) I would pay you €50 due Time zone difference it would a little bit difficult but if you tell me to wake up at 3 am because that time is good for you at your local time I am whiling to do it.

    • @ProjectPhysX
      @ProjectPhysX  Год назад +3

      @@lq_12 I'll reply to your email once I have some time, be patient! You can keep your money! ;)

    • @lq_12
      @lq_12 Год назад +2

      @@ProjectPhysX dankeschön❤️❤️❤️
      I'll be patient

  • @shadowgames50
    @shadowgames50 8 месяцев назад +2

    I would really love to see whitewater on top of this simulation. I bet not even Houdini would look that good

  • @sangjinpark7339
    @sangjinpark7339 11 месяцев назад +2

    Amazing
    Are all your models performed by LBM?
    Or do you use other methods such as FEM, FVM, FDM, SPH?
    I am not familiar with CFD. But this model looks like a mesh free!

    • @ProjectPhysX
      @ProjectPhysX  11 месяцев назад +2

      It's all LBM, with the Volume-of-Fluid extension for the free surface simulations. See here: github.com/ProjectPhysX/FluidX3D

  • @1Bujbuj
    @1Bujbuj Год назад +1

    Amazing! is there a way to export vdb files or some form of volumetric data with your program?

    • @ProjectPhysX
      @ProjectPhysX  Год назад +2

      Yes, it can export binary .vtk files! The command to export the velocity field u is "lbm.u.write_device_to_vtk();".

  • @LearnWithFardin
    @LearnWithFardin 10 месяцев назад +3

    Bro!!!!!
    We all are looking for a tutorial on CFD from you!

    • @ProjectPhysX
      @ProjectPhysX  10 месяцев назад

      I know! I've written a beginner-friendly manual by now: github.com/ProjectPhysX/FluidX3D/blob/master/DOCUMENTATION.md

  • @SilverXTikal
    @SilverXTikal 11 месяцев назад

    The new GTA is about to be insane

  • @pummeluff230
    @pummeluff230 Месяц назад +1

    Noooo, that can not be real... you are kidding me... the water in my fishtank does not look that real...

  • @dylan-xq1qh
    @dylan-xq1qh Год назад +1

    Very Nice i got my hands on 2x Radeon V520 and wondering if i can get them working with this

  • @sarvesh5866
    @sarvesh5866 Год назад +2

    Hey is there a way to change the background to an image instead of colour?

    • @ProjectPhysX
      @ProjectPhysX  Год назад +4

      Only in raytracing mode. But you could "hack" the graphics_clear kernel to raytrace the skybox image as background :)

    • @sarvesh5866
      @sarvesh5866 Год назад +3

      @@ProjectPhysX I use RTX 3050, I'll try this out 👍🏼. Another question are the results of the simulation that we run saved? There is a delta wing simulation already coded but after running it I can't see the lift and drag parameters

    • @ProjectPhysX
      @ProjectPhysX  Год назад +1

      @@sarvesh5866 simulation results on most of the sample setups are not saved. But you can of course do that, and fully automate it in the main_setup function. Find a lift+drag sample here: github.com/ProjectPhysX/FluidX3D/issues/16#issuecomment-1282276748

  • @zdkshinxi
    @zdkshinxi Год назад +2

    I have absolutely no idea how CFD works nor the physics behind this since I am still in HS but its crazy how this could be run on setups that don't cost ten thousand bucks. If I may ask, where do I start so I could begin developing things like this?

    • @ProjectPhysX
      @ProjectPhysX  Год назад +3

      Learn C/C++ programming, there is a great course by "The Cherno" on RUclips. For the CFD part, read the book "The Lattice Boltzmann Method" by Timm Krüger et al. For the graphics part, there is a great video by "NamePointer" explainig how raytracing works. Have fun learning!

    • @zdkshinxi
      @zdkshinxi Год назад +1

      @@ProjectPhysX Thank you for your time!

  • @VictorGNW
    @VictorGNW 5 месяцев назад

    O opencl não funcionaria bem em jogos

  • @sjoerdev
    @sjoerdev 11 месяцев назад

    can i add you on discord? i'd like to ask you some programming related questions