This is a hotfix for Decal Creation. Height map creation and instant decal insertion from the panel were broken due to the recent depsgraph changes.
This is a hotfix for the Slice tool, which as a result of the recent depsgraph changes, didn't clear the panel decal material slots properly anymore, which in some circumstances could lead to invisible panel decals.
This is another unplanned release, but necessary due to depsgraph changes in Blender.
Raycast behavior has been improved as well, and raycast performance was increased, which should be epecially noticable in bigger scenes.
There are some issues with how decal normal maps are rendered right now, at the time of release, May 18th.
The issue is supposedly fixed already, but likely won't be available on build bot releases until May 19th.
This is an unplanned release, but necessary because rB8f71a84496a9 breaks Material Matching and with it the Re-Apply tool and Decal Insertion.
To fix the issue introduced in that commit, DECALmachine will just ignore the Alpha and Emission parameters of the Princibled PBR shader node for now. So, both of these are not material matched.
To properly support those material inputs, all decal assets will need to be updated, which is much more involded and will be done for the 1.9 release.
GPanel was supposed to go into 1.9 as well, but I've decided to release it early now - and without full documentation. It may need some more testing and work, so be warned.
Gpanel creates panel decals from grease pencil strokes.
To use it, take the Grease Pencil and lay down strokes on the surface of a mesh object. The Line shape of the Grease pencil tool is very handy and I recommend you use that. Note however, that - for me at least - it has a tendency to crash Blender.
Leave gaps between each stroke and be aware of the order and direction you draw the strokes in. Panel decals will be created based on that order.
When done, you can use the Grease Pencil Sculpt tool with
SHIFT pressed to smooth out the spaces.
After that, go into object mode and choose GPanel from the DECALmachine pie menu. You can hold down
CTRL to modiy is behavior.
By default no connections are made, but with
SHIFT the gaps between strokes are closed. With
CTRL you make the panel decal cyclic.
You can optionally also set these options in the Redo Panel. You can also set the segments for the connections there.
GPanel always works on the active Grease Pencil layer and will hide a layer, once a panel decal is created from it.
From this version forward, DECALmachine will install PIL 6.0.0. If you have installed the previosu 5.4.1 already, no action is required on your part, 5.4.1 works just fine.
If you want, you can purge your existing PIL installation from the DECALmachine preferences and install the new one, but it's completely optional.
The installation process has been improved and will now remove any PIL found in the modules folder. There were a few people who attemted to install PIL like it was done in the 1.4 era: by moving a pre-compiled PIL into the modules folder.
Besides being error prone, this will also interfere with how PIL is loaded now (from the user folder).
In addtion to the material matching fix above, there has been a raycasting fix, where decals wouldn't align properly to modifier geometry.
This was due to a bug introduced in Blender a813e259d630 https://developer.blender.org/rBa813e259d630), shortly before the initial 1.8 release.
This update fixes a few issues that came up over the past 2 weeks.
It includes a workaround for an open Blender bug affecting the Unwrap tool.
Furthermore it adds an optional, automatic update check, letting you know in the pie menu, if a new version is available.
Check out the changelog for details.
Two new common questions have been added to the FAQ:
- Why can't I access DECALmachine's pie menu when I activate BoxCutter's tool?
- Why are my panel decal materials/textures taken from the Aircraft(or any other) library?
1.8 - A Decal Dream
Completely rewritten + for Blender 2.80
Simpler and more efficient, easier to use and more powerful.
This describes DECALmachine 1.8 in a single sentence, and I hope you will agree.
1.8 being a fresh start and completely rewritten, really should be be 2.0, but I'm holding that back, until I get to feature parity with 1.4.2.
That doesn't mean, that 1.8 is inferior. On the contrary: everything you need to work with Decals and to create Decals is here, and it's all far better, easier to use and more robust than before.
Coupled with Blender's own advances like Eevee and Collections, DECALmachine 1.8 is a completely new experience.
1.9 and 2.0 will bring back baking of decals to a texture, as well as exporting decals via atlas creation.
I've put considerable work into getting rid of a major pain point in the past: the installation of the infamous PIL module.
Beta tests showed promise, that this is now solved for good, and for all 3 platforms, via an automated installation process, including two fallback installation methods.
For the times when help is needed, there is now a help panel and a Request Support tool, streamlining the process and ensuring necessary information like log files is submitted with the first email. Also, all feature videos in the documentation now have voice-overs.
I want to thank everyone who has supported my work in the past. All of this is only possible through your contributions. Enjoy 2.80!
1.4.2 - Decal Dedication
Continuous improvement of the Decal Pipeline
This release fixes a number of issues, improves and refines many existing tools as well as adds 2 major new tools.
Reconstruct Panel Cutter
There's Reconstruct Panel Cutter, which takes an all-quad panel decal and builds a cutter from it. Unlike the Extract Source tool, which brings back cutting objects used for Topo Slice and Float Slice, Reconstruct Panel Cutter also works for panels created via Draw Slice, for manually built panel decals or for panel decals joined from a number of other (simpler) panels. Reconstruct Panel Cutter's resulting mesh will perfectly match your panel decal and can then be used for Material Cutting or Material Decaling.
There's also Surface Fix, which can be used to remove unwanted shading artifacts. This is achieved by maintaining a separate surface source mesh(similar to how WStep maintains a separate normal_src mesh) and transferring its normal information to vertices masked by a vertex group.
There's a few minor new tools such as Edit/Commit Normal Source and Edit/Commit Surface Fix, which can come in handy when working with WStep and Surface Fix. There's also an Unlink tool - for now only accessible via the space bar menu - which can quicky stash an object away without cluttering the scene, to be used as normal source meshes for either WStep or Surface fix.
The base material used by Init Base Material, is now customizable in the DECALmachine preferences.
Extract Source, now has an option to remove the decal you are extracting the source from. This can save some clicks and avoids tricky selections.
Furthermore, Extract Source now automatically unparents the extracted source.
Wstep has been extended and allows choosing the mapping method used in the DataTransfer mod. There's also a new option to allow hard edges, which creates a secondary DataTransfer mod and masks it using a vertex group.
Material Cut has been improved to include a threshold value, used to merge duplicate vertices.
By default, Material Cut marks edges as seams. While this is great to separate out areas that are to receive different materials, it will also influence how UVs are laid out and force separate UV islands.
To circumvent this, you can now mark Material Cut edges as Freestyle edges. This is just to mark them, and make it easy to select them later.
There's two new tools called "Convert Freestyle to Seam" and "Convert Seam to Freestyle" accessed via the spacebar menu, to manually convert one into the other.
Also, the Unity, Unreal and Unpacked export targets support treating Freestyle edges as material seams, without manually converting them.
Rotate Decal now has an axis option, which can be useful in some situations.
Most of the supplied info decal textures have been inverted to be white instead of black and so the invert slider in the info decal materials is now 0 by default.
Textures for decals02-32 - decals02-37 have been replaced with higher quality versions.
MACHIN3shaders(for the unity export) now include a "Blend Surface Normals" parameter, which mixes normals of the materials under the decals with the decal normals. This works perfectly for Info Decals. It's a hack for the other ones, but can produce good enough results.
The Transparency parameter in the info Decal shader has been renamed to Opacity.
Curvature channels in the ao_curv_height maps of supplied panel decals has been improved or re-added. This was intionally removed initially to improve visual integration in Cycles. However it turns out it's really useful to have, if you want to bake it down to control weathering in Substance Painter or Unity.
A 'Combine all-to-one' option has been added to the DECALBakeDown export target.
It overrides per-material-bake-combinations and instead combines bakes of all/selected export groups to one texture set.
The Unity, UE4 and Unpacked export targets have received a "Assign Unique Materials" export option.
This creates unique material IDs based on edge seams found on the model. This means you don't have to manually assign materials to areas they are supposed to receive unique materials before exporting. Assign Unique Materials is also available as a tool called form the spacebar menu. Run it on any mesh that has edges marked as seams.
There's a new 'Create DM_non-decals group' option in the DECALexport pie. This is for pure convenience and can be helpful managing your export groups, decals and non-decals when preparing for export.
The default atlas padding value used when packing a new decal atlas has been exposed and can be set in DECALmachine's preferences.
There's been a number of fixes. See the changelog for details.
1.4.1 - Blender 2.79 + Principled BSDF
2.79 Compatibility Release
1.4.1. started out as the second bugfix release for 1.4, but the 2.79 Blender release caught me by surprise and I was forced to implement some things originally intended for the 1.5 release.
While Blender 2.78 is still supported, I'd generally advice anybody to switch to 2.79 now.
With the Principled BSDF shader being a central part of 2.79, DECALmachine needs to support Material Matching it and so needs to have PBR decals. To achieve this the Match Material tool has been rebuilt from the ground up. It's extremely robust now and supports matching the Principled BSDF shader in addition to the Glossy shader. Operator properties have been added to modify its behavior and allow matching of either the Material part of a Subset Decal or the Subset part, or both at the same time. Similarly, both sides of a Panel Decal can be matched like this. Furthermore, if the target object carries multiple Materials, perhaps as a result of Material Cutting, each of the materials can be matched by stepping through the Material Slot parameter in the operator properties.
Any new decals created in 1.4.1 via either Instant or Batch Decal Creation in Blender 2.79, will be switched to be PBR decals.
Init Base Material will now also create a PBR base material, assuming it's run in Blender 2.79
As a consequence of improving the Match Material tool, the old Get and Set Material tools could be completely removed, as they've become obsolete and redundant.
Update Decal Nodes
To deal with scenes created before 2.79 and 1.4.1, there's a Update Decal Nodes tool, which you can call from the spacebar menu. This will update all existing decal materials in a scene to support PBR shaders. This tool is also automatically run on new Decals being inserted into a scene from the Asset Loaders, as any Decals created before 1.4.1 naturally don't support the Principled BSDF shader and so need to be updated.
Changes and Improvements
Filmic was supported before, but was not native to Blender. Now it is and DECALmachine has added support for it.
The Topo Slice tool now has a twist offset parameter, which can be useful if a panel strip's boundary edge loops don't line up properly.
Panel Transition has been improved and is much more robust now.
The triangulation method for DECALexport has been changed from BEAUTY to FIXED, which seems to resemble the viewport/opengl triangulation and so should avoid unwanted surface intersections after exporting.
The HOps Fix is now a part of HardOps itself making awkward code injections a thing of the past. As a result any Operatives should make sure to update to 'Hard Ops 0093 - Neptunium' before running DECALmachine 1.4.1.
An export group related issue with decals projected on material decals has been fixed. Note that Material Decals should not be exported anyways, cut them into the mesh using Material Cut instead!
The Remove Decal Mode didn't properly clean the open scene of panel decal assets, this is fixed now.
A number of people experienced problems with the Rotate Decal option not working on the slice tools. This was related to them not having selection sync enabled in the UV editor, which now happens automatically. This also caused the Rotate Decal tool to not properly work, when run from edit mode.
The mesh.intersect tool in Blender has been changed in 2.79, which caused the Material Cut and Panel Transition tools to fail. Both are working great with the 1.4.1 update.
Decal and CustomDecal asset paths will no longer resist changes to a custom locations.
Previously (W)Step would throw an exception, if it encountered empty material slots. A safety check has been added to prevent this.
1.4 - Decal Domination
The Export Release
Complete Decal Export Pipeline
DECALmachine 1.4 is a huge release and the center piece of this update is the export capability. This turns DM from a mere Blender addon, into a complete pipeline for mesh based decals: experiment, create, design in Blender, but then also get your work out into a number of target platforms, if you so choose.
In addition to the ability to export decals, there's also (W)Step - a tool/workflow to easily create custom vertex normals, which complement the decal workflow beautifully and are used to control hard surface shading without the need for normal maps. Note, it's highly recommended to use (W)Step along side HardOps and its boolean tools.
If you are taking your assets into Unity3D, DM even supplies shaders specifically made to be used with the DM exported decals - it's the whole nine yards.
But it doesn't stop there. The added ability to bake decal textures down into normal maps, ao maps, curvature maps, etc., unlocks a new approach to hard surface texturing, that could augment and in some scenarios perhaps even replace the traditional high-poly to low-poly workflow.
So, how does this all work? The first step in the export process is the creation of an optimally packed Decal Atlas from individual decal textures. This is in essence completely automated, but does allow for some user input, in that you have the ability to change the scale of individual decals in the atlas as well as adjust the padding between them.
Alternatively, instead of creating a new Atlas pack for each new asset, you can also use an existing packing solution you've created previously.
The second step is organizing Decals and their parent objects(called targets) via so called Export Groups. With this in place, decals will be joined, decal UVs will be adjusted according to the atlas packing solution and materials using the atlas textures will be applied - all automatically.
Finally, your complete asset(incl. mesh decals) can be either exported to a number of platforms - such as Unity3D, Unreal Engine 4, Substance Painter and Sketchfab - or decals can be baked down, creating texture maps, that can be taken into any tool or engine you choose.
Expanding the Slice Toolset
1.4 introduces an alternative Slice tool called Float Slice, useful in circumstances were the old Decal Slice - renamed to Topo Slice - has trouble or would fail, particularly on dense meshes.
There's also Draw Slice which is a precursor tool to Float Slice and enables you to manually draw panel strips, by extruding vertices on the surface of an object.
Concluding the additions to the slice tools is the Panelize tool, which makes adding simple decal strip shapes quick and effortless by turning polygon boundaries into panel strips, instead of the boolean-like approach of intersecting an object with a cutting object.
This release adds Operator Properties for the main tools. This makes using DM more interactive, simplifies dealing with unexpected behavior(such as Topo Slice failing) and allows for a greater degree of customizing each tools behavior. Operator Properties can be accessed from the bottom of the
T panel or by bringing up the
Automatic Parenting of Projections and Slices
If you project a decal or create a panel strip via one of the Slice tools, the decals will - by default - be parented to the object you project them on or the object you are slicing. This extends to the Decal Sources as well. So, when you change your objects location, orientation or scale and attempt to bring back a Decal Source, it will be properly positioned, just where you'd expect it to be.
Keymap Settings to Preferences
Changing DM's keymaps is now extremely easy and can be done directly in DECALmachine's preferences.
In addition, all the GPencil tools can now be accessed via
CTRL + D, so there's no longer any keymap overlap between DM and GPencil.
Scene Scale/Unit Settings support
There is a new setting called Force Consistent Scale in DM's preferences, which you should enable, if have experienced very small or big decals when dropping them into a scene in relation to your unit scale settings.
Remove Decal Mode
You can now delete decals] from inside Blender, without having to navigate to the Decal Library locations on your hard disk.
Most tools have received small improvements and refinements in their behavior. Standing out from this is Material Cut which is now much more robust and has received Operator Properties to customize the behavior.
Windows 32bit support
Windows 32bit support through PILwin32.zip has been added thanks to Jordan.
Decal Project and through Panel Unwrap the Slice tools will now remove any pre-existing UVs before creating new ones to avoid potential issues.
The main DECALmachine pie menu is from now on keymaped only in Object and Edit modes instead of generally in all 3D Views, freeing the
D shortcut for all other modes, such as Sculpt and Paint modes.
An issue where non-tangent base normals would be created when running Instant Decal Creation has been fixed.
Another issue related to hidden geometry causing very dark AO maps has also been resolved.
Furthermore, Remove Duplicates could in some cases replace custom decal materials with their supplied decals counter parts and was fixed.
Finally, split panel decal strips causing Panel Transition to fail was rectified.
HardOps and MACHIN3tools
If you use HardOps alongside DECALmachine, you should run the HardOps Fix in DECALmachine's preferences.md#general).
Furthermore, I'd recommend you use at least some of the tools provided by MACHIN3tools, which is a free continuously evolving collection of scripts. In particular, Mirrror and Shading Switch are particularly useful in combination with DECALmachine and highly suggest you use Red Mode, should you use DECALmachine's custom vertex normal tool (W)Step.
Mirror is the recommended way to mirror Decals across another object. If you are using Rob Fornof's Mirror Mirror and/or my previous Multi Mirror Mirror, Mirror replaces them both.