MatCap Improvement #104640
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
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#104640
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?
Separate Specular Layer
The matcaps included in blender were introduce in the 2.8 version. At this time, there was concept of specular layer.
A patch was submitted (need to find it) to split the specular layer from the diffuse layer for existing internal matcaps. Unfortunately the patch was corrupted and we need to do the work all over again. But we can go one step further.
Color Neutrality
For correct support of all material parameters, the diffuse and specular components need to be color neutral. This means the surface color should be a white surface. It doesn't mean the whole matcap needs to be grayscale. Colored light can still bounce off the white surface. The surface can also have some kind of subsurface scattering.
Metallic support
For good support of metallic surfaces, there needs to be some variety to reflect in the specular channel. However, to not interfere with older matcaps behavior, we might consider making a different EXR layer only for metal reflection support.
It might prove complex to handle matcaps with metal reflection in the diffuse channel, not to mention if they have a clear-coat reflection. A possible solution would be to only color the specular reflexion (no scalling) and mix down the diffuse a bit by the amount of energy there is in the specular channel.
Roughness Support
Roughness support can be added by pre-filtering the specular layer and store that in the mipmap chain. This can be done automatically by workbench.
Ideally recorded roughness should be 0.0 with so that default roughness 0.5 is soft enough. However, this feels like highly constraining the freedom of matcap authoring.
Maybe an ad-hoc system could be figured out to "sharpen" the reflections (to a small extent, we don't want to loose the matcap appearance). This would recover the 0.0 to 0.5 roughness range.
Another option is to remap the roughness to a non-linear value that is almost starting at 0.5 (see attachment). This way, the default matcap appearance would be very close to what the matcap looks. However, this makes the roughness parameter feel weird.
Automatic conversion for other matcaps
For user matcaps, we could come up with an auto setup for auto splitting the diffuse and specular light. This would improve all other color modes other than the default white.
However this separation might be difficult for good looking metals. In the event where no good enough solution is found, we can disable the metallic parameter when using these matcaps. Parameters could be added to the studio-lights to help get a more proper split.
Main light extraction
This would be needed for the shadow to follow the light direction #xxxx as well as lighting the volumes #xxxx.
A Spherical Harmonic L1 extraction should provide an ambient and a directional term.
Hi... Any hope on using different matcaps on different objects?
That's not what this task is about. That would be a workflow change and this task is only about cleaning up / improving existing matcap rendering.
Note that the different matcaps approach is what we started with during early 2.8 development and we reverted back to single matcap for the whole scene. I don't remember the reason why.
Alright, no problem..
When I read the title "MatCap Improvement" I thought yay this gotta be it haha...
I hope it lands someday... to me that's the biggest downside of using matcaps in blender... 👍
How would the
Main light extraction
be useful?Isn't this a bit counter intuitive since Matcap lighting is always static to the viewer?
Shadows were envisioned to use a static world direction right?
@JulienKaspar There is #104641 which should make the shadow follow the lighting (by default, but static optionaly).