Jump to content
Sign in to follow this  
meshcarver

Object still bright after 3 weeks of trying to fix... I am now insane...help please..

Recommended Posts

UPDATED: FIXED AT LAST!!! It was basicall because I was using SMDI textures instead of DTSMDI..!!! More elaboration is at end of thread...

Hey,

Well, after a lot of input and I can't remember how many different variations of trying to sort this out, my object still looks like this:

http://www.flickr.com/photos/86890612@N02/8438079058/in/photostream

I have done the SMDI over 20 different ways, the latest being full white in R channel, greyscale medium in the G channel, and very dark greyscale in the B channel. When I say greyscale, I mean of the CO texture, like you do a standard Spec map.

My understanding is:

R: Should be full white

G: Is the "what is specular channel"

B: Is the "Specular power channel"

Here is my RVMAT:

[i]surfaceInfo = "MESH_controlroom01\data\MESH_concrete.bisurf";
ambient[]={1,1,1,1.000000};
diffuse[]={1,1,1,1.000000};
forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
emmisive[]={0.000000,0.000000,0.000000,1.000000};
specular[]={1.000000,1.0000,1.00000,1.000000};
specularPower=10;
PixelShaderID="Multi";
VertexShaderID="Multi";

class TexGen0
{
uvSource = "tex";
class uvTransform
{
 aside[] = {1.0,0.0,0.0};
 up[] = {0.0,1.0,0.0};
 dir[] = {0.0,0.0,0.0};
 pos[] = {0.0,0.0,1.0};
};
};
class TexGen1
{
uvSource = "tex";
class uvTransform
{
 aside[] = {1.0,0.0,0.0};
 up[] = {0.0,1.0,0.0};
 dir[] = {0.0,0.0,0.0};
 pos[] = {0.0,0.0,1.0};
};
};
class TexGen2
{
uvSource = "tex";
class uvTransform
{
 aside[] = {1.0,0.0,0.0};
 up[] = {0.0,1.0,0.0};
 dir[] = {0.0,0.0,0.0};
 pos[] = {0.0,0.0,1.0};
};
};
class TexGen3
{
uvSource = "tex";
class uvTransform
{
 aside[] = {1.0,0.0,0.0};
 up[] = {0.0,1.0,0.0};
 dir[] = {0.0,0.0,0.0};
 pos[] = {0.0,0.0,1.0};
};
};
class TexGen4
{
uvSource = "tex1";
class uvTransform
{
 aside[] = {1.0,0.0,0.0};
 up[] = {0.0,1.0,0.0};
 dir[] = {0.0,0.0,0.0};
 pos[] = {0.0,0.0,1.0};
};
};
class TexGen5
{
uvSource = "tex";
class uvTransform
{
 aside[] = {1.0,0.0,0.0};
 up[] = {0.0,1.0,0.0};
 dir[] = {0.0,0.0,0.0};
 pos[] = {0.0,0.0,1.0};
};
};
class TexGen6
{
uvSource = "tex";
class uvTransform
{
 aside[] = {1.0,0.0,0.0};
 up[] = {0.0,1.0,0.0};
 dir[] = {0.0,0.0,0.0};
 pos[] = {0.0,0.0,1.0};
};
};
class TexGen7
{
uvSource = "tex";
class uvTransform
{
 aside[] = {1.0,0.0,0.0};
 up[] = {0.0,1.0,0.0};
 dir[] = {0.0,0.0,0.0};
 pos[] = {0.0,0.0,1.0};
};
};

class Stage0
{
//Black
   texture="#(argb,8,8,3)color(1,1,1,1.0,CO)";
   texGen=0;
};
class Stage1
{
//Red
   texture="MESH_controlroom01\data\MESH_controlroom01_CO.paa";
   texGen=1;
};
class Stage2
{
//Green
   texture="MESH_controlroom01\data\MESH_controlroom01A_CO.paa";
   texGen=2;
};
class Stage3
{
//Blue
   texture="#(argb,8,8,3)color(1,1,1,1.0,CO)";
   texGen=3;
};
class Stage4
{
   texture="MESH_controlroom01\data\MESH_controlroom01_MASK.paa";
   texGen=4;
};
class Stage5
{
   texture="#(argb,8,8,3)color(1,1,1,1.0,SMDI)";
   texGen=5;
};
class Stage6
{
   texture="MESH_controlroom01\data\MESH_controlroom01_SMDI.paa";
   texGen=6;
};
class Stage7
{
   texture="MESH_controlroom01\data\MESH_controlroom01A_SMDI.paa";
   texGen=7;
};
class Stage8
{
   texture="#(argb,8,8,3)color(1,1,1,1.0,SMDI)";
   texGen=3;
};

class Stage9
{
   texture="#(argb,8,8,3)color(1,1,1,1.0,MC)"; // MC map
   texGen=4;
};
class Stage10
{
   texture="MESH_controlroom01\data\MESH_controlroom01_AS.paa"; // AS map
   texGen=4;
};
class Stage11
{
   texture="#(argb,8,8,3)color(1,1,1,1.0,NOHQ)";
   texGen=0;
};
class Stage12
{
   texture="MESH_controlroom01\data\MESH_controlroom01_NOHQ.paa";
   texGen=1;
};
class Stage13
{
   texture="MESH_controlroom01\data\MESH_controlroom01A_NOHQ.paa";
       texGen=2;
};
class Stage14
{
   texture="#(argb,8,8,3)color(1,1,1,1.0,NOHQ)";
   texGen=3;
};[/i]

Worth mentioning, I've tried different darknesses on the MC stage, but it doesn't fix it- it also makes the object go a funny tint of "purple/pink", even with a grey procedural..?

With every tweak to the spec maps, there's not much difference ingame at all- it's like something is really over riding the changes or something, if that helps?

Please if anyone could help me further I'd appreciate it.

I'm running out of steam, and have ran out of ideas totally- it's been over 3 weeks on this ONE issue, everything else has been learnt and is fully working..!!! Just this ridiculous f"£$£*% specular issue ARGHHHhhh!!! :(

Anyway, thanks for your time,

Marc

Edited by meanmachine1

Share this post


Link to post
Share on other sites

1.) Please use code tags (edited your post accordingly)

2.) Reduce specular values:


[i]specular[]={1.000000,1.0000,1.00000,1.000000};

[/i]

Share this post


Link to post
Share on other sites

Hi again,

first, sorry about those code tags, didn't know about them mate.

I changed those values, absolutely zero difference:

surfaceInfo = "MESH_controlroom01\data\MESH_concrete.bisurf";
ambient[]={1,1,1,1.000000};
diffuse[]={1,1,1,1.000000};
forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
emmisive[]={0.000000,0.000000,0.000000,1.000000};
specular[]={0.25,0.25,0.25,0.25};
specularPower=10;
PixelShaderID="Multi";
VertexShaderID="Multi";

class TexGen0
{
uvSource = "tex";

I'm convinced it's something else at work here, or not as the case may be...

I also check each time to see if it is truly binarizing by adding a little "X" or something on the SMDI texture- that's the extent of how little all these changes are effecting it... :(

Share this post


Link to post
Share on other sites

The paint on the diffuse map is too white. Try making the paint on the diffuse map darker. It will still appear to be white but it will not bloom so much.

Share this post


Link to post
Share on other sites

Hi Max,

No mate, it's quite dark really. I did try lowering it a few weeks back aswell but it changed nothing.

Here, you can see just the diffuse by itself. No lighting, nothing to get an impression of how dark it is:

http://1.bp.blogspot.com/-qUisw6XwfH8/UOVGuFNqcVI/AAAAAAAANCM/zhOYVJA_D5E/s1600/DEV_SHOT_14.png

I don't know what else to check, it appears I've checked everything there is?

Share this post


Link to post
Share on other sites

Specular power 10 might be a little low for specular 1.0. I see you're using a multishader. Are you actually shading between two shaders then?

Share this post


Link to post
Share on other sites

Hi Max,

I don't know what you mean by "shading between two shaders"..? IF I am, it's by mistake, so that could be a reason for this..!!! Could it be "doubling up" you mean..?

My MASK is just red and green, two colours for the two RVMATS, hard edged mask, no "blending".

Could you please elaborate and I'll see what the effects are?!

I've basically got two RVMATs, exactly the same except one links to a bisurf concrete, the other to a bisurf metal, otherwise EXACTLY the same mate. It's a concrete building with that little rail in front marked as the metal bisurf one.

Share this post


Link to post
Share on other sites

Well, the purpose of the multi material is to have two shaders in one, selected by the blending mask. I wonder if that object really requires the multi material.

What is stage 0 and why is it set to 100% white, co?

Share this post


Link to post
Share on other sites

The reason I'm using the multishader is because it was highly encouraged for me to do so from lots of people here. Some said even a building with one material, they'd still use it as it's more efficient?

Even so, it should still be working shouldn't it..?

If not multi, should it be a supershader then?

Do I need a multimat if I want concrete to fly off the main building, but metal sparks/noise to come off the railing though?

Stage 0 is empty, I'm only using stages 2-3 etc for all the 4/groups, SMDI, NOHQ etc. Red and Green MASK part.

The empty stages are all set to 100% white, as that seems the default procedural for an unused stage? Or is it?

Edited by meanmachine1

Share this post


Link to post
Share on other sites

Well, stage0 isn't empty. It's full of white. If stage0 is what it is on some other shaders, it's combining with the diffuse channel. Maybe comment out stage0 and see what happens.

Share this post


Link to post
Share on other sites

you mean make it like this?

class Stage0
{
//Black
texture="";
texGen=0;
};

...also, there's only R and G on my MASK, so the stage 0 (Black) wouldn't show anyway would it..?

I'll try it though, but will post findings later.

Thanks very much for your input Max..! ;)

Edited by meanmachine1

Share this post


Link to post
Share on other sites

I mean like

/*class stage0
{
    ....
};*/

My reasoning is that since stage0 combines with the diffuse texture in other shaders, and since it's full of white, and since things that are too bright in game produce the problem you're experiencing, stage0 is probably whitening your diffuse texture.

You might also try putting other colours in stage0.

Share this post


Link to post
Share on other sites

RE your PM

Best suggestion, download my B52, DePBO it, an look in Tex2 directory

Take files;

B52_T1_as.paa

B52_T1_dt.paa

B52_T1_smdi.paa

and rename them / use them in your own model.

They are "flat" and can be used as is or resized to whatever you like.

Look at, but dont bother using;

B52_T1_NOHQ.paa (Normals)

B52_T1_ti_ca.paa (Thermal)

b52_t1_co.paa (Main)

You can use your own.

Now, the RVMAT. Modify below file "B52" names, rest can stay the same.

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 StageTI
{
texture="GNT_B52\tex2\B52_T1_ti_ca.paa";
}; 
class Stage1
{
texture="GNT_B52\tex2\B52_T1_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="GNT_B52\tex2\B52_T1_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="GNT_B52\tex2\B52_T1_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="GNT_B52\tex2\B52_T1_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};
};
};

Share this post


Link to post
Share on other sites

FIXED!

First, thank you to all the people who've helped me with this. I was literally clueless without their help..!

It turns out after some sterling work by a member of the community, that I should be using DTSMDI paas instead of SMDI paas... (3 weeks on that..! :dead: )

From what he told me, and from what I can see the green channel lets it know WHAT is specular, so this should be your "correct" looking specular channel. The blue channel is how powerful that secularity is, so it's darker mostly than the green channel and then also it needs inverting, and I think the red channel is the detail map (Anyone care to elaborate on its relationship with the specular in this case please?), which seems to be done by filling paint bucket over it with 50% white.

Anyway, thanks again for the input and time spent on this issue- very much appreciated. :notworthy:

Share this post


Link to post
Share on other sites

The green channel is the degree of reflectivity, and the blue channel is the smoothness of the surface.

Share this post


Link to post
Share on other sites

I stand corrected, and thanks for your elaboration man.

By reflectivity, do you mean "specularity" or literally "reflection"..? I'm not being a smart arse, it's just that after three weeks I'm fine tuned to exact translations and want to fully grasp this lol..! ;)

So does the green channel "output" the amount of "specular power = xxx" aswell..?

Ps; do these shots of my building look ok too? Light/shadow/specular wise, as my three week battered brain cannot gauge it anymore? They seem ok to me, but second opinions would be welcome:

http://www.flickr.com/photos/86890612@N02/8444244001/in/photostream

http://www.flickr.com/photos/86890612@N02/8444245499/in/photostream/

http://www.flickr.com/photos/86890612@N02/8444246839/in/photostream/

I've ringed in RED areas of dubious specularity/values.

Edited by meanmachine1

Share this post


Link to post
Share on other sites
It turns out after some sterling work by a member of the community, that I should be using DTSMDI paas instead of SMDI paas... (3 weeks on that..! )

who told that ?

Share this post


Link to post
Share on other sites
By reflectivity, do you mean "specularity" or literally "reflection"..? I'm not being a smart arse, it's just that after three weeks I'm fine tuned to exact translations and want to fully grasp this lol..! ;)

Each pixel has a value that multiplies with the specular colour specified in the RVMAT. In the case of the supershader, it handles both reflectivity and specular reflection, which is by all accounts some CG abstraction of a direct reflection of a light source.

To get a better handle on how these values affect the look of your object, I would suggest doing some experimentation by setting up some procedural textures on an object and playing with the sliders. The only thing you will need is an environment map.

Share this post


Link to post
Share on other sites
who told that ?

That would have been me... See Multimaterial. It can take _smdi textures too and the Shader just uses default values.

The majority of default BIS content uses _dtsmdi's in the 'multi' shader .rvmats.

-Sy

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  

×