GithubHelp home page GithubHelp logo

meetric1 / gelly_fork Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gelly-gmod/gelly

1.0 0.0 0.0 31.32 MB

Library to integrate fluids into a game engine

License: GNU General Public License v3.0

C++ 70.87% C 1.36% Lua 15.44% CMake 3.89% HLSL 8.44%

gelly_fork's Introduction


Grab the GMod addon


Important

Gelly is free open-source software. It is provided without warranty or support. There is no obligation to provide support or updates for Gelly. You are free to use, modify, and distribute Gelly as you see fit according to the license.

Welcome to Gelly, a primarily Garry's Mod addon which enables sandbox-oriented fluid simulation.

Features

Gelly is equipped with a high-performance fluid rendering system to deliver a smooth and visually appealing look. The fluid simulation uses FleX as its backend, which is a particle-based physics engine that has a game-oriented fluid simulation system.

A few of the notable features of Gelly include:

  • Fluid simulation
  • Realistic fluid rendering
    • As much as Garry's Mod allows, that is
  • Customizable fluid properties
    • Viscosity, surface tension, etc.
    • Fluid absorption (yes, absorption, not color)
      • All fluids are described by their absorption coefficients for red, green, and blue light,
      • See this page for more information
      • In other words, fluid color is obtained by describing how much light is absorbed by the fluid, for each color channel (red, green, blue)
    • Presets
      • Water, piss, blood, Gell-O and glunk.
        • Gell-O is a gelatinous fluid. There is no intention for a coincidential name with a popular American brand of gelatin desserts.
        • Glunk is an odd, diffuse fluid which acts like a mix of concrete and water, you can't see through it, but it acts very fluidly.
    • Physically inspired material rendering system
      • Roughness, specular transmission and absorption
    • Fluids can be mixed (but not materials)
      • This means that a red fluid and a blue fluid will mix to form a dark purple fluid,
      • but a red fluid and a blue opaque material will not mix, they will just overlap.
  • Fluid interaction with the environment
    • Currently ragdolls aren't supported
    • Two-way interaction is not supported
      • More research has to be done and this is likely going to not be implemented due to the general incompatability between orthodox physics engines and FleX's particle-based system
  • Time control
    • You can pause, slow down, or speed up the simulation
  • The Gelly Gun
    • A tool that allows you to spawn fluids, the main entry point for spawning fluids

Note

Time control is not perfect, and it is not guaranteed to work as expected. It can change the results of the simulation, such as things like Gell-O just falling and not holding its shape. This is a limitation of the FleX backend, and it is not something that can be fixed easily.

Note

As of writing, custom presets are not supported. This is a planned feature, but it is not implemented yet.

Installation

It's simple, just go over to the releases page and download the latest version of Gelly. Extract the contents of the archive to your Garry's Mod folder, the one opened by Steam when you click on "Browse local files" in the game's menu.

This is also reiterated in the releases.

Important

Gelly requires a 64-bit operating system to run. If you are running a 32-bit operating system, Gelly will not work. Additionally, Gelly requires that you run GMod in 64-bit mode. If you are running GMod in 32-bit mode, Gelly will not run. Another important note is that Gelly does require GMod to be running in D3D9Ex mode. This is usually always the case, but if you have a launch parameter of -nod3d9ex, Gelly will bail on first load.

Gelly requires a GPU that supports DirectX 11.4. If you're unsure, most GPUs made past 2012 should support it.

Bugs and Issues

If you encounter any bugs or issues, please report them on the issue tracker. Please provide as much information as possible, and do not try to free-hand the issue.

The provided forms are there for a reason, and they help me understand the issue better.

Important

Again, Gelly is my project, and I am not obligated to provide support or updates for it. However, I will try to fix any issues that are reported.

How to retrieve your log

Gelly produces highly detailed, but not personally identifiable logs. These logs are stored in the root folder of Garry's Mod, like the one you extracted Gelly to. The log is named gelly-date.log, where date is the date of the game session.

Contributing

Please hold off on contributing code/features until the project is more mature. PRs are welcome, but they will likely be rejected until the project is more mature. Right now, style guide and code linting are not enforced, which is a big blocker for PRs.

However, suggestions and bug reports are always welcome.

License

Gelly is licensed under the GPL v3.0 license. You can find the full license text in the LICENSE file.

I chose this license because of the passion project nature of Gelly, and I want to ensure that it remains open-source in case anyone wants to continue development once I inevitably abandon it.

Note

Gelly is not that serious of a project, there's no worries if you just want to steal the code and rebrand it. Nobody will care, but I do like a little credit.

Acknowledgements

Gelly would not be possible without the following projects and people:

  • Garry's Mod
  • FleX
  • The amazing GMod libraries provided by Derpius
  • Plenty of ghostwriting from Derpius
  • Architectural, product and design advice from Derpius
    • Plenty of advice on how to structure the project and do product planning, including some hands-on help at Total Anarchy Servers
      • Great GMod servers
  • Notable criticisms and suggestions for the fluid rendering system from Derpius
  • Well-needed call-outs for performance regressions from Derpius
  • Support from Meetric on our commonly shared issues facing FleX and GMod
  • Meetric's original GWater addon, which inspired Gelly and eventually turned it into a highly educational project
  • The patience of the Graphics Programming Discord members
  • RenderDoc

gelly_fork's People

Contributors

yogwoggf avatar cast-e avatar derpius avatar meetric1 avatar

Stargazers

Gavin Rhoades avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.