JannisX11 / blockbench

Blockbench - A low poly 3D model editor
https://www.blockbench.net
GNU General Public License v3.0
3.4k stars 294 forks source link

[Performance Issue] UV editor increasingly lowers performance the more faces are displayed #2553

Open Azagwen opened 1 week ago

Azagwen commented 1 week ago

What are you trying to do, and what do you expect to happen?

I'm editing the UVs of a mesh, with a medium number of faces. And I'm trying to navigate the UV editor panel smoothly to move UV islands & paint

What happens instead?

When UV overlay is enabled, zooming and moving elements is significantly slowed down

https://github.com/user-attachments/assets/91fd1cf4-329c-45e1-9932-fd66dcdf8b40

When UV overlay is disabled however, this section gains a significant boost in performance, but now I have no idea if the faces I'm moving may be overlapping with another element. And moving a set of faces still happens at a relatively low frame rate.

https://github.com/user-attachments/assets/20f306d2-59ff-4dd0-aaa4-95cb4c20522f

Model format in which the issue occurs

Generic Model

Blockbench variant

Program

Blockbench version

4.11.2

Operating System

Windows 10

Installed Blockbench plugins

JannisX11 commented 2 days ago

I mean yeah, displaying more data in the interface slows down the program when the data needs to be updated. That is to be expected, it's not exactly a bug. I can file this as a suggestion to look into improving rendering performance. But of course there is only so much you can do with HTML/SVG rendering.

Azagwen commented 2 hours ago

I mean yeah, displaying more data in the interface slows down the program when the data needs to be updated. That is to be expected, it's not exactly a bug. I can file this as a suggestion to look into improving rendering performance. But of course there is only so much you can do with HTML/SVG rendering.

Yeah that's fair, I did realize when I looked into it that bb draws these in HTML, which I gathered is harder to optimize especially for generated data like here