Realtime mode for line art (And more!) #89134
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
6 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#89134
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Currently line art is still slow to a point where a slightly complex scene will not be previewed in real-time. This is a problem needing to be addressed.
Because at the moment the line art modifier is a vector calculation, it's not as fast as GPU shaders, and works in a different way as well, which means there will be a lot of differences as of how the line is shaded and what kind of style can we apply.
There are some existing way of showing line art in real-time. The outline and mesh boundary "look" in the viewport is already a good example of real-time line art. Other method can be implemented as well for a real-time line art that "looks good enough", such as:
Current line art code is getting more and more parallel, so it may eventually run on CUDA. All the "real-time" tricks we did up there won't be significantly faster if there's a large scene either.
Please give your thoughts on this :)
More stuff?
Because the workings of line art directly correlates to how people draw, this would naturally leads to shading and other advanced way of expressing geometry and shape forms. This could happen in current line art architecture, but could also be another module on top that get those results that are hard for conventional render engines to handle. With possible help from geometry nodes, some work can be done, we'll see.
Added subscribers: @ChengduLittleA, @bunny, @GeorgiaPacific, @antoniov
Added subscribers: @fclem, @mendio, @pepe-school-land, @filedescriptor
I agree that LineArt should be faster, but there are two key points to consider:
a) LineArt is a modifier, so everything is based on creating strokes that can be manipulated by other modifier. We must not generate only "visible" GPU data or the modifier stack will not work.
b) Creating a "special" drawing engine code for LineArt is not a good idea. In fact, there is some work in progress to integrate GPencil with Eevee ... creating a LIneArt engine goes in the opposite direction.
I would like to hear @fclem opinion about GPU drawing and shaders.
Any other step to make it faster is perfect, but we have been working a lot to integrate GPencil in Blender to begin to separate it again. We cannot consider GPencil an "island" in Blender.
Added subscriber: @frogstomp-4
I need to back @antoniov on this. But here are my two cents:
The fact that we're now getting vector based lineart - one can simply not do any better that this. This is revolution in the making and makes blender unique among competitors.
There are competing forces for reinventing the wheel going on. For example we have MALT shader already, that needs to be manually downloaded. But it does exactly what it is proposed - but I have to say it also becomes slow quickly with larger scenes.
I have noticed that in blender community, there is general confusion on lineart approaches. And although it has strong reputation for general NPR - lineart is still not a selling point.
So my idea would be getting Malt officially integrated rendering engine and making lineart template where one could switch between malt lines and grease pencil lineart. There simply is no point to reinvent this.
Malt example:
Lineart example:
Added subscriber: @ZedDB
I think it can be a simple overlay? Even when eevee takes care of gp there will still be overlays drawing on top, like selections and so on. This "preview" line should be fine in this sense.
@ZedDB suggested in the chat that CUDA line art is the best we could expect for current architecture. This is because we can have "near real time" performance and not lose any styling ability.
Maybe with future shadow shadow lines/reflections/camera distortion stuff in here, things can change a bit, but I'm not sure. These have always been line renderer's problem.
Realtime mode for line artto Realtime mode for line art (And more!)Added subscriber: @Grady
Perhaps this should be treated as a special case 'effect', similar to the 'bloom' effect for Eevee? Perhaps a render setting that can be enabled that adds simple real time line art overlay to a scene for when someone wants a simple cheap effect and doesn't so much care about calculating a complex editable grease pencil outline.
Added subscriber: @tsatse
Removed subscriber: @tsatse
Yes, let's keep this option open. I'm not entirely sure how future node system is gonna benefit the rendering process, and how real-time that can be, so yeah, we could use some eye-candy if nothing proves to be really-real-time :D
Added subscriber: @brecht
Detaching task from a specific Blender release. In general this should only be used when the feature is being worked on and targeted for a specific release, rather than a general module task.