Texture margin generation Adjacent faces - border lookup fails in some directions around 45 degrees. #95249

Closed
opened 2022-01-27 13:05:59 +01:00 by Martijn Versteegh · 19 comments

Broken version: Blender 3.1 alpha 60bd6804db
Last Working Version: This is new code which wasn't available in previous versions.

When having multiple adjacent UV edges with angles between ~30 and ~60 degrees next to each other, some parts of the generated margin are not copied from th correct face. Also the outer edge of the margin is very jagged.

patch:
https://developer.blender.org/D13935

steps to reproduce.

  • Setup a material on the default cube with a noise texture on the base color and an unconnected empty image texture to bake to, Select the image texture.
  • Subdivide the cube (simple subdivision) so it has at least 16 squares on each side.
  • Go to the UV workspace.
  • Go to editmode.
  • Select all and rotate the UV mesh ~45 degrees.
  • Go to cycles -> baking and bake diffuse color with Adjacent faces as margin algorithm and a large margin ( > 16 pixels makes the effect more obvious)
Broken version: Blender 3.1 alpha 60bd6804dbd87b5f1907f208394b69610941fd1b Last Working Version: This is new code which wasn't available in previous versions. When having multiple adjacent UV edges with angles between ~30 and ~60 degrees next to each other, some parts of the generated margin are not copied from th correct face. Also the outer edge of the margin is very jagged. patch: https://developer.blender.org/D13935 steps to reproduce. - Setup a material on the default cube with a noise texture on the base color and an unconnected empty image texture to bake to, Select the image texture. - Subdivide the cube (simple subdivision) so it has at least 16 squares on each side. - Go to the UV workspace. - Go to editmode. - Select all and rotate the UV mesh ~45 degrees. - Go to cycles -> baking and bake diffuse color with Adjacent faces as margin algorithm and a large margin ( > 16 pixels makes the effect more obvious)
Author
Member

Added subscriber: @Baardaap

Added subscriber: @Baardaap
Martijn Versteegh self-assigned this 2022-01-27 13:06:27 +01:00
Author
Member

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

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

Added subscriber: @mont29

Added subscriber: @mont29

Changed status from 'Confirmed' to: 'Needs User Info'

Changed status from 'Confirmed' to: 'Needs User Info'

This report does not contain all the requested information, which is required for us to investigate the issue.

Please submit a new report and carefully follow the instructions. Be sure to provide system information, Blender version, the last Blender version which worked, and a .blend file with exact steps to reproduce the problem.

A guideline for making a good bug report can be found at https://wiki.blender.org/wiki/Process/Bug_Reports

This report does not contain all the requested information, which is required for us to investigate the issue. Please submit a new report and carefully follow the instructions. Be sure to provide system information, Blender version, the last Blender version which worked, and a .blend file with exact steps to reproduce the problem. A guideline for making a good bug report can be found at https://wiki.blender.org/wiki/Process/Bug_Reports
Author
Member

@mont29 Is there another way I should create a task for myself than report a bug and claim it myself? I don't see a 'create task ' option in Maniphest...

@mont29 Is there another way I should create a task for myself than report a bug and claim it myself? I don't see a 'create task ' option in Maniphest...
Author
Member
added patch https://developer.blender.org/D13935
Member

Added subscriber: @HooglyBoogly

Added subscriber: @HooglyBoogly
Member

Removed subscriber: @HooglyBoogly

Removed subscriber: @HooglyBoogly

@Baardaap Ah sorry, did not realize that this was a task for a patch you were working on yourself. But even then, adding a decent amount of info (reproducible steps and file, proper module tags, and so on) is still a better idea, one-liner tasks do not help anybody else to understand what is going on here.

@Baardaap Ah sorry, did not realize that this was a task for a patch you were working on yourself. But even then, adding a decent amount of info (reproducible steps and file, proper module tags, and so on) is still a better idea, one-liner tasks do not help anybody else to understand what is going on here.
Author
Member

@mont29 Is there a way I can mark a task as ' for myself'? I really only created the task to have it show up on the list of pre-3.1 things. The explanation of what it's about is written up a lot more clear on the associated diff. It feels a bit like busy-work to recreate all than info over here?

The whole creation of these tasks was probably overkill. But that's because with my sleepy head I had read the schedule as bcon4 on feb 2 instead of march 2. :-D

Had I read it correctly I wouldn't even have bothered to create the tasks. Or probably only created them in the same moment as uploading the diffs.

@mont29 Is there a way I can mark a task as ' for myself'? I really only created the task to have it show up on the list of pre-3.1 things. The explanation of what it's about is written up a lot more clear on the associated diff. It feels a bit like busy-work to recreate all than info over here? The whole creation of these tasks was probably overkill. But that's because with my sleepy head I had read the schedule as bcon4 on feb 2 instead of march 2. :-D Had I read it correctly I wouldn't even have bothered to create the tasks. Or probably only created them in the same moment as uploading the diffs.

This is generally not a good idea to 'just' have place-holder tasks like that. Either create a proper complete report, or just only do the diff (but would always recommend to have a proper report with all required info).

In any case, assigning yourself to the task is the proper thing to do - but regular users also do that quite often by mistake or otherwise, so when triaging this is not a reliable info unless the triager actually knows the person who did the report is a dev. Would suggest to at least leave a comment (or note in the task itself) making it clear you are on top of it then.

This is generally not a good idea to 'just' have place-holder tasks like that. Either create a proper complete report, or just only do the diff (but would always recommend to have a proper report with all required info). In any case, assigning yourself to the task is the proper thing to do - but regular users also do that quite often by mistake or otherwise, so when triaging this is not a reliable info unless the triager actually knows the person who did the report is a dev. Would suggest to at least leave a comment (or note in the task itself) making it clear you are on top of it then.
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

In #95249#1296768, @mont29 wrote:
This is generally not a good idea to 'just' have place-holder tasks like that. Either create a proper complete report, or just only do the diff (but would always recommend to have a proper report with all required info).

In any case, assigning yourself to the task is the proper thing to do - but regular users also do that quite often by mistake or otherwise, so when triaging this is not a reliable info unless the triager actually knows the person who did the report is a dev. Would suggest to at least leave a comment (or note in the task itself) making it clear you are on top of it then.

Same as #95250 (Texture border generation. Adjacent faces uses stale UV map when in edit mode.)

> In #95249#1296768, @mont29 wrote: > This is generally not a good idea to 'just' have place-holder tasks like that. Either create a proper complete report, or just only do the diff (but would always recommend to have a proper report with all required info). > > In any case, assigning yourself to the task is the proper thing to do - but regular users also do that quite often by mistake or otherwise, so when triaging this is not a reliable info unless the triager actually knows the person who did the report is a dev. Would suggest to at least leave a comment (or note in the task itself) making it clear you are on top of it then. Same as #95250 (Texture border generation. Adjacent faces uses stale UV map when in edit mode.)
Author
Member

Ok. I'll try to flesh out the reports a bit more this evening.

Would suggest to at least leave a comment (or note in the task itself) making it clear you are on top of it then.

Will do!

Ok. I'll try to flesh out the reports a bit more this evening. > Would suggest to at least leave a comment (or note in the task itself) making it clear you are on top of it then. Will do!
Author
Member

Changed status from 'Needs User Info' to: 'Confirmed'

Changed status from 'Needs User Info' to: 'Confirmed'

This issue was referenced by 83fa6a1b2a

This issue was referenced by 83fa6a1b2afb73a2d84cc5c45f0a34ea900ea0b2

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'

This issue was referenced by c8c9965df2

This issue was referenced by c8c9965df272835f0099260580ed8813fc8baf0d
Thomas Dinges added this to the 3.1 milestone 2023-02-08 15:53:04 +01:00
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
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
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#95249
No description provided.