Jump to content
Sign in to follow this  
rocket

Using the "Super" Shader (RVMAT material)

Recommended Posts

Typically;

- CTRL-Double click a texture name in the texture list box

- All faces with that texture are now highlighted

- Go to FACES -> FACE PROPERTIES

- in the MATERIAL box enter the full path name to the RVMAT file (or select the folder icon and navigate to the rvmat file)

- Click OK

Your model in Buldozer preview should now look different.

Share this post


Link to post
Share on other sites
Gnat;1613109']Typically;

- CTRL-Double click a texture name in the texture list box

- All faces with that texture are now highlighted

- Go to FACES -> FACE PROPERTIES

- in the MATERIAL box enter the full path name to the RVMAT file (or select the folder icon and navigate to the rvmat file)

- Click OK

Your model in Buldozer preview should now look different.

Ok it worked.

Now i got it working but my model looks to clean.

It's too reflective.

I already adjusted the specular level but that didn't work.

I want it to look more scratchy.

Edited by sarge4267

Share this post


Link to post
Share on other sites

edit: Wow. Someone edited their post. I just want to make it known that I was responding to a question stating that the model appeared all black.

Sounds like you're missing some relevant textures. The all black faces I think are caused by no normal map (nohq).

You need to define the stages in the correct order after you define the shader. The shader stages for the super shader go like:

Stage 1: Normal Map.

Stage 2: Detail Map

Stage 3: Macro Map

Stage 4: Ambient Shadow Map

Stage 5: Specular Map Diffuse Inverse

Stage 6: Fresnel Settings

Stage 7: Environment Map

You need all of those maps OR solid colour values to replace them. Colour values to replace a normal map would look like #(argb,8,8,3)color(0.5,0.5,1,1,NOHQ). For the specular map, it would look like #(argb,8,8,3)color(0,0,1,1,SMDI).

Here's an example super shader with the recommended flat colour settings.

ambient[]={1,1,0.99999946,1};

diffuse[]={1,1,0.99999946,1};

forcedDiffuse[]={0,0,0,0};

emmisive[]={0,0,0,1};

specular[]={1,1,0.99999958,1};

specularPower=100;

PixelShaderID="Super";

VertexShaderID="Super";

class Stage0

{

texture="#(rgb,8,8,3)color(0.5,0.5,0.5,1,CO)";

uvSource="tex";

};

class Stage1

{

texture="#(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)";

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,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,AS)";

uvSource="tex";

class uvTransform

{

aside[]={1,0,0};

up[]={0,1,0};

dir[]={0,0,0};

pos[]={0,0,0};

};

};

class Stage5

{

texture="#(argb,8,8,3)color(0,0,1,1,SMDI)";

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(4.95,4.95)";

uvSource="none";

};

class Stage7

{

texture="ca\air\data\env_co.paa";

uvSource="none";

};

For the detail and macro maps, I usually don't put anything in there and just leave them the default colour.

edit: To respond to this question, scratches should appear in all maps. At the very least they should appear in the diffuse and smdi maps. To reduce the sharpness of the reflection, you need to reduce the specular power. To reduce the overall reflectivity, use the specular colour. These values are multiplied byt he values in your SMDI map. IIRC, the green channel is specular amount and the blue channel is specular power. So, if your map has a pixel that is grey (.5) and the specular colour of your map is set to 0.75, the resulting specular will be as 0.375 at that pixel.

Edited by Max Power

Share this post


Link to post
Share on other sites

I tend to use a standard RVMAT and vary the Lightness or Darkness of each of the "super" textures (mainly the SMDI) to get a good look.

These are just "standard flat" textures that can be used on any different addon and diffferent main textures.

ambient[]={1,1,1,1};

diffuse[]={1,1,1,1};

forcedDiffuse[]={0,0,0,0};

emmisive[]={0,0,0,0};

specular[]={1,1,1,0};

specularPower=20.4;

PixelShaderID="Super";

VertexShaderID="Super";

class Stage1

{

texture="MyAddon\Tex\Tex_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="MyAddon\Tex\Tex_dt.paa";

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="MyAddon\Tex\Tex_as.paa";

uvSource="tex";

class uvTransform

{

aside[]={1,0,0};

up[]={0,1,0};

dir[]={0,0,0};

pos[]={0,0,0};

};

};

class Stage5

{

texture="MyAddon\Tex\Tex_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(2.68,3.69)";

uvSource="tex";

class uvTransform

{

aside[]={1,0,0};

up[]={0,1,0};

dir[]={0,0,0};

pos[]={0,0,0};

};

};

class Stage7

{

texture="ca\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};

};

};

Link to typical samples;

http://members.iinet.net.au/~nrspence2/ArmAII/Tex_Super.zip

Notes:

- Sometimes after dramatic changes to the RVMAT file, Buldozer MAY NOT UPDATE CORRECTLY. I usually double check by closing O2 and Buldozer and reopening.

- As discussed elsewhere in this thread, SMDI are RGB with only Green channel being used. R&B need to be all white.

- There are imperfections in the SMDI, they are extremely difficult to see in TexView2 or in TGA version. It may look completely flat Purple, but it isn't and this has the effect of showing "scratches and rubs" on the metal.

Highly recommend De-PBO'ing a few BIS files (use a COPY of the file, in another test directory) and with TexView2 view each of the different PAA files to see what they typically look like, including the NOHQ.

Edited by [APS]Gnat

Share this post


Link to post
Share on other sites
Gnat;1613765']

- As discussed elsewhere in this thread' date=' SMDI are RGB with only Green channel being used. R&B need to be all white.

[/quote']

That's not correct, unfortunately.

The following images are in order from highest to lowest blue channel (specular power). The values are 1.0, 0.5, 0.25, 0.13 and 0.00 for all pixels in the green channel (specular amount) set to 1.0, and all specular concerned rvmat settings maxed out.

100.jpg 050.jpg 025.jpg 013.jpg 000.jpg

Like I said earlier, blue channel is a per pixel multiplier for specular power. This affects the apparent roughness of a surface. Hopefully this puts an end to this particular chain of bad information. The red channel is not used and can be set to anything you want, but it's better to set all pixels to 0 (black) so you can see what's going on in the other channels at a glance more clearly.

Edited by Max Power

Share this post


Link to post
Share on other sites

Are we talking the same thing to be declared "wrong"?

Your varing the RVMAT settings that react to a set texture.

I'm varing a texture to a set RVMAT

Share this post


Link to post
Share on other sites
Gnat;1614349']Are we talking the same thing to be declared "wrong"?

Your varing the RVMAT settings that react to a set texture.

I'm varing a texture to a set RVMAT

No, I'm varying only the texture. This is said explicitly in the text.

edit: When I say 'all pixels in a channel are set to 1.0', I mean white. However, channels are scalar information, not colour information, so it's more technically correct to say that it's set to 1.0. What I'm doing in that example is varying the whiteness of the blue channel from full white, to half white, to one quarter white, then an eighth white, then no white. I'm not altering the RVMAT at all.

You can check it yourself by creating a Super Shader RVMAT with all maps set to the default procedural texture settings (flat colour). Apply it to any object you choose. Max out all of the specular settings, and for the smdi map setting: #(argb,8,8,3)color(0,1,1,0,SMDI), start tweaking the third number in the four number sequence in the brackets after 'color'. Those numbers represent each channel in a 32 bit map. r,g,b,a. By altering the third number, you're altering all pixels in the blue channel. You'll find that the surface appears to get rougher as your decrease that number. Altering that number will update instantly in buldozer without saving even required.

Edited by Max Power

Share this post


Link to post
Share on other sites
No, I'm varying only the texture. This is said explicitly in the text.

edit: When I say 'all pixels in a channel are set to 1.0', I mean white. However, channels are scalar information, not colour information, so it's more technically correct to say that it's set to 1.0.

Right, so what your edit really say is, "well, I though I was saying it explicitly, but now that I re-read it, its not that clear" Correct? :p

Understand. Can't argue with you, because I haven't got a project I want to disturb right this minute. I like what I get with my method, but will endevour to try this later.

BTW, I usually strip the alpha channel (from SMDI, dt, as etc) because all it seems to do is waste disk space. Agree?

Share this post


Link to post
Share on other sites
Gnat;1614486']Right' date=' so what your edit really say is, "[i']well, I though I was saying it explicitly, but now that I re-read it, its not that clear[/i]" Correct? :p

Understand. Can't argue with you, because I haven't got a project I want to disturb right this minute. I like what I get with my method, but will endevour to try this later.

BTW, I usually strip the alpha channel (from SMDI, dt, as etc) because all it seems to do is waste disk space. Agree?

To be honest, I added the stuff after the edit because I thought that the original message sounded too terse, so I added a bunch of other stuff I thought sounded more friendly. If you knew that channel information is scalar, the previous message should have been crystal clear, if not, now you know and you can appreciate the previous post in all of its beauty and glory.

As far as I know, the only texture type that makes use of the alpha channel in your working tgas is the _ca type. I think buldozer or texview will add or subtract alphas based on its preference. Saving your working files in a 24 bit format shouldn't be a problem.

Whatever works is no problem. But now you have the opportunity to vary the specular power per pixel, which means you can have smooth paint and rust on the same map with the appropriate specular properties.

Edited by Max Power

Share this post


Link to post
Share on other sites

I guess I understood it now, thank you! So you could say: in the green channel, you can decide whether the surface is matte like soot (black areas) or very shiny (white), and the blue channel decides whether it is a sharp (if white) or more diffuse (black) shine. I'm just sitting on a chopper texture and just managed to get a proper look, woohoo! In the end it was much easier than I thought. :yay:

Share this post


Link to post
Share on other sites
I guess I understood it now, thank you! So you could say: in the green channel, you can decide whether the surface is matte like soot (black areas) or very shiny (white), and the blue channel decides whether it is a sharp (if white) or more diffuse (black) shine. I'm just sitting on a chopper texture and just managed to get a proper look, woohoo! In the end it was much easier than I thought. :yay:

Excellent! I'm glad that not everyone dismisses my advice out of hand due to issues of pride :p I'm glad you got it working!

Share this post


Link to post
Share on other sites
I guess I understood it now, thank you! So you could say: in the green channel, you can decide whether the surface is matte like soot (black areas) or very shiny (white), and the blue channel decides whether it is a sharp (if white) or more diffuse (black) shine. I'm just sitting on a chopper texture and just managed to get a proper look, woohoo! In the end it was much easier than I thought. :yay:

Now see ..... I understand that technical explanation, thanks. :p

Share this post


Link to post
Share on other sites

 

The Ambient Shadow Texture

class Stage4
{
	texture="usec_maule\textures\maule_1_as.paa";
	uvSource="tex";
	class uvTransform
	{
		aside[]={1.000000,0.000000,0.000000};
		up[]={0.000000,1.000000,0.000000};
		dir[]={0.000000,0.000000,0.000000};
		pos[]={0.000000,0.000000,0.000000};
	};
};
maule_1_AS.jpg

This, I was excited about! I ran an ambient occlusion bake over my model in 3ds Max (I already had one for the diffuse). The ambient occlusion was used very lightly in the diffuse, to give it a bit of depth, but I was used as the basis for the entire AS texture. Basically, think of ambient occlusion as being "firing light at the model from all angles (ambient) and then seeing where the shadow is".

I took the ambient occlusion bake, and used a "multiply" additive layer for it on top of white. Then I set the RED channel white, and the BLUE channel white, leaving the result only in the GREEN channel. I then saved this as a PNG and batch processed it to PAA.

The Specular Texture

class Stage5
{
	texture="usec_maule\textures\maule_1_smdi.paa";
	uvSource="tex";
	class uvTransform
	{
		aside[]={1.000000,0.000000,0.000000};
		up[]={0.000000,1.000000,0.000000};
		dir[]={0.000000,0.000000,0.000000};
		pos[]={0.000000,0.000000,0.000000};
	};
};
maule_1_SMDI.jpg

Straightforward, similar to the ambient texture. This tells where is MORE SHINY than other areas. Fiddled with this one very much indeed. Don't have shadows in this, using your painted diffuse before you added any shading is helpful. As per ArmA1, filled in the RED and BLUE channel white, the GREEN channel held all the data.

 

I'm not sure that I understand the procedure for making the Ambient Shadow and Specular maps.  Are these made in Photoshop?  When you talk about the red, blue and green channels, are you using a channel mixer?  some other filter?  Are you going into the channel layers?

 

I am currently using Shader Map Pro to generate Normals and other maps.  Can I use that product to generate these in any way?

 

http://shadermap.com/home/

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
Sign in to follow this  

×