Code Monkey home page Code Monkey logo

Comments (8)

huwb avatar huwb commented on May 30, 2024

Hi dizzy! Thanks for the question and apologies it took me a while to get back to you!

Our method originates from projects that shipped on a wide range of platforms, not all of which had tessellation units. We did at one point do some comparisons with tessellation-based solutions but unfortunately we didn't get as far as conclusive comparisons/timings. I'd love to do this as future work. However from initial experiments it appears that tessellation becomes expensive for high expansion ratios (generating lots of geometry). Our technique has no such problem, and supports a large dynamic range of detail levels (7+ orders of magnitude).

I believe there are ways to mitigate the problem of high expansion ratios, such as dividing the surface into tiles before tessellation. But at the logical extreme, if one places enough tiles then they would arrive at either our method or CDLOD, both of which do not require tessellation.

One of the strongest contributions of our approach in my opinion is the efficient multiscale shape rendering that is inherently LOD'd and matches geometry density 1:1. Its simple fractal structure allows a compact implementation. Each LOD level always blends between 2 shape textures, and always transition between two geometry densities without needing hardware tessellation. Employing tessellation would likely add complexity rather than removing it, for our use case at least.

Finally, I would assume using tessellation takes additional power and may be less suitable to low powered/mobile devices as well. However this is only an assumption without evidence to back it up.

It's a shame i don't have hard numbers for you, rather than giving you unsubstantiated claims and intuitions, sorry about that! If we do get around to doing rigorous comparisons I'll be sure to let you know.

from crest.

dizzy2003 avatar dizzy2003 commented on May 30, 2024

Thanks for the really in depth reply.
I'm working in a small fulltime team on a game that heavily features ocean and sailing.
At the moment we are using an asset store solution (heavily modified) but are keeping an eye on your work :)

from crest.

huwb avatar huwb commented on May 30, 2024

Cool! We'd love to hear if you can make use of any of our stuff, it would make us immensely proud :). Where are you guys based out of interest?

I've just given the readme a long overdue update and it talks about some of the work in progress stuff which may be of interest. I think the stuff in the fx_test branch would be super interesting to incorporate in a game (especially with some art love), and definitely check out the local_sim branch if you haven't already :). Notes about both are added to the readme.

from crest.

dizzy2003 avatar dizzy2003 commented on May 30, 2024

Based in Brisbane Australia.

Had a more in depth look today, first issue is we dont have enough layers available in our project.

It looks to me like you are using the layers to render out the displacement textures for each lod using a dedicated camera and a quad per lod with each having its own render layer.

Pretty sure the same effect can be done removing the camera and calling Graphics.Blit() passing in the material. Would just need to setup those worldspace positions differently calcing them from uv's. I will take a look at making that change maybe tomorrow.

from crest.

huwb avatar huwb commented on May 30, 2024

Nice! From Melbourne myself.

Yeah its a massive hog for layers, its high on my list to sort out - I'd ideally not use any layers at all. You are correct about how they're being used.

I never quite know if Graphics.Blit will triggers stuff to happen in the right order (i.e. after the right cameras have rendered). I was thinking to attach command buffers to cameras (there is some code lingering around to do this for rendering ocean floor depths) which involves a bit more hoop jumping but at least makes the order of things clear(ish). Let me know if you do look at it, I'll also try and experiment on my side and let you know if I can sort them out.

from crest.

huwb avatar huwb commented on May 30, 2024

I had some luck removing the layers, all the per-lod layers are gone from master now. The code settled pretty well but i'll be on the lookout for issues.

I also attempted to merge this into local_sim but ran out of time midway through, will pick this up again hopefully tomorrow.

from crest.

huwb avatar huwb commented on May 30, 2024

In case its still interesting, i can confirm that local_sim now makes minimal use of layers (scene: boat.unity). This definitely belongs in a dev branch for the time being, but should be sufficient to demonstrate the concept. Happy to hear any more feedback about issues or blockers for using our system.

from crest.

huwb avatar huwb commented on May 30, 2024

There is a thread evolving on Twitter about tessellation - thought it would be useful to add it here for the record.

https://twitter.com/Atrix256/status/1032666876264894464?s=19

from crest.

Related Issues (20)

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.