Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

The Seraphim - A custom Ship OXP from start to finish.

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: winston, another_commander

User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

Ooooookaaaaay...

So, now I'm in full shader mode. That certainly helps, though it's still refusing to load the specular map.

I have this code:

Code: Select all

materials = 
			{
			"seraphim.png" = {shininess = 100;
					normal_map = "seraphim_n.png";
					specular_map = "seraphim_s.png";
					};
			};
and it only loads the diffuse and normal maps.

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

hmmmm...

I added an emission map to that list and it loaded in the diffuse, normal and specular. It's as if it loads in all but the last map, nomatter what that map is.

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

Oops. I had the emission map set to load the specular map.

It appears to be working now but It's so small in the title screen, I need to run debug and look at it in-game I think to get a good look at it.

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Commander McLane
---- E L I T E ----
---- E L I T E ----
Posts: 9520
Joined: Thu Dec 14, 2006 9:08 am
Location: a Hacker Outpost in a moderately remote area
Contact:

Post by Commander McLane »

Don't think that it's working. Apart from the already squashed bugs there is another fatal one:

subentities is an array, not a dictionary. The elements within an array are seperated by commas, but it makes no sense to add another comma after the last entry. Therefore

Code: Select all

			...
			"*FLASHER* -25.0 0.0 -20.00 310.0 0.5 0.5 8",
			"*FLASHER* -13.5 -9.00 -25.0 310.0 0.5 0.5 8",
		);
breaks your plist (the log should complain about this, and probably has). It has to be

Code: Select all

			...
			"*FLASHER* -25.0 0.0 -20.00 310.0 0.5 0.5 8",
			"*FLASHER* -13.5 -9.00 -25.0 310.0 0.5 0.5 8"
		);
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

And probably will firing forwards (most used direction) also be problematic

Code: Select all

      weapon_position_aft = "0.0 0.0 -27.5"; 
      weapon_position_forward = "2.1 -5.5 23.5.33"; 
      weapon_position_port = "-12.5 0.0 0.0"; 
      weapon_position_starboard = "12.5 0.0 0.0"; 
One decimal point to much
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

So let me see, Commander McLane, you are saying that I need to remove the comma from end of the last 'FLASHER' line, yes?
And Eric, you are saying that I need to remove one of the decimal points? I assume you mean this one: 23.5.33

<edit>Yes, checking the position in Maya, it's the .33 that shouldn't be there.

I didn't notice any errors relating to these in the logs whilst I was studying them today. Thanks for pointing them out.

I ran it again earlier and used debug to get a look at it. I tried spawning but nothing seemed to happen so I targeted the Police Viper that follows you out of the station and used that instead. According to the log, the textures are loading but I'm really not sure they're doing anything. If they are, the effect is VERY subtle as the surface looks no different from the rest of the sub objects that don't have the material applied. The emission_map is definately working though, I can see it clearly illuminating the lights in the cockpit and the engine exhaust.

I'll try again in the morning. I'll put in those bug fixes and I'll try making the diffuse texture a flat mid-grey so that I can see clearly if the normal map is actually having an effect.

Cheers,

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

Goooooood morning Ooliters!

Okay, then. Today's conundrum:

I made the corrections to the code that the Commander and Eric spotted. I imagine that's probably fixed the position of the laser on the ship if nothing else.

My primary concern this morning is the specular map, specular and shininess settings.

I could quite clearly see the diffuse and emission maps working. I couldn't tell if the Normal map was working, so this morning I made the diffuse map a mid-grey. When I ran the game, I could clearly see the normal map lines on the hull, so I know now that the normal map is working.

The specular, on the other hand doesn't seem to be doing anything.

I made the Specular map a black and white chequer pattern so that I could see it obviously. It clearly isn't there. Also, no matter what I set the shininess and specular settings to it makes no difference. I've tried making them both zero and I've tried ramping them both up to full and all I get is a flat, mid-grey.
I read that in some more recent versions of Oolite, if a specular map is used, then the specular and shininess settings would default to full, so I removed the Specular map and it made no difference.

According to the log, it's not actually loading the Specular map which goes back to a problem I was having yesterday. I have double-checked and the texture is definately named correctly and is in the correct place and it is a PNG file. So it's not that it can't find it.

I'm stuck (again!).

The code I currently have is thus:

Code: Select all

materials = 
			{
			"seraphim.png" = {
					shininess = 64;
					specular = (0.5, 0.5, 0.5, 1.0);
					normal_map = "seraphim_n.png";
					specular_map = "seraphim_s.png";
					emission_map = "seraphim_e.png";
					};
			};
Cheers,

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2479
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Post by Griff »

Just noticed this on the wiki page
Materials in Oolite wrote:
shininess value is scaled by the alpha channel of the specular_map
It looks like the alpha channel is important, maybe try flood filling it with white to see if that has an effect?
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Post by Eric Walch »

Griff wrote:
Just noticed this on the wiki page
Materials in Oolite wrote:
shininess value is scaled by the alpha channel of the specular_map
It looks like the alpha channel is important, maybe try flood filling it with white to see if that has an effect?
Yes, you need to have both. The normal drawing for the specular colours and the alpha channel for the intensity.
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2479
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Post by Griff »

i just had a quick skim through the oolite default shader, oolite-default-shader.fragment Lines 310-317

Code: Select all

#if OOSTD_SPECULAR_MAP
	vec4 specularMapColor = texture2D(uSpecularMap, texCoord);
	float specularExponentLevel = pow(specularMapColor.a, 2.0) + 0.001;
	specularMapColor.a = 1.0;
	#define APPLY_MAPPED_EXPONENT exponent = (exponent - 1.0) * specularExponentLevel + 1.0
#else
	#define APPLY_MAPPED_EXPONENT exponent += 0.001
#endif
it looks like the alpha channel is being used for the specular exponent (the highlight size or the 'glossyness' of the surface), i'm just wondering if it might be better to make it control specular intensity instead, or change the 'shininess' name to 'glossyness' or something like that? shininess sounds more like a specular intensity setting i think ? <- i'll put a question mark there because i'm not entirely sure myself!

Crow, maybe try setting your specular colour to something brighter, eg
specular = (1.0, 1.0, 1.0, 1.0);
and see if it shows up then?
Last edited by Griff on Thu Mar 04, 2010 3:59 pm, edited 1 time in total.
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

iiiiinteresting....

but sadly, no!

PNG's don't have an alpha channel as such. They just sort of remember when something is transparent. So my spec map is at 100% opacity by default. I tried a chequered pattern with red squares and transparent squares but it made no difference.

The log is saying (and this does seem to be the problem) that it's still not loading the Specular map at all. Or at least, it's listing the diffuse, normal and emission maps but not the specular.

Either there's something with my spec map that it doesn't like, or something is wrong with my code.

Is it concievable that this is a bug with Oolite's material code that hasn't been spotted before?

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

WAIT!

I had shininess and spec set to zero. I just ramped them up and it's now loading the spec map. Let me just have a play with it in game and I'll report back!

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2479
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Post by Griff »

hmm, i just used your materials example to make a cobraIII, no matter what specular color i used or shininess settings, it always looked like this for me
Image
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

That's what I'm finding. I'm running out of time for today, but the testing I've done so far has proven that the actual colour or tone on the Specular map is irrelevant. The more solid the alpha channel, the darker grey the specular.

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

You can see here. The spots are solid white, the squares are solid black and they look exactly the same.

The bright areas are transparent on the spec map.

Crow

Image
Senior Artist - Blitz Games
My other work
The Crow's Nest
Post Reply