Coder Social home page Coder Social logo

kirilstrezikozin / bakemaster-blender-addon Goto Github PK

View Code? Open in Web Editor NEW
33.0 33.0 6.0 152.13 MB

Welcome to BakeMaster, a powerful and feature-packed baking solution created for Blender - an open-source 3D Computer graphics software.

License: Other

Python 99.93% Makefile 0.07%
3d addon bake-textures blender blender-addon blender-python blender-scripts python textures

bakemaster-blender-addon's Introduction

bakemaster-blender-addon's People

Contributors

kirilstrezikozin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

bakemaster-blender-addon's Issues

BUG: Normal map colorspace could not be set

This bug report is:

  • [Code Execution Error: bpy_struct: item.attr = val: enum "Non-Color" not found in ('Linear', 'sRGB')]

Describe the bug

The same file can bake normal maps in Blender 3.3, but there is an error in 3.4. Other types of maps can be baked.
I encountered the same error when using the tool below.
https://github.com/jayanam/jbake-tools

Screenshots
tmpC80A

Desktop (please complete the following information):

  • OS [e.g. Windows]
  • OS Version [e.g. Windows 11]
  • Blender Version [e.g. Blender 3.4.0]
  • BakeMaster Version [e.g. 2.0]

BUG: $texsetname in batch name only returns the name of the first Texture Set

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
@creepererer reported on Discord: Texture set baking only writes the first texture set name to the baked map(for example, the config in the pic will produce the following output map names : rail1_NORMAL, NORMAL.001, NORMAL).

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Blender 4.0
  • BakeMaster 2.6.0a1

BUG: hang when creating a bake job

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
Creating a bake job with more than two objects in it causes Blender to hang.

To Reproduce
Steps to reproduce the behavior:

  1. Add a material to the default cube
  2. Duplicate it twice and add all three cubes to the BakeMaster object list.
  3. Switch on Name Matching
  4. Press the Create Bake Job Group button
  5. Add the cubes as low or high poly (doesn't matter)
  6. Blender hangs permanently.

Expected behavior
The cubes should be added to a container for further config.

Desktop (please complete the following information):

  • OS: MacOS
  • OS Version: 13.3.1 (Ventura)
  • Blender Version: 3.6.0
  • BakeMaster Version: 2.5.2

REQUEST: Option to type custom texture color space in Color Management

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
If the user has a custom-configured color management in Blender, he'd need to change image texture color space to a custom one. The problem here is that texture color space has to be set before baking, otherwise it messes up the colors. BakeMaster only supports the default range of color spaces available within Blender
@Alexandr (from Discord) faced exactly that.

Describe the solution you'd like to be implemented
BakeMaster color management has a texture color space dropdown. Could a Custom Colorspace option be added to that dropdown? When this option is chosen, a field to type a custom color space will be displayed for the user.

Additional context
Another feature request should be created for introducing a toggle to show the full list of color spaces for textures in BakeMaster instead of the most common ones the addon currently has.

REQUEST: Displacement map: choose multires subdiv level

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
Northope#3887 (Discord):
Would be great to have an option on baking from multi rez to choose from which subdivision level we want to bake from:
image

Describe the solution you'd like to be implemented
Displacement map (data = Highpoly) has a property to set subdiv_levels, add a similar property for Displacement map (data = Multires) so that on bake the modifier's subdiv levels will be set to preferred.

Q: some map types are missing their settings

(Edit by @KirilStrezikozin) This is a question that was initially interpreted as a bug.

This bug report is:

  • not a duplicate

Describe the bug
Some map types are missing their settings and can't be configured. There may be others but this at least applies to: AO, Cavity, Curvature and Thickness.

To Reproduce
Steps to reproduce the behavior:

  1. Add an Object to BM
  2. Add a map and choose AO (or one of the others)
  3. Check the settings that are shown

Expected behavior
Should be able to configure things like samples, distance, etc as shown in the docs.

Screenshots
Here is AO for example:
SCR-20230928-ovfp

Desktop (please complete the following information):

  • OS: MacOS
  • OS Version: Ventura
  • Blender Version: 3.6
  • BakeMaster Version: 2.5.2

BUG: Global presets do not include map formats

Hello,I hope global presets can include map formats.Because I often batch bake the maps of multiple objects to the specified format, but currently global presets cannot achieve this, I need to modify each object.Thank you very much!
Here is a demonstration video.

BUG: VG Indexes do not cover every edge case

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
@spawd reported on Discord: Is 0 a valid VG index? Asking because I have an object with VG 4 and it's getting affected by a VG 0 object. different VG objects are also affecting each other, VG 8 is getting affected by VG 4
If I hide the other objects and rebake AO, it's baking as expected

REQUEST: Texture upscaling

It would be nice to have the option to upscale textures after the baking process.

Basically, i could bake my maps at 1k resolution and then upscale to 4K. I could then go and add fine details on the different maps without having to convert images to a higher resolution in another software beforehand or waiting for a 4k texture to be baked compared to the shorter baking time of a 1K texture.

The workflow i would be trying to achieve with this option is as follow:
-Bake simple (low detail) maps in 1K
-Upscale to 4K (no real loss of detail due to the simplicity of the texture)
-Open the upscaled texture in the texture editor and add fine details that would have otherwise been lost in a 1K bake
-Save the edited image as the new texture

It would allow me to save on baking time (rather considerable for the huge scene i work in) by rendering 1K textures instead of 4K for some low detail objects

REQUEST: BakeMaster own denoiser

This feature request is:

  • not a duplicate
  • implemented

lack of info.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like to be implemented
A clear and concise description of what you want to happen.

Additional context
Add any other context or screenshots about the feature request here.

BUG: Several default values have hard limits while Blender has soft

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
@marcovivirito reported on Discord:

Can't set extrusion value higher than 1 in BakeMaster:
image
Although Blender allows values like 3m for extrusion:
image

To Reproduce
Steps to reproduce the behavior:

  1. Add an object to BakeMaster
  2. Go to High to Lowpoly panel
  3. Scroll down to where the extrusion property is
  4. Try to set a value higher than 1
  5. See that 1 is the hard upper limit.

Expected behavior
Extrusion value is passed to Blender Bake from BakeMaster. Therefore, BakeMaster's extrusion should allow the same values as Blender's default extrusion.

Desktop (please complete the following information):

  • OS Any
  • Blender 4.0
  • BakeMaster 2.6.0a4 (or 2.6.0a3)

Additional context
So far I've also found that BakeMaster's margin property has a hard limit of 64, although Blender's one has a soft limit of 64.

BUG: using "triangulate lowpoly" with cage object results in bake error

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
@numity reported on Discord:

I have a question about baking with cage when turn on the "trianglate lowpoly"
when do that the tris count seem different between the low and the cage, then baker refuse to bake

To Reproduce
Steps to reproduce the behavior:

  1. Set up any kind of high to lowpoly bake.
  2. Enable triangulate_lowpoly in the Shading settings.
  3. Try to bake
  4. Internal bake error is caught, BakeMaster's bake timer stays alive.

Expected behavior
BakeMaster should also add a triangulate modifier to the Cage object to match the number of tris between lowpoly and cage objects.

Screenshots

  1. The behavior from To Reproduce:
    image
  2. If triangulate modifier is added manually to the Cage:
    image
  3. @numity reported a successful bake after adding a triangulate modifier to the Cage object. Cannot achieve the same on my end, only if applying triangulate modifiers for both lowpoly and cage, and then uncheck triangulate_lowoply, then bake.
  4. Baking with default Blender allows having active triangulate modifiers for both lowpoly and cage for the bake to execute without errors. This case is what BakeMaster should adopt.

Desktop (please complete the following information):

  • OS: Arch Linux
  • Blender Version 4.0.0
  • BakeMaster Version 2.6.0a3

REQUEST: Set up a texture set and select a map to sync all settings with

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
atokim from BlenderMarket:
Making resolution settings for texture sets and automatically applying them to baked maps is much faster and easier than doing it for every texture in every "baking job". It is logical to use the bake settings for each map for all texture sets automatically - there is no need to configure them individually each time - this is not a frequent case in my practice and in this case I will simply create a separate bake session.

Describe the solution you'd like to be implemented
Add functionality that will allow the user to set up a texture set and select a map to sync all settings with.

REQUEST: Right click context menu: Bake Selected

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
Roivas#0001 (Discord):
Might be dreaming a bit too big here:
A right click context menu item in object mode 'Bake Selected...'
image

Describe the solution you'd like to be implemented
Will be useful as a quick bake solution.

  1. Display selected objects in a table (with bake viz prop)
  2. UV layer prop for each obj (uv type is automatic, no prop for it)
  3. maps & format table like regular one (when full_map preset is chosen - collapse panel and just display preset's name, and a button to detach the preset and then display a default maps table & format panel)
  4. bake output panel like default (same for preset like above)
  5. texture sets panel like default
  6. Single bake button to bake all

FEAT: Map preview for Objects inside Containers

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
Currently, map preview is available for detached objects or when name matching is turned off. Containers don't.

Describe the solution you'd like to be implemented
There is a way to implement this by turning on a preview preview on for all objects inside the container.

REQUEST: Apply to selected (Multi select objects to edit specific props)

This feature request is:

  • This feature request is not a duplicate
  • Implemented

How about:

  • A way to apply a setting to all/multiple objects at once (through a checkbox system or a ctrl + click system, I am frustrated when I have 100+ objects that I want to apply settings to)

How I think it can be implemented:

  • a checkbox system (not great but better than nothing)
  • a way to multiselect with ctrl (selects specific objects) and shift (selects everything in the range) then click on settings and have them apply to all of those selected objects. (would also be nice to have a visual indicator that something has been selected)
  • a button that you can press to sync all settings from the current object to everything
  • use blenders copy all to selected option (would pair well with the second bullet point)
    image

Edited by @KirilStrezikozin:

  • Add Operator to sync lastly edited property with chosen objects (Remove in 3.0.0)

BUG: When baking from multiple highpolies, gamma correction is applied more than once

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
@Zatelliti reported on Discord: I'm trying to bake from multiple Highpolies that was imported with 2 texture sets to a single Lowpoly (with 1 texture set). My issue is with Albedo or Diffuse Color as both bake produce same result as expected. The issue is that first highpoly bake is good but 2nd and 3rd are added on top and darkens previous baked area where it should just add nothing. (Default Blender Bake produce expected result). Am I doing something wrong? I have no composite node enabled.

To Reproduce
Steps to reproduce the behavior:

  1. Set up a scene with one lowpoly and three highpoly objects.
  2. Add all to BakeMaster.
  3. Add an AlbedoM map.
  4. Bake it.
  5. Open Image Editor and see gradual darkening with each next highpoly effect baked.

Expected behavior
No darkening since it outputs wrong colors.

Screenshots
Currently:
image
Should be:
image

Desktop (please complete the following information):

  • Any OS
  • Blender 3.6 and Blender 4.0 (at least)
  • BakeMaster 2.5.2

REQUEST: Blender's Color Management on for bake

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
ronenosity (BlenderMarket):
I was wondering if your addon applies Color Management settings into the bakes in the same way that it gets applied to renders. I use this all the time to color-correct my renders - so it would be helpful to apply the same color corrections to baked textures.

Describe the solution you'd like to be implemented
Add a property to let the user choose whether the Color Management settings will stay or be turned off while baking.

Additional context
My reply: Blender compositor nodes are turned off at the bake time, because such color management is project-dependent, and usually baked maps are preferred to be neutral and represent the actual texture details of the mesh, and the scene colors can be tweaked after.
But: I'll make it.

REQUEST: Rework Cavity map, add Convexity map

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
I always do Cavity and Convexity maps with BakeMaster's Curvature map by modifying the default values. Its default Cavity map is based on the Pointiness of the object, whereas it is expected to output results similar to if I were to bake an AO map with a tiny distance value.

Describe the solution you'd like to be implemented

  1. Rework Cavity map to include a toggle: switch between Blender's Pointiness look and standard (like AO map with little ray distance).
  2. Add Convexity map to avoid manipulating Curvature map to achieve that map's look.

Additional context
Self-reported.

BUG: object has no attribute 'use_zbuffer'

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
Both @Fairplex and @creepererer initially reported this on Discord.
In Blender 4.0, this commit removed use_zbuffer property, which BakeMaster ensures to be set to False.

To Reproduce
Steps to reproduce the behavior:

  1. Run whatever bake using BakeMaster in Blender 4.0
  2. Maps are baked but not saved externally, and Code Execution Error is reported.

Expected behavior
No Code Execution Error and successful bake.

Screenshots
image
image

Desktop (please complete the following information):

  • Windows
  • Windows 11
  • Blender 4.0
  • BakeMaster 2.5.2

BUG: 'Bake this' disables rendering of the rest of BM objects

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
Fairplex on Discord found that:

the only real problem is the jobs group ignoring each other. I think if you make one of the cube emissive, the plane will ignore that
...
image
...
ahh I see what is the reall issue
when I tested, I only clicked "Bake this" instead of "Bake All", and bake this is indeed ignoring other objects

...
Bake this vs Bake All
image
that would be really nice to be able to bake each jobs separately, while somehow respecting the "renders" independently, if that make sens

Expected behavior

(Fairplex) Do you think it would be possible to just use "Bake this" acting the same as "Bake all", I mean, including other objects to the ray contribution ? in the case of my apartement, if I just want to update the lightmap of the living room, without having to bake every jobs.

Desktop (please complete the following information):

  • OS Any
  • Blender 4.0
  • BakeMaster 2.6.0a3

Additional context
Me replying:

yeah, I see that when using "Bake this" BM disables rendering of the rest of the BM objects
I'll change it to respect the "vg index" and "hide when inactive"
this will make BM cycle through its objects and set their render visibility as if the user pressed "Bake all"
thus maintaining render visibility states across all bakes of the current setup

REQUEST: Material groups - divide materials into separate image sets to bake

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
Snoopybob from BlenderMarket:
I can tell you that I have compared most of the addons of this type, and I haven't found any that offers this obvious feature. I am sure that many people would be interested in such a feature, especially in the field of video games. Merging maps is convenient, but when you are constrained to low resolutions, it is better to have one map per material.

Describe the solution you'd like to be implemented
a sub-table in which, when you select an object, the list of materials appears with the possibility of selecting those which will be baker individually, of those which one could merge.

Not easy to project but I think this is the kind of functionality that should be allowed to "unfold" once an option is checked. This allows the user to glimpse new and more refined possibilities.

  1. We activate the display of the bake options by material
  2. Choose the objects concerned, then the materials concerned by objects
  3. Specify which ones will be merged and which ones will be individually baked "by default".

Just an idea, I hope it inspires you

Additional context
my option:
A section called "Material Groups" where you could specify unique material groups and add one or multiple objects' materials to them. With this kind of customization, you could be able to not bake all materials merged or all separately, but instead, for ex, choose mat1, mat2, mat4 to bake merged and mat3 separately from them.

REQUEST: Panels' scroll bars

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
thomas | Spaceflower#2247 (Discord):
make this a scroll box if possible. Would help with that many objects
image

Describe the solution you'd like to be implemented
Some UILists have a fixed rows value equal to the number of items in it. Need to add a scroll bar if that number is too big.

Q: Bake all doesn't bake all objects

Hi,
I am Meet. I am facing issue with 'Bake all' option in the bake master addon. I have around 60 objects which needs to be baked. However When I add all those objects and press bake all, only one object get baked.

Please provide some solution to this issue as soon as possible.

Thank You.

FEAT: Texture channel packing for vertex colors

This bug report is:

  • not a duplicate
  • implemented/fixed

Describe the bug
Kas.st#8843 initially reported this on Discord. In short, when baking maps to vertex colors with a channel pack set up for these maps, the channel pack is not performed and only the first vertex color bake is saved, others are blank. Reason: channel packing was not implemented for maps baked to vertex colors.

To Reproduce
Steps to reproduce the behavior:

  1. Add 2 maps (e.g. AO and Curvature).
  2. Set bake to Vertex Colors.
  3. Bake.
  4. Only the first map is saved to a new vertex color layer, others are blank, and no channel pack.

Expected behavior
Channel packing for maps baked to vertex colors to work properly.

Screenshots
image
image

Desktop (please complete the following information):

  • Any OS
  • Blender 3.2 and higher
  • BakeMaster 2.0 and higher

Additional context
@kas.st#8843 replied:

I thinking a good approach to fixing the issues are to 1. fix the overwriting of the first vertex attribute => all data is written to the channels, 2. post process packing: create new attribute and copy individual channels. (3. delete 'buffer attributes')

REQUEST: Make Decal object baking more universal (Decal frame preview)

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
marcovivirito (Discord) was looking for a way to 'bake from view'. 'Bake from view' is not an official term and means using a render camera to render-bake from a particular view or baking details down onto a flat plane (high-to-lowpoly). The initial issue marcovivirito faced is not connected to this issue, but making BakeMaster's Decal object baking more universal may suit his initial needs.

Describe the solution you'd like to be implemented
Currently, only Decal Pass map is baked using the render-bake approach (read brief explanation above). Even if BM Object is a Decal Object, all other maps are not render-baked, but just simply baked using the object's UVs.
Also, Decal Pass baking enforces object rescaling to fit within 1x1 m box, and the offset value cannot be previewed.
What I'm planning to implement is:

  • A universal 'bake view' for baking Decal objects, meaning the object won't be scaled down or repositioned, the camera used for render-bake will be automatically scaled to fit the object's dimensions.
  • Add a preview ability to Decal Object panel to temporarily create and attach a camera that will be used for the decal object's render-bake. This way the user will be able to preview the render-bake frame and adjust the offset to their liking.
  • If BM object is a Decal object, bake all its maps using render-bake, not just the Decal Pass maps.

REQUEST: Bake Jobs

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
thomas | Spaceflower#2247 (Discord) & JaxMurderer#1792 (Discord)
There is a thing like Bake Job Group but it's far from perfect bake jobs. People need the ability to actually create bake jobs as a highest-level configuration of BakeMaster.

Describe the solution you'd like to be implemented

  1. A table on the top called Bake Jobs containing bake jobs.
    a. Bake jobs names can be edited
    b. Bake jobs bake visibility can be toggled
    c. Bake jobs order can be changed
    d. Bake jobs can be added, removed, or trashed
  2. Reworking everything (but not quite):
    a. bm_aol won't be the top-level CollectionProperty but bm_bake_jobs will.
    b. Each bake job will have its own set of objects, texture sets, and so on.
  3. Bake options change to: Bake current object, Bake current Bake Job, Bake all Bake Jobs.

BUG: baking udims to the disk

This bug report is:

  • not a duplicate
  • self reported (probably I know where the issue is)

Bug description
Runtime error: No marker in the image file path when baking udims externally.

To Reproduce
Steps to reproduce the behavior:
Bake Tiled image to the disk.
When it's being saved, error appears.

Expected behavior
Successful save of tiled image to the disk

Screenshots
https://media.discordapp.net/attachments/1006789388493144140/1030161682833604629/unknown.png

Desktop (please complete the following information):

  • BakeMaster 1.0
  • Any OS
  • Blender 3.2 and higher

BUG: Image color edging when baking from multires

This bug report is:

  • not a duplicate
  • fixed

Original report by: Northope#3887 (Discord)

Describe the bug
There seems to be an issue with baking from multires modifier with bake master it causes edging artifacts on the border of the faces:
image
With internal blender:
image

To Reproduce
Steps to reproduce the behavior:

  1. Displacement map
  2. Data: Multires Modifier
  3. Bake

Screenshots
BakeMaster settings (everything else is default):
image

BUG: Addon can't stop adding Triangulation mods

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
Buster Charlie from Discord: I think this addon like added a bazillion triangulation modifiers to my mesh?

To Reproduce
Steps to reproduce the behavior:

  1. Check Triangulate lowpoly
  2. Bake a couple of times

Expected behavior
BakeMaster should check if Triangulation mod already exists in the modifiers stack.

Screenshots
image

Desktop (please complete the following information):

  • OS - Any
  • Blender Version - Any
  • BakeMaster Version - 2.0.2

BUG: BakeMaster doesn't inspect node groups to get data to bake

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
soeinfeuerball (Discord) found out that BakeMaster doesn’t look inside node groups. This bug is also related to sovanima (Discord), who mentioned that BakeMaster may not work properly for complex materials. The latter is a separate issue (actually this bug fix may have fixed that one now), this bug report focuses on what soeinfeuerball faced.

To Reproduce
Steps to reproduce the behavior:

  1. Add an object where materials have a node group plugged directly into material output nodes.
  2. Bake.
  3. See wrong or missing colors on image textures.

Expected behavior
BakeMaster should inspect node groups and not just treat them as a single node.

Screenshots
soeinfeuerball's screenshot with the original model on the right and the baked one on the left:
image

Desktop (please complete the following information):

  • OS Windows
  • OS Version - Windows 11
  • Blender Version 4.0
  • BakeMaster Version 2.6.0

Additional context
This is about reworking mat_replug

BUG: BakeMaster does not respect Objects in isolation mode (e.g. Object not found)

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
@sovanima reported on Discord:
I was trying to bake the same map over and over again making changes during the object to bak onto were actually "invisible" for the plugin because they wehe izolated at the vieport... 🙂
Advice:

image
Solution:
image

Desktop (please complete the following information):

  • BakeMaster 2.5.2

BUG: Full Object Preset causes blender to crash

This bug report is:

  • not a duplicate

Describe the bug
I'm not 100% sure about the causes of occurrence of this issue but when a Full Object Preset gets executed, sometimes it causes blender to crash.

To Reproduce
Steps to reproduce the behavior:

  1. Create a full object preset
  2. Click to execute the preset
    Here is when I'm not totally sure:
    Way 1 is you expand the side register menu in the left corner when you can see operator's properties and manipulate some.
    Or Way 2 that led to the crash is unknown, sometimes I set up bakes and blender crashes upon full object preset execution.

Expected behavior
No crashes.

Logs
Stack trace is not included. In short, crash happens on thread initialization, likely at the start of the process of preset execution (which is based on plain .py files) or when operator properties get written to the register (because I included REGISTER for bl_options for the execute_preset operator . Here are python backlogs, but they turned out to not tell anything useful. Actual stuff is in the stack trace.

# Blender 3.6.2, Commit date: 2023-08-16 16:43, Hash e53e55951e7a
bpy.context.scene.bm_props.global_alep_objects_active_index = 0  # Property
bpy.context.scene.bm_props.global_alep_objects[0].use_affect = False  # Property
bpy.context.scene.bm_props.global_alep_objects[0].use_affect = True  # Property
bpy.ops.bakemaster.execute_preset_bakemaster(filepath="C:\\Users\\kempl\\AppData\\Roaming\\Blender Foundation\\Blender\\3.6\\scripts\\presets\\bakemaster_presets\\PRESETS_FULL_OBJECT_decal_hl_uv_csh_out_maps_chnlp_bake\\bake_job.py", menu_idname="BM_MT_FULL_OBJECT_Presets", preset_label="Full Object Preset")  # Operator
bpy.ops.bakemaster.execute_preset_bakemaster(filepath="C:\\Users\\kempl\\AppData\\Roaming\\Blender Foundation\\Blender\\3.6\\scripts\\presets\\bakemaster_presets\\PRESETS_FULL_OBJECT_decal_hl_uv_csh_out_maps_chnlp_bake\\bake_job.py", menu_idname="BM_MT_FULL_OBJECT_Presets", preset_label="Full Object Preset")  # Operator
bpy.ops.bakemaster.execute_preset_bakemaster(filepath="C:\\Users\\kempl\\AppData\\Roaming\\Blender Foundation\\Blender\\3.6\\scripts\\presets\\bakemaster_presets\\PRESETS_FULL_OBJECT_decal_hl_uv_csh_out_maps_chnlp_bake\\bake_job.py", menu_idname="BM_MT_FULL_OBJECT_Presets", preset_label="Full Object Preset")  # Operator
bpy.ops.bakemaster.execute_preset_bakemaster(filepath="C:\\Users\\kempl\\AppData\\Roaming\\Blender Foundation\\Blender\\3.6\\scripts\\presets\\bakemaster_presets\\PRESETS_FULL_OBJECT_decal_hl_uv_csh_out_maps_chnlp_bake\\bake_job.py", menu_idname="BM_MT_FULL_OBJECT_Presets", preset_label="Full Object Preset")  # Operator
bpy.context.scene.bm_props.global_alep_objects_active_index = 0  # Property
bpy.ops.bakemaster.execute_preset_bakemaster(filepath="C:\\Users\\kempl\\AppData\\Roaming\\Blender Foundation\\Blender\\3.6\\scripts\\presets\\bakemaster_presets\\PRESETS_FULL_OBJECT_decal_hl_uv_csh_out_maps_chnlp_bake\\bake_job.py", menu_idname="BM_MT_FULL_OBJECT_Presets", preset_label="Full Object Preset")  # Operator
bpy.context.scene.bm_props.global_alep_objects_active_index = 0  # Property
bpy.ops.bakemaster.execute_preset_bakemaster(filepath="C:\\Users\\kempl\\AppData\\Roaming\\Blender Foundation\\Blender\\3.6\\scripts\\presets\\bakemaster_presets\\PRESETS_FULL_OBJECT_decal_hl_uv_csh_out_maps_chnlp_bake\\bake_job.py", menu_idname="BM_MT_FULL_OBJECT_Presets", preset_label="Full Object Preset")  # Operator
bpy.ops.bakemaster.execute_preset_bakemaster(filepath="C:\\Users\\kempl\\AppData\\Roaming\\Blender Foundation\\Blender\\3.6\\scripts\\presets\\bakemaster_presets\\PRESETS_FULL_OBJECT_decal_hl_uv_csh_out_maps_chnlp_bake\\bake_job.py", menu_idname="BM_MT_FULL_OBJECT_Presets", preset_label="Full Object Preset")  # Operator
bpy.ops.bakemaster.execute_preset_bakemaster(filepath="C:\\Users\\kempl\\AppData\\Roaming\\Blender Foundation\\Blender\\3.6\\scripts\\presets\\bakemaster_presets\\PRESETS_FULL_OBJECT_decal_hl_uv_csh_out_maps_chnlp_bake\\bake_job.py", menu_idname="BM_MT_FULL_OBJECT_Presets", preset_label="Full Object Preset")  # Operator

# backtrace
Exception Record:

ExceptionCode         : EXCEPTION_ACCESS_VIOLATION
Exception Address     : 0x00007FF65FB35C40
Exception Module      : blender.exe
Exception Flags       : 0x00000000
Exception Parameters  : 0x2
	Parameters[0] : 0x0000000000000000
	Parameters[1] : 0xFFFFFFFFFFFFFFFF


Stack trace:
User note: long stack trace is not included on purpose.


# Python backtrace
  File "C:\Users\kempl\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\BakeMaster-Blender-Addon-Dev\presets.py", line 1528 in draw

Desktop (please complete the following information):

  • OS: Windows
  • OS Version: Windows 11
  • Blender Version: 3.2, 3.4, 3.5, 3.6 for sure
  • BakeMaster Version: 2.0.0, 2.0.1, 2.0.2, 2.5.0, 2.5 for sure
    Haven't tested if this happens on Linux though.

REQUEST: Bulk option to edit multiple meshes at once!

This feature request is: not a duplicate

Is your feature request related to a problem? Please describe.
When having lots of meshes it's frustating to setup all settings for every mesh.

Describe the solution you'd like to be implemented
Solution could be if we get an option to change all model settings.


(below edited by @KirilStrezikozin)
Tasks:

  • Preset that affects everything
  • Preset for Object Settings
  • Preset for Source to Target
  • Preset for UV Settings
  • Preset for Object Output Settings
  • Preset that affects all maps for object
  • Preset for Map Settings
  • Preset for Bake Settings

REQUEST: Baking Pipeline Manager

This feature request is:

  • not a duplicate
  • implemented
  • depends on: #14
  • refers to: managing baking asset pipelines, custom pipelines paths, managing rebakes, ad-bakes, presets and saved full configs filepaths

Is your feature request related to a problem? Please describe.
(private - Discord)
I’m a gamedev working with unreal. The goal is to pack the whole pipeline into Blender.
The game we’re working on needs a lot of small wooden figures like in a Tabletop game.
During the production, we will make many changes to the assets, that’s why I need a very flexible asset pipeline. Right now I have up to 100 single objects to bake into one UV Atlas. They have to be single objects because they store individual geo data, which I pass into the shader.
During production, I need to add more and more objects into the same Texture Atlas (fill up the Atlas till I need a new one). So I only bake the new object into the existing texture to save time. All I have to do is properly manage the UVs.
The drawback is that I have to handle all the textures in Blender. Switching the right texture in the shader to bake into it. This feels hacky and wrong and it is quite limited and not flexible.

What would I need for Bakemaster:
I’m not exactly sure how this would work out, but my idea would be like this:
I have a bake job. In this, I define the target textures (Atlas for Color, Normal etc.) With settings like resolution and so on.
To this bake job, I add all objects that should go into the Atlas.
Baking will add the objects to the existing texture. I can choose which objects in the Bake Job are added. So if I want to, only one object gets added to the atlas (or overwritten).

Describe the solution you'd like to be implemented
That requires a lot of thinking about implementation but the request's fantastic!

  1. Under each bake job (#14) there will be a Manager panel
  2. Something huge that works)

PROBABLYBUG: Objects are not added respecting their order in the Blender Outliner

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
When multiple objects are added to BakeMaster, they do not follow the order they had in Blender Outliner.

To Reproduce
Steps to reproduce the behavior:

  1. Select several objects.
  2. Click on 'Add' in BakeMaster.
  3. The order of objects in BakeMaster is not the same as in the Outliner.

Expected behavior
Should the order of objects be preserved?

Screenshots
1a. Order in the Outliner:
image
1b. Order in BakeMaster:
image

The reason probably is
BakeMaster respects the alphabetical order of Meshes:
image

The behavior of the following case is unknown:
2a. Order in the Outliner:
image
2b. Order in BakeMaster:
image

Desktop (please complete the following information):

  • OS: Windows
  • OS Version: Windows 11
  • Blender Version: 4.0.0
  • BakeMaster Version: 2.6.0a3

Additional context
Found and reported by @KirilStrezikozin.

BUG: Image format (.png) is occasionally written twice (.png.png)

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
Originally reported by: Max Bern (Telegram)
Occasionally image format value gets written twice in the image name:
image

To Reproduce
Steps to reproduce the behavior:
Unknown.

Desktop (please complete the following information):

  • OS Linux
  • BakeMaster 2.0

Additional context
Not sure if it's a connected issue, but blender crashes with the setup of Albedo, Roughness, Normal, AO after finishing baking AO and puts .png.png into map's name.

BUG: Dropdown lists values are lost when moving objects' order

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
I access bpy.types.PropertyGroup classes from some classes like Highpoly, Map, Channel Pack, or Cage. But I haven't got an update for stored classes' prop group indexes when the class they refer to gets removed.

To Reproduce
Steps to reproduce the behavior:

  1. Add highpolies to one object
  2. Remove an object from the table of objects
  3. On UI redraw, the error is caught

Expected behavior
This isn't a big deal and I'm even releasing the 2.0 without fixing it, but just so I know all shitty updates for highpoly class is useless as it cannot get the first lines through that holder_index. I actually have never removed any highpolies after configuring them, so this error should be rarely caught by the user.

Screenshots
image

Desktop (please complete the following information):

  • Linux
  • Ubuntu 22.4
  • Blender 3.2.1
  • BakeMaster 2.0.0

Additional context
I reported this just not to forget ^-^

REQUEST: Bake History Manager

This feature request is:

  • not a duplicate
  • implemented
  • depends on: #14
  • refers to: view recent bake history, save baked objects report, delete previous bake results

Is your feature request related to a problem? Please describe.
This request is self-reported.

Describe the solution you'd like to be implemented

  1. Down below at the bottom add a panel called Bake History
  2. A label that updates live and shows when the bake happened
  3. Bake History item's name can be edited
  4. A Delete button. When pressed, BakeMaster will try to delete images that were baked on that specific bake. Or just delete bake history item and leave everything that was baked.
  5. Expand button. When pressed, bake history item expands and there're a couple more controls:
    a. download report (save all baked objects' names and maps' names)
    b. download config (save full bakemaster's baked config to the disk)
    c. execute config (load full bakemaster's baked config into the current setup)

REQUEST: Toggle to choose between "Most common" and "All" available texture color spaces

This feature request is:

  • not a duplicate
  • implemented

Is your feature request related to a problem? Please describe.
This request is a follow-up of #63. For example, if a user has ACES color profile and would like to set a color space for baked textures different from the ones available in BakeMaster ("Most common"), he would open addon preferences and set "All" instead of "Most common" for BakeMaster texture color spaces to achieve his goal.

Describe the solution you'd like to be implemented
A toggle to choose between "Most common" and "All" available texture color spaces in BakeMaster addon preferences. If "All" is chosen, BakeMaster will get the list of all available device transforms in Blender and all of their corresponding texture color spaces. Then these options are displayed in BakeMaster color management settings. For "All" color spaces option, display their dropdown as a Menu with a search bar (same ACES example with its huge list of color transforms)

BUG: ID & Mask maps have errors

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
The bug description is outlined in the steps below. Each of them covers a separate problem.

  • Remove selection data for the Mask map (useless since selection changes while baking):
    • Selection is not restored for the Mask map - cf95a5f
  • Materials data for the Mask map doesn't work - 2fd611d
  • Materials are not restored after Mask map preview with vertex groups data - f01e68c
  • Rework random color generation algorithm (keep support for jilter):
    • Exclude black color from Grayscale algorithm. Also fixes: for ID map with Materials data, identical colors get chosen (assigning black color is basically doing a full color loop e.g. 0.0 -> 1.0. For Grayscale map, the two edge colors are white and black, on the hue shift - red and red (identical colors issue). For convenience, this commit message is "edit: exclude black from ID colors. fix: identical colors were chosen for Materials ID") - 5097e66
    • Exclude black from ID Random color algorithm
    • Random color algorithm is not random
  • ID map works strangely with Vertex Colors, not getting the desired results.
  • If data is Objects, original materials are not restored.
  • If data is Mesh Islands, original materials are not restored.
  • one more checklist at #37 (comment)

To Reproduce
Steps to reproduce the behavior:

  1. Have an object with more than one material assigned.
  2. Add an ID map or Mask map.
  3. Choose any data.
  4. Choose any algorithm/colors.
  5. Hit preview.
  6. See an incorrect result.
  7. Disable preview.
  8. Original object's materials are not restored.

Expected behavior
ID and Mask maps should work as documented, without errors. Original materials should be restored. I'm expecting these maps to work if I have other maps baking or multiple IDs/Masks.

Screenshots
By JDFKAJFAF (BlenderMarket):

Getting:
image

Expected:
image

Desktop (please complete the following information):

  • OS: Windows, Linux
  • OS Version: Windows 11, Fedora 38
  • Blender Version: 3.5.0
  • BakeMaster Version: 2.5.0

Additional context
Self-reported, firstly caught by JDFKAJFAF (BlenderMarket).

BUG&REQUEST: BakeMaster to support Blender 4.0

This bug report is:

  • not a duplicate
  • fixed

Describe the bug
Blender 4.0 brought many internal and API changes, one of which is the Principled BSDF node. BakeMaster should adapt and be able to bake successfully in Blender 4.0.

  • Blender 4.0
  • BakeMaster 2.5.2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.