Jump to content
HorribleGoat

Optical Camouflage material research

Recommended Posts

there is no final working simple solution provided. Only examples on how some of the tests worked out.

Share this post


Link to post
Share on other sites

I kinda got it to work, however the vehicle is grey, has refraction on it, but is barely transparent, which values do I need to modify for it, or is it something to do with original vehicle textures?
 


 

 

Share this post


Link to post
Share on other sites
On 10/15/2020 at 10:59 AM, marki980908 said:

I kinda got it to work, however the vehicle is grey, has refraction on it, but is barely transparent, which values do I need to modify for it, or is it something to do with original vehicle textures?
 


 

 

I've described the issue in the second post on this thread.

Share this post


Link to post
Share on other sites
On 10/26/2020 at 11:28 PM, HorribleGoat said:

I've described the issue in the second post on this thread.

Than you for your reply. And I am sorry for not noticing

Whitefame managed to actually solve that problem is a way, which I have failed in, using _ca textures.

However I might be blind, but do you have a code for your alternative invisibility method?

  • Thanks 1

Share this post


Link to post
Share on other sites

Hey, I've been following this thread for the last year or so, decided to finally invest some time to try to figure this out. I'll start by saying this is still far from resolved, but I have some information that I haven't seen mentioned yet that may be of interest to anyone interested in the idea of an optical camouflage for ArmA.

 

Initially, I ran into the same opaque/grey/white problems described by a few different people throughout this thread:

 

j6A20SP.jpg

 

 

I was tearing my hair out for a few days trying to understand just WHY that was happening only with certain models (like man and vehicle models) and not others (such as the static VR target models). Out of desperation, I started messing around in my graphics options, and when I disabled Depth of Field, lo and behold this happened:

 

rd6F0Gl.jpg

 

The weird opaque glimmer was gone! Afterwards, I disabled Ambient Occlusion and achieved the following:

 

Y8ssq8P.jpg

 

As you can see, this achieves a result pretty much identical to the original tests by kiory back in the day. Depth of Field and Ambient Occlusion (or something to do with the way the game handles post-processing) appear to be the ultimate culprits of the problem, DoF especially. My current theory is that the game handles depth of field rendering for units/vehicles differently than, for instance, the static objects used in the VR environment.

 

I only used vanilla A3 assets (the Viper suits worked perfectly for this) with a simple rvmat (very similar to the ones posted throughout this thread) and a 0-alpha texture applied purely through scripting (setObjectMaterialGlobal and setObjectTextureGlobal). For the helmet, it was slightly more involved: I created a new CfgWeapons entry, using the standard Viper helm as a base but with my 0 alpha texture and rvmat applied through hiddenSelectionTextures/Materials. I then swap out the helmets on the fly through scripting in-game. I don't see any reason this method wouldn't also work with weapons, vests, etc. although it would require a LOT of config.cpp work (and some scripting to make sure player inventories were managed properly) which obviously isn't worth the effort just yet given the state of things, although here's a quick proof of concept:

 

https://imgur.com/WU6egCs

 

The bigger problem is still that anyone using AO and DoF will still see the ugly version of the effect. I'm aware of a method to adjust AO (at least the HBAO+ type) through ppEffectAdjust, but not of a way to adjust DoF, which begs the question, is there a way to disable DoF/AO either through the model or even globally per mission/world? Disabling DoF through CfgWorlds DOES work, but this isn't very convenient and appears to get forced on anyways whenever you ADS your weapon REGARDLESS of user settings OR CfgWorlds params.

 

On top of that, even when 'working', the rvmat actually makes the unit stand out rather than blend in the further away the viewer is, as the light refraction effect is based on what is present on the VIEWER's display rather than the camouflage's surrounding environment. The effect does look great in NVG's due to the lack of the color splitting effect. Perhaps this second issue can be solved by someone who better understands how to tweak the rvmat params. I'd also like to suggest that the refract shader effect isn't the only option here. Potentially any translucent effect I'd be willing to settle for at this point, granted the AO/DoF issue be solved, otherwise this whole thing is probably impossible.
 

Edited by meddy000
Improved readability
  • Like 2

Share this post


Link to post
Share on other sites

Turning off AO and DoF isnt really a solution.

The difference between objects that look partially solid/grey/white shaded is that they are originally non transparent models. So that is a property that gets baked into the p3d on binarization depending on what PAA type the p3d is assigned with. (_CO non transparent/ _CA transparent). (That is with the refracting shader) And its not really a bug since it works as intended on the transparent objects it is used on (or well particles)

Share this post


Link to post
Share on other sites

What if you create a new model that is transparent and just "switch" to it to change the silhouette then apply the effects? Then switch back to the original model or clothing when it gets turned OFF? 

 

I could see this having a problem if trying to create a malfunctioning effect, cycling it on and off intermittently, but it would at least get the option working for now.

 

 

Share this post


Link to post
Share on other sites

My approach will be  a custom suit that is made with refraction shader in mind and will work with it. For me there is no need to be able to apply it to every unit.

Another working example is the one in my video where the silhouette effect is created with the attached camo blobs and the main character is actually fully hidden.

 

Cycling gear/character swap would be a lot more performance heavy approach, I would not recommend it.
 

Share this post


Link to post
Share on other sites

It's less that I wanted to apply it to every unit and more that I want the ability to toggle it on and off on a single unit for gameplay reasons. Even if I used a custom uniform/backpack and weapon, the unit would be forced to either have a permanently camo'd weapon or permanently visible weapon unless I swap it out. The gear-swapping script I've made, while not ideal, was only born since vests/weapons/headgear aren't affected by commands like setObjectMaterial and the like. As it stands right now, the proof of concept scripting I've done actually only manages the parts of the units inventory that can't be affected by those commands, as it's something that only runs whenever the effect is toggled. Either way, I look forward to any solutions you come up with.

 

I also agree, forcing off DoF and PP effects in general is not a practical solution in any capacity. My question still stands though. It's weird to me that only SOME post-processing effects (like chromatic aberration, radial blur, etc) can be adjusted through scripting in-game but not others.

 

Also on a slightly unrelated note, does anyone know of any good documentation or resources regarding working with rvmats other than what's on the dev wiki?

Share this post


Link to post
Share on other sites

Id make the suit in similar way as the ghillie is made and so that it hides/covers the rest of the gear when used. 

The wiki explains how the different parts of supershader work quite well and how different texture types are composed. Not much else is written about them I recall except for tree materials. They have their own page. 

For things like this kind of "hacky" use of shaders there isn't really any guidance for.

Filepatching with the diagnostics exe can be very useful for faster testing though.

  • Like 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×