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

Blender 2.8 [$430 awarded] #166

Closed
50 of 58 tasks
Theverat opened this issue May 26, 2018 · 5 comments
Closed
50 of 58 tasks

Blender 2.8 [$430 awarded] #166

Theverat opened this issue May 26, 2018 · 5 comments
Assignees
Labels
bounty Has a bounty on https://www.bountysource.com/teams/luxcorerender/issues refactoring Requires not only to add code, but also to change a fair share of existing code
Milestone

Comments

@Theverat
Copy link
Member

Theverat commented May 26, 2018

This issue is used to track the progress of the Blender 2.8 port of LuxCore's Blender addon.
You can contribute to the development by raising the bounty on this issue.

Info about the required changes:


Todo:

Preparation (still 2.79 compatible):

  • Move all classes that need to be registered out of __init__.py files (so auto_load.py can find them)
    • Base nodes
    • Node trees
    • Operators
  • Change all inheritance chains involving bpy.types classes into multi inheritance (e.g. if we have base class LuxCoreNode, then subclasses like LuxCoreNodeMatte should use multi inheritance: LuxCoreNodeMatte(bpy.types.Node, LuxCoreNode))
    • Nodes
    • Node trees
    • Node sockets
    • Operators
    • Menus
  • Use auto_load.py instead of bpy.utils.register_module (deprecated in 2.80)

2.80 Port

Basics:

  • Register node trees
  • UI
    • Port our custom UI panels, adapt to single-column layout
    • Fix ui/texture.py, a lot has changed in the API (I think it was mostly copied from Blender code, so we can try to do that again)
    • Move our custom imageviewer panels to the right side (out of the tools panel)
    • Can we impose an order on Blender panels? Currently they are sometimes mixed with ours in a non-optimal way.
    • Create a unified cache panel that contains PhotonGI, DLSC and Env. Light Cache settings (the latter will be used for all environment lights, which shouldn't be a problem because usually there's only one)
    • We can't use the template_ID() function from the Blender API for our material UI because we need not only a custom "new" operator, but also a custom "copy" operator (otherwise the node tree is not copied and two different materials share the same node tree). So we need to build our own UI that looks as close to the template_ID() result as possible (see the 2.79 BlendLuxCore code for an example)
  • Check if we should use depsgraph.scene or depsgraph.scene_eval (documentation is missing, read the Blender source code or ask in devtalk) -> Cycles uses scene_eval, so we should do the same
  • Scene export/conversion
  • Port viewport render draw code (there's a good example in the Blender API docs)
  • Viewport render
    • Do session init in separate thread for responsive UI (maybe also mesh conversion)
    • Rework camera screenwindow calculation (can we use context.region.view2d.view_to_region?)
  • Final render
    • Basics
    • Tile Draw Handler
    • Fix halt conditions not being updated during render (perhaps use depsgraph.scene instead of depsgraph.scene_eval in render engine for halt conditions)
  • Port the function that ensures that a material and it's custom node tree always have the same name

Extras:

  • LuxCore will have to change the Python version to the one 2.8 uses (3.7.0)
  • Reopen issue Make OpenGL viewport modes work as expected #38
  • Choose new icons for better/worse/equal states in the statistics panel
  • Material preview
    • Fix hair preview
    • Check if we could replace blender shader ball with LuxCore shader ball
  • Use Cycles' "shadow_soft_size" property instead of our custom "radius" for point lights
  • Cycles scene reader: Cycles scene reader [$80] #272
  • Make it easier to find the denoised result, e.g. by replacing combined once a denoised result exists and writing the noisy raw output into an extra "NOISY" pass (the "DENOISED" pass would be removed)
  • Fix motion blur for viewport renders
  • Rewrite the main readme file, it is outdated

The $430 bounty on this issue has been claimed at Bountysource.

@Theverat Theverat added this to the Blender 2.80 milestone Nov 15, 2018
@Theverat Theverat added the refactoring Requires not only to add code, but also to change a fair share of existing code label Dec 1, 2018
@Theverat Theverat pinned this issue Dec 14, 2018
@Theverat
Copy link
Member Author

Seems like there are some regressions in the RenderEngine API: https://devtalk.blender.org/t/2-8-render-engine-api-papercuts/6878

@Dade916 Dade916 changed the title Blender 2.8 Blender 2.8 [$50] May 5, 2019
@Dade916 Dade916 added the bounty Has a bounty on https://www.bountysource.com/teams/luxcorerender/issues label May 5, 2019
@Theverat Theverat self-assigned this May 5, 2019
@Dade916 Dade916 changed the title Blender 2.8 [$50] Blender 2.8 [$100] May 5, 2019
@Dade916 Dade916 changed the title Blender 2.8 [$100] Blender 2.8 [$150] May 13, 2019
@Theverat
Copy link
Member Author

New branch: https://github.com/LuxCoreRender/BlendLuxCore/tree/refactor/new_blender2.80

@Dade916 Dade916 changed the title Blender 2.8 [$150] Blender 2.8 [$160] Jun 9, 2019
@Dade916 Dade916 changed the title Blender 2.8 [$160] Blender 2.8 [$165] Jun 17, 2019
@Dade916 Dade916 changed the title Blender 2.8 [$165] Blender 2.8 [$170] Jun 22, 2019
@neo2068 neo2068 self-assigned this Jun 23, 2019
@Dade916 Dade916 changed the title Blender 2.8 [$170] Blender 2.8 [$220] Jul 8, 2019
@Theverat
Copy link
Member Author

Short status update:
https://youtu.be/s_PkDk0zrkU

What works

  • Viewport render
  • Node editor/materials
  • @neo2068 has ported most of the UI panels
  • Lights/World
  • Objects (including particles and all other kinds of instances)

Todo

  • Final render
  • View layers
  • Motion Blur
  • Hair
  • Material preview
  • ... and a lot of polishing and probably tons of minor bugs that will pop up

Thanks to all the donors for their support! I appreciate it a lot.

@Dade916 Dade916 changed the title Blender 2.8 [$220] Blender 2.8 [$240] Jul 12, 2019
@Dade916 Dade916 changed the title Blender 2.8 [$240] Blender 2.8 [$290] Jul 23, 2019
@Dade916 Dade916 changed the title Blender 2.8 [$290] Blender 2.8 [$340] Jul 27, 2019
@Dade916 Dade916 changed the title Blender 2.8 [$340] Blender 2.8 [$360] Jul 31, 2019
@Dade916 Dade916 changed the title Blender 2.8 [$360] Blender 2.8 [$400] Aug 7, 2019
@Theverat
Copy link
Member Author

Theverat commented Aug 7, 2019

A first testbuild is available here: https://github.com/LuxCoreRender/BlendLuxCore/releases/tag/blendluxcore_v2.2beta3
I also recorded a video about how to render a Cycles scene with LuxCore in this testbuild:
https://youtu.be/kglbpZl6Sck

@neo2068 neo2068 changed the title Blender 2.8 [$400] Blender 2.8 [$410] Aug 13, 2019
@neo2068 neo2068 changed the title Blender 2.8 [$410] Blender 2.8 [$430] Aug 23, 2019
@Theverat
Copy link
Member Author

Theverat commented Oct 3, 2019

With the release of BlendLuxCore v2.2 for both Blender 2.79 and 2.80 I consider this issue solved.
I will share the bounty with @neo2068, who has contributed to this project.

Starting now, Blender 2.79 will no longer be supported by future versions of the addon and all development efforts will concentrate on Blender 2.80.

@Theverat Theverat closed this as completed Oct 3, 2019
@Dade916 Dade916 changed the title Blender 2.8 [$430] Blender 2.8 [$430 awarded] Oct 17, 2019
@neo2068 neo2068 unpinned this issue Oct 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bounty Has a bounty on https://www.bountysource.com/teams/luxcorerender/issues refactoring Requires not only to add code, but also to change a fair share of existing code
Projects
None yet
Development

No branches or pull requests

3 participants