Oolite Bulletins

For information and discussion about Oolite.
It is currently Tue Oct 17, 2017 6:54 pm

All times are UTC




Post new topic  Reply to topic  [ 411 posts ]  Go to page 1 2 3 4 528 Next
Author Message
 Post subject: Shaders’ Outpost
PostPosted: Tue Apr 24, 2007 9:53 am 
Offline
Dangerous Subversive Element
Dangerous Subversive Element
User avatar

Joined: Tue Jun 07, 2005 7:32 pm
Posts: 1873
Location: [%H] = Earth surface, Lattitude 52°10'58.19"N, longtitude 4°30'0.25"E.
Thread meant for compiling experiences, tuts, good advice and FAQ about the revolutionary concept of texture shaders.
(as available from version 1.68 upwards.)

8)


-insert links to relevant wiki and other handy resources-
http://aegidian.org/bb/viewtopic.php?t= ... highlight=
http://aegidian.org/bb/viewtopic.php?t=3368&start=15
http://aegidian.org/bb/viewtopic.php?t=3407&start=105
Explaining texture-sampling and working the coordinates
Griff Ruining the Classics thread

Example_OXPs:
Griff Rocket Example 1 Custom specularity, laser_heat/exhaust_heat glow, constant glow
Griff Rocket Example 2 Custom specularity, laser_heat/exhaust_heat glow/engine_level glow
Griff Pod Example 3 Specularity Settings driven by a Texture Map, Laser_Heat Glow, Exhaust_Heat Glow, Constantly lit glow map for hull lights etc
Griff lighted hangar Bright illumination and red-alert versions
Thargoids: they had it 1st. The classic Aegidian example of a timer driven sine-function additive texture shader.
Shady PythonClass Cruiser Another classic example ship-oxp by Aegidian.
Hot 2Cool alloys Another timer-driven shader this time single direction and started on spawn_time, coloursamples applied instead of a texture.
Shady Billboard An illuminated billboard.
Ahruman's 'Electric' Billboard Advanced billboard that mimics led-array billboards.
Fixed texture for 'Electric' Billboard
Griff sign concept1 Uses discard-clipping.
Ahruman Animation concept Examplifies how animation can be accomplished by shader, also Uses colour-discard-clipping.
Cobra_OXP Example by Ahruman.
Krait OXP full Great example OXP by Griff.
Griff Krait OXP lowspec
Griff Boa optimized Another beauty. showoff ;) -no, go on we loves them.
Griff's optimized krait[/url]

_________________
Riding the Rocket!


Last edited by Arexack_Heretic on Thu Oct 25, 2007 8:43 pm, edited 12 times in total.

Top
   
 Post subject:
PostPosted: Fri Jun 01, 2007 7:18 pm 
Offline
Oolite 2 Art Director
Oolite 2 Art Director
User avatar

Joined: Fri Jul 14, 2006 12:29 pm
Posts: 2263
Location: Wales
Shader Example, featuring:-
. Customisable Specularity Settings
. Laser Heat Glow
. Exhaust Heat Glow
. Constantly lit glow map for hull lights etc

Image

Link to OXP:-
http://www.box.net/shared/ogotygiqui (550KB)


Customisable Specularity Settings
Edit the fragment shader to produce various specularity effects:-
Image

search for the following lines in the griff_rocket.fragment file, you can safely open them in any text editor:-
Code:
      specular += gl_LightSource[idx].diffuse * pow(max(dot(reflection, eyeVector), 0.0), 5.0); \
   }
// The 5.0 at the end of the line above is the Specular Exponent setting, higher values = more glossy (highlight is smaller)
Code:
   vec4 color = diffuse * colorMap + specular * 0.6; // the 0.6 in this line is the SpecularIntensity, higher values = stronger highlight
Next, i'll upload a variation of the fragment shader that links the hull lights to the engine_level so they brighten or dim depending on how fast the ship is flying


Last edited by Griff on Sat Jun 02, 2007 4:23 pm, edited 2 times in total.

Top
   
 Post subject:
PostPosted: Fri Jun 01, 2007 8:31 pm 
Offline
Oolite 2 Art Director
Oolite 2 Art Director
User avatar

Joined: Fri Jul 14, 2006 12:29 pm
Posts: 2263
Location: Wales
Shader Example 2, featuring:-
. Customisable Specularity Settings
. Laser Heat Glow
. Exhaust Heat Glow
. Glow map for hull lights etc, brightness linked to engine_level variable

Here's a new version of the above oxp that links the hull lights glow map to the engine level of the ship. I've modified the glowmap texture to have a lot more lurid coloured lights on it and given the ship a fuel injector so it can really work up some speed and get them lights blazing away!
Image

Download here:-
http://www.box.net/shared/h95rd0n25x

the only 2 differences between this version of the fragment shader and the previous one are as follows:-

first, this addition of this line
uniform float engine_level;
which adds a variable called engine_level which links the shader to information from the Oolite engine

and this line:-
color += glowMapEngine_level * Pulse(engine_level, 1.0);
which used to read :-
color += glowMapEngine_level * Pulse(2.0, 1.0);
which kept the light glow level constant at 2.0


Last edited by Griff on Sat Jun 02, 2007 4:23 pm, edited 1 time in total.

Top
   
 Post subject:
PostPosted: Sat Jun 02, 2007 4:15 pm 
Offline
Oolite 2 Art Director
Oolite 2 Art Director
User avatar

Joined: Fri Jul 14, 2006 12:29 pm
Posts: 2263
Location: Wales
Shader Example 3, featuring:-
. Specularity Settings driven by a Texture Map
. Laser Heat Glow
. Exhaust Heat Glow
. Constantly lit glow map for hull lights etc

It's possible to drive shader Specular Exponent & Specular Intensity values using a texturemap, which is great if you want to vary specularity across your ships surface, eg - give the cockpit window an intense, narrow highlight for a 'glassy' look whilst the engines and hull get a weak wide specular highlight for dull metal look
This isn't a very good example, but notice the orange area on this object (it's supposed to be leaking fuel!) is more shiny that the metal around it and the grill areas don't have a highlight to give the impression that they are openings into the object
Image

This shader requires an aditional texturemap, the Red Channel of which drives the Specular Exponent and the Green Channel drives the Specular Intensity, the Blue Channel is not used.
Image

Download Here:=
http://www.box.net/shared/m3lnqejld9


Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 11:59 am 
Offline
Intergalactic Spam Assassin
Intergalactic Spam Assassin
User avatar

Joined: Mon Jan 31, 2005 4:16 pm
Posts: 2157
Location: Berkshire, UK
Haven't got a clue what this all means, but visually it looks like once again you've produced some superb designs, well done matey.

_________________
The Grey Haired Commander has spoken!
OK so I'm a PC user - "you know whats scary? Out of billions of sperm I was the fastest"


Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 12:25 pm 
Offline
Dangerous Subversive Element
Dangerous Subversive Element
User avatar

Joined: Tue Jun 07, 2005 7:32 pm
Posts: 1873
Location: [%H] = Earth surface, Lattitude 52°10'58.19"N, longtitude 4°30'0.25"E.
Then red is providing the brightness and green the shineyness?

_________________
Riding the Rocket!


Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 12:47 pm 
Offline
Grand Admiral Emeritus
Grand Admiral Emeritus
User avatar

Joined: Sat Apr 02, 2005 2:43 pm
Posts: 6657
Location: Sweden
Quote:
Then red is providing the brightness and green the shineyness?
Exactly the opposite. :-)

_________________
E-mail: jens@oolite.org


Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 12:59 pm 
Offline
Dangerous Subversive Element
Dangerous Subversive Element
User avatar

Joined: Tue Jun 07, 2005 7:32 pm
Posts: 1873
Location: [%H] = Earth surface, Lattitude 52°10'58.19"N, longtitude 4°30'0.25"E.
ah yeah.
:oops:

I may try this on the Dubious_Profit. :)

_________________
Riding the Rocket!


Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 4:13 pm 
Offline
Oolite 2 Art Director
Oolite 2 Art Director
User avatar

Joined: Fri Jul 14, 2006 12:29 pm
Posts: 2263
Location: Wales
It's not a very good example i provided i'm afraid, the glossyness on the 'fuel leak' isn't high enough, the specular highlight should be a little dot and not a great big wide streak. It's easy to modify the fragment shader to add a multiplier to the intensity of the red channel to get the correct glossy effect, but you'd have to make sure it doesn't break the highlight across the rest of the object. Another solution would be to use the currently unused blue channel to drive a highly multiplied specular effect just for the more extremely glossy areas.

Edit: I've added another version of this shader that now allows you to use the previously unused blue channel in the specular map texture to add highly glossy areas to your object, notice the fuel leak now looks a lot more 'wet' as it's specular exponent has a much higher value than before.
Image
download here:-
http://www.box.net/shared/mprc65klvi

The only change to the fragment shader is this line
Code:
float specExponent = specMap.r + 2.0 + specMap.b * 200;
which used to read
Code:
float specExponent = specMap.r + 2.0;
you can see it just adds in the blue channel (multiplied by 200) of the specMap texture to the specular effect.


Last edited by Griff on Sun Jun 03, 2007 5:08 pm, edited 3 times in total.

Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 4:27 pm 
Offline
Oolite 2 Art Director
Oolite 2 Art Director
User avatar

Joined: Fri Jul 14, 2006 12:29 pm
Posts: 2263
Location: Wales
Illumination Shader for Docking Bays
Image

the zip contains two oxp's for docking bay illumination, one of which has a pulsing red ambient light effect to give a "red alert!" feeling, might be fun to use on a mission where you're sent to defend a station or carrier that is under attack?
I've meddled with ahrumans shader code quite a bit on this one so i hope i haven't broken it too much, it seems to work on my windows xp system.
Download here:-

http://www.box.net/shared/uuju6d5fji


Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 5:09 pm 
Offline
Dangerous Subversive Element
Dangerous Subversive Element
User avatar

Joined: Tue Jun 07, 2005 7:32 pm
Posts: 1873
Location: [%H] = Earth surface, Lattitude 52°10'58.19"N, longtitude 4°30'0.25"E.
I would rather have darkened dockingbays
(As I find the sunlight that shines through the station to illuminate the dock unreal)
with a few bright floodlights or red lights, etc, according to the atmosphere of the situation.

I may look at that pack as well and take some of your work.
(I just scripted a station with a devastated dock)
I already switched the green flashers to yellow and yellow ones to red. But a dark hole with some red lighting would be cool.

_________________
Riding the Rocket!


Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 5:22 pm 
Offline
Oolite 2 Art Director
Oolite 2 Art Director
User avatar

Joined: Fri Jul 14, 2006 12:29 pm
Posts: 2263
Location: Wales
Hi A_H
you can edit the level of lighting inside the docking bay by changing the brightness of the blue channel in the ambientmap texture

excuse the roughness of this image, it's a screen grab straight out of rendermonkey:-
Image

i've just reduced the brightness of the blue channel all the way down to black to remove the ambient lighting, the red channel is providing the glows on the redlights at the back of the bay as well as the pools of light on the floor.

applying this shader to the bay removes the effect of the sunlight on the bay so you don't get that sometime odd effect of light passing through the hull to light the walls/floor etc :)


Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 5:50 pm 
Offline
Grand Admiral Emeritus
Grand Admiral Emeritus
User avatar

Joined: Sat Apr 02, 2005 2:43 pm
Posts: 6657
Location: Sweden
Quote:
The only change to the fragment shader is this line
Code:
float specExponent = specMap.r + 2.0 + specMap.b * 200;
which used to read
Code:
float specExponent = specMap.r + 2.0;
you can see it just adds in the blue channel (multiplied by 200) of the specMap texture to the specular effect.
Yeah; the difference between 2 and 3 isn’t all that great, so the red channel won’t be doing much.

The exponent is effectively an exponential scale of shininess; the difference between 32 and 64 is comparable to the difference between 4 and 8. If you multiply by a large factor, you get a lot of detail at the high end, but only unsubtle stops at the low end. The mathematically precise way to compensate this is to use something like pow(2.0, specMap.b * 8.0) (for a range of 0 to 2**8 = 256), but a computationally simpler way is to use a quadratic curve, 256.0 * specMap.b * specMap.b.

Incidentally, the reason I add 1 to the exponent in the Krait shaders is that 0 is a useless value; it just makes half the object glow.

_________________
E-mail: jens@oolite.org


Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 6:16 pm 
Offline
Intergalactic Spam Assassin
Intergalactic Spam Assassin
User avatar

Joined: Mon Apr 24, 2006 12:54 pm
Posts: 648
Location: Andover, UK
Quote:
Edit: I've added another version of this shader that now allows you to use the previously unused blue channel in the specular map texture to add highly glossy areas to your object, notice the fuel leak now looks a lot more 'wet' as it's specular exponent has a much higher value than before.
Possibly it's just my system but that looks as if the metal has been eaten away and the highlight is some internal structure, having said that it does look good! :)

_________________
"Get back or I unleash my lethal spotted batoid!!"

What I do when not reading the Oolite bulletin board!


Top
   
 Post subject:
PostPosted: Sun Jun 03, 2007 6:23 pm 
Offline
Dangerous Subversive Element
Dangerous Subversive Element
User avatar

Joined: Tue Jun 07, 2005 7:32 pm
Posts: 1873
Location: [%H] = Earth surface, Lattitude 52°10'58.19"N, longtitude 4°30'0.25"E.
Excellent!
I'll use it for sure in b0.2

Reno is right.
The glossyness does not look good on that concave surface. Looks like a hole.
It would look just like liquid if on a 'flatter' surface though.

_________________
Riding the Rocket!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 411 posts ]  Go to page 1 2 3 4 528 Next

All times are UTC


Who is online

Users browsing this forum: Bing [Bot] and 19 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Limited