GPencil: Canvas Plane Is Hidden By Objects / is no longer X-Ray #76366

Closed
opened 3 years ago by Ghost_Train · 19 comments

System Information
Operating system: Windows 7 64bit Pro
Graphics card: NVIDIA GeForce 970 GTX

Blender Version
Broken: 2.83, 1623fdb3bc, Beta, 2020-05-02
Worked: 2.82a

Short description of error
With Grease Pencil we would use the canvas plane to assist with drawing, but it is quite difficult to use when it is both hidden by ojects due to no longer being xray and also is locked the center of the scene no longer follow 3D Cursor. There appears to be no option to make it xray like it should be. Or if there is, its not clear where to find it. But it should be on by default. The Plane used to be visible by default no matter what is in front of it.

2_83.jpg

Exact steps for others to reproduce the error

  1. Create a new basic scene with default cube, or just add a cube (Make sure it is in the center of the scene)
  2. Add a Grease Pencil > Blank object.
  3. Set Viewport shading to Rendered
  4. Click Overlays dropdown and enable both Canvas and 3D Cursor
  5. Set the Drawing Plane setting to View, Top, Side, Front or Curor. Notice that the Drawing plane is completely hidden by the default Cube (or any object)
**System Information** Operating system: Windows 7 64bit Pro Graphics card: NVIDIA GeForce 970 GTX **Blender Version** Broken: 2.83, 1623fdb3bc55, Beta, 2020-05-02 Worked: 2.82a **Short description of error** With Grease Pencil we would use the canvas plane to assist with drawing, but it is quite difficult to use when it is both hidden by ojects due to no longer being xray and also is locked the center of the scene no longer follow 3D Cursor. There appears to be no option to make it xray like it should be. Or if there is, its not clear where to find it. But it should be on by default. The Plane used to be visible by default no matter what is in front of it. - Separate ticket created for the second mentioned issue: https://developer.blender.org/T76364 ![2_83.jpg](https://archive.blender.org/developer/F8508868/2_83.jpg) **Exact steps for others to reproduce the error** 1. Create a new basic scene with default cube, or just add a cube (Make sure it is in the center of the scene) 2. Add a Grease Pencil > Blank object. 3. Set Viewport shading to Rendered 4. Click Overlays dropdown and enable both Canvas and 3D Cursor 5. Set the Drawing Plane setting to View, Top, Side, Front or Curor. Notice that the Drawing plane is completely hidden by the default Cube (or any object)
Poster

Added subscriber: @Ghost_Train

Added subscriber: @Ghost_Train
Collaborator

Added subscribers: @fclem, @antoniov

Added subscribers: @fclem, @antoniov
Collaborator

I don't think this is a bug... the gird is "inside" the cube, so if you draw anything, the final stroke will go "inside".

@fclem Any comment about that?

I don't think this is a bug... the gird is "inside" the cube, so if you draw anything, the final stroke will go "inside". @fclem Any comment about that?
antoniov changed title from Canvas Plane Is Hidden By Objects / is no longer X-Ray to GPencil: Canvas Plane Is Hidden By Objects / is no longer X-Ray 3 years ago
Poster

@antoniov An example of how I expected it to work can be seen in this recent tutorial by Dedouze. As seen in the video, the canvas drawing plane has xray. This is how it works in 2.82. In 2.83 it is not working like this and is hidden by objects making it difficult to see how the plane is oriented.
https://youtu.be/c57qq2nE3B0?t=970

It defeats the purpose of the canvas plane as a tool that assists with drawing. If we don't want to see it we can just uncheck it from the outlines dropdown and drawing still works the same. The point of this ticket is, when we enable canvas, we cannot see it anymore in 2.83 if it is covered by objects in the scene.

@antoniov An example of how I expected it to work can be seen in this recent tutorial by Dedouze. As seen in the video, the canvas drawing plane has xray. This is how it works in 2.82. In 2.83 it is not working like this and is hidden by objects making it difficult to see how the plane is oriented. https://youtu.be/c57qq2nE3B0?t=970 It defeats the purpose of the canvas plane as a tool that assists with drawing. If we don't want to see it we can just uncheck it from the outlines dropdown and drawing still works the same. The point of this ticket is, when we enable canvas, we cannot see it anymore in 2.83 if it is covered by objects in the scene.
Poster

To add to this, Actually it would be nice to have a toggle for xray. If xray is disabled, it might help us visually when trying to align the plane to object surfaces. But in general use, i think i would keep xray ON since it is a helper tool

To add to this, Actually it would be nice to have a toggle for xray. If xray is disabled, it might help us visually when trying to align the plane to object surfaces. But in general use, i think i would keep xray ON since it is a helper tool
Collaborator

@fclem I think that we could disable depth test for Grid Canvas....

index b79d5753686..1620de85a28 100644
    - a/source/blender/draw/engines/overlay/overlay_gpencil.c
+++ b/source/blender/draw/engines/overlay/overlay_gpencil.c
@@ -256,7 +256,7 @@ void OVERLAY_gpencil_cache_init(OVERLAY_Data *vedata)

const int gridlines = (gpd->grid.lines <= 0) ? 1 : gpd->grid.lines;
int line_ct = gridlines * 4 + 2;

 
- DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_BLEND_ALPHA;
+    DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_ALPHA;

DRW_PASS_CREATE(psl->gpencil_canvas_ps, state);

 

sh = OVERLAY_shader_gpencil_canvas();

What do you think?

@fclem I think that we could disable depth test for Grid Canvas.... ```diff --git a/source/blender/draw/engines/overlay/overlay_gpencil.c b/source/blender/draw/engines/overlay/overlay_gpencil.c index b79d5753686..1620de85a28 100644 - a/source/blender/draw/engines/overlay/overlay_gpencil.c +++ b/source/blender/draw/engines/overlay/overlay_gpencil.c @@ -256,7 +256,7 @@ void OVERLAY_gpencil_cache_init(OVERLAY_Data *vedata) ``` const int gridlines = (gpd->grid.lines <= 0) ? 1 : gpd->grid.lines; int line_ct = gridlines * 4 + 2; ``` - DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_BLEND_ALPHA; + DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_ALPHA; ``` DRW_PASS_CREATE(psl->gpencil_canvas_ps, state); ``` ``` sh = OVERLAY_shader_gpencil_canvas(); ``` ``` What do you think?
Collaborator

Added subscribers: @mendio, @pepe-school-land

Added subscribers: @mendio, @pepe-school-land
Collaborator

@mendio @pepe-school-land Do you think the grid must be always on top?

@mendio @pepe-school-land Do you think the grid must be always on top?
Collaborator

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
antoniov self-assigned this 3 years ago
dupoxy commented 3 years ago

Added subscriber: @dupoxy

Added subscriber: @dupoxy
dupoxy commented 3 years ago

There is an X-ray toggle but in Solid Viewport shading working right now
but not in Material Preview or Rendered Viewport shading.
{F8511250 size=full}

There is an X-ray toggle but in Solid Viewport shading working right now but not in Material Preview or Rendered Viewport shading. {[F8511250](https://archive.blender.org/developer/F8511250/X-ray.png) size=full}
Collaborator

I don't like to add more switches or reuse X-Ray button. This button is for other things and it's not separated for grid only, so it's not a good solution.

IMHO the best solution is just keep on top all the time as an overlay. Also, we have the opacity of the grid, so if keeping on top is too intrusive, the artist can reduce opacity to get a better experience.

I don't like to add more switches or reuse X-Ray button. This button is for other things and it's not separated for grid only, so it's not a good solution. IMHO the best solution is just keep on top all the time as an overlay. Also, we have the opacity of the grid, so if keeping on top is too intrusive, the artist can reduce opacity to get a better experience.
Collaborator

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
antoniov closed this issue 3 years ago
Collaborator

We are being dicussing about the grid canvas and the mayority of the team agree that Grid Canvas must be occluded with 3D geometry if the geometry is in front. This is a change from 2.82, but the new refactored engine allows to do that. The old engine did not supported this occlusion and this was the reason of the "always on top" functionality.

If you need to see the grid, you can enable X-Ray.

image.png

If we keep the canvas always on top, it sends a wrong feedback because the final stroke will not be on top, but occluded by the mesh.

I have added this change to the release notes.

We are being dicussing about the grid canvas and the mayority of the team agree that Grid Canvas must be occluded with 3D geometry if the geometry is in front. This is a change from 2.82, but the new refactored engine allows to do that. The old engine did not supported this occlusion and this was the reason of the "always on top" functionality. If you need to see the grid, you can enable X-Ray. ![image.png](https://archive.blender.org/developer/F8512113/image.png) If we keep the canvas always on top, it sends a wrong feedback because the final stroke will not be on top, but occluded by the mesh. I have added this change to the release notes.
yrrnn commented 3 years ago

Added subscriber: @yrrnn

Added subscriber: @yrrnn
yrrnn commented 3 years ago

@antoniov I just found this thread as I was also following Dedouze's tutorial and was confused when the canvas was occluded by the cube. I suspect many people would prefer that the canvas is always visible on top even when X-Ray is disabled, would it be possible to add a toggle option to the Viewport Overlays drop-down?

@antoniov I just found this thread as I was also following Dedouze's tutorial and was confused when the canvas was occluded by the cube. I suspect many people would prefer that the canvas is always visible on top even when X-Ray is disabled, would it be possible to add a toggle option to the Viewport Overlays drop-down?
Collaborator

@mendio @pepe-school-land Do you think is good idea add an option to set the Grid on top?

@mendio @pepe-school-land Do you think is good idea add an option to set the Grid on top?
Poster

A toggle would be good because there may be situations where we do and do not want it on top.

A toggle would be good because there may be situations where we do and do not want it on top.
Collaborator

Proposed new option in D7721

Proposed new option in [D7721](https://archive.blender.org/developer/D7721)
Sign in to join this conversation.
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/Collada
Interest/Compositing
Interest/Core
Interest/Cycles
Interest/Dependency Graph
Interest/Development Management
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/Modeling
Interest/Modifiers
Interest/Motion Tracking
Interest/Nodes & Physics
Interest/Overrides
Interest/Performance
Interest/Performance
Interest/Physics
Interest/Pipeline, Assets & I/O
Interest/Platforms, Builds, Tests & Devices
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
legacy module/Animation & Rigging
legacy module/Core
legacy module/Development Management
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/Triaging
legacy module/User Interface
legacy module/VFX & Video
legacy project/1.0.0-beta.2
legacy project/Asset Browser (Archived)
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Code Quest
legacy project/Datablocks and Libraries
legacy project/Eevee
legacy project/Game Animation
legacy project/Game Audio
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Logic
legacy project/Game Physics
legacy project/Game Python
legacy project/Game Rendering
legacy project/Game UI
legacy project/GPU / Viewport
legacy project/GSoC
legacy project/Infrastructure: Websites
legacy project/LibOverrides - Usability and UX
legacy project/Milestone 1: Basic, Local Asset Browser
legacy project/Nodes
legacy project/OpenGL Error
legacy project/Papercut
legacy project/Pose Library Basics
legacy project/Retrospective
legacy project/Tracker Curfew
legacy project/Wintab High Frequency
Meta/Good First Issue
Meta/Papercut
migration/requires-manual-verification
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 & Devices
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 Information 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
4 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#76366
Loading…
There is no content yet.