@MACHIN3 late reply sorry, BI stands for Blender Internal Renderer usually. I didn't manage to get the same result in Cycles, but I didn't spend much time on it either.
Ha, yeah I've figured out what it means by now. I've never used it before, but now I'm doing all the baking for instant and batch decal creation in it. I've got to investigate the baking down of decal normals to the basemesh. I'll be in touch when I can't figure it out
Hello counters of polygons, I've just released v1.3.5 and the accompanying trailer. My main priority now is exporting for the 1.4 release. I had to get decal creation out of the way first and streamline it, I'm sure you understand
I gave it a try as well, even though I don't do any stuff rendered inside Blender recently. I really enjoy the workflow, creating panel lines and the convenience of the integrated asset manager. No idea how the parallax node group works, looked at it and got dizzy The effect is really good though.
Excited to see what you will come up with in the future.
Not sure if you would like to hear some feedback/suggestions how to make a few things different or add any additional functions, anyway I just write down a few things Of course everything is from my point of view and might not be useful for other users and or not possible to implement, or I simply don't understand the underlying concept correctly.
general stuff - using normal maps and height/displacement at the same time seems redundant. How about just displacement maps with higher bit-rate? 8-bit can be limiting in some cases. features - nice to have - invert decals (indent decal becomes "outdent"... what is the correct word here?) - slope panels up or down - controllable panel profile, could be done by using gradients and a RGB curve or color ramp instead of texture images
baking I'm well aware that in the current stage baking is not considered, but you are going to implement export therefore I assume that you want to be able to bake to some extend as well.
With the current material setup baking will be quite difficult I think. If you really want to implement any baking and exporting for realtime models it might be an idea to separate it from the main purpose (cycle renderings) with a slightly different workflow. Biggest difference is that you want to have an atlas for your decals instead of individual maps for each different decal and panel.
Possible workflow: "Atlas Editor Mode" - put into separate layer(?) 1. place decals on your atlas (square plane) in the usual way from your decal manager 2. bake decals to atlas 3. save bakes in project folder 4. project atlas UVs back onto decals 2nd UV map Exit "Atlas Editor Mode" 5. model stuff 6. add decals - only decals on the atlas should be available - decals receive projected UVs from the decal "master" 2nd UV 7. export
You could go back into "Altas Editor Mode" and change the atlas, move, add, remove, replace decals and bake it again, the decals on the model should update correctly because of the UV projection. When replacing a decal in the atlas, the object probably has to be the same, or the modifier targets of the decals have to be updated.
Baking normals and AO from decals works if the displacement socket is used. Unfortunately I couldn't get a good result for AO yet with "Bump" displacement only. True displacement with 1px resolution works quite well but it is still experimental and has a few limitations too In case of the atlas creation true displacement is not problem because you can float the decal to avoid intersection.
Seeing the results working well all the way to an external engine like Unity is really nice. Impressive !
I haven't tried the add-on first hand but I am wondering : what would be the best way to use DecalMachine bits similarly to the way one would use highpoly floaters for baking ? Perhaps by baking down their displacement component and later converting it to tangent space ?
The reason why I am asking this is because I could see a lot of potential for DecalMachine in the context of deformable characters (to add cloth seams, stitches, rivets, and so on) but it is of course not possible to rely on decals for such details : for instance a seam built with decals along the leg of a character would clip when the leg bends. However if it was somehow possible to transfer these decals to the base lowpoly, the results could be quite nice.
Are there any tutorials out there for this, yet? I've been playing around with it a bit and I'm just not having much luck figuring out what I'm doing, and I can't get any of the support links pointing to machin3.io to load.
...Perhaps by baking down their displacement component and later converting it to tangent space ? ....
Cycles can bake displacement information as normal, as long as you use the displacement socket in the material output. I wrote about it in my lengthily text up there.
Are there any tutorials out there for this, yet? I've been playing around with it a bit and I'm just not having much luck figuring out what I'm doing, and I can't get any of the support links pointing to machin3.io to load.
The webserver had some issues yesterday, it's fixed now. https://machin3.io/DECALmachine/docs is working again. Since 1.3.5b there's also local documentation in the DECALmachine folder, although the videos embedded still require an Internet connection. Docs are detailed and in depth, every single tool is explained and demonstrated.
Are there any tutorials out there for this, yet? I've been playing around with it a bit and I'm just not having much luck figuring out what I'm doing, and I can't get any of the support links pointing to machin3.io to load.
The webserver had some issues yesterday, it's fixed now. https://machin3.io/DECALmachine/docs is working again. Since 1.3.5b there's also local documentation in the DECALmachine folder, although the videos embedded still require an Internet connection. Docs are detailed and in depth, every single tool is explained and demonstrated.
Thanks. I've still got a ways to go to figure this out, IE why sometimes the decal textures appear in the 3D view, but others I can only see the decals if I render. But I think I'm starting to get the hang of it.
Incidentally, is there a way to get rid of the border color on the panel line textures? For what I'm doing that silver color isn't appropriate. Or will I have to just make my own?
I'm also running into a problem trying to create a Material Decal. I can do a Material Cut, but when I try to do a decal for the same area the resulting object is empty.
Thanks. I've still got a ways to go to figure this out, IE why sometimes the decal textures appear in the 3D view, but others I can only see the decals if I render. But I think I'm starting to get the hang of it.
Incidentally, is there a way to get rid of the border color on the panel line textures? For what I'm doing that silver color isn't appropriate. Or will I have to just make my own?
I'm also running into a problem trying to create a Material Decal. I can do a Material Cut, but when I try to do a decal for the same area the resulting object is empty.
Please email for specific support requests: decal@machin3.io Make sure you have seen the FAQ and generally looked through the docs.
So, the only thing needed for this plugin to work with unreal (and to become the greatest thing that happened to me ever xD) is, to generate those 2 UVs:
1st: UV projected to the underlying mesh: https://www.youtube.com/watch?v=8nBA90lWQeI; possible in 3dsmax, not sure if possible in blender (if possible, I haven't found how). 2nd: to the decal.
I just tested this(as I'm going through the Start Citizeen/Decal thread and specifically Obscura's posts), It's possible and pretty easy to do via the data transfer mod, but seems to be problematic when a decal covers an area that has a uv seam.
I've got to say, I am - as I'm sure many others are - quite disappointed with Unreal's dbuffer decals. Is there no way to extend them to properly support metalness and ao using a custom shader perhaps, similar to what bac9 did for unity?
Like I said in my email, I'm counting the days until the 23rd. Seeing the progress you're making towards getting creations into Unity is really exciting stuff! I'm getting married in 2 weeks, but its safe to say my honeymoon will be spent dreaming up the magic I'm gonna create with DM when I get back home!
Like I said in my email, I'm counting the days until the 23rd. Seeing the progress you're making towards getting creations into Unity is really exciting stuff
Like I said in my email, I'm counting the days until the 23rd. Seeing the progress you're making towards getting creations into Unity is really exciting stuff
What email? What's on the 23rd?
Remember that super awesome guy that was incredibly stupid about how he pulled your other addons from github? Hi, how ya doin? XD
Baking down decal normals is indeed possible: Thanks @Prime8 for the tip! Was actually fairly straight forward to implement, once Atlasing was out of the way!
I can confirm now, that baking decals down will be possible in 1.4. All decal maps, ao, curvature, height, normal, alpha, subset mask and color can be baked down directly in DM in blender. The resulting normal map is very flat and so can easily be combined with any existing normal bakes(such as from a high poly source mesh).
This feature has been asked about a lot - but I've always downplayed
it because I was focused on the deferred decal worlkflow in
combination with custom vertex normals myself. However, baking decal
maps down is also very useful for this workflow, as you can use baked
down ao or curvature maps to generate wear masks for the base mesh etc.
Furthermore,
the baking down of decal normals could be used to more or less
side-step or at least vastly simplify the highpoly to lowpoly workflow.
In any case this is IMO super interesting and has a lot of potential.
Also made my own decal shaders for Unity, thanks to the pioneering work by @bac9-flcl! I'll make these available on github once I release 1.4.
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.
Improving Usability
Operator Properties
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 F6 menu.
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.
Various Improvements
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.
Fixes
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.
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.
Have you considered 9-slice support? Would be useful for panels of different sizes. The way I imagine it is this: Allow the user to deform a (regular, four vert) plane on the underlying geometry, then create a plane with 9 slices at the right distance from the border for the source images.
Is there a solution for making tileable textures with this? Similar to how you would in Zbrush or 3DC. Where the sides repeat, so when you bake/transfer you're normal map tiles correctly?
Have you considered 9-slice support? Would be useful for panels of different sizes. The way I imagine it is this: Allow the user to deform a (regular, four vert) plane on the underlying geometry, then create a plane with 9 slices at the right distance from the border for the source images.
I don't quite follow. Do you want to use a 9-sliced decal? If so, can you sketch out a use case for me?
Is there a solution for making tileable textures with this? Similar to how you would in Zbrush or 3DC. Where the sides repeat, so when you bake/transfer you're normal map tiles correctly?
Are you asking about decal creation? Or maybe you want to decal a flat plane, like a wall or floor piece? There are no specific tools for making tilable things, but you are in 3D, so you can easily build anything tillable. What specific support does it need from me? Could go into more detail about what you want to do?
This 30min, real time demo shows how DECALmachine can fit into a more traditional baking workflow
1. Get your surface normals from a highpoly or alternatively bake from a rounded edge shader(not shown)
2. Add decals to the lowpoly
3. Bake decals down
4. Combine mesh bakes and decal bakes
• Installing the addon from the zip file causes an error on add-on initialisation, which I believe is related to the "PIL" ad-dons which themselves are located ... inside the main zip of the addon ?? Why not provide a master download with the main Decalmachine zip and the PIL zips next to each other, so that the user can simply go ahead and install them ? One shouldn't have to dig into the zip of an addon in order to reach other required components to install.
I suppose that one could probably decompress the main zip somewhere random, install the relevant PIL component, then install the main zip. But that's overly convoluted and goes against the specifications of the Blender addon system.
• Regarding documentation : there needs to be a link in the addon settings panel (near the custom keymap tab) linking directly to an online "Getting Started" page or to an online manual/documentation. As it currently stands there is no way to reach relevant help pages/documentation from the addon itself.
- - - - -
Edit 1 : I just noticed that a help link is available in the "about" tab. I'd recommend separating "about" from "help", since the fact that I didn't immediately find the help link proves my point
Easily reachable documentation is especially important because the meaning and context of the operations are not self-explanatory (what does "Panelize" mean ? What does "WStep" mean ?). And so on.
- - - - -
Edit 2 : Now that I reached the documentation, I see that there are some very special conditions for the addon installation related to the PIL stuff.
The problem is that none of this is accessible through the usual path of :
1- Buying an addon
2 - Downloading a zipped/packed addon 4 - Installing a packed addon from file
5 - Starting to work
Instead, the path currently goes like this :
1 - Buying the addon
2 - Downloading the addon, which is provided as a zip looking a lot like a traditional Blender addon zip package
3 - Attempting to install
4 - Messing around with the zip, only to find out that other addon components are hidden inside it
5 - Installing the addon and the PIL component by hand
6 - Reaching the help page, only to find out that things have to be installed differently, because the PIL actually has to go somewhere
7 - Uninstalling everything
8 - Reinstalling everything 9 - If all went well, starting to work.
This is obviously a problem. I would advise you to simply provide all the files as individual Gumroad downloads (Decalmachine zip and PIL zips) as well as a READ ME FIRST BEFORE INSTALLATION.PDF file clearly going over the exotic installation instructions. When people are willing to pay for a commercial product, you *have* to make sure that things won't go wrong, otherwise customers get frustrated.
Thanks, I'll keep that in mind.
FWIW, there's a Documentation button in the addon panel itself.
There are links to installation instructions at the very top of the product pages on gumroad and blender market. The linked page has a video walking your through the process.
There's a readme.html suppplied as well containing links to everything locally and online.
edit: Moved the PIL archives out of the DECALmachine folder and added a HOW_TO_INSTALL.html outside as well. Thanks again!
I totally understand that it can be a bit frustrating to have a user rant about installation instructions when the tool itself is so powerful, but yeah my point really was to drive home the fact that things can go wrong pretty quickly for the end user (meaning that it can get frustrating for both the paid user, and the person providing support ) Really happy to hear that the suggestion for file organisation made sense !
Now on to the tool itself : it's as powerful as I expected, and the quality of the provided parallax decals speaks for itself - fantastic stuff.
I am however running into quite a few exceptions and error prompts. Part of them seem related to the object scale that DM appears to expect, which is way bigger than, say, a default Blender metarig skeleton. Given the sci-fi crates used as examples in the DM documentation and videos I would expect the tool to be calibrated to work at a scale similar to that of a suitcase/crate/barrel, but it seems like it is designed to work at around 5x to 10x this scale. This is causing stopping errors at best, and disappearing models at worst.
The flipside is that DM *does* work well on a default Blender cube, so that's a bit of a catch22 really.
(Now ironically I *used* to work at a much bigger scale myself, previously using 1 noname Blender unit for 1 cm. But Blender seems to expect models to be built in unit meters, as confirmed by the default meta rig skeleton, the way cloth sim behaves, and so on. Hence my switch to unit meters. Maybe DM could accommodate for this by either doing some clever scaling, or by having an overall "scale factor" option ?)
And lastly : what is the process to bake a DM asset (consisting of a base surface and its decals and trims) to a lowpoly model that is not trim-based / not relying on a UV atlas ? IIRC this workflow has been mentioned before but I cannot seem to find a breakdown for it (and of course, merely transferring the RGB data from the source normalmapped decals wouldn't work because the nmap data needs to be adjusted for tangent space). Thanks !
Now on to the tool itself : it's as powerful as I expected, and the
quality of the provided parallax decals speaks for itself - fantastic
stuff.
Thanks!
The Float Slice error you are getting is I think unrelated to scene scale. It seems to somehow be caused by the very setup you are using: horizontal cut through a box, which is odd to say the least. Definitely should not happen, but had not noticed before and can reproduce it. If you angle your cutting plane it works. I'll investigate.
FWIW always use Topo Slice, if you can. It's a better fit and Float Slice is more intended for dense geometry, where Topo Slice will inevitably fail. due to how it works.
Everything related to scene scale is always tricky as I have to start with some values., See the Force Consistant Scale setting in the prefs, it should take care of your problems I hope.
Be aware of the operator properties for most tools, but specifically the slice and project tools.
disappearing models at worst.
This is more or less intentionally done. The model is just hidden. It means the panel slice could not be properly built. See the tip box at the end of the Topo Slice docs. Basically lower the panel slice width via the operator properties until the model you slice reapppears. If the panel width is too small at this point, just increase it again via the Change Panel Width tool.
And lastly : what is the process to bake a DM asset (consisting of a
base surface and its decals and trims) to a lowpoly model that is not
trim-based / not relying on a UV atlas ? IIRC this workflow has been
mentioned before but I cannot seem to find a breakdown for it (and of
course, merely transferring the RGB data from the source normalmapped
decals wouldn't work because the nmap data needs to be adjusted for
tangent space). Thanks !
It's implemented as a special "export target" called DECALBakeDown. Definitely also check out the export related docs before it, starting with Export Basics
i'm also just gonna quote what I just explained on BA yesterday in regards ti baking a decaled highpoly model:
Maybe, but not anytime soon. My first impression was that decaling the
highpoly would mean I'd have to re-project every decal on the lowpoly
and re-slice every panel decal. Panel transitions need some manual work,
so that can't be re-done automatically.
That said that might actually not be needed.Perhaps you can just bake it all at once, but I need to do some testing on this.
In the meantime you really should decal the lowpoly and keep your
highpoly simple in terms of detailing. You need to split the design
process into forms first and either delay detaling/decaling or be
prepared to re-do it on the lowpoly(which should actually not be that
hard, with all the decal sources).
Hope that helps.
edit: Oh btw, I also work on the default noname units, which seem to be meters. If you create a standard cube with it's 2x2x2 meters, that's the scale all default parameters are adjusted to.
What if you want worn panel edges, can you do that or are panel lines currently using a UV size of 0 in a certain direction?
I'm not aware of an automatic or shader-only approach to this. I can't put the panel line wear in the decal atlas itself, without there being obvious repetition of course.
What I'm doing currently is baking down AO and Curvature from the decals and using that to control where wear and dirt goes. Would love some inside knowledge of how Star Citizen does it.
edit: It might be possible to do this without baking down the decal ao and curvature. I need to do more research into shaders and improve my understanding of Uniy's finalgbuffer first.
You could have a parameter "decal length" that controls the real-unit length of the panel line per 1.0 in UV space. At that point, the panel strip is cut at the UV reset to the start.
Extending on the WStep custom normal workflow introduced previously in DECALmachine, Surface Fix can be used to remove unwanted shading artefacts. This is achieved by maintaining a separate surface source mesh(just like WStep's normal_src mesh) and transferring its normal information to vertices masked by a vertex group. All of this can be done with vanilla Blender, DM just simplifies the steps a bit.
Gonna be in 1.4.2 which I hope to finally get out this week.
Note the normal sources and surface source on layers 11 and 12. I keep them unlinked usually, but have linked them for demonstration and easy access in this scene.
Hi there again @MACHIN3 - I was wondering, is there a Decalmachin3 sample FBX model + texture available somewhere ? Something similar to the orange and white cube used in the unity test above. Basically in order to test the end result in various environments.
Great idea! Check out this Example.blend, open in 2.80.
Note, I've disabled cycles glossy rays, so you can get perfect results in cycles too. I'd recommend setting up a light setup for that however. A simple hdr is enough.
This comes at the cost of decals not appearing in reflective surfaces. So it's always a compromise. With DECALmachine, it's just a single button press to change this setting scene wide.
Replies
https://www.youtube.com/watch?v=7U7U-4ar91w
I didn't manage to get the same result in Cycles, but I didn't spend much time on it either.
https://www.youtube.com/watch?v=C_V3_lIPR2A
keep on blending.
I really enjoy the workflow, creating panel lines and the convenience of the integrated asset manager.
No idea how the parallax node group works, looked at it and got dizzy The effect is really good though.
Excited to see what you will come up with in the future.
Not sure if you would like to hear some feedback/suggestions how to make a few things different or add any additional functions, anyway I just write down a few things
Of course everything is from my point of view and might not be useful for other users and or not possible to implement, or I simply don't understand the underlying concept correctly.
general stuff
- using normal maps and height/displacement at the same time seems redundant. How about just displacement maps with higher bit-rate? 8-bit can be limiting in some cases.
features - nice to have
- invert decals (indent decal becomes "outdent"... what is the correct word here?)
- slope panels up or down
- controllable panel profile, could be done by using gradients and a RGB curve or color ramp instead of texture images
baking
I'm well aware that in the current stage baking is not considered, but you are going to implement export therefore I assume that you want to be able to bake to some extend as well.
With the current material setup baking will be quite difficult I think.
If you really want to implement any baking and exporting for realtime models it might be an idea to separate it from the main purpose (cycle renderings) with a slightly different workflow.
Biggest difference is that you want to have an atlas for your decals instead of individual maps for each different decal and panel.
Possible workflow:
"Atlas Editor Mode" - put into separate layer(?)
1. place decals on your atlas (square plane) in the usual way from your decal manager
2. bake decals to atlas
3. save bakes in project folder
4. project atlas UVs back onto decals 2nd UV map
Exit "Atlas Editor Mode"
5. model stuff
6. add decals
- only decals on the atlas should be available
- decals receive projected UVs from the decal "master" 2nd UV
7. export
You could go back into "Altas Editor Mode" and change the atlas, move, add, remove, replace decals and bake it again, the decals on the model should update correctly because of the UV projection. When replacing a decal in the atlas, the object probably has to be the same, or the modifier targets of the decals have to be updated.
Baking normals and AO from decals works if the displacement socket is used. Unfortunately I couldn't get a good result for AO yet with "Bump" displacement only. True displacement with 1px resolution works quite well but it is still experimental and has a few limitations too
In case of the atlas creation true displacement is not problem because you can float the decal to avoid intersection.
1. Atlas Creation, individual size adjustments, downsampling, joining and atlas uv creation + preview
https://www.youtube.com/watch?v=9sjIpvWQF1c
2. In unity, the shader is this one: https://bitbucket.org/bac9/shading by Artyom Zuev/bac9. I'm currently exporting directly to the texture format required by it. Will investgate what else is out there and support any other ones that are worth it.
https://www.youtube.com/watch?v=AEvqsWyWbxE
I haven't tried the add-on first hand but I am wondering : what would be the best way to use DecalMachine bits similarly to the way one would use highpoly floaters for baking ? Perhaps by baking down their displacement component and later converting it to tangent space ?
The reason why I am asking this is because I could see a lot of potential for DecalMachine in the context of deformable characters (to add cloth seams, stitches, rivets, and so on) but it is of course not possible to rely on decals for such details : for instance a seam built with decals along the leg of a character would clip when the leg bends. However if it was somehow possible to transfer these decals to the base lowpoly, the results could be quite nice.
Cycles can bake displacement information as normal, as long as you use the displacement socket in the material output. I wrote about it in my lengthily text up there.
Docs are detailed and in depth, every single tool is explained and demonstrated.
Incidentally, is there a way to get rid of the border color on the panel line textures? For what I'm doing that silver color isn't appropriate. Or will I have to just make my own?
I'm also running into a problem trying to create a Material Decal. I can do a Material Cut, but when I try to do a decal for the same area the resulting object is empty.
For changing the material of decal panel strips(or any decal), see Match Material and Get and Set Material
I've got to say, I am - as I'm sure many others are - quite disappointed with Unreal's dbuffer decals.
Is there no way to extend them to properly support metalness and ao using a custom shader perhaps, similar to what bac9 did for unity?
I'm already married to the idea of the plugin, like a sick fan after a celebrity that doesn't know he exists yet.... But he will.... he will
https://www.youtube.com/watch?v=x_htqk_rfew
This feature has been asked about a lot - but I've always downplayed it because I was focused on the deferred decal worlkflow in combination with custom vertex normals myself. However, baking decal maps down is also very useful for this workflow, as you can use baked down ao or curvature maps to generate wear masks for the base mesh etc.
Furthermore, the baking down of decal normals could be used to more or less side-step or at least vastly simplify the highpoly to lowpoly workflow.
In any case this is IMO super interesting and has a lot of potential.
Also made my own decal shaders for Unity, thanks to the pioneering work by @bac9-flcl!
I'll make these available on github once I release 1.4.
https://www.youtube.com/watch?v=2FuIeHCvgCU
Bonus: sketchfab works surprisingly well too:
https://www.youtube.com/watch?v=4YT7ePp9gB4
See for yourself:
model
Awesome work! Got any highlights/choice changes you'd like to point out about your Unity shader? Always curious about ways to improve these.
1.4 - Decal Domination
There are 13 new feature videos you can check out (scroll down).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.
Improving Usability
Operator Properties
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 theF6
menu.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.
Various Improvements
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.
Fixes
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.
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.
Also, can you transfer these details to the uvs of the base object if you say, can't use decals?
Looks super cool.
Edit: Just took a look at the change log for anyone else wondering. https://machin3.io/DECALmachine/docs/changelog/
Yes, a decal atlas is created. See https://www.youtube.com/watch?v=VMRYNLiWj5w
There are also a number of earlier videos previewing this. This one is perhaps the best, as it shows the new UV's after Atlas creation: https://www.youtube.com/watch?v=9sjIpvWQF1c
Decals can be baked down, see https://www.youtube.com/watch?v=lG9DT6xSR_w
Are you asking about decal creation? Or maybe you want to decal a flat plane, like a wall or floor piece?
There are no specific tools for making tilable things, but you are in 3D, so you can easily build anything tillable. What specific support does it need from me?
Could go into more detail about what you want to do?
This 30min, real time demo shows how DECALmachine can fit into a more traditional baking workflow
1. Get your surface normals from a highpoly or alternatively bake from a rounded edge shader(not shown)
2. Add decals to the lowpoly
3. Bake decals down
4. Combine mesh bakes and decal bakes
In short: 2.79 and Principled BSDF support, plus completely rebuilt the Match Material tool:
https://www.youtube.com/watch?v=aTuq0l3Ga4w
• Installing the addon from the zip file causes an error on add-on initialisation, which I believe is related to the "PIL" ad-dons which themselves are located ... inside the main zip of the addon ?? Why not provide a master download with the main Decalmachine zip and the PIL zips next to each other, so that the user can simply go ahead and install them ? One shouldn't have to dig into the zip of an addon in order to reach other required components to install.
I suppose that one could probably decompress the main zip somewhere random, install the relevant PIL component, then install the main zip. But that's overly convoluted and goes against the specifications of the Blender addon system.
• Regarding documentation : there needs to be a link in the addon settings panel (near the custom keymap tab) linking directly to an online "Getting Started" page or to an online manual/documentation. As it currently stands there is no way to reach relevant help pages/documentation from the addon itself.
- - - - -
Edit 1 : I just noticed that a help link is available in the "about" tab. I'd recommend separating "about" from "help", since the fact that I didn't immediately find the help link proves my point
Easily reachable documentation is especially important because the meaning and context of the operations are not self-explanatory (what does "Panelize" mean ? What does "WStep" mean ?). And so on.
- - - - -
Edit 2 : Now that I reached the documentation, I see that there are some very special conditions for the addon installation related to the PIL stuff.
4 - Installing a packed addon from file
9 - If all went well, starting to work.
I hope this helps !
FWIW, there's a Documentation button in the addon panel itself.
There are links to installation instructions at the very top of the product pages on gumroad and blender market. The linked page has a video walking your through the process.
There's a readme.html suppplied as well containing links to everything locally and online.
edit: Moved the PIL archives out of the DECALmachine folder and added a HOW_TO_INSTALL.html outside as well. Thanks again!
The flipside is that DM *does* work well on a default Blender cube, so that's a bit of a catch22 really.
https://www.youtube.com/watch?v=Vf0DZBRN8ac&feature=youtu.be&ab_channel=PiorO
I hope this helps !
And lastly : what is the process to bake a DM asset (consisting of a base surface and its decals and trims) to a lowpoly model that is not trim-based / not relying on a UV atlas ? IIRC this workflow has been mentioned before but I cannot seem to find a breakdown for it (and of course, merely transferring the RGB data from the source normalmapped decals wouldn't work because the nmap data needs to be adjusted for tangent space). Thanks !
Thanks!
The Float Slice error you are getting is I think unrelated to scene scale. It seems to somehow be caused by the very setup you are using: horizontal cut through a box, which is odd to say the least. Definitely should not happen, but had not noticed before and can reproduce it. If you angle your cutting plane it works. I'll investigate.
FWIW always use Topo Slice, if you can. It's a better fit and Float Slice is more intended for dense geometry, where Topo Slice will inevitably fail. due to how it works.
Everything related to scene scale is always tricky as I have to start with some values., See the Force Consistant Scale setting in the prefs, it should take care of your problems I hope.
Be aware of the operator properties for most tools, but specifically the slice and project tools.
Also, see the combine Bakes demo,if you haven't already.
i'm also just gonna quote what I just explained on BA yesterday in regards ti baking a decaled highpoly model:
In the meantime you really should decal the lowpoly and keep your highpoly simple in terms of detailing. You need to split the design process into forms first and either delay detaling/decaling or be prepared to re-do it on the lowpoly(which should actually not be that hard, with all the decal sources).
Hope that helps.
edit: Oh btw, I also work on the default noname units, which seem to be meters. If you create a standard cube with it's 2x2x2 meters, that's the scale all default parameters are adjusted to.
What I'm doing currently is baking down AO and Curvature from the decals and using that to control where wear and dirt goes. Would love some inside knowledge of how Star Citizen does it.
edit: It might be possible to do this without baking down the decal ao and curvature. I need to do more research into shaders and improve my understanding of Uniy's finalgbuffer first.
(I want to keep the exact geometry)
https://www.youtube.com/watch?v=BLnOBPVpG6c
Gonna be in 1.4.2 which I hope to finally get out this week.
You can also check out this blend to see how it works: https://www.dropbox.com/s/ev2elq94disrluw/perfect_normals.blend?dl=0
Thanks !
And it's looking great too Very useful stuff, thanks.