meshcarver 12 Posted January 23, 2015 Hi guys, I'm trying to get a very simple object in the game (Think of it as basically a plain metal sheet) that uses only CO, NOHQ and SMDI textures. For some reason, I really don't think the SMDI and NOHQ textures are showing up ingame? Could someone take a look at this RVMAT setup and tell me if I've completely gone wrong somewhere please? Also, you'll notice the env_land_co at the very end- I have NO idea why this is there or what it does so I just incorporate it all the time incase it's somehow needed? Is it needed and what does it do? If anyone has a better, or more SIMPLE shader rvmat for this object could they please show me? I understand Multimats almost 100% but don't get what this shader here really does or how it works- all the stages etc? surfaceInfo = "MESH_designator_male_solid\data\MESH_metal.bisurf"; ambient[]={1,1,1,1}; diffuse[]={1,1,1,1}; forcedDiffuse[]={0,0,0,0}; emmisive[]={0,0,0,1}; specular[]={.3,.3,.3,.3}; specularPower=100; PixelShaderID="Super"; VertexShaderID="Super"; class Stage0 { texture="MESH_designator_male_solid\data\MESH_designator_male_solid_co.paa"; uvSource="tex"; }; class Stage1 { texture="MESH_designator_male_solid\data\MESH_designator_male_solid_nohq.paa"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; up[]={0,1,0}; dir[]={0,0,0}; pos[]={0,0,0}; }; }; class Stage2 { texture="#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; up[]={0,1,0}; dir[]={0,0,0}; pos[]={0,0,0}; }; }; class Stage3 { texture="#(argb,8,8,3)color(0,0,0,0,MC)"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; up[]={0,1,0}; dir[]={0,0,0}; pos[]={0,0,0}; }; }; class Stage4 { texture="#(argb,8,8,3)color(1,1,1,1.0,AS)"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; up[]={0,1,0}; dir[]={0,0,0}; pos[]={0,0,0}; }; }; class Stage5 { texture="MESH_designator_male_solid\data\MESH_designator_male_solid_smdi.paa"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; up[]={0,1,0}; dir[]={0,0,0}; pos[]={0,0,0}; }; }; class Stage6 { texture="#(ai,64,64,1)Fresnel(1.3,7)"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; up[]={0,1,0}; dir[]={0,0,0}; pos[]={0,0,0}; }; }; class Stage7 { texture="MESH_designator_male_solid\data\env_land_co.paa"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; up[]={0,1,0}; dir[]={0,0,0}; pos[]={0,0,0}; }; }; Share this post Link to post Share on other sites
animander 10 Posted January 23, 2015 The env_land_co.paa is for faking environmental reflections on a shiny surface. The reflections on things like really shiny metal, or glass, are not real reflections of the area around the object, but rather faked with this texture image, so you want this image to be a general representation of what your terrain looks like. If your object isn't supposed to be shiny enough for reflections, then you don't need this. Your rvmat looks ok from what I can tell, but I'm not an expert. Why do you think those textures aren't showing up? Maybe it's the textures themselves and not the rvmat. It might be a good idea to just copy one of the rvmats from unpacked arma3 content and use that, substituting the file paths for your own images. Share this post Link to post Share on other sites
meshcarver 12 Posted January 24, 2015 Cheers Animander, could you please tell me- is that RVmat that I posted a STANDARD RVmat..? I mean, what most of the normal base objects use in ARMA3? I'm basically after a standard (co, nohq, smdi) RVmat template so I know it's going to be fine- and I can't find an empty template anywhere to use as a starting point... Share this post Link to post Share on other sites
t-800a 151 Posted January 24, 2015 ambient[] = {1,1,1,1}; diffuse[] = {1,1,1,1}; forcedDiffuse[] = {0,0,0,1}; emmisive[] = {0,0,0,1}; specular[] = {0.29,0.29,0.29,1}; specularPower = 200.000000; PixelShaderID = "NormalMapSpecularDIMap"; VertexShaderID = "NormalMap"; class Stage1 { texture = "asc\asc_cim\models\data\trench_nohq.paa"; uvSource = "tex"; class uvTransform { aside[] = {1,0,0}; up[] = {0,1,0}; dir[] = {0,0,0}; pos[] = {0,0,0}; }; }; class Stage2 { texture = "asc\asc_cim\models\data\trench_smdi.paa"; uvSource = "tex"; class uvTransform { aside[] = {1,0,0}; up[] = {0,1,0}; dir[] = {0,0,1}; pos[] = {0,0,1}; }; }; thats waht I used for my first texturing experiments lately. Just a small dirthump, but it all worked fine so far. the _co was -applied- in objectbuilder. Share this post Link to post Share on other sites
meshcarver 12 Posted January 24, 2015 Ah, thanks man..! So I don't need all those 7 stages no? And when pressing "E" to apply this material, you ONLY apply the co TEXTURE slot right? Or do you apply the RVmat to the MATERIAL slot instead/aswell? Also, how do you know WHICH pixel and vertex shader to use..? I mean, the documents I was just looking at on the WIKI are really bad- no explanation of which to use for what etc etc..? Share this post Link to post Share on other sites
t-800a 151 Posted January 24, 2015 I think diffrent PixelShaderID's require different stages ... like the Super needs everything. And a friend helped me to set that up ... so I didnt really need to bother with the wiki. :) He just gave me a rvmat he used for some basic object ... and it worked fine for me. Share this post Link to post Share on other sites
meshcarver 12 Posted January 24, 2015 Long shot, but do you think you could send me those templates..? No problem if not... it's just I'm steaming through the actual model/texture creations here but am being held up by these f&*(^ed up RVmats lol... Share this post Link to post Share on other sites
Cole_ 13 Posted January 24, 2015 Yes you need to set the .rvmat to to material slot. Share this post Link to post Share on other sites
meshcarver 12 Posted January 24, 2015 (edited) Ok, edited for shame... I completely missed a large section of the file paths- highlighted in the code below. I hold my hand up: But still, a LITTLE concerning is that I HAVE to have the CO linked to the texture slot and the RVmat linked to the material slot still..? If I don't link the CO to the texture slot, I get JUST the NOHQ and SMDI showing up ingame, no CO..? Is that how it should be or is it still incorrect? Again, see below: I didn't have a CO stage 0... ambient[] = {1,1,1,1}; diffuse[] = {1,1,1,1}; forcedDiffuse[] = {0,0,0,1}; emmisive[] = {0,0,0,1}; specular[] = {0.29,0.29,0.29,1}; specularPower = 200.000000; PixelShaderID = "NormalMapSpecularDIMap"; VertexShaderID = "NormalMap"; [color=#FF0000]THE SHAME; I HAD NO STAGE 0, SO ADDED IT AND PUT THE CO TEXTURE...[/color] class Stage1 { texture = "[color=#FF0000]!!!NOOB MISSED FULL PATH HERE!!![/color] MESH_designator_ia_personnel\data\MESH_designator_ia_personnel_nohq.paa"; uvSource = "tex"; class uvTransform { aside[] = {1,0,0}; up[] = {0,1,0}; dir[] = {0,0,0}; pos[] = {0,0,0}; }; }; class Stage2 { texture = "[color=#FF0000]!!!NOOB MISSED FULL PATH HERE!!![/color]MESH_designator_ia_personnel\data\MESH_designator_ia_personnel_smdi.paa"; uvSource = "tex"; class uvTransform { aside[] = {1,0,0}; up[] = {0,1,0}; dir[] = {0,0,1}; pos[] = {0,0,1}; }; }; Edited January 24, 2015 by meshcarver Share this post Link to post Share on other sites
animander 10 Posted January 25, 2015 Yes, as far as I know, best practice is to link the _co texture in the texture dialogue box in object builder, and then the .rvmat in the rvmat dialogue box. Because the _co is already linked in object builder, you don't need to include a _co texture entry in the rvmat, it's just redundant. That said, here's a very basic .rvmat I've used before ambient[]={1,1,1,1}; diffuse[]={1,1,1,1}; forcedDiffuse[]={0,0,0,0}; emmisive[]={0,0,0,1}; specular[]={0.53660399,0.60000002,0.47999999,1}; specularPower=850; PixelShaderID="NormalMapDetailSpecularDIMap"; VertexShaderID="NormalMap"; class Stage1 { texture="p:\Pouch\PouchNormalMap_NOHQ.paa"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; up[]={0,1,0}; dir[]={0,0,0}; pos[]={0,0,0}; }; }; class Stage2 { texture="p:\Pouch\PouchColourMap_CO.paa"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; up[]={0,1,0}; dir[]={0,0,0}; pos[]={0,0,0}; }; }; class Stage3 { texture="p:\Pouch\PouchSpecMap_SMDI.paa"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; up[]={0,1,0}; dir[]={0,0,0}; pos[]={0,0,0}; }; }; Now, as said before, you don't need the _co entry there when it's already applied in object builder. As well, if your object materials shouldn't have any specular light reflections(like wood or stone, or anything rough) then you don't need a _smdi texture either. Applying an _smdi texture to a material that's supposed to be rough will make it look wet or shiny instead. Share this post Link to post Share on other sites
x3kj 1247 Posted February 4, 2015 Don't expect to see alot of "normal" on Altis/Stratis. The dulled down lighting really kills most of the normals and reflections. If you take a look at one object on altis and the same object on the VR map, it's almost like a different game... Share this post Link to post Share on other sites