Skip to content

Roadmap #279

Open
Open

Description

@vanruesc

The purpose of this ticket is to track progress towards the next major release and to let people know where things are headed.

Before v7 (non-breaking)

  • Modularize convolution operators Implement different blur operators as passes
  • Implement bilateral blur (depth-based)
  • Implement Gaussian blur (for completeness)
  • Implement mipmap blur (for BloomEffect)
  • Move effect analysis from EffectPass to Effect class
  • Use internal timer, let user provide a custom timer

Into v7 (breaking)

See #419 for details.

  • Implement BufferManager and GeometryPass
  • Create IO interface for passes and effects
  • Remove EffectAttributes
  • Reduce amount of predefined uniforms in EffectMaterial
  • Refactor EffectComposer into RenderPipeline for pass grouping and swapping
  • Use render hooks to run passes, promote use of renderer.render()
  • Drop support for older versions of three
  • Remove deprecated classes, fields and methods
  • Remove code that was added for backwards compatibility
  • Move away from getter/setter properties Reconsider usage of accessor properties #349
  • Convert to TypeScript, add more examples to doc comments
  • Remove CJS bundles
  • Add support for logarithmicDepthBuffer
  • Implement GBuffer clearing
  • Implement GBuffer background rendering
  • Port Effects to the new system: Task Overview: v7 #600

Activity

  1. added this to the v7 milestone on Mar 16, 2021
  2. vinkovsky commented on Mar 17, 2021

    @vinkovsky

    Hi @vanruesc ! Thank you for the great library. Will the ssr effect be added in the near future?

  3. vanruesc commented on Mar 17, 2021

    @vanruesc
    MemberAuthor

    The ReflectionEffect (alias SSREffect) will be added at a later stage because it relies on a geometry buffer (normals, metalness, depth, diffuse, etc.). The plan is to implement a proper buffer system first to pave the way for effects like SSR. Switching to MRT will be a non-breaking change as soon as it lands in three.

    SSR will be added soon after v7, but I can't say when that will be.

  4. pinned this issue on Mar 19, 2021
  5. andregoncalvesdev commented on Apr 13, 2021

    @andregoncalvesdev

    Hello @vanruesc! Great library! Is rgbshift effect doable with the current release or it will available on a future release ?

  6. vanruesc commented on Apr 13, 2021

    @vanruesc
    MemberAuthor

    @andregoncalvesdev RGB shift is already available via the ChromaticAberrationEffect.

  7. v1rtl commented on Jun 5, 2021

    @v1rtl
    Member

    Regarding TS migration, to make it easier I'd recommend to set allowJs and strict: false in the tsconfig file so JS code won't be filled with type errors :)

  8. marcofugaro commented on Jul 20, 2021

    @marcofugaro
    Member

    Awesome! We just implemented all your effects into our platform. We are wondering if there is an ETA for this roadmap? We are interested in the SSR effect more specifically.

    Dude... it's an open-source project, you don't ask for an ETA.

  9. vanruesc commented on Jul 20, 2021

    @vanruesc
    MemberAuthor

    This issue has been on hold for a while now so I understand why people would like to know when things will start moving again. Since this is a hobby project with no financial backing, there is no ETA. I'd really like to continue working on this project right away, but work and other real-life issues take priority. I'm currently aiming for October/November to finally tackle this roadmap.

    @marcofugaro I'm sure that @sayduck-daniel didn't mean to be pushy with his comment and I'm happy that people are interested in this project ❤️

  10. looeee commented on Sep 1, 2021

    @looeee

    @vanruesc have you considered adding a sponsors page or some other way for people to help fund this project?

  11. vanruesc commented on Sep 1, 2021

    @vanruesc
    MemberAuthor

    @looeee Yes, I'd like to add a sponsors page at some point, but I haven't really looked into that yet.

  12. looeee commented on Sep 2, 2021

    @looeee

    It's pretty easy to set up - will take an hour or two total.
    But I guess if you want more than a couple of sponsors you'd have to start doing the social media circus.

  13. 16 remaining items

  14. vanruesc commented on Jun 22, 2023

    @vanruesc
    MemberAuthor

    Hi, is there any plan to support WebGPURenderer?

    @lviggiani WebGPU is not widely available yet, so it's not the focus right now. WebGL 1 has only recently been deprecated in three and v7 will rely mostly on WebGL 2 with limited WebGL 1 support. When WebGPU becomes more prevalent, there will be another transition from WebGL 2 to WebGPU.

    @fractalhq Thanks! You can follow the most recent development progress by checking the v7 branch. I still need to consolidate the base API and finish implementing the buffer management. After that I want to split the remaining work into smaller tickets so that anyone who'd like to help can pick them up.

  15. Russo-creation commented on Aug 31, 2023

    @Russo-creation

    Hi, @vanruesc

    In terms of new feature "alpha hash" https://threejs.org/examples/?q=alph#webgl_materials_alphahash that was implemented along with Three.js r.154 which for improve visual "quality" requires antyaliasing methods like SSAA or TAA are there any plans to support it?

    Current alternative to implement those effect in react-three-fiber is tu use three-stdlib and extend SSAA or TAA but as I posted the issue here pmndrs/drei#1601 it is not working properly (it's changing colors of scene) as many people use this great lib in their projects it would be helpful to use it through it.

  16. vanruesc commented on Sep 8, 2023

    @vanruesc
    MemberAuthor

    @Russo-creation Interesting, I didn't know there was support for alpha hash in three. TAA is planned to be added after v7 is done.

  17. alexpineda commented on Oct 18, 2023

    @alexpineda

    Any beginner friendly issues I can help with?

  18. vanruesc commented on Oct 22, 2023

    @vanruesc
    MemberAuthor

    @alexpineda I've been working on v7 lately and it's beginning to take shape despite lots of road bumbs. The first alpha version is on track to be released in the next few weeks. After that, I'll prepare tickets for the remaining tasks that can be picked up by anyone who'd like to help. I'll post here when that's ready.

  19. braebo commented on Oct 22, 2023

    @braebo

    Sorry if this has been discussed, but I think v7 should have an un-compiled build. My bundler takes care of things like tree shaking and minification, but having the entire build in a single js file interferes with this. Module separation is lost, and working with the code is significantly more difficult. All modern projects use their own bundler, so I don't believe the source should be mangled when I install it!

  20. vanruesc commented on Oct 23, 2023

    @vanruesc
    MemberAuthor

    @fractalhq Providing a production-ready library bundle is very common and in this case necessary because shaders need to be integrated before shipping. Custom shader imports require plugins and build confgurations that the end user should not have to worry about.

    Most bundlers are able to process library bundles without issues. If dead code elimination isn't working correctly, there's usually something else going wrong.

    It's true though that some parts are minified in the shipped bundle, namely worker scripts and shader code. I can see how this might be inconvenient to work with, but this code isn't really supposed to be debugged in user code and if there's a bug, it should be reported so that it can be fixed in the scope of the library project.

    Feel free to open a new issue if something's not working as expected with v7 once it's ready.

  21. yfunk commented on Feb 10, 2024

    @yfunk

    @vanruesc I noticed 7.0.0-alpha-2 was just published under the latest tag about 20 minutes ago.

    I assume this was an accident because now when you run npm i postprocessing the alpha version is installed instead of the latest stable v6 release.

  22. vanruesc commented on Feb 10, 2024

    @vanruesc
    MemberAuthor

    @yfunk Thanks for pointing that out! I wrongly assumed that versions with postfixes wouldn't get the latest tag. Since I couldn't find a way to assign that tag to a previous version, I published a new one and fixed the publish script for the alpha releases.

  23. yfunk commented on Feb 10, 2024

    @yfunk

    Since I couldn't find a way to assign that tag to a previous version, I published a new one

    IIRC you should be able to assign the latest tag (or any other) to a different version using npm dist-tag.

    npm dist-tag add [email protected] latest
    
  24. vanruesc commented on Feb 10, 2024

    @vanruesc
    MemberAuthor

    Tried that, but it gave me 400 Bad Request. Removing the latest tag from the alpha release also didn't work, but adding/removing other tags worked just fine.

  25. vanruesc commented on Feb 17, 2024

    @vanruesc
    MemberAuthor

    I'll prepare tickets for the remaining tasks that can be picked up by anyone who'd like to help. I'll post here when that's ready.

    It's ready now: #600

  26. valentinradu commented on Aug 26, 2024

    @valentinradu

    Hello, thanks for the great library. I have a question about the roadmap to 7.0. It seems like that MaskPass is missing, but nothing is mentioned in the roadmap per se. Is this intended?

  27. vanruesc commented on Aug 28, 2024

    @vanruesc
    MemberAuthor

    @valentinradu #652 (comment)

    Thanks for pointing this out. I've added MaskPass to the v7 task list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionAn open discussion or announcement

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions