Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Metaballs #242

Open
wants to merge 34 commits into
base: master
Choose a base branch
from
Open

WIP: Metaballs #242

wants to merge 34 commits into from

Conversation

MartinBuessemeyer
Copy link
Collaborator

@MartinBuessemeyer MartinBuessemeyer commented Mar 15, 2020

Current setup:

The demo is rendered by drawing a NDC-Triangle. The whole geometry is loaded via textures.

Features:

  • Multiple Metaballs that can interact with each other
  • Phong shading with point lights
  • (possible but currently not used) Metaballs with negative energy
  • skybox though the texture access vector is wrong / broken.

TODO:

  • raymarch with newton
  • freslen-term
    (- image-based-lightning)
  • add metaball surface

Further improvement:

  • even faster raymarch
  • transparent metaballs (current version is too basic)
  • metaballs have individual alpha value

FAILED to implement so far:

  • I tried to add a camera to the scene but ended up seeing nothing.

Open questions:

  • When two metaballs are merging, the normals of the metaballs point in the opposite directions thus leading to a normal that ist almost near 0 which leads to rendering artifacts at the merging point.

@coveralls
Copy link

coveralls commented Mar 15, 2020

Coverage Status

Coverage remained the same at 20.208% when pulling 650eb23 on metaballs into f799c52 on master.

Martin Buessemeyer and others added 26 commits March 20, 2020 17:48
@cgcostume
Copy link
Member

its too slow for now 🥲 - probably going to optimize at some point. We will keep the branch though! Thanks a lot.

@MartinBuessemeyer
Copy link
Collaborator Author

That matches with my memory. I did not see further performance improvements when using the newton method. I would suggest switching back to the interval bisection. As far as I remember, it took more iterations, but each iteration was way faster and was therefore overall faster. And it did not have the small rendering artifacts (as far as I remember, at least).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants