Bug 158482 - Convert to 3D should auto enable "Double-Sided" if the original shape has no fill
Summary: Convert to 3D should auto enable "Double-Sided" if the original shape has no ...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Impress (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: All All
: medium minor
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Shapes
  Show dependency treegraph
 
Reported: 2023-12-01 18:53 UTC by Eyal Rozenberg
Modified: 2024-02-12 09:11 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments
Presentation with 3D-converted block arrow at different positions (78.36 KB, application/vnd.oasis.opendocument.presentation)
2023-12-01 18:53 UTC, Eyal Rozenberg
Details
Screenshot of Impress with attachment 191183, exhibiting the bug (134.04 KB, image/png)
2023-12-03 15:20 UTC, Eyal Rozenberg
Details
Screenshot of Impress (286.58 KB, image/png)
2023-12-21 14:13 UTC, Carla Aranaga
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eyal Rozenberg 2023-12-01 18:53:07 UTC
Created attachment 191183 [details]
Presentation with 3D-converted block arrow at different positions

If we convert a 2D shape with no fill and width-0 line to 3D, we (sometimes?) get a 3D shape with surfaces which are transparent on one side, and opaque on the other. If the width has a positive value, that doesn't happen.

To reproduce:

1. Create a new presentation
2. Delete the first slide's contents
3. On the drawing toolbar, choose Block Arrows > Circular Arrow
4. Indicate a rectangle for the "u-turn" arrow to appear
5. Right-click the arrow shape
6. Choose Convert > To 3D
7. Rotate the shape along different axes to examine its faces from multiple directions

Expected result: 
A shape with 0-width surfaces which are opaque on both sides; or alternatively semi-transparent equally on both sides. Even fully-transparent (i.e. nothing visible) is at least consistent, if not very convenient.

Actual result:
All surfaces in the shape are transparent on on side and fully opaque when viewed from the other side (which you get to by rotation).

The attached document has copies of the arrow rotated to different positions.
Comment 1 Eyal Rozenberg 2023-12-03 15:20:07 UTC
Created attachment 191203 [details]
Screenshot of Impress with attachment 191183 [details], exhibiting the bug
Comment 2 Carla Aranaga 2023-12-21 14:13:09 UTC
Created attachment 191546 [details]
Screenshot of Impress
Comment 3 Carla Aranaga 2023-12-21 14:16:57 UTC
I can confirmed that this happened with certain angles of rotation of the arrow but not as show on your schreenshot when the object is completely transparent. 

Version: 24.8.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: bcbc0857bf4bc24b5ea36e445a367cce0a382da4
CPU threads: 16; OS: Windows 10.0 Build 22621; UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: CL threaded
Comment 4 Eyal Rozenberg 2023-12-21 19:10:51 UTC
(In reply to Carla Aranaga from comment #3)
> I can confirmed that this happened with certain angles of rotation of the
> arrow but not as show on your schreenshot when the object is completely
> transparent. 

Even in my screenshot, transparency is not complete. I believe the difference in what you've tried is the choice of angles. Looking into the screen, if we only pitch the 3D shape and neither yaw nor roll it, we will not see much of the shape's sides.
Comment 5 Regina Henschel 2024-01-16 19:17:20 UTC
Please read https://wiki.documentfoundation.org/Documentation/HowTo/Draw/Make_a_3D_Star#Inside_and_Outside_of_a_Plane

The "backface culling" is done to reduce the calculation effort. The idea is to not calculate rendering for those faces that are not visible.

In case of your arrow object the 'inside' faces are visible. To enable their rendering use the "Double-Sided" button on the 'Geometry' tab of the '3D Effects' dialog.

I can image to enable "Double-Sided" automatically, if the shape has no fill. That would be more user-friendly.
Comment 6 Eyal Rozenberg 2024-01-16 20:35:34 UTC
(In reply to Regina Henschel from comment #5)
> In case of your arrow object the 'inside' faces are visible. To enable their
> rendering use the "Double-Sided" button on the 'Geometry' tab of the '3D
> Effects' dialog.
> 
> I can image to enable "Double-Sided" automatically, if the shape has no
> fill. That would be more user-friendly.

Ok, that could be the solution to this problem.

Still, the way things stand now - is a bug, since the user doesn't need to take any actions for visible faces in 3D objects to be rendered. And few users are likely to be aware of this possibility.
Comment 7 Buovjaga 2024-01-29 13:14:14 UTC
After step 4 there should be

Go to Sidebar - Properties and set Fill to None.

So the ask is to make such shapes have all their faces after 3D conversion just like with filled shapes.

Maybe users would like to have the ability to create shapes with a missing face, though. We don't seem to provide any editing capabilities after the fact. Pinging UX team.
Comment 8 Heiko Tietze 2024-01-29 13:53:49 UTC
In general, 3D effects is not a beginners feature and you easily end up in an unwanted display of the scenery. 

(In reply to Eyal Rozenberg from comment #0)
> To reproduce:
> 1..7.
No issue for me (Linux/Kf5/7.6), neither on Windows. In the example document several attributes have been altered.

(In reply to Regina Henschel from comment #5)
> use the "Double-Sided" button on the 'Geometry' tab
Linux shows the tooltip on these buttons while Windows returns the name. Eg. "Double-sided" is "Close the shape of a 3D object that was created by extruding a freeform line (Convert - To 3D)". The converted circular arrow works in 3D with or without the option.
Comment 9 Stéphane Guillou (stragu) 2024-01-30 00:09:04 UTC
Reproduced from new document, using Eyal's steps + Buovjaga's extra step:

1. Create a new presentation
2. Delete the first slide's contents
3. On the drawing toolbar, choose Block Arrows > Circular Arrow
4. Indicate a rectangle for the "u-turn" arrow to appear
4b. Sidebar - Properties and set Fill to None.
5. Right-click the arrow shape
6. Choose Convert > To 3D
7. Rotate the shape along different axes to examine its faces from multiple directions

I agree that it's an unexpected default to not be able to see the inside faces.

(In reply to Regina Henschel from comment #5)
> I can image to enable "Double-Sided" automatically, if the shape has no
> fill. That would be more user-friendly.
I agree double-sided should be the default when converting to 3D, at least in the case of no fill or use of transparency of the original object.

(In reply to Heiko Tietze from comment #8)
> > use the "Double-Sided" button on the 'Geometry' tab
> Linux shows the tooltip on these buttons while Windows returns the name.
Looks like you have Extended Tips on? I get "Double-Sided" when they're off.

Version: 24.8.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 2cedb1a19ad605df4e148589e9027512e4dd9265
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3
Locale: en-AU (en_AU.UTF-8); UI: en-US
Calc: threaded
Comment 10 Heiko Tietze 2024-01-30 08:47:10 UTC
> (In reply to Regina Henschel from comment #5)
> > I can image to enable "Double-Sided" automatically, if the shape has no
> > fill. That would be more user-friendly.
> I agree double-sided should be the default when converting to 3D, at least
> in the case of no fill or use of transparency of the original object.
My take was that you can easily mess up with the attributes. Backface culling makes sense for 3D objects - and to switch it off conditionally sounds like an attempt to outsmart the user. But not opposing strongly to the idea.
Comment 11 Heiko Tietze 2024-02-12 09:11:04 UTC
(In reply to Stéphane Guillou (stragu) from comment #9)
> (In reply to Regina Henschel from comment #5)
> > I can image to enable "Double-Sided" automatically, if the shape has no
> > fill. That would be more user-friendly.
> I agree double-sided should be the default when converting to 3D, at least
> in the case of no fill or use of transparency of the original object.

Let's do it then.