Decal Maker

Plugins Decal Maker

Hey @Chokaphi I was wondering if you would consider adding a few blending modes in addition to the alpha blend? I'm thinking multiply, add, soft light, overlay? That would be really nice for some effects that don't quite work with the current setup.

Also it would make me sooo happy if the normal maps were blended using RNM blending? :D Not sure how they are blended right now, but I found that the normals of the base model lose details when adding decal normals on top.

Normals currently use Unity's built in blend function which I think is a implementation/fork of the whiteout algorithm. Rolling my own RNM function is something I may look into.

The alternate blend functions sounds interesting, but right now I want to rework/rewrite Decal Makers UI system from the ground up, and I have had no time to code much of anything since my job is very busy nowadays.

Thinking of making Decal Maker a session plugin
Would allow features to auto apply this preset to all characters settings.
A per gender texture size setting so you can sent each gender to target a texture size. Save vram, 512, 1024, 2048, 4096 etc.. currently everything is scaled to 4096
Gives me some UI space to have more configuration settings.
A few in my head but feasible shader tricks I want to develop
 
Last edited:
Normals currently use Unity's built in blend function which I think is a implementation/fork of the whiteout algorithm. Rolling my own RNM function is something I may look into.
Cool. Though whiteout isn't bad. I re-checked and it seems that the skin texture normals are completely replaced when a decal normal layer is added, even at 0 normal strength. It looks fine when I re-add the same base normal texture as a decal layer and put other things on top. I suppose it would look even better with RNM but ... you know ;)

The alternate blend functions sounds interesting, but right now I want to rework/rewrite Decal Makers UI system from the ground up, and I have had no time to code much of anything since my job is very busy nowadays.

Thinking of making Decal Maker a session plugin
Would allow features to auto apply this preset to all characters settings.
A per gender texture size setting so you can sent each gender to target a texture size. Save vram, 512, 1024, 2048, 4096 etc.. currently everything is scaled to 4096
Gives me some UI space to have more configuration settings.
A few in my head but feasible shader tricks I want to develop
Looking forward to it, wishing you all the best with that time thing. ?
 
I re-checked and it seems that the skin texture normals are completely replaced when a decal normal layer is added, even at 0 normal strength
Ok so the issue is that the base normal map is set correctly, but _BumpMapBlend0 is zero. Works fine when adding the SetFloat line like in the loop below (just with 1.0f instead of slider value obviously).
 
Ok so the issue is that the base normal map is set correctly, but _BumpMapBlend0 is zero. Works fine when adding the SetFloat line like in the loop below (just with 1.0f instead of slider value obviously).

Code:
//if we have a normal material on Base model use it as norm0
Texture2D mainTex = DM.GetOriginalGPUTexture(TextureIndex.GetFirstTextureID(TextureSlot, IsMale), MaterialSlot);
if (mainTex != null)
{
    material.SetTexture("_BumpMap" + count, mainTex);
    count = 1;
}

Good catch my logic here sets the texture but never sets a value.
 
Is there an easier way to reload changes on textures that decal maker is handling? Right now it seems after you make changes to a texture, you have to close vam and then re-open it to get decal maker to register the changes. Or am I missing something obvious? If I am, please let me know!
 
Is there an easier way to reload changes on textures that decal maker is handling? Right now it seems after you make changes to a texture, you have to close vam and then re-open it to get decal maker to register the changes. Or am I missing something obvious? If I am, please let me know!
I just save each change to a new file. Then when you’re satisfied/it’s finalized, delete all the earlier ones.

There’s also this plugin, but I think it only works with textures on the character — not sure if it works with decalmaker or not. I’ve never tried it either way. https://hub.virtamate.com/resources/texture-auto-reload.1789/
 
Last edited:
I just save each change to a new file. Then when you’re satisfied/it’s finalized, delete all the earlier ones.

There’s also this plugin, but I think it only works with textures on the character — not sure if it works with decalmaker or not. I’ve never tried it either way. https://hub.virtamate.com/resources/texture-auto-reload.1789/
I tried that plugin and it doesn't seem to work for normal decals. I did have the decal I wanted it to reload selected in the plugin. I didn't try it with any other textures. I read through the description just to make sure and could not find any special instructions to get it to work so I assumed it no longer works with the latest version of VAM.

Saving to a new file every time sounds cumbersome but I will try it.
 
Is there an easier way to reload changes on textures that decal maker is handling? Right now it seems after you make changes to a texture, you have to close vam and then re-open it to get decal maker to register the changes. Or am I missing something obvious? If I am, please let me know!
Apply a different texture, then re-apply the intended one. Also a little cumbersome, but not as bad.
 
Hey, read through the Discussion here but didn't figure out my problem.
I'm trying to make a "sticker". It has diffuse, specular, gloss, and normal maps with alphas, since it's supposed to be a shiny flat piece of texture.
When I add the specular, gloss, or normal images to Decal Maker, the transparency doesnt' seem to work right, and the underlying texture loses its spec, gloss, and normal values.
Is this a limitation of the plugin, or am I doing something wrong? Thanks, sorry if it's a stupid question!
 
Hey, read through the Discussion here but didn't figure out my problem.
I'm trying to make a "sticker". It has diffuse, specular, gloss, and normal maps with alphas, since it's supposed to be a shiny flat piece of texture.
When I add the specular, gloss, or normal images to Decal Maker, the transparency doesnt' seem to work right, and the underlying texture loses its spec, gloss, and normal values.
Is this a limitation of the plugin, or am I doing something wrong? Thanks, sorry if it's a stupid question!

It might be related to the bug https://hub.virtamate.com/threads/decal-maker.225/post-147040

Basically the Normal, gloss and specular render routines set the stock texture but never set a value so they are not rendered/blended.

You can try and replace this file in the decal maker zip and see if it changes anything.

Please give me a before and after comparison, I'm really curious if it fixes it. I dont generally use a lot of decal maker features so I miss silly mistakes like this.
 

Attachments

  • VAM_Decal_Maker.cs
    215.4 KB · Views: 0
When I add the specular, gloss, or normal images to Decal Maker, the transparency doesnt' seem to work right, and the underlying texture loses its spec, gloss, and normal values.
Is this a limitation of the plugin, or am I doing something wrong? Thanks, sorry if it's a stupid question!
While the loss of original spec/gloss/normal is a bug, I don't think alpha does anything for these, only for diffuse. @Chokaphi correct me if I'm wrong here. I think you will need to go with a geoshell (clothing) for the sticker idea.

It might actually be an interesting feature though. Currently, you can only override the diffuse, and the other types will be combined (I think? at least for normals). An option to partially overwrite when a mask is present could be useful and pretty easy to implement from a technical standpoint. Either using the alpha channel or using an extra mask input (or both, e.g. with toggles "use mask", revealing an image input and "use alpha as mask" or something). Maybe worth considering for the UI overhaul.
 
While the loss of original spec/gloss/normal is a bug, I don't think alpha does anything for these, only for diffuse. @Chokaphi correct me if I'm wrong here. I think you will need to go with a geoshell (clothing) for the sticker idea.

It might actually be an interesting feature though. Currently, you can only override the diffuse, and the other types will be combined (I think? at least for normals). An option to partially overwrite when a mask is present could be useful and pretty easy to implement from a technical standpoint. Either using the alpha channel or using an extra mask input (or both, e.g. with toggles "use mask", revealing an image input and "use alpha as mask" or something). Maybe worth considering for the UI overhaul.
)
Some of the file types users might potentially import with decalmaker, use the alpha for non alpha data (normals can be in that format) What would be the most robust is the same system the my decal shader uses which uses a separate mask texture to cut holes for the nipples and genitals.

So I could potentially make the normal/spec/gloss have the texture + configurable mask texture, just don't know if the feature would see much use?

With the current system if you can use a neutral base (0 height normal, 50/50 gloss spec) as the base with only the part wanted pasted on, it should blend like it was a sticker.

See https://hub.virtamate.com/resources/decalmaker-resource-mofmess-power-goo.1128/ I modified those textures to work with DecalMakers system
 
Some of the file types users might potentially import with decalmaker, use the alpha for non alpha data (normals can be in that format) What would be the most robust is the same system the my decal shader uses which uses a separate mask texture to cut holes for the nipples and genitals.
Yeah, theoretically that's possible. An extra mask would be much more user friendly anyway.
So I could potentially make the normal/spec/gloss have the texture + configurable mask texture, just don't know if the feature would see much use?
Not sure. One thing I have been doing lately is replacing eyebrows (with a soft mask in alpha), which works nicely for the diffuse. But if I could, I would also replace the normals in that area. Another use case might be adding fluid decals, where you might want to remove the skin normals and use something smoother instead.
 
layout.jpg


Potential UI for the feature? Pretend it is a UI panel from Decal maker, the white square with blendmode text would be the current image selection box
 
Yeah, the mask thing should work well that way, maybe with a big "M" in that rounded box or some stencil icon instead of the gradient? Or a gradient M? ;) I think the blend mode dropdown might be a bit too small for VR, currently choosing the color tint is already a bit tedious and that is way bigger. Precise input with VR controllers is hard. Blend mode could probably go next to the opacity slider, and the slider could maybe adopt the usual VaM value input pattern (with the +-0.1 etc buttons and +range), so that you can still have good control at less width?
 
Yeah, the mask thing should work well that way, maybe with a big "M" in that rounded box or some stencil icon instead of the gradient? Or a gradient M? ;) I think the blend mode dropdown might be a bit too small for VR, currently choosing the color tint is already a bit tedious and that is way bigger. Precise input with VR controllers is hard. Blend mode could probably go next to the opacity slider, and the slider could maybe adopt the usual VaM value input pattern (with the +-0.1 etc buttons and +range), so that you can still have good control at less width?
It was a quick mockup to give me a feel for layout, I think I would have the gradient show the current mask. For decals it would have a default nipple cutout and genital cutout on the appropriate tabs. Others would be unset.

Would also allow the custom nipple cutouts that have been requested in the past. Mimic's Photoshops behavior
 
It might be related to the bug https://hub.virtamate.com/threads/decal-maker.225/post-147040

Basically the Normal, gloss and specular render routines set the stock texture but never set a value so they are not rendered/blended.

You can try and replace this file in the decal maker zip and see if it changes anything.

Please give me a before and after comparison, I'm really curious if it fixes it. I dont generally use a lot of decal maker features so I miss silly mistakes like this.

Tried unpacking the VAR and replacing the file with this and and I'm still getting the bug where it replaced all the textures (instead of layering on top as it should.)
 
View attachment 345504
OMG what's going on, it seems like I can't get this version to work.
Im getting the same thing.

View attachment 345518

The blank screen mean that decal maker has had some error occur during init. Usually it means we are waiting on all the shaders we use to be loaded into VAM before we can finish the UI.

The unable to load chokaphi-decal.assetbundle is the file where all our shaders are stored, is the file in the ZIP? Path inside teh VAR is
Chokaphi.DecalMaker.38.var\Custom\Scripts\Chokaphi\VAM_Decal_Maker\Icons\
Should have a CRC of D9F35146


Open powershell and run this command
Get-Content $env:USERPROFILE\appdata\locallow\MeshedVR\VaM\output_log.txt -wait -tail 25

That will monitor and display the last 25 lines of VAM log file in realtime. Open the default VAM scene and then load DecalMaker is it giving the assetbundle not found message or are there other error messages?
 
Back
Top Bottom