Hard Light Productions Forums

Modding, Mission Design, and Coding => FS2 Open Coding - The Source Code Project (SCP) => Topic started by: Subspace Anomaly on July 22, 2011, 09:27:12 am

Title: Valathil's Awesome Graphical Advancements
Post by: Subspace Anomaly on July 22, 2011, 09:27:12 am
Hello, I'm not entirely sure, even after reading readmes :>, whether this is the right place to discuss or not.

Anyway to thing, since it's 2011, and probably majority of people are operating with at least 3.x OpenGL hardware, I wonder if game should attempt to look more like it's cinematics (those from age where they appeared unbelievable, are nowdays pretty much doable in realtime).
I'd love to create a thread about missing effects that might once be added and those which would community not really like in game.

1) Volumetric effects (mainly light effects, but might be also fog)
(http://img543.imageshack.us/img543/4194/volumetric.th.png) (http://imageshack.us/photo/my-images/543/volumetric.png/)
Sorry for pitiful size, but this is taken from briefing animation in mission after capturing Tatanis.
This effect would be very helpful for replacing old sun effects that more or less just randomly blind player (even in nebula :S) while creating very spectacular effect at little HW expense.

2) Dynamic range
(http://img339.imageshack.us/img339/2351/dynamicrange.th.png) (http://imageshack.us/photo/my-images/339/dynamicrange.png/)
Taken from FS1 cinematic intro.
As you can see all the objects in the view truly appear to be affected by very bright planet they are orbiting, though there is also planet lighting applied and blur, it alone would give better impression of strong lighting in the scenes like planets.

3) Materializing effects
(http://img715.imageshack.us/img715/6523/materialize.th.png) (http://imageshack.us/photo/my-images/715/materialize.png/)
(http://img819.imageshack.us/img819/6341/materializefs2.th.png) (http://imageshack.us/photo/my-images/819/materializefs2.png/)

While FS1 effect is more complicated, FS2 effect is nearly doable with fixed pipeline functions with double render, it only needs blooming. Implementing this would not only allow having same quality for custom made content, but also sound would be matching image :d.

4) Shadows
(http://img707.imageshack.us/img707/8127/shadowst.th.png) (http://imageshack.us/photo/my-images/707/shadowst.png/)

I think this was hot topic in the past already, so don't dare to add more than honorable mention.

5) Motion Blur
(http://img263.imageshack.us/img263/9585/motionblur.th.png) (http://imageshack.us/photo/my-images/263/motionblur.png/)

Taken from FS2 cinematic intro, great effect for better game impression, though also quite a distraction. However objects appearing to be in motion would definitely add whole new life to dogfights.

6) Depth of Field

(http://img215.imageshack.us/img215/5905/depthblur.th.png) (http://imageshack.us/photo/my-images/215/depthblur.png/)

I don't particularly like this one, however taken from FS2 cinematic, it could definitely add something. Though this usually assumes player is always looking at centre of his screen, thus being OK in cinematics, but not great in game.

7) Lens effects

(http://img607.imageshack.us/img607/7949/lensn.th.png) (http://imageshack.us/photo/my-images/607/lensn.png/)

Nothing really new, there is already something like this, however it might use some improvements.


Now there are more things I haven't brought up ( like smoke effects ), I think it'd nice to share some thoughts and wishes and perhaps inspire self or others to even add some of those or deny them as unfitting game.

Hope that spellcheck helped :d.
Title: Re: Cinematics vs Game
Post by: Luis Dias on July 22, 2011, 09:33:04 am
All of those are pretty nice additions, but the problem as I apparently see it, is that there aren't graphical coders at work around here. Some time ago, a Descent modder came here with big hopes to get shadows working in FS2, but I haven't heard of him since.

If you are so inclined to make these changes yourself, I don't think anyone here would not put you in a pedestal.
Title: Re: Cinematics vs Game
Post by: The E on July 22, 2011, 09:51:08 am
Yes, all of these things would be nice to have.

But.

Unless you are a coder, experienced in OpenGL and willing to do this yourself, do not expect this to get done anytime soon. There are quite a few things being worked on at the moment in terms of graphics, some of which may provide the groundwork for the effects you are asking for, but getting this things completed is still some way away.

In the end, while we are always open to suggestions, do not be disappointed if we are not jumping on it immediately.

Oh, and one more thing. We do not look kindly on people proposing such sweeping changes without willingness or ability to provide assistance beyond mere encouragement. That may sound overly harsh, and I apologize for any insult caused, but backseat coders, just like armchair generals, are something we do not like very much.
Title: Re: Cinematics vs Game
Post by: pecenipicek on July 22, 2011, 10:17:22 am
2) Dynamic range
(http://img339.imageshack.us/img339/2351/dynamicrange.th.png) (http://imageshack.us/photo/my-images/339/dynamicrange.png/)
Taken from FS1 cinematic intro.
As you can see all the objects in the view truly appear to be affected by very bright planet they are orbiting, though there is also planet lighting applied and blur, it alone would give better impression of strong lighting in the scenes like planets.
Unless i misunderstand horribly how stuff works in general, that'd be doable via shaders. Coding it is up to yourself. (this is basically proper HDR instead of just bloom if i'm not mistaken, right?)

Quote
3) Materializing effects
(http://img715.imageshack.us/img715/6523/materialize.th.png) (http://imageshack.us/photo/my-images/715/materialize.png/)
(http://img819.imageshack.us/img819/6341/materializefs2.th.png) (http://imageshack.us/photo/my-images/819/materializefs2.png/)

While FS1 effect is more complicated, FS2 effect is nearly doable with fixed pipeline functions with double render, it only needs blooming. Implementing this would not only allow having same quality for custom made content, but also sound would be matching image :d.
If i remember correctly, MjnMixael and somebody fiddled a bit with an ingame cloak/decloak effect, which involved texture replacements at specified intervals and such...

Quote
5) Motion Blur
(http://img263.imageshack.us/img263/9585/motionblur.th.png) (http://imageshack.us/photo/my-images/263/motionblur.png/)

Taken from FS2 cinematic intro, great effect for better game impression, though also quite a distraction. However objects appearing to be in motion would definitely add whole new life to dogfights.
This was in during some very early test builds by some guy about a year ago (i forgot the persons name, so sorry), and the effect was.. crap. Headache-inducing monstrosity.
Quote
6) Depth of Field

(http://img215.imageshack.us/img215/5905/depthblur.th.png) (http://imageshack.us/photo/my-images/215/depthblur.png/)

I don't particularly like this one, however taken from FS2 cinematic, it could definitely add something. Though this usually assumes player is always looking at centre of his screen, thus being OK in cinematics, but not great in game.
Shader-doable if memory serves? Not 100% sure on this one tho.



And heed what The_E said. Unless you can code it yourself, dont expect anything.
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 22, 2011, 10:33:48 am
Quote
3) Materializing effects
(http://img715.imageshack.us/img715/6523/materialize.th.png) (http://imageshack.us/photo/my-images/715/materialize.png/)
(http://img819.imageshack.us/img819/6341/materializefs2.th.png) (http://imageshack.us/photo/my-images/819/materializefs2.png/)

While FS1 effect is more complicated, FS2 effect is nearly doable with fixed pipeline functions with double render, it only needs blooming. Implementing this would not only allow having same quality for custom made content, but also sound would be matching image :d.
If i remember correctly, MjnMixael and somebody fiddled a bit with an ingame cloak/decloak effect, which involved texture replacements at specified intervals and such...

Yes, for use in-mission. Though a built in version of this specifically would be handy.. We could then lose all the interface files (that's a large chunk if you are using my new ones with the HTL models) and just have it done in the code. You know, stick it in with 3D weapon select...

BUT, I get ahead of the times here. Having that working is a long-shot.
Title: Re: Cinematics vs Game
Post by: Valathil on July 23, 2011, 05:31:44 am
All of those are pretty nice additions, but the problem as I apparently see it, is that there aren't graphical coders at work around here.

(http://i83.photobucket.com/albums/j287/kevind23/Phoenix%20Wright/objection.gif)
Title: Re: Cinematics vs Game
Post by: Dragon on July 23, 2011, 05:41:58 am
3 and 7 are done, 5 and 6 may not be a good idea (DoF looks good in a movie and motion blur was in and didn't looked good), 4 is being worked on.
From these, only 1 and 2 look truly interesting. 2 might be doable via shaders (though I don't know for sure) and 1 has been partially done via scripting (of course, it'd be great to see volumetric effects implemented into the engine).
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 23, 2011, 10:28:48 am
3 and 7 are done, 5 and 6 may not be a good idea (DoF looks good in a movie and motion blur was in and didn't looked good), 4 is being worked on.
From these, only 1 and 2 look truly interesting. 2 might be doable via shaders (though I don't know for sure) and 1 has been partially done via scripting (of course, it'd be great to see volumetric effects implemented into the engine).

What bologna is this? Materializing effects are NOT done... they are hacked. (using names not numbers so people don't have to go up and down to figure out what I'm talking about...)

Also you must expand your mind! Motion Blur and Depth of Field WOULD be a good idea, especially if we could control them with sexps. You know what seriously helps rendered cutscenes stand apart from ingame ones? Those effects. They may not be good during actual flying time.. but ingame cutscenes could make serious use of them.

BUT this is all a moot point!

It's not like these are new suggestions. The issue isn't whether or not they'd be good or useful. The issue is whether or not the SCP can. And currently? They really aren't a near-future reality.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 23, 2011, 11:17:14 am
I've heard that some sort of sunshaft shader based off the one from Crysis had been made by the same dude who first made bloom. Is it possible to clean that one up, or is it messy beyond repair?
Title: Re: Cinematics vs Game
Post by: Subspace Anomaly on July 23, 2011, 11:34:48 am
Light Scattering/Shadowmaps should be somewhat less trickier than the rest, because for most of their implementations you just need to scene more times.

I've never touched freespace code before, but will hopefuly read it soon enough (from what I understand setting up scene with different parameters won't be that big problem).

To have a really good idea about effects and their complexity I reccomend reading GPU Gems which NVidia released for free online:
http://http.developer.nvidia.com/GPUGems3/gpugems3_part01.html
It might be interesting even to those who don't understand a thing.
Title: Re: Cinematics vs Game
Post by: The E on July 23, 2011, 11:39:57 am
Light Scattering/Shadowmaps should be somewhat less trickier than the rest, because for most of their implementations you just need to scene more times.

I've never touched freespace code before, but will hopefuly read it soon enough (from what I understand setting up scene with different parameters won't be that big problem).

Ahhhahahahaha.

Haha.

*sniff*

I'm sorry, but you are quite underestimating the challenge here. Here's a quote from taylor (our retired master coder) on the matter:
Quote
If I remember correctly though, I decided to hold off of further development of shadow support in order to implement proper pre-render support.  That was for performance as well a visual improvements and would also lay the ground work for doing things like shadows.  It would have been possible to add shadows without that  initial work, but the performance and quality wouldn't have been as good, plus the shadow code implementation would have just been shoehorned in like so many other things (which would have hurt in the long-run).  Essentially I decided to add in basic material sorting (opaque and transparent), early Z-pass (greatly improved speed and to address some lighting issues), improved culling (object and subobject), and better sorting (to fix render order glitches).  And that would pretty much lay the ground work for some decent shadow support.

That's basically what you'd have to do.

Quote
To have a really good idea about effects and their complexity I reccomend reading GPU Gems which NVidia released for free online:
http://http.developer.nvidia.com/GPUGems3/gpugems3_part01.html
It might be interesting even to those who don't understand a thing.

I'm quite familiar with the GPU Gems series. However, reading a paper about an effect, and actually integrating it into our pipeline in a performant way are two very different things.
Title: Re: Cinematics vs Game
Post by: Nuke on July 23, 2011, 12:12:08 pm
Quote
3) Materializing effects
(http://img715.imageshack.us/img715/6523/materialize.th.png) (http://imageshack.us/photo/my-images/715/materialize.png/)
(http://img819.imageshack.us/img819/6341/materializefs2.th.png) (http://imageshack.us/photo/my-images/819/materializefs2.png/)

While FS1 effect is more complicated, FS2 effect is nearly doable with fixed pipeline functions with double render, it only needs blooming. Implementing this would not only allow having same quality for custom made content, but also sound would be matching image :d.
If i remember correctly, MjnMixael and somebody fiddled a bit with an ingame cloak/decloak effect, which involved texture replacements at specified intervals and such...

Yes, for use in-mission. Though a built in version of this specifically would be handy.. We could then lose all the interface files (that's a large chunk if you are using my new ones with the HTL models) and just have it done in the code. You know, stick it in with 3D weapon select...

BUT, I get ahead of the times here. Having that working is a long-shot.

i think for this kinda thing i will just wait for a materials system proper. once that is implemented it should be fairly easy to do procedural cloaking effect that do not require loading a huge texture animation for each ship. should work on interface effects too. kinda wish we had some render options for scripting functions like renderFrame() and renderTechModel(). like wireframe, textured wireframe, blur, clipping boxes etc, and some kind of texture replacement for tech models (we might have something that can accomplist this already). bottom graphic can be done by something like this.

1: render wireframe ship to texture
2: render textured ship to texture
3: render grid procedurally
4: create 2 polygons, their with should be the same and their combined height should equal width, interpolate their height dimention so that one grows in height as the other shrinks, maintaining a square. uv space should assume both are mapped square. use the wireframe texture on one and the textured texture on the other. animate the squares so it appears a scan line is turning a wireframe render into a textured render
5: draw a big glowey green line over the seam
6: when the scanline part of the animation is over with, animate the grid and rendered texture so that it looks like it tilts to isometric, and then rotate the ship.

most of this can be done with scripting now. we dont have script access to wireframe draw mode though, but the rest can be done.

Title: Re: Cinematics vs Game
Post by: Dragon on July 23, 2011, 12:18:42 pm
IIRC, somebody (The_E?) was working on material system and made some interesting progress, so maybe we'll see some news about that in forseeable future.
Title: Re: Cinematics vs Game
Post by: Nuke on July 23, 2011, 12:27:19 pm
IIRC, somebody (The_E?) was working on material system and made some interesting progress, so maybe we'll see some news about that in forseeable future.

il believe it when i see it, but his specs looked good on paper.
Title: Re: Cinematics vs Game
Post by: Valathil on July 23, 2011, 01:02:04 pm
number 3 is practically running on my pc now ( the fs1 one ) just need to do the whole **** that sorounds passing a timer to the shader and everything. Not in the near future MY ASS
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 23, 2011, 01:22:39 pm
 :jaw:

Ok, can I make a bit of a request then...?

I would love to see that working for 3d ship/weapon select... Perhaps a table to define options? (fs1 vs fs2 style)
Title: Re: Cinematics vs Game
Post by: Valathil on July 23, 2011, 02:21:47 pm
yeah i know you would. thats what im doing but not today, too tired this is harder than i thought getting it cleanly into the engine. fs2 effect comes when fs1 is up and running. fs2 effect wont need a shader which is much easier to implement cause i dont have to pass parameters through 10 layers of abstraction. which is also why im not doing it first cause its BOOOOORING
Title: Re: Cinematics vs Game
Post by: Subspace Anomaly on July 23, 2011, 04:52:17 pm
Quote
Essentially I decided to add in basic material sorting...
Wait,  that almost sounds like he's done quite a bunch of it. Correct me if I don't understand, perhaps I should just look myself in code to see.
Quote
I would love to see that working for 3d ship/weapon select... Perhaps a table to define options? (fs1 vs fs2 style)
If it is done by shader you should just put in different shader in your mod and it'll compile and work itselfs.

Quote
However, reading a paper about an effect, and actually integrating it into our pipeline in a performant way are two very different things.
Indeed, good thing we are in the age of easily accessable information.

Quote
I've heard that some sort of sunshaft shader based off the one from Crysis had been made by the same dude who first made bloom. Is it possible to clean that one up, or is it messy beyond repair?
Shader itself is not a problem, however you need another render pass to set it up. And according to The E  current render pass is slow so one can't just reuse it without drasticly improving it. This'd be same for shadows as well and basicly quite a big bunch of other things.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 23, 2011, 11:10:16 pm
number 3 is practically running on my pc now ( the fs1 one ) just need to do the whole **** that sorounds passing a timer to the shader and everything. Not in the near future MY ASS

wtf how do you do what you do?
Title: Re: Cinematics vs Game
Post by: Valathil on July 24, 2011, 03:33:31 am
wtf how do you do what you do?
http://www.youtube.com/watch?v=96kwILL35ig (http://www.youtube.com/watch?v=96kwILL35ig)

EDIT:
(http://i284.photobucket.com/albums/ll25/ArwingAce21/Phoenix%20Wright%20Animations/c214ddfc.gif)
http://www.youtube.com/watch?v=apKv9OO8sgQ (http://www.youtube.com/watch?v=apKv9OO8sgQ)
Title: Re: Cinematics vs Game
Post by: The E on July 24, 2011, 06:41:01 am
Watch it. It is awesome.
Title: Re: Cinematics vs Game
Post by: jg18 on July 24, 2011, 06:51:40 am
Watch it. It is awesome.

I hadn't seen the update to Valathil's post and confusedly thought you were talking about the music video... :confused:

But now that I've seen the update... :jaw:

holy **** Valathil that is ****ing amazing
Title: Re: Cinematics vs Game
Post by: Commander Zane on July 24, 2011, 07:03:02 am
:jaw:

That is all.
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 24, 2011, 07:17:12 am
 :eek:


I'm sorry I doubted you...

Could use a bit more glow on the white 'reveal' part though.
Title: Re: Cinematics vs Game
Post by: Dragon on July 24, 2011, 07:23:38 am
Wow.
BTW, could that be triggered in game, with SEXPs?
That effect is simply amazing.
Title: Re: Cinematics vs Game
Post by: Tomo on July 24, 2011, 07:46:52 am
Wow.
BTW, could that be triggered in game, with SEXPs?
That effect is simply amazing.
Once the material system that The_E was working on turns up, then yes that becomes possible along with lots of other possibilities for procedural effect shaders.

Once you can pass arbitrary game and ship values to the shader, you can do *amazing* things. Coupled with a material-replace SEXP, the possibilities are endless.

- A while back I was working on a Warp Effect shader that squeezes the ship into a small tube and stretches it to infinity (well, a long way) as it warps. It looked really cool, but couldn't be used as there was no way for the shader to know that the ship was warping.
Equally, all the Star Trek warp effects (TOS, Next Gen and the reboot) can be done quite easily with shaders.

So The_E - how is it going? Is there anything any of us can do to help you?
Title: Re: Cinematics vs Game
Post by: Valathil on July 24, 2011, 07:56:13 am
i think its done

Wow.
BTW, could that be triggered in game, with SEXPs?
That effect is simply amazing.

This was the idea from the beginning, a generic animated shader thing to do crazy effects. However at this stage i did not need to implement a generic solution for ship models in missions to do what i wanted. But this is certainly a possible follow up to this.
Code: [Select]
Index: code/missionui/missionscreencommon.h
===================================================================
--- code/missionui/missionscreencommon.h (Revision 7380)
+++ code/missionui/missionscreencommon.h (Arbeitskopie)
@@ -200,7 +200,7 @@
 
 struct ship_info;
 void draw_model_icon(int model_id, int flags, float closeup_zoom, int x1, int x2, int y1, int y2, ship_info* sip=NULL, bool resize=true);
-void draw_model_rotating(int model_id, int x1, int y1, int x2, int y2, float *rotation_buffer, vec3d *closeup_pos=NULL, float closeup_zoom = .65f, float rev_rate = REVOLUTION_RATE, int flags = MR_LOCK_DETAIL | MR_AUTOCENTER | MR_NO_FOGGING, bool resize=true);
+void draw_model_rotating(int model_id, int x1, int y1, int x2, int y2, float *rotation_buffer, vec3d *closeup_pos=NULL, float closeup_zoom = .65f, float rev_rate = REVOLUTION_RATE, int flags = MR_LOCK_DETAIL | MR_AUTOCENTER | MR_NO_FOGGING, bool resize=true, float anim_timer = 0.0f);
 
 void common_set_team_pointers(int team);
 void common_reset_team_pointers();
Index: code/missionui/missionweaponchoice.cpp
===================================================================
--- code/missionui/missionweaponchoice.cpp (Revision 7380)
+++ code/missionui/missionweaponchoice.cpp (Arbeitskopie)
@@ -38,9 +38,9 @@
 #include "missionui/chatbox.h"
 #include "network/multi_pmsg.h"
 #include "parse/parselo.h"
+#include "io/timer.h"
 
 
-
 #define IS_BANK_PRIMARY(x) (x < MAX_SHIP_PRIMARY_BANKS)
 #define IS_BANK_SECONDARY(x) (x >= MAX_SHIP_PRIMARY_BANKS)
 
@@ -96,6 +96,7 @@
 #define WL_BUTTON_MULTI_LOCK 6
 #define WL_BUTTON_APPLY_ALL 7
 
+static int anim_timer_start = 0;
 
 // convenient struct for handling all button controls
 struct wl_buttons {
@@ -1221,6 +1222,8 @@
 {
  int weapon_class;
 
+ anim_timer_start = timer_get_milliseconds();
+
  // if a weapon is being carried, do nothing
  if ( wl_icon_being_carried() ) {
  return;
@@ -1256,6 +1259,8 @@
 void maybe_select_new_ship_weapon(int index)
 {
  int *wep, *wep_count;
+
+ anim_timer_start = timer_get_milliseconds();
 
  if ( Selected_wl_slot == -1 )
  return;
@@ -2791,7 +2796,9 @@
  NULL,
  .65f,
  REVOLUTION_RATE,
- MR_IS_MISSILE | MR_LOCK_DETAIL | MR_AUTOCENTER | MR_NO_FOGGING);
+ MR_IS_MISSILE | MR_LOCK_DETAIL | MR_AUTOCENTER | MR_NO_FOGGING | MR_ANIMATED_SHADER,
+ true,
+ MIN((timer_get_milliseconds()-anim_timer_start)/1500.0f,2.0f));
  }
 
  else if ( Weapon_anim_class != -1 && ( Selected_wl_class == Weapon_anim_class )) {
Index: code/missionui/missionshipchoice.cpp
===================================================================
--- code/missionui/missionshipchoice.cpp (Revision 7380)
+++ code/missionui/missionshipchoice.cpp (Arbeitskopie)
@@ -46,9 +46,9 @@
 #include "network/multiteamselect.h"
 #include "network/multiutil.h"
 #include "ai/aigoals.h"
+#include "io/timer.h"
 
 
-
 //////////////////////////////////////////////////////
 // Game-wide Globals
 //////////////////////////////////////////////////////
@@ -115,6 +115,7 @@
 int Hot_ss_icon; // index that icon is over in list (0..MAX_WING_SLOTS-1)
 int Hot_ss_slot; // index for slot that mouse is over (0..MAX_WSS_SLOTS)
 
+static int anim_timer_start = 0;
 ////////////////////////////////////////////////////////////
 // Ship Select UI
 ////////////////////////////////////////////////////////////
@@ -1555,7 +1556,10 @@
  &ShipSelectScreenShipRot,
  &sip->closeup_pos,
  sip->closeup_zoom * 1.3f,
- rev_rate);
+ rev_rate,
+ MR_LOCK_DETAIL | MR_AUTOCENTER | MR_NO_FOGGING | MR_ANIMATED_SHADER,
+ true,
+ MIN((timer_get_milliseconds()-anim_timer_start)/1500.0f,2.0f));
  }
  }
 
@@ -1759,6 +1763,8 @@
  char *p;
  char animation_filename[CF_MAX_FILENAME_LENGTH+4];
 
+ anim_timer_start = timer_get_milliseconds();
+
  if ( Cmdline_ship_choice_3d || !strlen(sip->anim_filename) ) {
  if (ship_class < 0) {
  mprintf(("No ship class passed in to start_ship_animation\n"));
Index: code/missionui/missionscreencommon.cpp
===================================================================
--- code/missionui/missionscreencommon.cpp (Revision 7380)
+++ code/missionui/missionscreencommon.cpp (Arbeitskopie)
@@ -1542,7 +1542,7 @@
  gr_reset_clip();
 }
 
-void draw_model_rotating(int model_id, int x1, int y1, int x2, int y2, float *rotation_buffer, vec3d *closeup_pos, float closeup_zoom, float rev_rate, int flags, bool resize)
+void draw_model_rotating(int model_id, int x1, int y1, int x2, int y2, float *rotation_buffer, vec3d *closeup_pos, float closeup_zoom, float rev_rate, int flags, bool resize, float anim_timer)
 {
  //WMC - Can't draw a non-model
  if(model_id < 0)
@@ -1597,7 +1597,7 @@
 
  model_clear_instance(model_id);
  model_set_detail_level(0);
- model_render(model_id, &model_orient, &vmd_zero_vector, flags);
+ model_render(model_id, &model_orient, &vmd_zero_vector, flags,-1,-1,(int*)0,anim_timer);
 
  if (!Cmdline_nohtl)
  {
Index: code/graphics/gropengltnl.h
===================================================================
--- code/graphics/gropengltnl.h (Revision 7380)
+++ code/graphics/gropengltnl.h (Arbeitskopie)
@@ -43,7 +43,7 @@
 bool gr_opengl_config_buffer(const int buffer_id, vertex_buffer *vb);
 void gr_opengl_destroy_buffer(int idx);
 void gr_opengl_set_buffer(int idx);
-void gr_opengl_render_buffer(int start, const vertex_buffer *bufferp, int texi, int flags);
+void gr_opengl_render_buffer(int start, const vertex_buffer *bufferp, int texi, int flags, float anim_timer = 0.0f);
 void gr_opengl_render_to_env(int FACE);
 
 void gr_opengl_start_state_block();
Index: code/graphics/gropenglshader.h
===================================================================
--- code/graphics/gropenglshader.h (Revision 7380)
+++ code/graphics/gropenglshader.h (Arbeitskopie)
@@ -34,8 +34,8 @@
 #define SDR_FLAG_NORMAL_MAP (1<<13)
 #define SDR_FLAG_HEIGHT_MAP (1<<14)
 #define SDR_FLAG_ENV_MAP (1<<15)
+#define SDR_FLAG_ANIMATED (1<<16)
 
-
 #define MAX_SHADER_UNIFORMS 15
 
 struct opengl_shader_file_t {
Index: code/graphics/tmapper.h
===================================================================
--- code/graphics/tmapper.h (Revision 7380)
+++ code/graphics/tmapper.h (Arbeitskopie)
@@ -72,6 +72,8 @@
 // use greyscale texture
 #define TMAP_FLAG_BW_TEXTURE (1<<18)
 
+// use animated Shader - Valathil
+#define TMAP_ANIMATED_SHADER (1<<19)
 
 #define TMAP_ADDRESS_WRAP 1
 #define TMAP_ADDRESS_MIRROR 2
Index: code/graphics/gropengltnl.cpp
===================================================================
--- code/graphics/gropengltnl.cpp (Revision 7380)
+++ code/graphics/gropengltnl.cpp (Arbeitskopie)
@@ -506,7 +506,7 @@
 
 static void opengl_render_pipeline_fixed(int start, const vertex_buffer *bufferp, const buffer_data *datap, int flags);
 
-static void opengl_render_pipeline_program(int start, const vertex_buffer *bufferp, const buffer_data *datap, int flags)
+static void opengl_render_pipeline_program(int start, const vertex_buffer *bufferp, const buffer_data *datap, int flags, float anim_timer = 0.0f)
 {
  float u_scale, v_scale;
  int render_pass = 0;
@@ -534,6 +534,9 @@
  shader_flags |= SDR_FLAG_FOG;
  }
 
+ if (flags & TMAP_ANIMATED_SHADER)
+ shader_flags |= SDR_FLAG_ANIMATED;
+
  if (textured) {
  if ( !Basemap_override ) {
  shader_flags |= SDR_FLAG_DIFFUSE_MAP;
@@ -616,6 +619,9 @@
  ibuffer = (GLubyte*)vbp->index_list;
  }
 
+ if(flags & TMAP_ANIMATED_SHADER)
+ vglUniform1fARB( opengl_shader_get_uniform("anim_timer"), anim_timer );
+
  int n_lights = MIN(Num_active_gl_lights, GL_max_lights) - 1;
  vglUniform1iARB( opengl_shader_get_uniform("n_lights"), n_lights );
 
@@ -1067,7 +1073,7 @@
 }
 
 // start is the first part of the buffer to render, n_prim is the number of primitives, index_list is an index buffer, if index_list == NULL render non-indexed
-void gr_opengl_render_buffer(int start, const vertex_buffer *bufferp, int texi, int flags)
+void gr_opengl_render_buffer(int start, const vertex_buffer *bufferp, int texi, int flags, float anim_timer)
 {
  Assert( GL_htl_projection_matrix_set );
  Assert( GL_htl_view_matrix_set );
@@ -1085,7 +1091,7 @@
  const buffer_data *datap = &bufferp->tex_buf[texi];
 
  if ( (Use_GLSL > 1) && !GLSL_override ) {
- opengl_render_pipeline_program(start, bufferp, datap, flags);
+ opengl_render_pipeline_program(start, bufferp, datap, flags, anim_timer);
  } else {
  opengl_render_pipeline_fixed(start, bufferp, datap, flags);
  }
Index: code/graphics/gropenglshader.cpp
===================================================================
--- code/graphics/gropenglshader.cpp (Revision 7380)
+++ code/graphics/gropenglshader.cpp (Arbeitskopie)
@@ -47,6 +47,7 @@
 static opengl_shader_file_t GL_shader_file[] = {
  { "null-v.sdr", "null-f.sdr", (0), 0, { NULL }, },
 
+ // with diffuse Textures
  { "l-v.sdr", "lb-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP),
  2, { "sBasemap", "n_lights" } },
 
@@ -83,30 +84,12 @@
  { "ln-v.sdr", "lbsn-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP),
  4, { "sBasemap", "sSpecmap", "sNormalmap", "n_lights" } },
 
- { "ln-v.sdr", "lbgnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 5, { "sBasemap", "sGlowmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "ln-v.sdr", "lbgsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 6, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "ln-v.sdr", "lbnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 4, { "sBasemap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "ln-v.sdr", "lbsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 5, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
  { "lne-v.sdr", "lbgsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
  8, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
 
  { "lne-v.sdr", "lbsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
  7, { "sBasemap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
 
- { "lne-v.sdr", "lbgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 9, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
- { "lne-v.sdr", "lbsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 8, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
  { "lf-v.sdr", "lfb-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP),
  2, { "sBasemap", "n_lights" } },
 
@@ -137,30 +120,13 @@
  { "lfn-v.sdr", "lfbsn-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP),
  4, { "sBasemap", "sSpecmap", "sNormalmap", "n_lights" } },
 
- { "lfn-v.sdr", "lfbgnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 5, { "sBasemap", "sGlowmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "lfn-v.sdr", "lfbgsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 6, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "lfn-v.sdr", "lfbnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 4, { "sBasemap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "lfn-v.sdr", "lfbsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 5, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
  { "lfne-v.sdr", "lfbgsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
  8, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
 
  { "lfne-v.sdr", "lfbsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
  7, { "sBasemap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
 
- { "lfne-v.sdr", "lfbgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 9, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
- { "lfne-v.sdr", "lfbsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 8, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
+ // no diffuse Textures
  { "l-v.sdr", "null-f.sdr", (SDR_FLAG_LIGHT),
  1, { "n_lights" } },
 
@@ -191,6 +157,134 @@
  { "ln-v.sdr", "lsn-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP),
  3, { "sSpecmap", "sNormalmap", "n_lights" } },
 
+ { "lne-v.sdr", "lgsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
+ 7, { "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "lne-v.sdr", "lsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
+ 6, { "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ // Animated Shaders
+ { "la-v.sdr", "lba-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 3, { "sBasemap", "n_lights", "anim_timer" } },
+
+ { "ba-v.sdr", "ba-f.sdr", (SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 2, { "sBasemap", "anim_timer" } },
+
+ { "ba-v.sdr", "bga-f.sdr", (SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 3, { "sBasemap", "sGlowmap", "anim_timer" } },
+
+ { "la-v.sdr", "lbga-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_ANIMATED),
+ 4, { "sBasemap", "sGlowmap", "n_lights", "anim_timer" } },
+
+ { "la-v.sdr", "lbgsa-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sGlowmap", "sSpecmap", "n_lights", "anim_timer" } },
+
+ { "la-v.sdr", "lbsa-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 4, { "sBasemap", "sSpecmap", "n_lights", "anim_timer" } },
+
+ { "lea-v.sdr", "lbgsea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 8, { "sBasemap", "sGlowmap", "sSpecmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer" } },
+
+ { "lea-v.sdr", "lbsea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 7, { "sBasemap", "sSpecmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer" } },
+
+ { "lna-v.sdr", "lbgna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sGlowmap", "sNormalmap", "n_lights", "anim_timer" } },
+
+ { "lna-v.sdr", "lbgsna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 6, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "n_lights", "anim_timer" } },
+
+ { "lna-v.sdr", "lbna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 4, { "sBasemap", "sNormalmap", "n_lights", "anim_timer" } },
+
+ { "lna-v.sdr", "lbsna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sSpecmap", "sNormalmap", "n_lights", "anim_timer" } },
+
+ { "lnea-v.sdr", "lbgsnea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 9, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer" } },
+
+ { "lnea-v.sdr", "lbsnea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 8, { "sBasemap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer" } },
+
+ { "lfa-v.sdr", "lfba-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_ANIMATED | SDR_FLAG_ANIMATED),
+ 3, { "sBasemap", "n_lights", "anim_timer" } },
+
+ { "lfa-v.sdr", "lfbga-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_ANIMATED),
+ 4, { "sBasemap", "sGlowmap", "n_lights", "anim_timer" } },
+
+ { "lfa-v.sdr", "lfbgsa-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sGlowmap", "sSpecmap", "n_lights", "anim_timer" } },
+
+ { "lfa-v.sdr", "lfbsa-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ANIMATED),
+ 4, { "sBasemap", "sSpecmap", "n_lights", "anim_timer" } },
+
+ { "lfea-v.sdr", "lfbgsea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 8, { "sBasemap", "sGlowmap", "sSpecmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer" } },
+
+ { "lfea-v.sdr", "lfbsea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 7, { "sBasemap", "sSpecmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer" } },
+
+ { "lfna-v.sdr", "lfbgna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sGlowmap", "sNormalmap", "n_lights", "anim_timer" } },
+
+ { "lfna-v.sdr", "lfbgsna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 6, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "n_lights", "anim_timer" } },
+
+ { "lfna-v.sdr", "lfbna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 4, { "sBasemap", "sNormalmap", "n_lights", "anim_timer" } },
+
+ { "lfna-v.sdr", "lfbsna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sSpecmap", "sNormalmap", "n_lights", "anim_timer" } },
+
+ { "lfnea-v.sdr", "lfbgsnea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 9, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer" } },
+
+ { "lfnea-v.sdr", "lfbsnea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 8, { "sBasemap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer" } }
+
+ /* No Heightmapping for now - Valathil
+ { "lne-v.sdr", "lgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 8, { "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "lne-v.sdr", "lsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 7, { "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "ln-v.sdr", "lbgnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 5, { "sBasemap", "sGlowmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "ln-v.sdr", "lbgsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 6, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "ln-v.sdr", "lbnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 4, { "sBasemap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "ln-v.sdr", "lbsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 5, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "lne-v.sdr", "lbgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 9, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "lne-v.sdr", "lbsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 8, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "lfn-v.sdr", "lfbgnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 5, { "sBasemap", "sGlowmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "lfn-v.sdr", "lfbgsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 6, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "lfn-v.sdr", "lfbnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 4, { "sBasemap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "lfn-v.sdr", "lfbsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 5, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "lfne-v.sdr", "lfbgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 9, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "lfne-v.sdr", "lfbsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 8, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
  { "ln-v.sdr", "lgnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_GLOW_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
  4, { "sGlowmap", "sNormalmap", "sHeightmap", "n_lights" } },
 
@@ -201,19 +295,7 @@
  3, { "sNormalmap", "sHeightmap", "n_lights" } },
 
  { "ln-v.sdr", "lsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 4, { "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "lne-v.sdr", "lgsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
- 7, { "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
- { "lne-v.sdr", "lsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
- 6, { "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
- { "lne-v.sdr", "lgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 8, { "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
- { "lne-v.sdr", "lsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 7, { "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } }
+ 4, { "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } }*/
 };
 
 static const int Num_shader_files = sizeof(GL_shader_file) / sizeof(opengl_shader_file_t);
@@ -344,6 +426,10 @@
  if (flags & SDR_FLAG_SPEC_MAP) {
  sflags += "#define FLAG_SPEC_MAP\n";
  }
+
+ if (flags & SDR_FLAG_ANIMATED) {
+ sflags += "#define FLAG_ANIMATED\n";
+ }
  }
 
 
Index: code/graphics/grstub.cpp
===================================================================
--- code/graphics/grstub.cpp (Revision 7380)
+++ code/graphics/grstub.cpp (Arbeitskopie)
@@ -235,7 +235,7 @@
 {
 }
 
-void gr_stub_render_buffer(int start, const vertex_buffer *bufferp, int texi, int flags)
+void gr_stub_render_buffer(int start, const vertex_buffer *bufferp, int texi, int flags, float anim_timer)
 {
 }
 
Index: code/graphics/2d.h
===================================================================
--- code/graphics/2d.h (Revision 7380)
+++ code/graphics/2d.h (Arbeitskopie)
@@ -444,7 +444,7 @@
  bool (*gf_config_buffer)(const int buffer_id, vertex_buffer *vb);
  void (*gf_destroy_buffer)(int);
  void (*gf_set_buffer)(int);
- void (*gf_render_buffer)(int, const vertex_buffer*, int, int);
+ void (*gf_render_buffer)(int, const vertex_buffer*, int, int, float);
 
  int (*gf_make_flat_buffer)(poly_list*);
  int (*gf_make_line_buffer)(line_list*);
@@ -741,9 +741,9 @@
 #define gr_pack_buffer GR_CALL(*gr_screen.gf_pack_buffer)
 #define gr_config_buffer GR_CALL(*gr_screen.gf_config_buffer)
 #define gr_destroy_buffer GR_CALL(*gr_screen.gf_destroy_buffer)
-__inline void gr_render_buffer(int start, const vertex_buffer *bufferp, int texi, int flags = TMAP_FLAG_TEXTURED)
+__inline void gr_render_buffer(int start, const vertex_buffer *bufferp, int texi, int flags = TMAP_FLAG_TEXTURED, float anim_timer = 0.0f)
 {
- (*gr_screen.gf_render_buffer)(start, bufferp, texi, flags);
+ (*gr_screen.gf_render_buffer)(start, bufferp, texi, flags, anim_timer);
 }
 
 #define gr_set_buffer GR_CALL(*gr_screen.gf_set_buffer)     
Index: code/model/modelinterp.cpp
===================================================================
--- code/model/modelinterp.cpp (Revision 7380)
+++ code/model/modelinterp.cpp (Arbeitskopie)
@@ -170,13 +170,13 @@
 
 // forward references
 int model_interp_sub(void *model_ptr, polymodel * pm, bsp_info *sm, int do_box_check);
-void model_really_render(int model_num, matrix *orient, vec3d * pos, uint flags, int objnum = -1);
+void model_really_render(int model_num, matrix *orient, vec3d * pos, uint flags, int objnum = -1, float anim_timer = 0.0f);
 void model_interp_sortnorm_b2f(ubyte * p,polymodel * pm, bsp_info *sm, int do_box_check);
 void model_interp_sortnorm_f2b(ubyte * p,polymodel * pm, bsp_info *sm, int do_box_check);
 void (*model_interp_sortnorm)(ubyte * p,polymodel * pm, bsp_info *sm, int do_box_check) = model_interp_sortnorm_b2f;
 int model_should_render_engine_glow(int objnum, int bank_obj);
-void model_render_buffers(polymodel *pm, int mn, bool is_child = false);
-void model_render_children_buffers(polymodel * pm, int mn, int detail_level);
+void model_render_buffers(polymodel *pm, int mn, bool is_child = false, float anim_timer = 0.0f);
+void model_render_children_buffers(polymodel * pm, int mn, int detail_level, float anim_timer = 0.0f);
 int model_interp_get_texture(texture_info *tinfo, fix base_frametime);
 
 
@@ -2304,7 +2304,7 @@
 }
 */
 
-void model_render(int model_num, matrix *orient, vec3d * pos, uint flags, int objnum, int lighting_skip, int *replacement_textures)
+void model_render(int model_num, matrix *orient, vec3d * pos, uint flags, int objnum, int lighting_skip, int *replacement_textures, float anim_timer)
 {
  int cull = 0;
  // replacement textures - Goober5000
@@ -2405,7 +2405,7 @@
  num_lights = light_filter_push( objnum, pos, pm->rad );
  }
 
- model_really_render(model_num, orient, pos, flags, objnum);
+ model_really_render(model_num, orient, pos, flags, objnum,anim_timer);
 
  if ( !(flags & MR_NO_LIGHTING ) ) {
  light_filter_pop();
@@ -2996,7 +2996,7 @@
 
 extern int Warp_model;
 
-void model_really_render(int model_num, matrix *orient, vec3d * pos, uint flags, int objnum )
+void model_really_render(int model_num, matrix *orient, vec3d * pos, uint flags, int objnum, float anim_timer)
 {
  int i;
  int cull = 1;
@@ -3072,6 +3072,9 @@
  }
  }
 
+ if ( Interp_flags & MR_ANIMATED_SHADER )
+ Interp_tmap_flags |= TMAP_ANIMATED_SHADER;
+
  save_gr_zbuffering_mode = gr_zbuffering_mode;
  zbuf_mode = gr_zbuffering_mode;
 
@@ -3310,7 +3313,7 @@
  if ( !pm->submodel[i].is_thruster ) {
  // When in htl mode render with htl method unless its a jump node
  if (is_outlines_only_htl || (!Cmdline_nohtl && !is_outlines_only)) {
- model_render_children_buffers( pm, i, Interp_detail_level );
+ model_render_children_buffers( pm, i, Interp_detail_level, anim_timer );
  } else {
  model_interp_subcall( pm, i, Interp_detail_level );
  }
@@ -3329,7 +3332,7 @@
 
  // When in htl mode render with htl method unless its a jump node
  if (is_outlines_only_htl || (!Cmdline_nohtl && !is_outlines_only)) {
- model_render_buffers(pm, pm->detail[Interp_detail_level]);
+ model_render_buffers(pm, pm->detail[Interp_detail_level], false, anim_timer);
  } else {
  model_interp_subcall(pm, pm->detail[Interp_detail_level], Interp_detail_level);
  }
@@ -3342,7 +3345,7 @@
  if (pm->submodel[i].is_thruster) {
  // When in htl mode render with htl method unless its a jump node
  if (is_outlines_only_htl || (!Cmdline_nohtl && !is_outlines_only)) {
- model_render_children_buffers( pm, i, Interp_detail_level );
+ model_render_children_buffers( pm, i, Interp_detail_level, anim_timer );
  } else {
  model_interp_subcall( pm, i, Interp_detail_level );
  }
@@ -4685,7 +4688,7 @@
 }
 
 
-void model_render_children_buffers(polymodel *pm, int mn, int detail_level)
+void model_render_children_buffers(polymodel *pm, int mn, int detail_level, float anim_timer)
 {
  int i;
 
@@ -4754,7 +4757,7 @@
 
  g3_start_instance_matrix(&model->offset, &submodel_matrix, true);
 
- model_render_buffers(pm, mn, true);
+ model_render_buffers(pm, mn, true, anim_timer);
 
  if (Interp_flags & MR_SHOW_PIVOTS)
  model_draw_debug_points( pm, &pm->submodel[mn] );
@@ -4767,7 +4770,7 @@
 
  while (i >= 0) {
  if ( !pm->submodel[i].is_thruster ) {
- model_render_children_buffers( pm, i, detail_level );
+ model_render_children_buffers( pm, i, detail_level, anim_timer );
  }
 
  i = pm->submodel[i].next_sibling;
@@ -4786,7 +4789,7 @@
  g3_done_instance(true);
 }
 
-void model_render_buffers(polymodel *pm, int mn, bool is_child)
+void model_render_buffers(polymodel *pm, int mn, bool is_child, float anim_timer)
 {
  if (pm->vertex_buffer_id < 0)
  return;
@@ -4945,7 +4948,7 @@
 
  gr_set_bitmap(texture, blend_filter, GR_BITBLT_MODE_NORMAL, alpha);
 
- gr_render_buffer(0, &model->buffer, i, Interp_tmap_flags);
+ gr_render_buffer(0, &model->buffer, i, Interp_tmap_flags, anim_timer);
 
  GLOWMAP = -1;
  SPECMAP = -1;
Index: code/model/model.h
===================================================================
--- code/model/model.h (Revision 7380)
+++ code/model/model.h (Arbeitskopie)
@@ -778,6 +778,7 @@
 #define MR_NO_GLOWMAPS (1<<27) // disable rendering of glowmaps - taylor
 #define MR_FULL_DETAIL (1<<28) // render all valid objects, particularly ones that are otherwise in/out of render boxes - taylor
 #define MR_FORCE_CLAMP (1<<29) // force clamp - Hery
+#define MR_ANIMATED_SHADER (1<<30) // Use a animated Shader - Valathil
 
 // old/obsolete flags
 //#define MR_SHOW_DAMAGE (1<<4) // Show the "destroyed" subobjects
@@ -785,7 +786,7 @@
 
 // Renders a model and all it's submodels.
 // See MR_? defines for values for flags
-void model_render(int model_num, matrix *orient, vec3d * pos, uint flags = MR_NORMAL, int objnum = -1, int lighting_skip = -1, int *replacement_textures = NULL);
+void model_render(int model_num, matrix *orient, vec3d * pos, uint flags = MR_NORMAL, int objnum = -1, int lighting_skip = -1, int *replacement_textures = NULL, float anim_timer = 0.0f);
 
 // Renders just one particular submodel on a model.
 // See MR_? defines for values for flags
Index: code/globalincs/def_files.cpp
===================================================================
--- code/globalincs/def_files.cpp (Revision 7380)
+++ code/globalincs/def_files.cpp (Arbeitskopie)
@@ -1253,6 +1253,10 @@
 varying float fogDist; \n\
 #endif \n\
  \n\
+#ifdef FLAG_ANIMATED \n\
+uniform float anim_timer; \n\
+#endif \n\
+ \n\
 varying vec4 position; \n\
 varying vec3 lNormal; \n\
  \n\
@@ -1407,7 +1411,13 @@
  fragmentColor.rgb = mix(fragmentColor.rgb, gl_Fog.color.rgb, fogDist); \n\
  #endif \n\
  \n\
+ #ifdef FLAG_ANIMATED \n\
+ float shinefactor = 1.0/(1.0 + pow((gl_TexCoord[0].x-anim_timer) * 2000.0, 2.0)) * 2000.0;\n\
+ gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor); \n\
+ gl_FragColor.a = fragmentColor.a * shinefactor * (gl_TexCoord[0].x-anim_timer) * -10000.0;\n\
+ #else \n\
  gl_FragColor = fragmentColor; \n\
+ #endif \n\
 } \n\
 ";
 

Code: [Select]
#ifdef FLAG_LIGHT
uniform int n_lights;
#endif

#ifdef FLAG_DIFFUSE_MAP
uniform sampler2D sBasemap;
#endif

#ifdef FLAG_GLOW_MAP
uniform sampler2D sGlowmap;
#endif

#ifdef FLAG_SPEC_MAP
uniform sampler2D sSpecmap;
#endif

#ifdef FLAG_ENV_MAP
uniform samplerCube sEnvmap;
uniform bool alpha_spec;
varying vec3 envReflect;
#endif

#ifdef FLAG_NORMAL_MAP
uniform sampler2D sNormalmap;
varying mat3 tbnMatrix;
#endif

#ifdef FLAG_FOG
varying float fogDist;
#endif

#ifdef FLAG_ANIMATED
uniform float anim_timer;
#endif

varying vec4 position;
varying vec3 lNormal;

#if SHADER_MODEL == 2
  #define MAX_LIGHTS 2
#else
  #define MAX_LIGHTS 8
#endif

#define SPEC_INTENSITY_POINT 5.3 // Point light
#define SPEC_INTENSITY_DIRECTIONAL 3.0 // Directional light
#define SPECULAR_FACTOR 1.75
#define SPECULAR_ALPHA 0.1
#define SPEC_FACTOR_NO_SPEC_MAP 0.6
#define ENV_ALPHA_FACTOR 0.3
#define GLOW_MAP_INTENSITY 1.5
#define AMBIENT_LIGHT_BOOST 1.0

void main()
{
vec3 eyeDir = vec3(normalize(-position).xyz); // Camera is at (0,0,0) in ModelView space
vec4 lightAmbientDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightAmbient = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightSpecular = vec4(0.0, 0.0, 0.0, 1.0);
vec2 texCoord = gl_TexCoord[0].xy;

 #ifdef FLAG_LIGHT
  #ifdef FLAG_NORMAL_MAP
// Normal map - convert from DXT5nm
vec3 normal;

normal.rg = (texture2D(sNormalmap, texCoord).ag * 2.0) - 1.0;
  #ifdef FLAG_ENV_MAP
vec3 envOffset = vec3(0.0);
envOffset.xy = normal.xy;
  #endif
normal.b = sqrt(1.0 - dot(normal.rg, normal.rg));
normal = tbnMatrix * normal;
float norm = length(normal);
if( length(normal) > 0.0)  // fix broken normal maps
normal /= norm ;
else
normal = tbnMatrix * vec3(0.0, 0.0, 1.0);
  #else
vec3 normal = lNormal;
  #endif

vec3 lightDir;
lightAmbient = gl_FrontMaterial.emission + (gl_LightModel.ambient * gl_FrontMaterial.ambient);
float dist;
#pragma optionNV unroll all
for (int i = 0; i < MAX_LIGHTS; ++i) {
  #if SHADER_MODEL > 2
if (i > n_lights)
break;
  #endif
float specularIntensity = 1.0;
float attenuation = 1.0;

// Attenuation and light direction
  #if SHADER_MODEL > 2
if (gl_LightSource[i].position.w == 1.0) {
  #else
if (gl_LightSource[i].position.w == 1.0 && i != 0) {
  #endif
// Positional light source
float dist = distance(gl_LightSource[i].position.xyz, position.xyz);

lightDir = (gl_LightSource[i].position.xyz - position.xyz);

  #if SHADER_MODEL > 2
if (gl_LightSource[i].spotCutoff < 91.0) {  // Tube light
float beamlength = length(gl_LightSource[i].spotDirection);
vec3 beamDir = normalize(gl_LightSource[i].spotDirection);
float neardist = dot(position.xyz - gl_LightSource[i].position.xyz , beamDir); // Get nearest point on line
vec3 nearest = gl_LightSource[i].position.xyz - beamDir * abs(neardist); // Move back from the endpoint of the beam along the beam by the distance we calculated
lightDir = nearest - position.xyz;
dist = length(lightDir);
}
  #endif

lightDir = normalize(lightDir);

attenuation = 1.0 / (gl_LightSource[i].constantAttenuation + (gl_LightSource[i].linearAttenuation * dist) + (gl_LightSource[i].quadraticAttenuation * dist * dist));

specularIntensity = SPEC_INTENSITY_POINT;
} else {
// Directional light source
lightDir = normalize(gl_LightSource[i].position.xyz);
specularIntensity = SPEC_INTENSITY_DIRECTIONAL; // Directional light
}

// Ambient and Diffuse
lightAmbient += (gl_FrontLightProduct[i].ambient * attenuation);
lightDiffuse += (gl_FrontLightProduct[i].diffuse * (max(dot(normal, lightDir), 0.0)) * attenuation);
// Specular
float NdotHV = clamp(dot(normal, normalize(eyeDir + lightDir)), 0.0, 1.0);
lightSpecular += ((gl_FrontLightProduct[i].specular * pow(NdotHV, gl_FrontMaterial.shininess)) * attenuation) * specularIntensity;
}

lightAmbientDiffuse = lightAmbient + lightDiffuse;
 #else
lightAmbientDiffuse = gl_Color;
lightSpecular = gl_SecondaryColor;
 #endif

 #ifdef FLAG_DIFFUSE_MAP
 // Base color
vec4 baseColor = texture2D(sBasemap, texCoord);
 #else
vec4 baseColor = gl_Color;
 #endif
 
vec4 fragmentColor;
fragmentColor.rgb = baseColor.rgb * max(lightAmbientDiffuse.rgb * AMBIENT_LIGHT_BOOST, gl_LightModel.ambient.rgb - 0.425);
fragmentColor.a = baseColor.a;

 #ifdef FLAG_SPEC_MAP
 // Spec color
fragmentColor.rgb += lightSpecular.rgb * (texture2D(sSpecmap, texCoord).rgb * SPECULAR_FACTOR);
fragmentColor.a += (dot(lightSpecular.a, lightSpecular.a) * SPECULAR_ALPHA);
 #else
fragmentColor.rgb += lightSpecular.rgb * (baseColor.rgb * SPEC_FACTOR_NO_SPEC_MAP);
 #endif

 #ifdef FLAG_ENV_MAP
 // Env color
  #ifdef FLAG_NORMAL_MAP
vec3 envReflectNM = envReflect + envOffset;
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflectNM).rgb, textureCube(sEnvmap, envReflectNM).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflectNM).rgb * envIntensity;
  #else
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflect).rgb, textureCube(sEnvmap, envReflect).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflect).rgb * envIntensity;
  #endif
 #endif

 #ifdef FLAG_GLOW_MAP
 // Glow color
fragmentColor.rgb += texture2D(sGlowmap, texCoord).rgb * GLOW_MAP_INTENSITY;
 #endif

 #ifdef FLAG_FOG
fragmentColor.rgb = mix(fragmentColor.rgb, gl_Fog.color.rgb, fogDist);
 #endif

 #ifdef FLAG_ANIMATED
float shinefactor = 1.0/(1.0 + pow((gl_TexCoord[0].x-anim_timer) * 2000.0, 2.0)) * 2000.0;
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
gl_FragColor.a = fragmentColor.a * shinefactor * (gl_TexCoord[0].x-anim_timer) * -10000.0;
 #else
gl_FragColor = fragmentColor;
 #endif
}
Title: Re: Cinematics vs Game
Post by: Spoon on July 24, 2011, 09:06:30 am
Valathil continues to be awesome  :yes:
Title: Re: Cinematics vs Game
Post by: Rodo on July 24, 2011, 09:23:32 am
amazing :yes:
Title: Re: Cinematics vs Game
Post by: Kolgena on July 24, 2011, 10:58:33 am
wow. O_O You did that in like, a day.
Title: Re: Cinematics vs Game
Post by: The E on July 24, 2011, 11:10:07 am
This is how the effect looks on a Solaris: http://www.youtube.com/watch?v=v3ZCeM2b55w
Title: Re: Cinematics vs Game
Post by: Valathil on July 24, 2011, 11:21:55 am
This is how the effect looks on a Solaris: http://www.youtube.com/watch?v=v3ZCeM2b55w

which is like the worst ship to show it cause of the flat texture coordinates this things having. better show a raynor or hecate THAT looks AWESOME.

wow. O_O You did that in like, a day.

Why my good friend should it take longer if you know what you are doing?
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 24, 2011, 01:20:08 pm
So.. how about an FS2 varient?

 :nervous:
Title: Re: Cinematics vs Game
Post by: The E on July 24, 2011, 01:20:41 pm
Apparently, he's working on it.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 24, 2011, 01:26:45 pm
Does this work for weapon models too?
Title: Re: Cinematics vs Game
Post by: Valathil on July 24, 2011, 01:30:08 pm
So.. how about an FS2 varient?

 :nervous:

In good time, don't be hasty good sir.
In the meantime here's a prototype of what I've been doing, I know its wrong with the up down thing ill fix it tomorrow just something to look at.
http://www.youtube.com/watch?v=V61MQ2nbqkU (http://www.youtube.com/watch?v=V61MQ2nbqkU)

Does this work for weapon models too?

Yes
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 24, 2011, 03:02:30 pm
needs moar grid!

but it's a great start. Should have a fancy glow covering the transition.. but I bet you knew that already.
Title: Re: Cinematics vs Game
Post by: Commander Zane on July 24, 2011, 03:17:14 pm
Great for a prototype, this alone would make the briefings increase in awesomeness ten-thousand fold.
You're on quite a roll with this stuff.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 24, 2011, 04:32:13 pm
Soon there will legitimately no reason why people shouldn't be using 3D weapon/ship select!

(Also, seriously, you are a tank.)
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 24, 2011, 10:18:37 pm
Good thing I made all those primary weapon models...
Title: Re: Cinematics vs Game
Post by: Luis Dias on July 25, 2011, 05:35:19 am
Man, this is awesome! What a great launch the .14 will be!
Title: Re: Cinematics vs Game
Post by: Valathil on July 25, 2011, 04:11:50 pm
looky look
http://www.youtube.com/watch?v=g7ISBNn8fJ4
Title: Re: Cinematics vs Game
Post by: Rodo on July 25, 2011, 04:15:01 pm
that's ****ing great!
Title: Re: Cinematics vs Game
Post by: Lester on July 25, 2011, 04:19:10 pm
I cannot even begin to comprehend how awesome you are.
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 25, 2011, 04:23:22 pm
:yes:

Needs more bloom/glow/feather to cover the transition. (fs1 style too)

Frakking yes.
Title: Re: Cinematics vs Game
Post by: Commander Zane on July 25, 2011, 04:29:39 pm
Some more bloom effect might be good, but this is still **** yes awesome.
Title: Re: Cinematics vs Game
Post by: Valathil on July 25, 2011, 04:30:31 pm
always with the more bloom.
BRIGHTER
MORE
GIVE ME A WHITE SCREEN COME OOOOOOON
Title: Re: Cinematics vs Game
Post by: Mongoose on July 25, 2011, 04:32:46 pm
what is this i don't even
Title: Re: Cinematics vs Game
Post by: Commander Zane on July 25, 2011, 04:46:22 pm
always with the more bloom.
BRIGHTER
MORE
GIVE ME A WHITE SCREEN COME OOOOOOON
It doesn't have to be white screen, but with the .anis the grid itself glows, and the parts of the ship that materialize as the line passes through it the second time have a bright glow as well. It would be closer to the .anis since at the moment the effect for the 3D style materialization is very subtle in comparison.
The FS1 materialization even has a glow effect in the .anis.
Title: Re: Cinematics vs Game
Post by: Spoon on July 25, 2011, 04:56:34 pm
Valathil you forgot MOAR BROWN  :p

Seriously tho', you've achieved an awesome effect here! Your rockz0rs
Title: Re: Cinematics vs Game
Post by: Valathil on July 25, 2011, 04:58:02 pm
always with the more bloom.
BRIGHTER
MORE
GIVE ME A WHITE SCREEN COME OOOOOOON
It doesn't have to be white screen, but with the .anis the grid itself glows, and the parts of the ship that materialize as the line passes through it the second time have a bright glow as well. It would be closer to the .anis since at the moment the effect for the 3D style materialization is very subtle in comparison.
The FS1 materialization even has a glow effect in the .anis.

no postprocessing in loadout screen -> no bloom, sry, dont think its feasible to get that working but if someone can do it please do it.

In regards to the texture effect itself im thinking of doing something with the animated shader system to get a screenspace bright line on the ships when i implement the multiple effects animated shader system
Title: Re: Cinematics vs Game
Post by: Commander Zane on July 25, 2011, 05:04:08 pm
I wasn't aware of that.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 25, 2011, 06:49:08 pm
Could you get a "baked" bloom into the effects? I'm not sure what you're doing to draw the lines, but if you could assign a bitmap to it, then it's almost just as good I guess...

Something's up with the grid placement though. It looks fine in the top down, but when everything turns sideways, it looks as if the grid is too high up/close to the ship, as if the center of the ship is also the center of the grid. Since the grid doesn't actually draw on top of the ship, the impression is that that the ship isn't centered in the grid.

Also, if it's possible, spawning a small point light under the ship would be fantastic. It's done in the retail .anis, and would look nice if easily implementable.
Title: Re: Cinematics vs Game
Post by: Valathil on July 25, 2011, 07:01:52 pm
Could you get a "baked" bloom into the effects? I'm not sure what you're doing to draw the lines, but if you could assign a bitmap to it, then it's almost just as good I guess...

Something's up with the grid placement though. It looks fine in the top down, but when everything turns sideways, it looks as if the grid is too high up/close to the ship, as if the center of the ship is also the center of the grid. Since the grid doesn't actually draw on top of the ship, the impression is that that the ship isn't centered in the grid.

Also, if it's possible, spawning a small point light under the ship would be fantastic. It's done in the retail .anis, and would look nice if easily implementable.

1. Nope

2. Grid placement is a little hacked yes, but its that way cause its ****ing hard to sync the clipping of the grid and the ship otherwise, its still a little off but without drawing the grid in its own 2d projection matrix which I'm not confident to do its not possible to do otherwise for me at the moment. As for centered its actually at the exact center of the grid in all 3 dimensions, retail ani ships hover over the grid that's why it looks a little off.

3. Could do that yes.

4. In the meantime new vid with new screenspace shader effect: http://www.youtube.com/watch?v=rgLNwq4EXvo
Title: Re: Cinematics vs Game
Post by: Commander Zane on July 25, 2011, 07:13:11 pm
Looks damn good.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 25, 2011, 07:21:29 pm
Looks damn good.

This. Regardless of weird plane placement.
Title: Re: Cinematics vs Game
Post by: AndrewofDoom on July 25, 2011, 08:19:39 pm
Here's a question, how is this going to be controlled, or in another way to say it, who gets to decide what effect is to be used if either at all?

As much as I like these effects, there's many other implications that could result depending on how the control is set. What if someone is making a mod that's strictly not of the FS-verse? It would look silly to see either of those being used.
Title: Re: Cinematics vs Game
Post by: Commander Zane on July 25, 2011, 08:52:39 pm
Then something like Mjn.Mixael's Render Boutique can be made for effects like this?
Title: Re: Cinematics vs Game
Post by: Nuke on July 26, 2011, 03:25:06 am
Looks damn good.

This. Regardless of weird plane placement.

this kinda thing can probibly be fixed my translating both objects on the z axis in model space before rotating them, its just about perfecting the transform at this point. effect looks good though.
Title: Re: Cinematics vs Game
Post by: Valathil on July 26, 2011, 10:41:57 am
how bout now: http://www.youtube.com/watch?v=BmickD0lIrk
Title: Re: Cinematics vs Game
Post by: Spoon on July 26, 2011, 10:47:22 am
Grid looks better alligned now

How does it look for capital ships?
Title: Re: Cinematics vs Game
Post by: Valathil on July 26, 2011, 10:50:02 am
How does it look for capital ships?

it wont, this is ship select screen only
Title: Re: Cinematics vs Game
Post by: Luis Dias on July 26, 2011, 10:51:32 am
*cough* there's this mission in BP where you select a capital ship *cough cough*
Title: Re: Cinematics vs Game
Post by: Dragon on July 26, 2011, 10:52:25 am
Take a look at "The Blade Itself" then.
It's a campaign included with BP: WiH, in which you can fly a capship, and it has ship selection screen in which you can see it.
Title: Re: Cinematics vs Game
Post by: Spoon on July 26, 2011, 10:57:02 am
How does it look for capital ships?

it wont, this is ship select screen only
As already pointed out two posts above me. It's a bit of a bad assumption that this would only be used for retail things.
Title: Re: Cinematics vs Game
Post by: The E on July 26, 2011, 11:05:39 am
Well, I think you're misunderstanding the issue. It's only going to work in ship select, so as long as a ship is displayed there, it makes no difference whether it's a 5 meter fighter or a 5 kilometer Superdestroyer.
Title: Re: Cinematics vs Game
Post by: Valathil on July 26, 2011, 11:05:52 am
tested blade itself, works like a charm.

but something more important. i need some suggestions how mods will control which effect will be used. I want to avoid a cmdline flag cause that is user controlled. Give me some ideas people
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 26, 2011, 11:29:06 am
Table is hands down the best option. Perhaps a flag in the ships.tbl?
Title: Re: Cinematics vs Game
Post by: The E on July 26, 2011, 11:30:21 am
Yeah, that could work pretty well.
Title: Re: Cinematics vs Game
Post by: Dragon on July 26, 2011, 11:50:16 am
I think that's the best solution.
BTW, would that be possible to make a SEXP which would execute these effects in-game (of course, FS2 style effect would not have the grid)?
They'd make a great way to do combat cloaking.
Also, are different materialization styles possible to implement? Currently, I can think of simple fade in/out being useful for some mods that wouldn't like to use neither FS2 nor FS1 style effect (when controlled in mission by SEXP, an additional argument could be used to set the fade time, which could come in really handy for mission designers).
Title: Re: Cinematics vs Game
Post by: The E on July 26, 2011, 11:59:10 am
Quote
BTW, would that be possible to make a SEXP which would execute these effects in-game (of course, FS2 style effect would not have the grid)?

Yes for the FS1 effect. No for the FS2 effect.

Quote
Also, are different materialization styles possible to implement?

Yes, if you know how to write shaders and OpenGL code.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 26, 2011, 12:13:52 pm
Grid looks much better. Not perfect, but getting there.
Title: Re: Cinematics vs Game
Post by: achtung on July 26, 2011, 12:22:26 pm
This is amazing.
Title: Re: Cinematics vs Game
Post by: The E on July 26, 2011, 12:25:33 pm
Grid looks much better. Not perfect, but getting there.

The cables are too thick.
Title: Re: Cinematics vs Game
Post by: Valathil on July 26, 2011, 12:27:42 pm
I think that's the best solution.
BTW, would that be possible to make a SEXP which would execute these effects in-game (of course, FS2 style effect would not have the grid)?
They'd make a great way to do combat cloaking.
Also, are different materialization styles possible to implement? Currently, I can think of simple fade in/out being useful for some mods that wouldn't like to use neither FS2 nor FS1 style effect (when controlled in mission by SEXP, an additional argument could be used to set the fade time, which could come in really handy for mission designers).

SEXP is something i want to do generally yes. Ihave a generic animated shader system up and running where you set a function with a parameter which effect you want and then pass a timer to the model render function. You can add new effects to the main shader and execute them rather easily. Whats still missing is getting some data into the ship structs and a sexp so this can be triggered in mission. But fear not this is on my todolist.
Title: Re: Cinematics vs Game
Post by: butter_pat_head on July 26, 2011, 01:14:43 pm
Wow this is looking slick!  Does the effect's timing match up with the accompanying SFX?  I suppose once you have the effect down just right you can worry about the timing later.
Title: Re: Cinematics vs Game
Post by: pecenipicek on July 26, 2011, 01:15:34 pm
Wow this is looking slick!  Does the effect's timing match up with the accompanying SFX?  I suppose once you have the effect down just right you can worry about the timing later.
the sfx is so much easier to match to the effects timing that its not even funny to ask XD
Title: Re: Cinematics vs Game
Post by: Valathil on July 26, 2011, 03:50:02 pm
so its cleaned up and ready to go, FS2 effect is default but you can insert $Selection Effect: FS1    or     $Selection Effect: off into ships and weapons in ships.tbl and weapons.tbl respectively to select the fs1 effect or turn off the effect and get the old spinning display. This is PER ship/weapon not a global flag. (Have fun FSPort  :pimp:)

Code: [Select]
Index: code/missionui/missionscreencommon.h
===================================================================
--- code/missionui/missionscreencommon.h (Revision 7381)
+++ code/missionui/missionscreencommon.h (Arbeitskopie)
@@ -200,7 +200,7 @@
 
 struct ship_info;
 void draw_model_icon(int model_id, int flags, float closeup_zoom, int x1, int x2, int y1, int y2, ship_info* sip=NULL, bool resize=true);
-void draw_model_rotating(int model_id, int x1, int y1, int x2, int y2, float *rotation_buffer, vec3d *closeup_pos=NULL, float closeup_zoom = .65f, float rev_rate = REVOLUTION_RATE, int flags = MR_LOCK_DETAIL | MR_AUTOCENTER | MR_NO_FOGGING, bool resize=true);
+void draw_model_rotating(int model_id, int x1, int y1, int x2, int y2, float *rotation_buffer, vec3d *closeup_pos=NULL, float closeup_zoom = .65f, float rev_rate = REVOLUTION_RATE, int flags = MR_LOCK_DETAIL | MR_AUTOCENTER | MR_NO_FOGGING, bool resize=true, int effect = 2);
 
 void common_set_team_pointers(int team);
 void common_reset_team_pointers();
Index: code/missionui/missionweaponchoice.cpp
===================================================================
--- code/missionui/missionweaponchoice.cpp (Revision 7381)
+++ code/missionui/missionweaponchoice.cpp (Arbeitskopie)
@@ -38,9 +38,9 @@
 #include "missionui/chatbox.h"
 #include "network/multi_pmsg.h"
 #include "parse/parselo.h"
+#include "io/timer.h"
 
 
-
 #define IS_BANK_PRIMARY(x) (x < MAX_SHIP_PRIMARY_BANKS)
 #define IS_BANK_SECONDARY(x) (x >= MAX_SHIP_PRIMARY_BANKS)
 
@@ -96,6 +96,7 @@
 #define WL_BUTTON_MULTI_LOCK 6
 #define WL_BUTTON_APPLY_ALL 7
 
+extern int anim_timer_start;
 
 // convenient struct for handling all button controls
 struct wl_buttons {
@@ -1221,6 +1222,8 @@
 {
  int weapon_class;
 
+ anim_timer_start = timer_get_milliseconds();
+
  // if a weapon is being carried, do nothing
  if ( wl_icon_being_carried() ) {
  return;
@@ -1256,6 +1259,8 @@
 void maybe_select_new_ship_weapon(int index)
 {
  int *wep, *wep_count;
+
+ anim_timer_start = timer_get_milliseconds();
 
  if ( Selected_wl_slot == -1 )
  return;
@@ -2782,16 +2787,19 @@
  if(Wl_icons[Selected_wl_class].model_index != -1) {
  static float WeapSelectScreenWeapRot = 0.0f;
  wl_icon_info *sel_icon = &Wl_icons[Selected_wl_class];
+ weapon_info *wip = &Weapon_info[Selected_wl_class];
  draw_model_rotating(sel_icon->model_index,
  weapon_ani_coords[0],
  weapon_ani_coords[1],
  gr_screen.res == 0 ? 202 : 332,
- gr_screen.res == 0 ? 185 : 304,
+ gr_screen.res == 0 ? 185 : 260,
  &WeapSelectScreenWeapRot,
  NULL,
  .65f,
  REVOLUTION_RATE,
- MR_IS_MISSILE | MR_LOCK_DETAIL | MR_AUTOCENTER | MR_NO_FOGGING);
+ MR_IS_MISSILE | MR_LOCK_DETAIL | MR_AUTOCENTER | MR_NO_FOGGING,
+ true,
+ wip->selection_effect);
  }
 
  else if ( Weapon_anim_class != -1 && ( Selected_wl_class == Weapon_anim_class )) {
Index: code/missionui/missionshipchoice.cpp
===================================================================
--- code/missionui/missionshipchoice.cpp (Revision 7381)
+++ code/missionui/missionshipchoice.cpp (Arbeitskopie)
@@ -46,9 +46,9 @@
 #include "network/multiteamselect.h"
 #include "network/multiutil.h"
 #include "ai/aigoals.h"
+#include "io/timer.h"
 
 
-
 //////////////////////////////////////////////////////
 // Game-wide Globals
 //////////////////////////////////////////////////////
@@ -72,6 +72,7 @@
 float ShipSelectScreenShipRot = 0.0f;
 int ShipSelectModelNum = -1;
 
+int anim_timer_start = 0;
 //static matrix ShipScreenOrient = IDENTITY_MATRIX;
 
 //////////////////////////////////////////////////////
@@ -1555,7 +1556,10 @@
  &ShipSelectScreenShipRot,
  &sip->closeup_pos,
  sip->closeup_zoom * 1.3f,
- rev_rate);
+ rev_rate,
+ MR_LOCK_DETAIL | MR_AUTOCENTER | MR_NO_FOGGING,
+ true,
+ sip->selection_effect);
  }
  }
 
@@ -1759,6 +1763,8 @@
  char *p;
  char animation_filename[CF_MAX_FILENAME_LENGTH+4];
 
+ anim_timer_start = timer_get_milliseconds();
+
  if ( Cmdline_ship_choice_3d || !strlen(sip->anim_filename) ) {
  if (ship_class < 0) {
  mprintf(("No ship class passed in to start_ship_animation\n"));
Index: code/missionui/missionscreencommon.cpp
===================================================================
--- code/missionui/missionscreencommon.cpp (Revision 7381)
+++ code/missionui/missionscreencommon.cpp (Arbeitskopie)
@@ -42,8 +42,9 @@
 #include "cutscene/movie.h"
 #include "cutscene/cutscenes.h"
 #include "parse/sexp.h"
+#include "graphics/2d.h"
+#include "graphics/gropenglshader.h"
 
-
 //////////////////////////////////////////////////////////////////
 // Game Globals
 //////////////////////////////////////////////////////////////////
@@ -96,6 +97,7 @@
 extern void ss_reset_team_pointers();
 extern void wl_set_team_pointers(int team);
 extern void wl_reset_team_pointers();
+extern int anim_timer_start;
 
 //////////////////////////////////////////////////////////////////
 // UI
@@ -1542,71 +1544,263 @@
  gr_reset_clip();
 }
 
-void draw_model_rotating(int model_id, int x1, int y1, int x2, int y2, float *rotation_buffer, vec3d *closeup_pos, float closeup_zoom, float rev_rate, int flags, bool resize)
+void draw_model_rotating(int model_id, int x1, int y1, int x2, int y2, float *rotation_buffer, vec3d *closeup_pos, float closeup_zoom, float rev_rate, int flags, bool resize, int effect)
 {
  //WMC - Can't draw a non-model
  if(model_id < 0)
  return;
-
+
+ float time = (timer_get_milliseconds()-anim_timer_start)/1000.0f;
  angles rot_angles, view_angles;
  matrix model_orient;
+
+ if(effect == 2)  // FS2 Effect; Phase 0 Expand scanline, Phase 1 scan the grid and wireframe, Phase 2 scan up and reveal the ship, Phase 3 tilt the camera, Phase 4 start rotating the ship
+ {
+
+ // rotate the ship as much as required for this frame
+ if(time >= 4.0f) // Phase 4
+ *rotation_buffer += PI2 * flFrametime / rev_rate;
+ else
+ *rotation_buffer = PI; // No rotation before Phase 4
+ while (*rotation_buffer > PI2){
+ *rotation_buffer -= PI2;
+ }
 
- // rotate the ship as much as required for this frame
- *rotation_buffer += PI2 * flFrametime / rev_rate;
- while (*rotation_buffer > PI2){
- *rotation_buffer -= PI2;
- }
+ view_angles.p = -PI_2;
+ if(time >= 3.0f) // Phase 3
+ {
+ if(time >= 4.0f) // done tilting
+ {
+ view_angles.p = -0.6f;
+ }
+ else
+ {
+ view_angles.p = (PI_2-0.6f)*(time-3.0f) - PI_2; // Phase 3 Tilt animation
+ }
+ }
 
- view_angles.p = -0.6f;
- view_angles.b = 0.0f;
- view_angles.h = 0.0f;
- vm_angles_2_matrix(&model_orient, &view_angles);
+ view_angles.b = 0.0f;
+ view_angles.h = 0.0f;
+ vm_angles_2_matrix(&model_orient, &view_angles);
 
- rot_angles.p = 0.0f;
- rot_angles.b = 0.0f;
- rot_angles.h = *rotation_buffer;
- vm_rotate_matrix_by_angles(&model_orient, &rot_angles);
+ rot_angles.p = 0.0f;
+ rot_angles.b = 0.0f;
+ rot_angles.h = *rotation_buffer;
+ vm_rotate_matrix_by_angles(&model_orient, &rot_angles);
 
- gr_set_clip(x1, y1, x2, y2, resize);
+ gr_set_clip(x1, y1, x2, y2, resize);
+ vec3d wire_normal,ship_normal,plane_point;
+ // Clip the wireframe below the scanline
+ wire_normal.xyz.x = 0.0f;
+ wire_normal.xyz.y = 1.0f;
+ wire_normal.xyz.z = 0.0f;
+
+ // Clip the ship above the scanline
+ ship_normal.xyz.x = 0.0f;
+ ship_normal.xyz.y = -1.0f;
+ ship_normal.xyz.z = 0.0f;
 
- // render the ship
- g3_start_frame(1);
- if(closeup_pos != NULL)
- {
- g3_set_view_matrix(closeup_pos, &vmd_identity_matrix, closeup_zoom);
+ polymodel *pm = model_get(model_id);
+
+ //Make the clipping plane
+ float clip = -pm->rad*0.7f;
+ if(time < 1.5f && time >= 0.5f) // Phase 1 Move down
+ clip = pm->rad*(time-1.0f)*1.4f;
+ if(time >= 1.5f)
+ clip = pm->rad*(time-2.0f)*(-1.4f); // Phase 2 Move up
+ vm_vec_scale_sub(&plane_point,&vmd_zero_vector,&wire_normal,clip);
+
+ g3_start_frame(1);
+ if(closeup_pos != NULL)
+ {
+ g3_set_view_matrix(closeup_pos, &vmd_identity_matrix, closeup_zoom);
+ }
+ else
+ {
+ vec3d pos = { { { 0.0f, 0.0f, -(pm->rad * 1.5f) } } };
+ g3_set_view_matrix(&pos, &vmd_identity_matrix, closeup_zoom);
+ }
+
+ if (!Cmdline_nohtl) {
+ gr_set_proj_matrix(Proj_fov, gr_screen.clip_aspect, Min_draw_distance, Max_draw_distance);
+ gr_set_view_matrix(&Eye_position, &Eye_matrix);
+ }
+
+ vec3d start, stop;
+ float size = pm->rad*0.7f;
+ float start_scale = MIN(time,0.5f)*2.5f;
+ float offset = size*0.5f*MIN(MAX(time-3.0f,0.0f),1.0f);
+ if(time < 1.5f && time >= 0.5f)  // Clip the grid if were in phase 1
+ g3_start_user_clip_plane(&plane_point,&wire_normal);
+
+ g3_start_instance_angles(&vmd_zero_vector,&view_angles);
+ if( time < 0.5f ) // Do the expanding scanline in phase 0
+ {
+ gr_set_color(0,255,0);
+ start.xyz.x = size*start_scale;
+ start.xyz.y = 0.0f;
+ start.xyz.z = -clip;
+ stop.xyz.x = -size*start_scale;
+ stop.xyz.y = 0.0f;
+ stop.xyz.z = -clip;
+ g3_draw_htl_line(&start,&stop);
+ }
+ g3_done_instance(true);
+
+ gr_zbuffer_set(false); // Turn of Depthbuffer so we dont get gridlines over the ship or a disappearing scanline
+ if( time >= 0.5f) // Phase 1 onward draw the grid
+ {
+ start.xyz.y = -offset;
+ start.xyz.z = size+offset*0.5f;
+ stop.xyz.y = -offset;
+ stop.xyz.z = -size+offset*0.5f;
+
+ gr_set_color(0,200,0);
+
+ g3_start_instance_angles(&vmd_zero_vector,&view_angles);
+ for(int i = -3; i < 4; i++)
+ {
+ start.xyz.x = stop.xyz.x = size*0.333f*i;
+ g3_draw_htl_line(&start,&stop);
+ }
+
+ start.xyz.x = size;
+ stop.xyz.x = -size;
+ for(int i = -3; i < 4; i++)
+ {
+ start.xyz.z = stop.xyz.z = size*0.333f*i+offset*0.5f;
+ g3_draw_htl_line(&start,&stop);
+ }
+
+ g3_done_instance(true);
+
+
+ // lighting for techroom
+ light_reset();
+ vec3d light_dir = vmd_zero_vector;
+ light_dir.xyz.y = 1.0f;
+ light_add_directional(&light_dir, 0.65f, 1.0f, 1.0f, 1.0f);
+ light_rotate_all();
+ // lighting for techroom
+
+ // render the ships
+ model_clear_instance(model_id);
+ model_set_detail_level(0);
+ gr_set_color(80,49,160);
+ opengl_shader_set_animated_effect(ANIMATED_SHADER_LOADOUTSELECT_FS2);
+ opengl_shader_set_animated_timer(-clip);
+ if(time < 2.5f && time >= 0.5f) // Phase 1 and 2 render the wireframe
+ {
+ if(time >= 1.5f) // Just clip the wireframe after Phase 1
+ g3_start_user_clip_plane(&plane_point,&wire_normal);
+
+ model_render(model_id, &model_orient, &vmd_zero_vector, flags | MR_SHOW_OUTLINE_HTL | MR_NO_POLYS | MR_ANIMATED_SHADER);
+ g3_stop_user_clip_plane();
+ }
+ if(time >= 1.5f) // Render the ship in Phase 2 onwards
+ {
+
+ g3_start_user_clip_plane(&plane_point,&ship_normal);
+ model_render(model_id, &model_orient, &vmd_zero_vector, flags | MR_ANIMATED_SHADER);
+ g3_stop_user_clip_plane();
+ }
+
+ if( time < 2.5f ) // Render the scanline in Phase 1 and 2
+ {
+ gr_set_color(0,255,0);
+ start.xyz.x = size*1.25f;
+ start.xyz.y = 0.0f;
+ start.xyz.z = -clip;
+ stop.xyz.x = -size*1.25f;
+ stop.xyz.y = 0.0f;
+ stop.xyz.z = -clip;
+ g3_start_instance_angles(&vmd_zero_vector,&view_angles);
+ g3_draw_htl_line(&start,&stop);
+ g3_done_instance(true);
+ }
+
+ }
+ gr_zbuffer_set(true); // Turn of depthbuffer again
+ if (!Cmdline_nohtl)
+ {
+ gr_end_view_matrix();
+ gr_end_proj_matrix();
+ }
+
+ g3_end_frame();
+ gr_reset_clip();
  }
  else
  {
- polymodel *pm = model_get(model_id);
- vec3d pos = { { { 0.0f, 0.0f, -(pm->rad * 1.5f) } } };
- g3_set_view_matrix(&pos, &vmd_identity_matrix, closeup_zoom);
- }
+ // rotate the ship as much as required for this frame
+ *rotation_buffer += PI2 * flFrametime / rev_rate;
+ while (*rotation_buffer > PI2){
+ *rotation_buffer -= PI2;
+ }
 
- if (!Cmdline_nohtl) {
- gr_set_proj_matrix(Proj_fov, gr_screen.clip_aspect, Min_draw_distance, Max_draw_distance);
- gr_set_view_matrix(&Eye_position, &Eye_matrix);
- }
+ view_angles.p = -0.6f;
+ view_angles.b = 0.0f;
+ view_angles.h = 0.0f;
+ vm_angles_2_matrix(&model_orient, &view_angles);
 
- // lighting for techroom
- light_reset();
- vec3d light_dir = vmd_zero_vector;
- light_dir.xyz.y = 1.0f;
- light_add_directional(&light_dir, 0.65f, 1.0f, 1.0f, 1.0f);
- light_rotate_all();
- // lighting for techroom
+ rot_angles.p = 0.0f;
+ rot_angles.b = 0.0f;
+ rot_angles.h = *rotation_buffer;
+ vm_rotate_matrix_by_angles(&model_orient, &rot_angles);
+
+ gr_set_clip(x1, y1, x2, y2, resize);
+ vec3d normal;
+ normal.xyz.x = 0.0f;
+ normal.xyz.y = 1.0f;
+ normal.xyz.z = 0.0f;
+ g3_start_frame(1);
+ // render the ship
+
+ if(closeup_pos != NULL)
+ {
+ g3_set_view_matrix(closeup_pos, &vmd_identity_matrix, closeup_zoom);
+ }
+ else
+ {
+ polymodel *pm = model_get(model_id);
+ vec3d pos = { { { 0.0f, 0.0f, -(pm->rad * 1.5f) } } };
+ g3_set_view_matrix(&pos, &vmd_identity_matrix, closeup_zoom);
+ }
 
- model_clear_instance(model_id);
- model_set_detail_level(0);
- model_render(model_id, &model_orient, &vmd_zero_vector, flags);
+ if (!Cmdline_nohtl) {
+ gr_set_proj_matrix(Proj_fov, gr_screen.clip_aspect, Min_draw_distance, Max_draw_distance);
+ gr_set_view_matrix(&Eye_position, &Eye_matrix);
+ }
 
- if (!Cmdline_nohtl)
- {
- gr_end_view_matrix();
- gr_end_proj_matrix();
+ // lighting for techroom
+ light_reset();
+ vec3d light_dir = vmd_zero_vector;
+ light_dir.xyz.y = 1.0f;
+ light_add_directional(&light_dir, 0.65f, 1.0f, 1.0f, 1.0f);
+ light_rotate_all();
+ // lighting for techroom
+
+ model_clear_instance(model_id);
+ model_set_detail_level(0);
+ gr_set_color(0,128,0);
+ if(effect == 1) // FS1 effect
+ {
+ opengl_shader_set_animated_effect(ANIMATED_SHADER_LOADOUTSELECT_FS1);
+ opengl_shader_set_animated_timer(MIN(time*0.5f,2.0f));
+ model_render(model_id, &model_orient, &vmd_zero_vector, flags | MR_ANIMATED_SHADER);
+ }
+ else
+ model_render(model_id, &model_orient, &vmd_zero_vector, flags);
+
+ if (!Cmdline_nohtl)
+ {
+ gr_end_view_matrix();
+ gr_end_proj_matrix();
+ }
+
+ g3_end_frame();
+ gr_reset_clip();
  }
-
- g3_end_frame();
- gr_reset_clip();
 }
 
 // NEWSTUFF END
Index: code/weapon/weapon.h
===================================================================
--- code/weapon/weapon.h (Revision 7381)
+++ code/weapon/weapon.h (Arbeitskopie)
@@ -378,6 +378,7 @@
 
  char icon_filename[MAX_FILENAME_LEN]; // filename for icon that is displayed in weapon selection
  char anim_filename[MAX_FILENAME_LEN]; // filename for animation that plays in weapon selection
+ int selection_effect;
 
  int impact_weapon_expl_index; // Index into Weapon_expl_info of which ANI should play when this thing impacts something
  float impact_explosion_radius; // How big the explosion should be
Index: code/weapon/weapons.cpp
===================================================================
--- code/weapon/weapons.cpp (Revision 7381)
+++ code/weapon/weapons.cpp (Arbeitskopie)
@@ -2514,6 +2514,16 @@
  if (optional_string("$Thruster Glow Radius Factor:")) {
  stuff_float(&wip->thruster_glow_factor);
  }
+
+ wip->selection_effect = 2;
+ if(optional_string("$Selection Effect:")) {
+ char effect[NAME_LENGTH];
+ stuff_string(effect, F_NAME, NAME_LENGTH);
+ if (!strcmp(effect, "FS1"))
+ wip->selection_effect = 1;
+ if ((!strcmp(effect, "off"))||(!strcmp(effect, "Off"))||(!strcmp(effect, "OFF")))
+ wip->selection_effect = 0;
+ }
 
  //pretty stupid if a target must be tagged to shoot tag missiles at it
  if ((wip->wi_flags & WIF_TAG) && (wip->wi_flags2 & WIF2_TAGGED_ONLY))
Index: code/graphics/gropenglshader.h
===================================================================
--- code/graphics/gropenglshader.h (Revision 7381)
+++ code/graphics/gropenglshader.h (Arbeitskopie)
@@ -34,8 +34,8 @@
 #define SDR_FLAG_NORMAL_MAP (1<<13)
 #define SDR_FLAG_HEIGHT_MAP (1<<14)
 #define SDR_FLAG_ENV_MAP (1<<15)
+#define SDR_FLAG_ANIMATED (1<<16)
 
-
 #define MAX_SHADER_UNIFORMS 15
 
 struct opengl_shader_file_t {
@@ -83,4 +83,12 @@
 void opengl_shader_init_uniform(const char *uniform_text);
 GLint opengl_shader_get_uniform(const char *uniform_text);
 
+void opengl_shader_set_animated_effect(int effect);
+int opengl_shader_get_animated_effect();
+void opengl_shader_set_animated_timer(float timer);
+float opengl_shader_get_animated_timer();
+
+#define ANIMATED_SHADER_LOADOUTSELECT_FS1 0
+#define ANIMATED_SHADER_LOADOUTSELECT_FS2 1
+
 #endif // _GROPENGLSHADER_H
Index: code/graphics/tmapper.h
===================================================================
--- code/graphics/tmapper.h (Revision 7381)
+++ code/graphics/tmapper.h (Arbeitskopie)
@@ -72,6 +72,8 @@
 // use greyscale texture
 #define TMAP_FLAG_BW_TEXTURE (1<<18)
 
+// use animated Shader - Valathil
+#define TMAP_ANIMATED_SHADER (1<<19)
 
 #define TMAP_ADDRESS_WRAP 1
 #define TMAP_ADDRESS_MIRROR 2
Index: code/graphics/gropengltnl.cpp
===================================================================
--- code/graphics/gropengltnl.cpp (Revision 7381)
+++ code/graphics/gropengltnl.cpp (Arbeitskopie)
@@ -534,6 +534,9 @@
  shader_flags |= SDR_FLAG_FOG;
  }
 
+ if (flags & TMAP_ANIMATED_SHADER)
+ shader_flags |= SDR_FLAG_ANIMATED;
+
  if (textured) {
  if ( !Basemap_override ) {
  shader_flags |= SDR_FLAG_DIFFUSE_MAP;
@@ -616,6 +619,11 @@
  ibuffer = (GLubyte*)vbp->index_list;
  }
 
+ if(flags & TMAP_ANIMATED_SHADER)
+ {
+ vglUniform1fARB( opengl_shader_get_uniform("anim_timer"), opengl_shader_get_animated_timer() );
+ vglUniform1iARB( opengl_shader_get_uniform("effect_num"), opengl_shader_get_animated_effect() );
+ }
  int n_lights = MIN(Num_active_gl_lights, GL_max_lights) - 1;
  vglUniform1iARB( opengl_shader_get_uniform("n_lights"), n_lights );
 
Index: code/graphics/gropenglshader.cpp
===================================================================
--- code/graphics/gropenglshader.cpp (Revision 7381)
+++ code/graphics/gropenglshader.cpp (Arbeitskopie)
@@ -33,6 +33,8 @@
 static char *GLshader_info_log = NULL;
 static const int GLshader_info_log_size = 8192;
 
+static int effect_num = 0;
+static float anim_timer = 0.0f;
 /*
 struct opengl_shader_file_t {
  char *vert;
@@ -47,6 +49,7 @@
 static opengl_shader_file_t GL_shader_file[] = {
  { "null-v.sdr", "null-f.sdr", (0), 0, { NULL }, },
 
+ // with diffuse Textures
  { "l-v.sdr", "lb-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP),
  2, { "sBasemap", "n_lights" } },
 
@@ -83,30 +86,12 @@
  { "ln-v.sdr", "lbsn-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP),
  4, { "sBasemap", "sSpecmap", "sNormalmap", "n_lights" } },
 
- { "ln-v.sdr", "lbgnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 5, { "sBasemap", "sGlowmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "ln-v.sdr", "lbgsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 6, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "ln-v.sdr", "lbnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 4, { "sBasemap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "ln-v.sdr", "lbsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 5, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
  { "lne-v.sdr", "lbgsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
  8, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
 
  { "lne-v.sdr", "lbsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
  7, { "sBasemap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
 
- { "lne-v.sdr", "lbgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 9, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
- { "lne-v.sdr", "lbsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 8, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
  { "lf-v.sdr", "lfb-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP),
  2, { "sBasemap", "n_lights" } },
 
@@ -137,30 +122,13 @@
  { "lfn-v.sdr", "lfbsn-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP),
  4, { "sBasemap", "sSpecmap", "sNormalmap", "n_lights" } },
 
- { "lfn-v.sdr", "lfbgnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 5, { "sBasemap", "sGlowmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "lfn-v.sdr", "lfbgsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 6, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "lfn-v.sdr", "lfbnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 4, { "sBasemap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "lfn-v.sdr", "lfbsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 5, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
  { "lfne-v.sdr", "lfbgsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
  8, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
 
  { "lfne-v.sdr", "lfbsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
  7, { "sBasemap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
 
- { "lfne-v.sdr", "lfbgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 9, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
- { "lfne-v.sdr", "lfbsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 8, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
+ // no diffuse Textures
  { "l-v.sdr", "null-f.sdr", (SDR_FLAG_LIGHT),
  1, { "n_lights" } },
 
@@ -191,6 +159,137 @@
  { "ln-v.sdr", "lsn-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP),
  3, { "sSpecmap", "sNormalmap", "n_lights" } },
 
+ { "lne-v.sdr", "lgsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
+ 7, { "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "lne-v.sdr", "lsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
+ 6, { "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ // Animated Shaders
+ { "la-v.sdr", "la-f.sdr", (SDR_FLAG_ANIMATED),
+ 2, { "anim_timer", "effect_num" } },
+
+ { "la-v.sdr", "lba-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_ANIMATED),
+ 4, { "sBasemap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "ba-v.sdr", "ba-f.sdr", (SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_ANIMATED),
+ 3, { "sBasemap", "anim_timer", "effect_num" } },
+
+ { "ba-v.sdr", "bga-f.sdr", (SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_ANIMATED),
+ 4, { "sBasemap", "sGlowmap", "anim_timer", "effect_num" } },
+
+ { "la-v.sdr", "lbga-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sGlowmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "la-v.sdr", "lbgsa-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ANIMATED),
+ 6, { "sBasemap", "sGlowmap", "sSpecmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "la-v.sdr", "lbsa-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sSpecmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lea-v.sdr", "lbgsea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 9, { "sBasemap", "sGlowmap", "sSpecmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lea-v.sdr", "lbsea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 8, { "sBasemap", "sSpecmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lna-v.sdr", "lbgna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 6, { "sBasemap", "sGlowmap", "sNormalmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lna-v.sdr", "lbgsna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 7, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lna-v.sdr", "lbna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sNormalmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lna-v.sdr", "lbsna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 6, { "sBasemap", "sSpecmap", "sNormalmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lnea-v.sdr", "lbgsnea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 10, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lnea-v.sdr", "lbsnea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 9, { "sBasemap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfa-v.sdr", "lfba-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_ANIMATED),
+ 4, { "sBasemap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfa-v.sdr", "lfbga-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sGlowmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfa-v.sdr", "lfbgsa-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ANIMATED),
+ 6, { "sBasemap", "sGlowmap", "sSpecmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfa-v.sdr", "lfbsa-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sSpecmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfea-v.sdr", "lfbgsea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 9, { "sBasemap", "sGlowmap", "sSpecmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfea-v.sdr", "lfbsea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 8, { "sBasemap", "sSpecmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfna-v.sdr", "lfbgna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 6, { "sBasemap", "sGlowmap", "sNormalmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfna-v.sdr", "lfbgsna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 7, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfna-v.sdr", "lfbna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 5, { "sBasemap", "sNormalmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfna-v.sdr", "lfbsna-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ANIMATED),
+ 6, { "sBasemap", "sSpecmap", "sNormalmap", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfnea-v.sdr", "lfbgsnea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 10, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer", "effect_num" } },
+
+ { "lfnea-v.sdr", "lfbsnea-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP | SDR_FLAG_ANIMATED),
+ 9, { "sBasemap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights", "anim_timer", "effect_num" } }
+
+ /* No Heightmapping for now - Valathil
+ { "lne-v.sdr", "lgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 8, { "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "lne-v.sdr", "lsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 7, { "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "ln-v.sdr", "lbgnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 5, { "sBasemap", "sGlowmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "ln-v.sdr", "lbgsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 6, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "ln-v.sdr", "lbnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 4, { "sBasemap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "ln-v.sdr", "lbsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 5, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "lne-v.sdr", "lbgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 9, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "lne-v.sdr", "lbsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 8, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "lfn-v.sdr", "lfbgnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP| SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 5, { "sBasemap", "sGlowmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "lfn-v.sdr", "lfbgsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 6, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "lfn-v.sdr", "lfbnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 4, { "sBasemap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "lfn-v.sdr", "lfbsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
+ 5, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
+
+ { "lfne-v.sdr", "lfbgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 9, { "sBasemap", "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
+ { "lfne-v.sdr", "lfbsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_FOG | SDR_FLAG_DIFFUSE_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
+ 8, { "sBasemap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
+
  { "ln-v.sdr", "lgnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_GLOW_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
  4, { "sGlowmap", "sNormalmap", "sHeightmap", "n_lights" } },
 
@@ -201,19 +300,7 @@
  3, { "sNormalmap", "sHeightmap", "n_lights" } },
 
  { "ln-v.sdr", "lsnh-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP),
- 4, { "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } },
-
- { "lne-v.sdr", "lgsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
- 7, { "sGlowmap", "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
- { "lne-v.sdr", "lsne-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_ENV_MAP),
- 6, { "sSpecmap", "sNormalmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
- { "lne-v.sdr", "lgsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_GLOW_MAP | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 8, { "sGlowmap", "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } },
-
- { "lne-v.sdr", "lsnhe-f.sdr", (SDR_FLAG_LIGHT | SDR_FLAG_SPEC_MAP | SDR_FLAG_NORMAL_MAP | SDR_FLAG_HEIGHT_MAP | SDR_FLAG_ENV_MAP),
- 7, { "sSpecmap", "sNormalmap", "sHeightmap", "sEnvmap", "envMatrix", "alpha_spec", "n_lights" } }
+ 4, { "sSpecmap", "sNormalmap", "sHeightmap", "n_lights" } }*/
 };
 
 static const int Num_shader_files = sizeof(GL_shader_file) / sizeof(opengl_shader_file_t);
@@ -344,6 +431,10 @@
  if (flags & SDR_FLAG_SPEC_MAP) {
  sflags += "#define FLAG_SPEC_MAP\n";
  }
+
+ if (flags & SDR_FLAG_ANIMATED) {
+ sflags += "#define FLAG_ANIMATED\n";
+ }
  }
 
 
@@ -737,3 +828,24 @@
 
  return -1;
 }
+
+void opengl_shader_set_animated_effect(int effect)
+{
+ Assert(effect > -1);
+ effect_num = effect;
+}
+
+int opengl_shader_get_animated_effect()
+{
+ return effect_num;
+}
+
+void opengl_shader_set_animated_timer(float timer)
+{
+ anim_timer = timer;
+}
+
+float opengl_shader_get_animated_timer()
+{
+ return anim_timer;
+}
\ No newline at end of file
Index: code/lab/lab.cpp
===================================================================
--- code/lab/lab.cpp (Revision 7381)
+++ code/lab/lab.cpp (Arbeitskopie)
@@ -26,6 +26,8 @@
 #include "species_defs/species_defs.h"
 #include "playerman/managepilot.h"
 #include "object/objectsnd.h"
+#include "globalincs/pstypes.h"
+#include "graphics/gropenglshader.h"
 
 // flags
 #define LAB_FLAG_NORMAL (0) // default
@@ -84,6 +86,8 @@
 
 static int Lab_detail_texture_save = 0;
 
+static int anim_timer_start = 0;
+
 // damage lightning stuff
 static vec3d Lab_arc_pts[MAX_SHIP_ARCS][2];
 static int Lab_arc_timestamp[MAX_SHIP_ARCS];
@@ -185,6 +189,8 @@
 {
  bool change_model = true;
 
+ anim_timer_start = timer_get_milliseconds();
+
  if ( (model_fname != NULL) && (Lab_mode == LAB_MODE_SHIP) ) {
  if ( (Lab_selected_index >= 0) && (Lab_selected_index == sel_index) ) {
  change_model = false;
@@ -805,7 +811,8 @@
  }
  }
  }
-
+ opengl_shader_set_animated_effect(ANIMATED_SHADER_LOADOUTSELECT_FS1);
+ opengl_shader_set_animated_timer(MIN((timer_get_milliseconds()-anim_timer_start)/1500.0f,2.0f));
  model_render(Lab_model_num, &Lab_viewer_orient, &vmd_zero_vector, /*Lab_model_flags*/flagggs, -1, -1);
  }
 
@@ -1692,6 +1699,7 @@
  ADD_RENDER_FLAG("Show Radius", Lab_model_flags, MR_SHOW_RADIUS);
  ADD_RENDER_FLAG("Show Shields", Lab_model_flags, MR_SHOW_SHIELDS);
  ADD_RENDER_FLAG("Show Thrusters", Lab_model_flags, MR_SHOW_THRUSTERS);
+ ADD_RENDER_FLAG("Animated Shader", Lab_model_flags, MR_ANIMATED_SHADER);
 
 
  // start tree
Index: code/model/modelinterp.cpp
===================================================================
--- code/model/modelinterp.cpp (Revision 7381)
+++ code/model/modelinterp.cpp (Arbeitskopie)
@@ -3072,6 +3072,9 @@
  }
  }
 
+ if ( Interp_flags & MR_ANIMATED_SHADER )
+ Interp_tmap_flags |= TMAP_ANIMATED_SHADER;
+
  save_gr_zbuffering_mode = gr_zbuffering_mode;
  zbuf_mode = gr_zbuffering_mode;
 
Index: code/model/model.h
===================================================================
--- code/model/model.h (Revision 7381)
+++ code/model/model.h (Arbeitskopie)
@@ -778,6 +778,7 @@
 #define MR_NO_GLOWMAPS (1<<27) // disable rendering of glowmaps - taylor
 #define MR_FULL_DETAIL (1<<28) // render all valid objects, particularly ones that are otherwise in/out of render boxes - taylor
 #define MR_FORCE_CLAMP (1<<29) // force clamp - Hery
+#define MR_ANIMATED_SHADER (1<<30) // Use a animated Shader - Valathil
 
 // old/obsolete flags
 //#define MR_SHOW_DAMAGE (1<<4) // Show the "destroyed" subobjects
Index: code/ship/ship.cpp
===================================================================
--- code/ship/ship.cpp (Revision 7381)
+++ code/ship/ship.cpp (Arbeitskopie)
@@ -3059,6 +3059,16 @@
  SCP_string pathName(path_name);
  sip->pathMetadata[pathName] = metadata;
  }
+
+ sip->selection_effect = 2;
+ if(optional_string("$Selection Effect:")) {
+ char effect[NAME_LENGTH];
+ stuff_string(effect, F_NAME, NAME_LENGTH);
+ if (!strcmp(effect, "FS1"))
+ sip->selection_effect = 1;
+ if ((!strcmp(effect, "off"))||(!strcmp(effect, "Off"))||(!strcmp(effect, "OFF")))
+ sip->selection_effect = 0;
+ }
 
  int n_subsystems = 0;
  int cont_flag = 1;
Index: code/ship/ship.h
===================================================================
--- code/ship/ship.h (Revision 7381)
+++ code/ship/ship.h (Arbeitskopie)
@@ -1269,6 +1269,7 @@
  char icon_filename[MAX_FILENAME_LEN]; // filename for icon that is displayed in ship selection
  char anim_filename[MAX_FILENAME_LEN]; // filename for animation that plays in ship selection
  char overhead_filename[MAX_FILENAME_LEN]; // filename for animation that plays weapons loadout
+ int selection_effect;
 
  int score; // default score for this ship
 
Index: code/globalincs/def_files.cpp
===================================================================
--- code/globalincs/def_files.cpp (Revision 7381)
+++ code/globalincs/def_files.cpp (Arbeitskopie)
@@ -1253,6 +1253,11 @@
 varying float fogDist; \n\
 #endif \n\
  \n\
+#ifdef FLAG_ANIMATED \n\
+uniform int effect_num; \n\
+uniform float anim_timer; \n\
+#endif \n\
+ \n\
 varying vec4 position; \n\
 varying vec3 lNormal; \n\
  \n\
@@ -1407,7 +1412,22 @@
  fragmentColor.rgb = mix(fragmentColor.rgb, gl_Fog.color.rgb, fogDist); \n\
  #endif \n\
  \n\
+ #ifdef FLAG_ANIMATED \n\
+ if(effect_num == 0) \n\
+ { \n\
+ float shinefactor = 1.0/(1.0 + pow((fract(abs(gl_TexCoord[0].x))-anim_timer) * 1000.0, 2.0)) * 1000.0;\n\
+ gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor); \n\
+ gl_FragColor.a = fragmentColor.a * shinefactor * (fract(abs(gl_TexCoord[0].x))-anim_timer) * -10000.0;\n\
+ } \n\
+ if(effect_num == 1) \n\
+ { \n\
+ float shinefactor = 1.0/(1.0 + pow((position.y-anim_timer), 2.0)); \n\
+ gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor); \n\
+ gl_FragColor.a = fragmentColor.a; \n\
+ } \n\
+ #else \n\
  gl_FragColor = fragmentColor; \n\
+ #endif \n\
 } \n\
 ";
 

and external main-f.sdr

Code: [Select]
#ifdef FLAG_LIGHT
uniform int n_lights;
#endif

#ifdef FLAG_DIFFUSE_MAP
uniform sampler2D sBasemap;
#endif

#ifdef FLAG_GLOW_MAP
uniform sampler2D sGlowmap;
#endif

#ifdef FLAG_SPEC_MAP
uniform sampler2D sSpecmap;
#endif

#ifdef FLAG_ENV_MAP
uniform samplerCube sEnvmap;
uniform bool alpha_spec;
varying vec3 envReflect;
#endif

#ifdef FLAG_NORMAL_MAP
uniform sampler2D sNormalmap;
varying mat3 tbnMatrix;
#endif

#ifdef FLAG_FOG
varying float fogDist;
#endif

#ifdef FLAG_ANIMATED
uniform int effect_num;
uniform float anim_timer;
#endif

varying vec4 position;
varying vec3 lNormal;

#if SHADER_MODEL == 2
  #define MAX_LIGHTS 2
#else
  #define MAX_LIGHTS 8
#endif

#define SPEC_INTENSITY_POINT 5.3 // Point light
#define SPEC_INTENSITY_DIRECTIONAL 3.0 // Directional light
#define SPECULAR_FACTOR 1.75
#define SPECULAR_ALPHA 0.1
#define SPEC_FACTOR_NO_SPEC_MAP 0.6
#define ENV_ALPHA_FACTOR 0.3
#define GLOW_MAP_INTENSITY 1.5
#define AMBIENT_LIGHT_BOOST 1.0

void main()
{
vec3 eyeDir = vec3(normalize(-position).xyz); // Camera is at (0,0,0) in ModelView space
vec4 lightAmbientDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightAmbient = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightSpecular = vec4(0.0, 0.0, 0.0, 1.0);
vec2 texCoord = gl_TexCoord[0].xy;

 #ifdef FLAG_LIGHT
  #ifdef FLAG_NORMAL_MAP
// Normal map - convert from DXT5nm
vec3 normal;

normal.rg = (texture2D(sNormalmap, texCoord).ag * 2.0) - 1.0;
  #ifdef FLAG_ENV_MAP
vec3 envOffset = vec3(0.0);
envOffset.xy = normal.xy;
  #endif
normal.b = sqrt(1.0 - dot(normal.rg, normal.rg));
normal = tbnMatrix * normal;
float norm = length(normal);
if( length(normal) > 0.0)  // fix broken normal maps
normal /= norm ;
else
normal = tbnMatrix * vec3(0.0, 0.0, 1.0);
  #else
vec3 normal = lNormal;
  #endif

vec3 lightDir;
lightAmbient = gl_FrontMaterial.emission + (gl_LightModel.ambient * gl_FrontMaterial.ambient);
float dist;
#pragma optionNV unroll all
for (int i = 0; i < MAX_LIGHTS; ++i) {
  #if SHADER_MODEL > 2
if (i > n_lights)
break;
  #endif
float specularIntensity = 1.0;
float attenuation = 1.0;

// Attenuation and light direction
  #if SHADER_MODEL > 2
if (gl_LightSource[i].position.w == 1.0) {
  #else
if (gl_LightSource[i].position.w == 1.0 && i != 0) {
  #endif
// Positional light source
float dist = distance(gl_LightSource[i].position.xyz, position.xyz);

lightDir = (gl_LightSource[i].position.xyz - position.xyz);

  #if SHADER_MODEL > 2
if (gl_LightSource[i].spotCutoff < 91.0) {  // Tube light
float beamlength = length(gl_LightSource[i].spotDirection);
vec3 beamDir = normalize(gl_LightSource[i].spotDirection);
float neardist = dot(position.xyz - gl_LightSource[i].position.xyz , beamDir); // Get nearest point on line
vec3 nearest = gl_LightSource[i].position.xyz - beamDir * abs(neardist); // Move back from the endpoint of the beam along the beam by the distance we calculated
lightDir = nearest - position.xyz;
dist = length(lightDir);
}
  #endif

lightDir = normalize(lightDir);

attenuation = 1.0 / (gl_LightSource[i].constantAttenuation + (gl_LightSource[i].linearAttenuation * dist) + (gl_LightSource[i].quadraticAttenuation * dist * dist));

specularIntensity = SPEC_INTENSITY_POINT;
} else {
// Directional light source
lightDir = normalize(gl_LightSource[i].position.xyz);
specularIntensity = SPEC_INTENSITY_DIRECTIONAL; // Directional light
}

// Ambient and Diffuse
lightAmbient += (gl_FrontLightProduct[i].ambient * attenuation);
lightDiffuse += (gl_FrontLightProduct[i].diffuse * (max(dot(normal, lightDir), 0.0)) * attenuation);
// Specular
float NdotHV = clamp(dot(normal, normalize(eyeDir + lightDir)), 0.0, 1.0);
lightSpecular += ((gl_FrontLightProduct[i].specular * pow(NdotHV, gl_FrontMaterial.shininess)) * attenuation) * specularIntensity;
}

lightAmbientDiffuse = lightAmbient + lightDiffuse;
 #else
lightAmbientDiffuse = gl_Color;
lightSpecular = gl_SecondaryColor;
 #endif

 #ifdef FLAG_DIFFUSE_MAP
 // Base color
vec4 baseColor = texture2D(sBasemap, texCoord);
 #else
vec4 baseColor = gl_Color;
 #endif
 
vec4 fragmentColor;
fragmentColor.rgb = baseColor.rgb * max(lightAmbientDiffuse.rgb * AMBIENT_LIGHT_BOOST, gl_LightModel.ambient.rgb - 0.425);
fragmentColor.a = baseColor.a;

 #ifdef FLAG_SPEC_MAP
 // Spec color
fragmentColor.rgb += lightSpecular.rgb * (texture2D(sSpecmap, texCoord).rgb * SPECULAR_FACTOR);
fragmentColor.a += (dot(lightSpecular.a, lightSpecular.a) * SPECULAR_ALPHA);
 #else
fragmentColor.rgb += lightSpecular.rgb * (baseColor.rgb * SPEC_FACTOR_NO_SPEC_MAP);
 #endif

 #ifdef FLAG_ENV_MAP
 // Env color
  #ifdef FLAG_NORMAL_MAP
vec3 envReflectNM = envReflect + envOffset;
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflectNM).rgb, textureCube(sEnvmap, envReflectNM).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflectNM).rgb * envIntensity;
  #else
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflect).rgb, textureCube(sEnvmap, envReflect).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflect).rgb * envIntensity;
  #endif
 #endif

 #ifdef FLAG_GLOW_MAP
 // Glow color
fragmentColor.rgb += texture2D(sGlowmap, texCoord).rgb * GLOW_MAP_INTENSITY;
 #endif

 #ifdef FLAG_FOG
fragmentColor.rgb = mix(fragmentColor.rgb, gl_Fog.color.rgb, fogDist);
 #endif

 #ifdef FLAG_ANIMATED
if(effect_num == 0)
{
float shinefactor = 1.0/(1.0 + pow((fract(abs(gl_TexCoord[0].x))-anim_timer) * 1000.0, 2.0)) * 1000.0;
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
gl_FragColor.a = fragmentColor.a * shinefactor * (fract(abs(gl_TexCoord[0].x))-anim_timer) * -10000.0;
}
if(effect_num == 1)
{
float shinefactor = 1.0/(1.0 + pow((position.y-anim_timer), 2.0));
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
gl_FragColor.a = fragmentColor.a;
}
 #else
gl_FragColor = fragmentColor;
 #endif
}
Title: Re: Cinematics vs Game
Post by: Luis Dias on July 26, 2011, 03:57:41 pm
So if it is default, what happens to FSport? Has to be redesigned?

EDIT: Scratch that, I picked up your comment ;)
Title: Re: Cinematics vs Game
Post by: MatthTheGeek on July 26, 2011, 03:58:50 pm
Quote
...FS2 effect is default but you can insert $Selection Effect: FS1...
Title: Re: Cinematics vs Game
Post by: Nuke on July 26, 2011, 03:59:27 pm
Table is hands down the best option. Perhaps a flag in the ships.tbl?

id just do a tag that lets you pick the effect, like fs1, fs2, scp, etc. sorry didnt read :D

would be cool to have scripted as an option too. that uses a hook or set of hooks (like init/on frame/exit), and appropriate hook variables (like viewport position and coords, and currently selected ship class) which can be scripted to draw whatever effect is required. if used without a script you essentially get a blank viewport. probably not as good as shader though.
Title: Re: Cinematics vs Game
Post by: The E on July 26, 2011, 05:03:39 pm
Added to trunk in revision 7382.

To learn how to configure this effect, please see the following wiki pages for details:

http://www.hard-light.net/wiki/index.php/Ai_profiles.tbl#.24Default_weapon_select_effect:
http://www.hard-light.net/wiki/index.php/Ai_profiles.tbl#.24Default_ship_select_effect:
http://www.hard-light.net/wiki/index.php/Weapons.tbl#.24Selection_Effect:
http://www.hard-light.net/wiki/index.php/Ships.tbl#.24Selection_Effect:

A scripting hook will soon be added.
Title: Re: Cinematics vs Game
Post by: Valathil on July 27, 2011, 01:28:32 pm
SEXP triggering
http://www.youtube.com/watch?v=mSki1LMMUpE
Title: Re: Cinematics vs Game
Post by: Kolgena on July 27, 2011, 01:38:55 pm
Nice. :yes:
Title: Re: Cinematics vs Game
Post by: Commander Zane on July 27, 2011, 01:42:43 pm
Yes.
Title: Re: Cinematics vs Game
Post by: Spoon on July 27, 2011, 06:36:19 pm
Awesome, its been commited

*Spoon eagerly awaits the next nightly*

Edit: Okay so Kyad gave me a r7384amd build on irc
The Effect looks awesome, but the ai_profile flags (wanted to see the fs1 effect) don't seem to work (yet?)
Title: Re: Cinematics vs Game
Post by: Lucika on July 27, 2011, 07:58:45 pm
Is it possible to somehow use it as a different sort of arrival effect? Obviously with "No Warp Effect" selected on arrival - however, this effect is reversed compared to what I'd need for that. :)
Title: Re: Cinematics vs Game
Post by: MatthTheGeek on July 28, 2011, 12:28:38 am
You can easily trick that sexp-wise. Have the ship warp in/spawn far from the map, cloak it, teleport it in the game zone, uncloak it.
Title: Re: Cinematics vs Game
Post by: Dragon on July 28, 2011, 02:10:47 am
A "start cloaked" checkbox in FRED would be great for that, also, it'd allow such things as cloaked ambushes.
Title: Re: Cinematics vs Game
Post by: Lucika on July 28, 2011, 06:21:28 am
A "start cloaked" checkbox in FRED would be great for that, also, it'd allow such things as cloaked ambushes.

This.
Title: Re: Cinematics vs Game
Post by: DaBrain on July 28, 2011, 02:09:37 pm
Impressive work again Valathil!

Will we be able to create effects like this ourselves later on? (I.e. keyframed UV translation, or other shader value animations.)



2) Dynamic range
(http://img339.imageshack.us/img339/2351/dynamicrange.th.png) (http://imageshack.us/photo/my-images/339/dynamicrange.png/)
Taken from FS1 cinematic intro.
As you can see all the objects in the view truly appear to be affected by very bright planet they are orbiting, though there is also planet lighting applied and blur, it alone would give better impression of strong lighting in the scenes like planets.

Objects affected by the bright planet? Sounds like Global Illumination.
Well, there is a really cheap trick for an approximization.

It sounds more fancy than it really is.

http://wiki.polycount.com/DiffuselyConvolvedCubeMap?action=show&redirect=Diffusely+Convolved+Cube+Map

A while a ago I've started using this in Shadows of Lylat.

Quote
Standard ambient light
This is the example for a simple ambient light and one directional light, comparable to a mission in FS2. Notice it has only one color and there is no light direction, therefore it simply blends over/ignores the normal maps. The bottom side of the cube, which isn't lit by the directional light doesn't show the normal mapping at all, even though it's lit by the ambient light.

(http://i48.tinypic.com/2qn5zs7.jpg)


Diffusely Convolved Cube Map "lighting"

The same without an ambient light, but with a 'lightmap' (simply the skybox, but blurred) and the same directional light as before.
You can see how the differences in the light colors. From the top it's lit white-ish blue, orange from the sides and the bottom is pretty dark.
On the bottom of the cube you can also see that the cubemap lighting still looks a bit like a reflection, cause it actually still is.

(http://i46.tinypic.com/nyz6di.jpg)

And this is how it looks in-gane.
Quote
You can clearly see the top "lighting" from the blue sky and the orange in the middle from the horizon.
The whole ship looks a lot more 'real' and the material looks like it's actually metal.

Only from some angles it still looks a bit like a reflection.



(Ambient factor is 0 and emissive light is turned off...)

(http://i29.tinypic.com/ofd3ky.jpg)

(http://i30.tinypic.com/ddcn5j.jpg)

(http://i32.tinypic.com/2zqdlkj.jpg)

(http://i30.tinypic.com/5zgqw1.jpg)


This already possible.
However a better approach would be something like this to simulate different environments.
http://blogs.unity3d.com/2011/06/08/advanced-shading-and-lighting-for-mobile/
Title: Re: Cinematics vs Game
Post by: The E on July 28, 2011, 02:13:53 pm
And I would really appreciate it if you would be so kind as to share your technique for making this.
Title: Re: Cinematics vs Game
Post by: DaBrain on July 28, 2011, 02:44:08 pm
Ah, of course.

Diffusely convolved cube mapping sounds like it's something really complicated, but it's actually something really simple.
You simply use the cube map a bit different.
Instead of using it to simulate world reflections, we use it to simulate ambient lighting.

All you have to do is to blur your cubemap and maybe adjust the brightness and contrast a bit.

With the standard shaders you'll loose your 'reflections'.
Also you'll either have to adust your alpha channel of all specular maps by hand, or add a constant value on top of it in the shaders.

A black alpha channel woud mean no 'ambient lighting'. Depending on how strong you want the fake lighting to be, your entire spec alpha channel should be more or less grey.

A good tool to blur cubemaps (without seams) is CubeMapGen:
http://developer.amd.com/archive/gpu/cubemapgen/pages/default.aspx



On a sidenote: Only normal map haters use ambient lights! ;)
Title: Re: Cinematics vs Game
Post by: The E on July 28, 2011, 02:54:36 pm
So basically, you're using the env map colour as the ambient term?

Look, I really would like to see the actual _implementation_, because I would like to use it as an option in FSO.
Title: Re: Cinematics vs Game
Post by: Lucika on July 28, 2011, 02:58:29 pm
You can easily trick that sexp-wise. Have the ship warp in/spawn far from the map, cloak it, teleport it in the game zone, uncloak it.

That was, the ship would appear way too early on the escort list. :(
Title: Re: Cinematics vs Game
Post by: pecenipicek on July 28, 2011, 02:59:51 pm
You can easily trick that sexp-wise. Have the ship warp in/spawn far from the map, cloak it, teleport it in the game zone, uncloak it.

That was, the ship would appear way too early on the escort list. :(
cant you trigger the escort status via sexp's too?
Title: Re: Cinematics vs Game
Post by: The E on July 28, 2011, 03:00:54 pm
You certainly can.
Title: Re: Cinematics vs Game
Post by: Dragon on July 28, 2011, 07:20:02 pm
Still, a "start cloaked" checkbox would make many things easier to FRED, for example a cloaked ambush.
On topic of DCCM: hacked or not, this solution is interesting, I think it'd work great for BP, eliminating the need for dummy "suns" on planets, which hog light sources limit. Of course, it'd be a lot of work to implement.
Title: Re: Cinematics vs Game
Post by: Spoon on July 28, 2011, 08:32:19 pm
So when will we get a working FS1 effect?
Title: Re: Cinematics vs Game
Post by: Rodo on July 28, 2011, 08:47:04 pm
wow wow, give the man a break.
Title: Re: Cinematics vs Game
Post by: Lucika on July 28, 2011, 08:58:48 pm
Still, a "start cloaked" checkbox would make many things easier to FRED, for example a cloaked ambush.

Indeed it would. In my case, one of the factions' capships are not using subspace but something else instead. This effect would work great for me. However, the process of "add ship-cloak-teleport-sexp escort-uncloak-...-cloak-sexp escort-depart" for each and every vessel cruiser and above would be a pain in my back. :nod: Not to mention that I'd have to redo the arrival-related events in the already FREDded things.

Right now I'm just going with 'no warp effect', I hope someone will put together a "start cloaked" thing by the time I'm getting close to finish. :)
Title: Re: Cinematics vs Game
Post by: Spoon on July 28, 2011, 09:30:50 pm
wow wow, give the man a break.
Nope, its a totally valid question
We've seen the fs1 effect already works ingame (the vid the e posted of the solaris), the flags are on the wiki already. But none of them seem to work, only the fs2 effect does.
Title: Re: Cinematics vs Game
Post by: Nuke on July 28, 2011, 09:37:06 pm
since youre adding cloaking effects i think it would be cool to have a complete player side cloaking setup. like controls for cloaking, some penalty for cloaking like cloaking energy and another bar in the ets, or just drain weapon energy. when you run out you decloak, if you want to stay cloaked for a long duraion you would need to give divert power from your other systems, making you slow and unshielded. then perhaps flags to control how weapons behave while cloaked, like strict no weapons while cloaked, or no energy weapons while cloaked, or weapons, but power supply is reduced by cloaking. perhaps firing weapons will show you on the radar and allow ships to lock on to you. perhaps no shields while cloaked or while cloaking/decloaking. you might want to change the time requirement for cloaking. just brainstorming here, nothing is quite thought out enough to call this a feature request. sexp cloaking would probibly be the way to handle ai side cloaking, though at least fighters should have to obey the same cloaking rules as the player.
Title: Re: Cinematics vs Game
Post by: Black Wolf on July 29, 2011, 05:02:58 am
Maybe we should just be happy with the effect for now, move on the the deeper implementation later? After all, this is pretty damned awesome even as it is, right?
Title: Re: Cinematics vs Game
Post by: The E on July 29, 2011, 05:51:38 am
wow wow, give the man a break.
Nope, its a totally valid question
We've seen the fs1 effect already works ingame (the vid the e posted of the solaris), the flags are on the wiki already. But none of them seem to work, only the fs2 effect does.

Can you post a debug log?
Title: Re: Cinematics vs Game
Post by: Dragon on July 29, 2011, 06:01:36 am
since youre adding cloaking effects i think it would be cool to have a complete player side cloaking setup. like controls for cloaking, some penalty for cloaking like cloaking energy and another bar in the ets, or just drain weapon energy. when you run out you decloak, if you want to stay cloaked for a long duraion you would need to give divert power from your other systems, making you slow and unshielded. then perhaps flags to control how weapons behave while cloaked, like strict no weapons while cloaked, or no energy weapons while cloaked, or weapons, but power supply is reduced by cloaking. perhaps firing weapons will show you on the radar and allow ships to lock on to you. perhaps no shields while cloaked or while cloaking/decloaking. you might want to change the time requirement for cloaking. just brainstorming here, nothing is quite thought out enough to call this a feature request. sexp cloaking would probibly be the way to handle ai side cloaking, though at least fighters should have to obey the same cloaking rules as the player.
All this can be FREDed.
I think that there's no need for hardcoded cloaking, since it'd need a lot of new table features to make it as customizable as FREDed cloaking.
Granted, having AI do it would be nice, but I already have an idea how to make them use cloaking in combat in somewhat "intelligent" manner (using SEXPs).
Title: Re: Cinematics vs Game
Post by: Spoon on July 29, 2011, 08:11:10 am
wow wow, give the man a break.
Nope, its a totally valid question
We've seen the fs1 effect already works ingame (the vid the e posted of the solaris), the flags are on the wiki already. But none of them seem to work, only the fs2 effect does.

Can you post a debug log?
But of course my good sir.


Code: [Select]
==========================================================================
DEBUG SPEW: No debug_filter.cfg found, so only general, error, and warning
categories can be shown and no debug_filter.cfg info will be saved.
==========================================================================
FreeSpace version: 3.6.13
Passed cmdline options:
  -spec_exp 15
  -fov 0.6
  -ogl_spec 20
  -spec_static 1.5
  -spec_point 1.2
  -spec_tube 1.5
  -ambient_factor 65
  -env
  -missile_lighting
  -glow
  -noscalevid
  -spec
  -normal
  -3dshockwave
  -post_process
  -bloom_intensity 40
  -fxaa
  -ballistic_gauge
  -rearm_timer
  -targetinfo
  -3dwarp
  -ship_choice_3d
  -weapon_choice_3d
  -warp_flash
  -mod Wings of Dawn II,mediavps_3612
  -fullscreen_window
Building file index...
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Advanced.vp' with a checksum of 0x4b8b0f5a
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_AnimGlows.vp' with a checksum of 0x6a554026
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.3612.vp' with a checksum of 0x59649c21
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.vp' with a checksum of 0x529cc70f
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.3612.vp' with a checksum of 0x9c510aa0
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.vp' with a checksum of 0xb9a9a485
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Music.vp' with a checksum of 0xb3e21469
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.3612.vp' with a checksum of 0x7c9d7e74
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.vp' with a checksum of 0x6ffd5c78
Found root pack 'G:\Games\Freespace\FS2OGGcutscenepack.vp' with a checksum of 0x84396e99
Found root pack 'G:\Games\Freespace\multi-mission-pack.vp' with a checksum of 0x925272dc
Found root pack 'G:\Games\Freespace\multi-voice-pack.vp' with a checksum of 0xd50e7442
Found root pack 'G:\Games\Freespace\root_fs2.vp' with a checksum of 0xce10d76c
Found root pack 'G:\Games\Freespace\smarty_fs2.vp' with a checksum of 0xddeb3b1e
Found root pack 'G:\Games\Freespace\sparky_fs2.vp' with a checksum of 0x0eae906e
Found root pack 'G:\Games\Freespace\sparky_hi_fs2.vp' with a checksum of 0xa11d56f1
Found root pack 'G:\Games\Freespace\stu_fs2.vp' with a checksum of 0xd77da83a
Found root pack 'G:\Games\Freespace\tango1_fs2.vp' with a checksum of 0x4c25221e
Found root pack 'G:\Games\Freespace\tango2_fs2.vp' with a checksum of 0x86920b82
Found root pack 'G:\Games\Freespace\tango3_fs2.vp' with a checksum of 0x705e8d71
Found root pack 'G:\Games\Freespace\warble_fs2.vp' with a checksum of 0xd85c305d
Searching root 'G:\Games\Freespace\Wings of Dawn II\' ... 5175 files
Searching root 'G:\Games\Freespace\mediavps_3612\' ... 125 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Advanced.vp' ... 1283 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_AnimGlows.vp' ... 1641 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.3612.vp' ... 315 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.vp' ... 1527 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.3612.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.vp' ... 1876 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Music.vp' ... 32 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.3612.vp' ... 13 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.vp' ... 94 files
Searching root 'G:\Games\Freespace\' ... 108 files
Searching root pack 'G:\Games\Freespace\FS2OGGcutscenepack.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\multi-mission-pack.vp' ... 108 files
Searching root pack 'G:\Games\Freespace\multi-voice-pack.vp' ... 307 files
Searching root pack 'G:\Games\Freespace\root_fs2.vp' ... 157 files
Searching root pack 'G:\Games\Freespace\smarty_fs2.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\sparky_fs2.vp' ... 3027 files
Searching root pack 'G:\Games\Freespace\sparky_hi_fs2.vp' ... 1337 files
Searching root pack 'G:\Games\Freespace\stu_fs2.vp' ... 2355 files
Searching root pack 'G:\Games\Freespace\tango1_fs2.vp' ... 32 files
Searching root pack 'G:\Games\Freespace\tango2_fs2.vp' ... 15 files
Searching root pack 'G:\Games\Freespace\tango3_fs2.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\warble_fs2.vp' ... 52 files
Searching root 'i:\' ... 0 files
Found 25 roots and 19619 files.
AutoLang: Language auto-detection successful...
Setting language to English
TBM  =>  Starting parse of 'mv_core-lcl.tbm' ...
Initializing OpenAL...
  OpenAL Vendor     : Creative Labs Inc.
  OpenAL Renderer   : Software
  OpenAL Version    : 1.1

  Found extension "ALC_EXT_EFX".

  Sample rate: 44100 (44100)
  EFX enabled: NO
  Playback device: Generic Software on Speakers (Realtek High Definition Audio)
  Capture device: Microphone (C-Media USB Headpho
... OpenAL successfully initialized!
Failed to init speech
Initializing OpenGL graphics device at 1680x1050 with 32-bit color...
  Initializing WGL...
  Requested WGL Video values = R: 8, G: 8, B: 8, depth: 32, double-buffer: 1
  Actual WGL Video values    = R: 8, G: 8, B: 8, depth: 32, double-buffer: 1
  OpenGL Vendor    : NVIDIA Corporation
  OpenGL Renderer  : GeForce GTX 570/PCI/SSE2
  OpenGL Version   : 4.1.0

  Using extension "GL_EXT_fog_coord".
  Using extension "GL_ARB_multitexture".
  Using extension "GL_ARB_texture_env_add".
  Using extension "GL_ARB_texture_compression".
  Using extension "GL_EXT_texture_compression_s3tc".
  Using extension "GL_EXT_texture_filter_anisotropic".
  Using extension "GL_ARB_texture_env_combine".
  Using extension "GL_EXT_compiled_vertex_array".
  Using extension "GL_EXT_draw_range_elements".
  Using extension "GL_ARB_texture_mirrored_repeat".
  Using extension "GL_ARB_texture_non_power_of_two".
  Using extension "GL_ARB_vertex_buffer_object".
  Using extension "GL_ARB_pixel_buffer_object".
  Using extension "GL_SGIS_generate_mipmap".
  Using extension "GL_EXT_framebuffer_object".
  Using extension "GL_ARB_texture_rectangle".
  Using extension "GL_EXT_bgra".
  Using extension "GL_ARB_texture_cube_map".
  Using extension "GL_EXT_texture_lod_bias".
  Using extension "GL_ARB_point_sprite".
  Using extension "GL_ARB_shading_language_100".
  Using extension "GL_ARB_shader_objects".
  Using extension "GL_ARB_vertex_shader".
  Using extension "GL_ARB_fragment_shader".
  Using extension "GL_NV_vertex_program3".
  Found special extension function "wglSwapIntervalEXT".

  Compiling shader: main-v.sdr (null-v.sdr), main-f.sdr (null-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lb-f.sdr)
  Compiling shader: main-v.sdr (b-v.sdr), main-f.sdr (b-f.sdr)
  Compiling shader: main-v.sdr (b-v.sdr), main-f.sdr (bg-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbg-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbgs-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbs-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lbgse-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lbse-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbgn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbgsn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbsn-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lbgsne-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lbsne-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfb-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbg-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbgs-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbs-f.sdr)
  Compiling shader: main-v.sdr (lfe-v.sdr), main-f.sdr (lfbgse-f.sdr)
  Compiling shader: main-v.sdr (lfe-v.sdr), main-f.sdr (lfbse-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbgn-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbgsn-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbn-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbsn-f.sdr)
  Compiling shader: main-v.sdr (lfne-v.sdr), main-f.sdr (lfbgsne-f.sdr)
  Compiling shader: main-v.sdr (lfne-v.sdr), main-f.sdr (lfbsne-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (null-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lg-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lgs-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (ls-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lgse-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lse-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lgn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lgsn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (ln-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lsn-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lgsne-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lsne-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (la-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lba-f.sdr)
  Compiling shader: main-v.sdr (ba-v.sdr), main-f.sdr (ba-f.sdr)
  Compiling shader: main-v.sdr (ba-v.sdr), main-f.sdr (bga-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lbga-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lbgsa-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lbsa-f.sdr)
  Compiling shader: main-v.sdr (lea-v.sdr), main-f.sdr (lbgsea-f.sdr)
  Compiling shader: main-v.sdr (lea-v.sdr), main-f.sdr (lbsea-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbgna-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbgsna-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbna-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbsna-f.sdr)
  Compiling shader: main-v.sdr (lnea-v.sdr), main-f.sdr (lbgsnea-f.sdr)
  Compiling shader: main-v.sdr (lnea-v.sdr), main-f.sdr (lbsnea-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfba-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfbga-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfbgsa-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfbsa-f.sdr)
  Compiling shader: main-v.sdr (lfea-v.sdr), main-f.sdr (lfbgsea-f.sdr)
  Compiling shader: main-v.sdr (lfea-v.sdr), main-f.sdr (lfbsea-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbgna-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbgsna-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbna-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbsna-f.sdr)
  Compiling shader: main-v.sdr (lfnea-v.sdr), main-f.sdr (lfbgsnea-f.sdr)
  Compiling shader: main-v.sdr (lfnea-v.sdr), main-f.sdr (lfbsnea-f.sdr)

  Compiling post-processing shader 1 ...
  Compiling post-processing shader 2 ...
  Compiling post-processing shader 3 ...
  Compiling post-processing shader 4 ...
  Compiling post-processing shader 5 ...
Loading built-in default shader for: fxaa-v.sdr
Loading built-in default shader for: fxaa-f.sdr
  Compiling post-processing shader 6 ...
Loading built-in default shader for: fxaapre-f.sdr

  Max texture units: 4 (32)
  Max elements vertices: 1048576
  Max elements indices: 1048576
  Max texture size: 16384x16384
  Max render buffer size: 16384x16384
  Can use compressed textures: YES
  Texture compression available: YES
  Post-processing enabled: YES
  Using trilinear texture filter.
  Using GLSL for model rendering.
  OpenGL Shader Version: 4.10 NVIDIA via Cg compiler
... OpenGL init is complete!
Size of bitmap info = 760 KB
Size of bitmap extra info = 52 bytes
ANI cursorweb with size 24x24 (25.0% wasted)
GRAPHICS: Initializing default colors...
SCRIPTING: Beginning initialization sequence...
SCRIPTING: Beginning Lua initialization...
LUA: Opening LUA state...
LUA: Initializing base Lua libraries...
LUA: Beginning ADE initialization
ADE: Initializing enumeration constants...
ADE: Assigning Lua session...
SCRIPTING: Beginning main hook parse sequence....
Wokka!  Error opening file (scripting.tbl)!
TABLES: Unable to parse 'scripting.tbl'!  Error code = 5.
TBM  =>  Starting parse of 'mv_flak-sct.tbm' ...
TBM  =>  Starting parse of 'mv_dbrs-sct.tbm' ...
TBM  =>  Starting parse of 'mv_exp-sct.tbm' ...
TBM  =>  Starting parse of 'misc-sct.tbm' ...
TBM  =>  Starting parse of 'gravity-sct.tbm' ...
TBM  =>  Starting parse of 'escort-sct.tbm' ...
TBM  =>  Starting parse of 'deathPart-sct.tbm' ...
SCRIPTING: Inititialization complete.
SCRIPTING: Splash screen overrides checked
SCRIPTING: Splash hook has been run
SCRIPTING: Splash screen conditional hook has been run
Using high memory settings...
Wokka!  Error opening file (interface.tbl)!
WMCGUI: Unable to parse 'interface.tbl'!  Error code = 5.
TBM  =>  Starting parse of 'mv_effects-sdf.tbm' ...
Windows reported 16 joysticks, we found 0
Current soundtrack set to -1 in event_music_reset_choices
TBM  =>  Starting parse of 'mv_music-mus.tbm' ...
TBM  =>  Starting parse of 'mv_effects-mfl.tbm' ...
TBM  =>  Starting parse of 'mv_effects-amr.tbm' ...
TBM  =>  Starting parse of 'mv_effects-wxp.tbm' ...
TBM  =>  Starting parse of 'Muzzleflashes-wxp.tbm' ...
TBM  =>  Starting parse of 'Explosions-wxp.tbm' ...
TBM  =>  Starting parse of 'beams-wxp.tbm' ...
BMPMAN: Found EFF (exp08.eff) with 141 frames at 25 fps.
BMPMAN: Found EFF (exp20.eff) with 81 frames at 40 fps.
BMPMAN: Found EFF (ExpMissileHit1.eff) with 92 frames at 30 fps.
BMPMAN: Found EFF (exp30.eff) with 131 frames at 30 fps.
BMPMAN: Found EFF (exp40.eff) with 33 frames at 24 fps.
BMPMAN: Found EFF (exp50.eff) with 54 frames at 30 fps.
BMPMAN: Found EFF (ExpW.eff) with 91 frames at 40 fps.
BMPMAN: Found EFF (ExpB.eff) with 74 frames at 30 fps.
BMPMAN: Found EFF (Zy.eff) with 43 frames at 30 fps.
BMPMAN: Found EFF (Tach.eff) with 31 frames at 30 fps.
BMPMAN: Found EFF (bomb_flare.eff) with 69 frames at 20 fps.
BMPMAN: Found EFF (flashexpblue.eff) with 36 frames at 30 fps.
BMPMAN: Found EFF (Dragonslave.eff) with 91 frames at 30 fps.
BMPMAN: Found EFF (Cflak.eff) with 54 frames at 30 fps.
BMPMAN: Found EFF (VX-23.eff) with 71 frames at 30 fps.
BMPMAN: Found EFF (Flashexp.eff) with 36 frames at 30 fps.
BMPMAN: Found EFF (Flashexp2.eff) with 44 frames at 30 fps.
BMPMAN: Found EFF (Zyshipexp.eff) with 51 frames at 30 fps.
BMPMAN: Found EFF (Blackhole.eff) with 63 frames at 30 fps.
BMPMAN: Found EFF (exp04.eff) with 61 frames at 30 fps.
BMPMAN: Found EFF (exp05.eff) with 72 frames at 30 fps.
BMPMAN: Found EFF (exp06.eff) with 58 frames at 30 fps.
BMPMAN: Found EFF (capflash.eff) with 40 frames at 10 fps.
BMPMAN: Found EFF (Maxim_Impact.eff) with 23 frames at 30 fps.
ANI Lamprey_Impact with size 80x80 (37.5% wasted)
BMPMAN: Found EFF (Gmuzzle.eff) with 5 frames at 30 fps.
BMPMAN: Found EFF (PWmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Rmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Bmuzzle.eff) with 5 frames at 30 fps.
BMPMAN: Found EFF (Cmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Fmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Dmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Smoke.eff) with 71 frames at 35 fps.
BMPMAN: Found EFF (Vk01NMuzzle.eff) with 15 frames at 30 fps.
BMPMAN: Found EFF (BWmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (exp07.eff) with 61 frames at 30 fps.
BMPMAN: Found EFF (Beamhitglow.eff) with 1 frames at 30 fps.
BMPMAN: Found EFF (HSMHS.eff) with 60 frames at 30 fps.
BMPMAN: Found EFF (HSMHSsmall.eff) with 60 frames at 30 fps.
BMPMAN: Found EFF (VX_02imp.eff) with 11 frames at 30 fps.
BMPMAN: Found EFF (Furaexp1.eff) with 81 frames at 30 fps.
BMPMAN: Found EFF (StarfireExp.eff) with 101 frames at 30 fps.
BMPMAN: Found EFF (SmallredExp.eff) with 46 frames at 30 fps.
BMPMAN: Found EFF (ParticleSmoke01.eff) with 54 frames at 24 fps.
WARNING: "Lifetime min or max specified, but $Lifetime was also specified; min or max will be used." at weapons.cpp:1400
TBM  =>  Starting parse of 'mv_core-wep.tbm' ...
TBM  =>  Starting parse of 'mv_effects-wep.tbm' ...
TBM  =>  Starting parse of 'mv_assets-wep.tbm' ...
TBM  =>  Starting parse of 'Wingmen-wep.tbm' ...
TBM  =>  Starting parse of 'Muzzleflashes-wep.tbm' ...
TBM  =>  Starting parse of 'beams-wep.tbm' ...
WARNING: Unrecognized parameter in ai_profiles: $disarm or disable cause global ai goal effects: YES

WARNING: Unrecognized parameter in ai_profiles: $Default ship select effect: FS1


#End


TBM  =>  Starting parse of 'mv_effects-obt.tbm' ...
TBM  =>  Starting parse of 'turrets-obt.tbm' ...
TBM  =>  Starting parse of 'Targetpriority-obt.tbm' ...
BMPMAN: Found EFF (ParticleSmoke02.eff) with 39 frames at 24 fps.
Particle effect for impact spew disabled on ship 'Fir'kyr Voidbringer'.
Particle effect for damage spew disabled on ship 'Fir'kyr Voidbringer'.
Particle effect for impact spew disabled on ship 'Fir'kyr VoidBearer'.
Particle effect for damage spew disabled on ship 'Fir'kyr VoidBearer'.
Particle effect for impact spew disabled on ship 'Fir'kyr VoidKeeper'.
Particle effect for damage spew disabled on ship 'Fir'kyr VoidKeeper'.
TBM  =>  Starting parse of 'mv_core-shp.tbm' ...
TBM  =>  Starting parse of 'mv_effects-shp.tbm' ...
TBM  =>  Starting parse of 'mv_assets-shp.tbm' ...
TBM  =>  Starting parse of 'Wingmen-shp.tbm' ...
ANI head1 with size 256x206 (19.5% wasted)
TBM  =>  Starting parse of 'mv_core-hdg.tbm' ...
ANI support1 with size 108x24 (25.0% wasted)
ANI damage1 with size 148x25 (21.9% wasted)
ANI wingman1 with size 71x53 (17.2% wasted)
ANI wingman2 with size 35x53 (17.2% wasted)
ANI wingman3 with size 14x53 (17.2% wasted)
ANI toggle1 with size 57x20 (37.5% wasted)
ANI weapons1 with size 126x20 (37.5% wasted)
ANI weapons1_b with size 150x20 (37.5% wasted)
ANI objective1 with size 149x21 (34.4% wasted)
ANI netlag1 with size 29x30 (6.3% wasted)
ANI targhit1 with size 31x21 (34.4% wasted)
ANI 2_energy2 with size 86x96 (25.0% wasted)
ANI time1 with size 47x23 (28.1% wasted)
ANI energy1 with size 12x41 (35.9% wasted)
ANI targetview3 with size 7x20 (37.5% wasted)
ANI targetview1 with size 137x156 (39.1% wasted)
ANI targetview2 with size 4x96 (25.0% wasted)
ANI 2_reticle1 with size 40x24 (25.0% wasted)
ANI 2_leftarc with size 103x252 (1.6% wasted)
ANI 2_rightarc1 with size 103x252 (1.6% wasted)
ANI 2_toparc2 with size 35x24 (25.0% wasted)
ANI 2_toparc3 with size 41x29 (9.4% wasted)
ANI 2_lead1 with size 26x26 (18.8% wasted)
ANI 2_lock1 with size 56x53 (17.2% wasted)
ANI 2_lockspin with size 100x100 (21.9% wasted)
ANI 2_radar1 with size 209x170 (33.6% wasted)
TBM  =>  Starting parse of 'mv_effects-str.tbm' ...
loading animated cursor "cursor"
ANI cursor with size 24x24 (25.0% wasted)
MediaVPs: Flaming debris script loaded!
MediaVPs: Explosions script loaded!
LibraryManager: Loaded file "class.lua"
LibraryManager: Loaded file "effectManager.lua"
LibraryManager: Loaded file "strings.lua"
LibraryManager: Loaded file "converter.lua"
LibraryManager: Loaded file "parser.lua"
LibraryManager: Loaded file "objectWrapper.lua"
LibraryManager: Loaded file "particles.lua"
LibraryManager: Loaded file "trailInfo.lua"
LibraryManager: Loaded file "particleParser.lua"
Ships.tbl is : INVALID!!!!
Weapons.tbl is : INVALID!!!!
cfile_init() took 752
Got event GS_EVENT_GAME_INIT (49) in state NOT A VALID STATE (0)
ANI cursor.ani with size 24x24 (25.0% wasted)
Got event GS_EVENT_MAIN_MENU (0) in state GS_STATE_INITIAL_PLAYER_SELECT (37)
WARNING!, Could not load door anim 2_Exit in main hall
WARNING!, Could not load door anim 2_Pilot in main hall
WARNING!, Could not load door anim 2_Continue in main hall
WARNING!, Could not load door anim 2_Tech in main hall
WARNING!, Could not load door anim 2_Option in main hall
WARNING!, Could not load door anim 2_Campaign in main hall
Got event GS_EVENT_TECH_MENU (11) in state GS_STATE_MAIN_MENU (1)
Techroom successfully initialized, now changing tab...
Loading model 'Ray.pof'
IBX: Found a good IBX to read for 'Ray.pof'.
IBX-DEBUG => POF checksum: 0xffbd65f5, IBX checksum: 0x521d437a -- "Ray.pof"
Got event GS_EVENT_SIMULATOR_ROOM (58) in state GS_STATE_TECH_MENU (7)
Freeing all existing models...
Frame  0 too long!!: frametime = 0.548 (0.548)
Got event GS_EVENT_START_GAME (1) in state GS_STATE_SIMULATOR_ROOM (20)
=================== STARTING LEVEL LOAD ==================
BMPMAN: Found EFF (2_Loading.eff) with 14 frames at 15 fps.
Starting model page in...
Beginning level bitmap paging...
BMPMAN: Found EFF (particleexp01.eff) with 10 frames at 8 fps.
TBM  =>  Starting parse of 'mv_effects-fbl.tbm' ...
BMPMAN: Found EFF (WarpMap01.eff) with 30 frames at 30 fps.
BMPMAN: Found EFF (WarpMap02.eff) with 30 frames at 30 fps.
BMPMAN: Found EFF (Rock_Exp.eff) with 55 frames at 30 fps.
BMPMAN: Found EFF (Furaexp2.eff) with 150 frames at 30 fps.
Loading warp model
Loading model 'warp.pof'
IBX: Found a good IBX to read for 'warp.pof'.
IBX-DEBUG => POF checksum: 0xbf802ad0, IBX checksum: 0xe7aa5a55 -- "warp.pof"
 600
BMPMAN: Found EFF (shieldhit01a.eff) with 23 frames at 21 fps.
BMPMAN: Found EFF (CSAshieldhit.eff) with 37 frames at 30 fps.
BMPMAN: Found EFF (shieldhit02a.eff) with 45 frames at 30 fps.
BMPMAN: Found EFF (shieldhit04a.eff) with 38 frames at 30 fps.
BMPMAN: Found EFF (shieldhit03a.eff) with 22 frames at 30 fps.
SHOCKWAVE =>  Loading default shockwave model...
Loading model 'shockwave.pof'
BMPMAN: Found EFF (shockwave3d-glow.eff) with 159 frames at 24 fps.
Model shockwave.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'shockwave.pof'.
IBX-DEBUG => POF checksum: 0xe3e74b11, IBX checksum: 0x314e1260 -- "shockwave.pof"
SHOCKWAVE =>  Default model load: SUCCEEDED!!
MISSION LOAD: 'Testings'
Using callsign: Isa
Loading model 'Kaze-B.pof'
IBX: Found a good IBX to read for 'Kaze-B.pof'.
IBX-DEBUG => POF checksum: 0xeb4b4dc5, IBX checksum: 0x012d0d21 -- "Kaze-B.pof"
ANI Kayser_Particle with size 80x80 (37.5% wasted)
BMPMAN: Found EFF (Particle_green.eff) with 11 frames at 6 fps.
Loading model 'CelestialF.pof'
BMPMAN: Found EFF (hullcelestial-glow.eff) with 14 frames at 12 fps.
BMPMAN: Found EFF (yellow2glass-glow.eff) with 17 frames at 12 fps.
IBX: Found a good IBX to read for 'CelestialF.pof'.
IBX-DEBUG => POF checksum: 0x55c3727a, IBX checksum: 0x49b1fa78 -- "CelestialF.pof"
Loading model 'CelestialB.pof'
IBX: Found a good IBX to read for 'CelestialB.pof'.
IBX-DEBUG => POF checksum: 0xb7c57904, IBX checksum: 0xe5839b8a -- "CelestialB.pof"
Starting mission message count : 1
Ending mission message count : 1
Current soundtrack set to -1 in event_music_reset_choices
Current soundtrack set to -1 in event_music_set_soundtrack
Loading model 'Celestial.pof'
IBX: Found a good IBX to read for 'Celestial.pof'.
IBX-DEBUG => POF checksum: 0xa4ba8c3f, IBX checksum: 0xfbcb456e -- "Celestial.pof"
Loading model 'astscar.pof'
IBX: Found a good IBX to read for 'astscar.pof'.
IBX-DEBUG => POF checksum: 0x75214c04, IBX checksum: 0x9c181b0a -- "astscar.pof"
Allocating space for at least 0 new ship subsystems ...  a total of 200 is now available (0 in-use).
Loading model 'astscarB.pof'
IBX: Found a good IBX to read for 'astscarB.pof'.
IBX-DEBUG => POF checksum: 0x9b9f00a9, IBX checksum: 0x87642cf8 -- "astscarB.pof"
Loading model 'astscarc.pof'
IBX: Found a good IBX to read for 'astscarc.pof'.
IBX-DEBUG => POF checksum: 0x88f405dc, IBX checksum: 0x68737e50 -- "astscarc.pof"
Loading model 'ZySlipstream.pof'
BMPMAN: Found EFF (blueglass-normal.eff) with 20 frames at 12 fps.
IBX: Found a good IBX to read for 'ZySlipstream.pof'.
IBX-DEBUG => POF checksum: 0x988e4927, IBX checksum: 0xab9dd30c -- "ZySlipstream.pof"
Loading model 'cavalier.pof'
IBX: Found a good IBX to read for 'cavalier.pof'.
IBX-DEBUG => POF checksum: 0xe9949d9c, IBX checksum: 0xc0696ef6 -- "cavalier.pof"
Loading model 'CelestialPOD.pof'
IBX: Found a good IBX to read for 'CelestialPOD.pof'.
IBX-DEBUG => POF checksum: 0xf32a0e61, IBX checksum: 0x8046b233 -- "CelestialPOD.pof"
Loading model 'CelestialCANNON.pof'
IBX: Found a good IBX to read for 'CelestialCANNON.pof'.
IBX-DEBUG => POF checksum: 0x6adce0e0, IBX checksum: 0xa5d59538 -- "CelestialCANNON.pof"
Loading model 'FunnelB.pof'
BMPMAN: Found EFF (mcwsring-glow.eff) with 12 frames at 9 fps.
IBX: Found a good IBX to read for 'FunnelB.pof'.
IBX-DEBUG => POF checksum: 0x52cf37c0, IBX checksum: 0x39b3fe74 -- "FunnelB.pof"
Loading model 'FunnelM.pof'
IBX: Found a good IBX to read for 'FunnelM.pof'.
IBX-DEBUG => POF checksum: 0x11c0b302, IBX checksum: 0x985451dd -- "FunnelM.pof"
Loading model 'Caliburn.pof'
IBX: Found a good IBX to read for 'Caliburn.pof'.
IBX-DEBUG => POF checksum: 0x772466ab, IBX checksum: 0xbc5fa548 -- "Caliburn.pof"
Loading model 'Challenger.pof'
BMPMAN: Found EFF (challengeri-glow.eff) with 19 frames at 12 fps.
IBX: Found a good IBX to read for 'Challenger.pof'.
IBX-DEBUG => POF checksum: 0x1cb41c0c, IBX checksum: 0x84dfbc2a -- "Challenger.pof"
Loading model 'AestivalR6.pof'
BMPMAN: Found EFF (mcwshull-glow.eff) with 7 frames at 6 fps.
IBX: Found a good IBX to read for 'AestivalR6.pof'.
IBX-DEBUG => POF checksum: 0xd4f0e87e, IBX checksum: 0xb18fc8d9 -- "AestivalR6.pof"
Loading model 'Pillager.pof'
IBX: Found a good IBX to read for 'Pillager.pof'.
IBX-DEBUG => POF checksum: 0x913425da, IBX checksum: 0x346d4ce7 -- "Pillager.pof"
Loading model 'Abyss-skybox.pof'
Model Abyss-skybox.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Abyss-skybox.pof'.
IBX-DEBUG => POF checksum: 0xe9e8030a, IBX checksum: 0x47b561d9 -- "Abyss-skybox.pof"
=================== STARTING LEVEL DATA LOAD ==================
Allocating space for at least 68 new ship subsystems ...  a total of 400 is now available (159 in-use).
About to page in ships!
BMPMAN: Found EFF (Cordipulse.eff) with 15 frames at 30 fps.
BMPMAN: Found EFF (Starfire.eff) with 21 frames at 24 fps.
Someone passed an extension to bm_load for file 'kinetictrail.dds'
Someone passed an extension to bm_load for file 'kinetictrail.dds'
BMPMAN: Found EFF (Particle_Blue.eff) with 11 frames at 6 fps.
BMPMAN: Found EFF (Wavemotion.eff) with 50 frames at 30 fps.
BMPMAN: Found EFF (particle_red.eff) with 11 frames at 22 fps.
Someone passed an extension to bm_load for file 'Pulse_Trail.dds'
Loading model 'Tempest.pof'
IBX: Found a good IBX to read for 'Tempest.pof'.
IBX-DEBUG => POF checksum: 0x4fcb12af, IBX checksum: 0xef8699b5 -- "Tempest.pof"
Loading model 'Wildfire.pof'
Model Wildfire.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Wildfire.pof'.
IBX-DEBUG => POF checksum: 0x259e6a90, IBX checksum: 0x47db1266 -- "Wildfire.pof"
Loading model 'Dart.pof'
Model Dart.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Dart.pof'.
IBX-DEBUG => POF checksum: 0xd10e57c4, IBX checksum: 0x16f288c5 -- "Dart.pof"
Loading model 'phoenix.pof'
IBX: Found a good IBX to read for 'phoenix.pof'.
IBX-DEBUG => POF checksum: 0xd02acd12, IBX checksum: 0x3fd08367 -- "phoenix.pof"
Loading model 'Wasp.pof'
IBX: Found a good IBX to read for 'Wasp.pof'.
IBX-DEBUG => POF checksum: 0xd2a15d45, IBX checksum: 0x12c8e68f -- "Wasp.pof"
Loading model 'Drg.pof'
Model Drg.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Drg.pof'.
IBX-DEBUG => POF checksum: 0x637bd23b, IBX checksum: 0x3eb1e0ee -- "Drg.pof"
Loading model 'piranha.pof'
IBX: Found a good IBX to read for 'piranha.pof'.
IBX-DEBUG => POF checksum: 0x484195d2, IBX checksum: 0xf272dc8a -- "piranha.pof"
Loading model 'hornet.pof'
IBX: Found a good IBX to read for 'hornet.pof'.
IBX-DEBUG => POF checksum: 0x066a989a, IBX checksum: 0x8d7227a4 -- "hornet.pof"
Loading model 'Refraction.pof'
IBX: Found a good IBX to read for 'Refraction.pof'.
IBX-DEBUG => POF checksum: 0x3c6e6e35, IBX checksum: 0xae05f725 -- "Refraction.pof"
Loading model 'Tsunami.pof'
IBX: Found a good IBX to read for 'Tsunami.pof'.
IBX-DEBUG => POF checksum: 0x80da58b6, IBX checksum: 0xe8167fc9 -- "Tsunami.pof"
Loading model 'trebuchet.pof'
No subsystems found for model "trebuchet.pof".
IBX: Found a good IBX to read for 'trebuchet.pof'.
IBX-DEBUG => POF checksum: 0x7c28aa13, IBX checksum: 0x837b58e3 -- "trebuchet.pof"
Loading model 'Booster.pof'
IBX: Found a good IBX to read for 'Booster.pof'.
IBX-DEBUG => POF checksum: 0x286949ee, IBX checksum: 0x0be77b05 -- "Booster.pof"
Loading model 'newhornet.pof'
IBX: Found a good IBX to read for 'newhornet.pof'.
IBX-DEBUG => POF checksum: 0x2c76000e, IBX checksum: 0x19f7f55e -- "newhornet.pof"
Loading model 'crossbow.pof'
IBX: Found a good IBX to read for 'crossbow.pof'.
IBX-DEBUG => POF checksum: 0x19e682bb, IBX checksum: 0x885d0786 -- "crossbow.pof"
Loading model 'yari.pof'
IBX: Found a good IBX to read for 'yari.pof'.
IBX-DEBUG => POF checksum: 0x9832d790, IBX checksum: 0x237df9b5 -- "yari.pof"
Loading model 'treb2.pof'
Model treb2.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'treb2.pof'.
IBX-DEBUG => POF checksum: 0x1b46178a, IBX checksum: 0x9ecd0492 -- "treb2.pof"
Loading model 'JackhammerMk2.pof'
Model JackhammerMk2.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'JackhammerMk2.pof'.
IBX-DEBUG => POF checksum: 0x44e33a9b, IBX checksum: 0x41f72935 -- "JackhammerMk2.pof"
Loading model 'helios.pof'
IBX: Found a good IBX to read for 'helios.pof'.
IBX-DEBUG => POF checksum: 0xc75db1da, IBX checksum: 0x60bd5c91 -- "helios.pof"
Loading model 'pulsar01.pof'
Model pulsar01.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'pulsar01.pof'.
IBX-DEBUG => POF checksum: 0xd7a4ff27, IBX checksum: 0x7ec85704 -- "pulsar01.pof"
Loading model 'rocket.pof'
BMPMAN: Found EFF (redglass-glow.eff) with 18 frames at 12 fps.
IBX: Found a good IBX to read for 'rocket.pof'.
IBX-DEBUG => POF checksum: 0x8e9a54d2, IBX checksum: 0xff25cfa2 -- "rocket.pof"
Loading model 'hominglaser.pof'
IBX: Found a good IBX to read for 'hominglaser.pof'.
IBX-DEBUG => POF checksum: 0x869fb72a, IBX checksum: 0x6b536b8f -- "hominglaser.pof"
Loading model 'cmeasure01.pof'
IBX: Found a good IBX to read for 'cmeasure01.pof'.
IBX-DEBUG => POF checksum: 0x562739c3, IBX checksum: 0x76256515 -- "cmeasure01.pof"
Loading model 'NFlare.pof'
Model NFlare.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'NFlare.pof'.
IBX-DEBUG => POF checksum: 0x3a6824e3, IBX checksum: 0xf4f695ad -- "NFlare.pof"
Loading model 'Flare.pof'
Model Flare.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Flare.pof'.
IBX-DEBUG => POF checksum: 0x65fdee7d, IBX checksum: 0xc51f242b -- "Flare.pof"
Loading model 'debris01.pof'
IBX: Found a good IBX to read for 'debris01.pof'.
IBX-DEBUG => POF checksum: 0x974f214b, IBX checksum: 0x0cb49c79 -- "debris01.pof"
Loading model 'debris02.pof'
IBX: Found a good IBX to read for 'debris02.pof'.
IBX-DEBUG => POF checksum: 0x8e0eed50, IBX checksum: 0x3e979514 -- "debris02.pof"
BMPMAN: Found EFF (Ringflash.eff) with 35 frames at 30 fps.
Paging in mission messages
Stopping model page in...
ANI head1.ani with size 256x206 (19.5% wasted)
ANI support1.ani with size 108x24 (25.0% wasted)
ANI damage1.ani with size 148x25 (21.9% wasted)
ANI wingman1.ani with size 71x53 (17.2% wasted)
ANI wingman2.ani with size 35x53 (17.2% wasted)
ANI wingman3.ani with size 14x53 (17.2% wasted)
ANI toggle1.ani with size 57x20 (37.5% wasted)
ANI weapons1.ani with size 126x20 (37.5% wasted)
ANI weapons1_b.ani with size 150x20 (37.5% wasted)
ANI objective1.ani with size 149x21 (34.4% wasted)
ANI netlag1.ani with size 29x30 (6.3% wasted)
ANI targhit1.ani with size 31x21 (34.4% wasted)
ANI 2_energy2.ani with size 86x96 (25.0% wasted)
ANI time1.ani with size 47x23 (28.1% wasted)
ANI energy1.ani with size 12x41 (35.9% wasted)
ANI targetview3.ani with size 7x20 (37.5% wasted)
ANI targetview1.ani with size 137x156 (39.1% wasted)
ANI targetview2.ani with size 4x96 (25.0% wasted)
ANI 2_reticle1.ani with size 40x24 (25.0% wasted)
ANI 2_leftarc.ani with size 103x252 (1.6% wasted)
ANI 2_rightarc1.ani with size 103x252 (1.6% wasted)
ANI 2_toparc2.ani with size 35x24 (25.0% wasted)
ANI 2_toparc3.ani with size 41x29 (9.4% wasted)
ANI 2_lead1.ani with size 26x26 (18.8% wasted)
ANI 2_lock1.ani with size 56x53 (17.2% wasted)
ANI 2_lockspin.ani with size 100x100 (21.9% wasted)
ANI 2_radar1.ani with size 209x170 (33.6% wasted)
ANI Kayser_Particle.ani with size 80x80 (37.5% wasted)
User bitmap 'TMP256x256+8'
User bitmap 'TMP256x256+8'
User bitmap 'TMP128x128+8'
Bmpman: 3813/4750 bitmap slots in use.
Ending level bitmap paging...
=================== ENDING LOAD ================
Real count = 375,  Estimated count = 425
================================================
MediaVPs: Flaming debris script ACTIVE!
SCRIPTING: Starting flashy deaths script loading

Class: lsf hazel-d
DRM: 0.25
DE: 2
DM: 1
FRM: 1
FE: 6
BE: 0.35
BEDu: 2000
BEDM: 6

Class: sttq gaster
DRM: 0.25
DE: 2
DM: 1
FRM: 1
FE: 6
BE: 0.35
BEDu: 2000
BEDM: 6

Class: prometheus frame
DRM: 0.25
DE: 2
DM: 1
FRM: 1
FE: 6
BE: 0.5
BEDu: 3000
BEDM: 2.5

Class: cordi broodlord
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2500
BEDM: 7

Class: sttq alate
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2000
BEDM: 6

Class: nordera battleaxe
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2000
BEDM: 5

Class: nordera blacksmith
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2500
BEDM: 5

Class: adasya
DRM: 0.25
DE: 2
DM: 1
FRM: 1
FE: 6
BE: 0.45
BEDu: 1500
BEDM: 5

Class: zgf archon
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 3000
BEDM: 5

Class: hertak armageddon
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 3000
BEDM: 10

Class: hertak flagship
DRM: 0.25
DE: 2
DM: 1
FRM: 5
FE: 6
BE: 0.75
BEDu: 4500
BEDM: 13

Class: fir'kyr voidbringer
DRM: 0.5
DE: 2
DM: 1
FRM: 5
FE: 6
BE: 0.85
BEDu: 6000
BEDM: 10

Class: fir'kyr voidbearer
DRM: 0.6
DE: 2
DM: 1.2
FRM: 5.5
FE: 6
BE: 0.9
BEDu: 8000
BEDM: 12

Class: fir'kyr voidkeeper
DRM: 0.8
DE: 2
DM: 1.5
FRM: 6
FE: 6
BE: 0.95
BEDu: 10000
BEDM: 15

Class: lsf skirmisher
DRM: 0.25
DE: 2
DM: 1
FRM: 1
FE: 6
BE: 0.45
BEDu: 2000
BEDM: 3.5

Class: lsf challenger
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2500
BEDM: 5

Class: lsf challenger ii
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2500
BEDM: 5

Class: lsf guardian angel
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 3000
BEDM: 5

Class: lsf champion
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 3000
BEDM: 5

Class: lsf crusader 
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 2750
BEDM: 5

Class: csa starlight
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 1750
BEDM: 4.5

Class: sred
BEI: 0.2
BEDu: 200
BEDi: 100

Class: lred
BEI: 0.2
BEDu: 600
BEDi: 300

Class: bfred
BEI: 0.2
BEDu: 2100
BEDi: 1050

Class: terslash
BEI: 0.2
BEDu: 350
BEDi: 175

Class: lterslash
BEI: 0.2
BEDu: 150
BEDi: 75

Class: bfgreen
BEI: 0.2
BEDu: 1900
BEDi: 950

Class: lrbgreen
BEI: 0.2
BEDu: 1900
BEDi: 950

Class: bgreen
BEI: 0.2
BEDu: 1200
BEDi: 650

Class: sgreen
BEI: 0.2
BEDu: 210
BEDi: 105

Class: svas
BEI: 0.2
BEDu: 350
BEDi: 175

Class: bvas
BEI: 0.2
BEDu: 1100
BEDi: 550

Class: vslash
BEI: 0.2
BEDu: 750
BEDi: 375

Class: green beam
BEI: 0.2
BEDu: 200
BEDi: 100

Class: mjolnirbeam
BEI: 0.2
BEDu: 750
BEDi: 375

Class: mjolnirbeam#home
BEI: 0.2
BEDu: 400
BEDi: 200

Class: cyclops
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: cyclops#short
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: rebel bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 400
BEDi: 200

Class: helios
FR: 100
FE: 6
BEI: 0.6
BEDu: 6800
BEDi: 3400

Class: unknown bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 1500
BEDi: 750

Class: unknown megabomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 3200
BEDi: 1600

Class: shivan bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: shivan bomb#short
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: shivan weak bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 400
BEDi: 200

Class: shivan megabomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 6800
BEDi: 3400

Class: fusion mortar
FR: 20
FE: 6
BEI: 0.2
BEDu: 80
BEDi: 40

Class: vasudan flux cannon
FR: 20
FE: 6
BEI: 0.4
BEDu: 500
BEDi: 250
LibraryManager: Reloading all loaded librariesLibraryManager: Loaded file "class.lua"
LibraryManager: Loaded file "objectWrapper.lua"
LibraryManager: Loaded file "particles.lua"
LibraryManager: Loaded file "strings.lua"
LibraryManager: Loaded file "parser.lua"
LibraryManager: Loaded file "converter.lua"
LibraryManager: Loaded file "trailInfo.lua"
LibraryManager: Loaded file "particleParser.lua"
LibraryManager: Loaded file "effectManager.lua"
PARTICLE SCRIPT: Parsing file "particles.cfg"
PARTICLE SCRIPT: Configuration file read. Loaded 49 entries and took 0 ms
Received post for event GS_EVENT_START_BRIEFING during state transtition. Find Allender if you are unsure if this is bad.
Got event GS_EVENT_START_BRIEFING (15) in state GS_STATE_START_GAME (52)
ANI 2_BriefMap with size 918x400 (21.9% wasted)
ANI iconwing01 with size 32x28 (12.5% wasted)
Loading model 'Ray.pof'
IBX: Found a good IBX to read for 'Ray.pof'.
IBX-DEBUG => POF checksum: 0xffbd65f5, IBX checksum: 0x521d437a -- "Ray.pof"
Loading model 'RaymkIII.pof'
BMPMAN: Found EFF (ray mkiii-glow.eff) with 17 frames at 30 fps.
IBX: Found a good IBX to read for 'RaymkIII.pof'.
IBX-DEBUG => POF checksum: 0xc3e79b82, IBX checksum: 0xa58e9179 -- "RaymkIII.pof"
Loading model 'RaymkIII-E.pof'
IBX: Found a good IBX to read for 'RaymkIII-E.pof'.
IBX-DEBUG => POF checksum: 0x83520ca4, IBX checksum: 0x41e26289 -- "RaymkIII-E.pof"
Loading model 'RaymkIII-WE.pof'
IBX: Found a good IBX to read for 'RaymkIII-WE.pof'.
IBX-DEBUG => POF checksum: 0x737f4599, IBX checksum: 0x8bfa2638 -- "RaymkIII-WE.pof"
Loading model 'Kaze-BB.pof'
IBX: Found a good IBX to read for 'Kaze-BB.pof'.
IBX-DEBUG => POF checksum: 0x756c833d, IBX checksum: 0xca354163 -- "Kaze-BB.pof"
Loading model 'Hazel.pof'
IBX: Found a good IBX to read for 'Hazel.pof'.
IBX-DEBUG => POF checksum: 0x14803329, IBX checksum: 0x077637e4 -- "Hazel.pof"
Loading model 'RaymkIV.pof'
IBX: Found a good IBX to read for 'RaymkIV.pof'.
IBX-DEBUG => POF checksum: 0x7ce7f0c1, IBX checksum: 0x527b0f35 -- "RaymkIV.pof"
Loading model 'Excelion.POF'
IBX: Found a good IBX to read for 'Excelion.POF'.
IBX-DEBUG => POF checksum: 0xd31c76d4, IBX checksum: 0x5a6c01da -- "Excelion.POF"
Loading model 'Prometheus.POF'
IBX: Found a good IBX to read for 'Prometheus.POF'.
IBX-DEBUG => POF checksum: 0x7102ba28, IBX checksum: 0xb3c5ae41 -- "Prometheus.POF"
Loading model 'mcwsb.pof'
IBX: Found a good IBX to read for 'mcwsb.pof'.
IBX-DEBUG => POF checksum: 0x0e7c3a7d, IBX checksum: 0x92677ffc -- "mcwsb.pof"
Loading model 'Zervium.pof'
BMPMAN: Found EFF (hullsilver-glow.eff) with 8 frames at 9 fps.
BMPMAN: Found EFF (ringsilver-glow.eff) with 12 frames at 9 fps.
IBX: Found a good IBX to read for 'Zervium.pof'.
IBX-DEBUG => POF checksum: 0x73dfae62, IBX checksum: 0x4dadabf9 -- "Zervium.pof"
Loading model 'ZerviumT.pof'
IBX: Found a good IBX to read for 'ZerviumT.pof'.
IBX-DEBUG => POF checksum: 0xb79a04f3, IBX checksum: 0xf20f871e -- "ZerviumT.pof"
Loading model 'Verian.pof'
BMPMAN: Found EFF (starlight-glow.eff) with 20 frames at 16 fps.
IBX: Found a good IBX to read for 'Verian.pof'.
IBX-DEBUG => POF checksum: 0x60fea247, IBX checksum: 0xa337f75f -- "Verian.pof"
ANI iconflail with size 56x24 (25.0% wasted)
ANI iconSD4 with size 56x24 (25.0% wasted)
ANI iconPromR with size 56x24 (25.0% wasted)
ANI iconnewton with size 56x24 (25.0% wasted)
ANI icon_dadvanced with size 56x24 (25.0% wasted)
ANI icon_leech with size 56x24 (25.0% wasted)
ANI iconKayser with size 56x24 (25.0% wasted)
ANI icon_avenger with size 56x24 (25.0% wasted)
ANI iconLich with size 56x24 (25.0% wasted)
ANI icon_flail with size 56x24 (25.0% wasted)
ANI icon_sbreaker with size 56x24 (25.0% wasted)
ANI icon_banshee with size 56x24 (25.0% wasted)
ANI icon_mL16 with size 56x24 (25.0% wasted)
Loading model 'shardmodel.pof'
Model shardmodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'shardmodel.pof'.
IBX-DEBUG => POF checksum: 0xe9d678bd, IBX checksum: 0x70fef1f1 -- "shardmodel.pof"
Loading model 'Berylmodel.pof'
Model Berylmodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Berylmodel.pof'.
IBX-DEBUG => POF checksum: 0xde67527a, IBX checksum: 0xe8d5fce7 -- "Berylmodel.pof"
Loading model 'citrinemodel.pof'
Model citrinemodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'citrinemodel.pof'.
IBX-DEBUG => POF checksum: 0x900cb644, IBX checksum: 0x0a4c46af -- "citrinemodel.pof"
Loading model 'Rainmodel.pof'
Model Rainmodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Rainmodel.pof'.
IBX-DEBUG => POF checksum: 0xf85c1c81, IBX checksum: 0x069d763a -- "Rainmodel.pof"
Loading model 'Beammodel.pof'
Model Beammodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Beammodel.pof'.
IBX-DEBUG => POF checksum: 0x5e5075e1, IBX checksum: 0xb5489498 -- "Beammodel.pof"
Loading model 'Phasemodel.pof'
Model Phasemodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Phasemodel.pof'.
IBX-DEBUG => POF checksum: 0xb956d4d5, IBX checksum: 0x41b9e556 -- "Phasemodel.pof"
Loading model 'Sapphiremodel.pof'
Model Sapphiremodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Sapphiremodel.pof'.
IBX-DEBUG => POF checksum: 0xa9cf3ef3, IBX checksum: 0x810a5f41 -- "Sapphiremodel.pof"
Loading model 'Coilmodel.pof'
Model Coilmodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Coilmodel.pof'.
IBX-DEBUG => POF checksum: 0xf0855d96, IBX checksum: 0x25ce0856 -- "Coilmodel.pof"
Loading model 'Starfiremodel.pof'
Model Starfiremodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Starfiremodel.pof'.
IBX-DEBUG => POF checksum: 0xab394c33, IBX checksum: 0x4da0a6f2 -- "Starfiremodel.pof"
Loading model 'Lancemodel.pof'
Model Lancemodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Lancemodel.pof'.
IBX-DEBUG => POF checksum: 0x7fad52f2, IBX checksum: 0x72081f91 -- "Lancemodel.pof"
Loading model 'swarmpod.pof'
Model swarmpod.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'swarmpod.pof'.
IBX-DEBUG => POF checksum: 0x52a567ee, IBX checksum: 0xa04f292a -- "swarmpod.pof"
Loading model 'slammerpod.pof'
Model slammerpod.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'slammerpod.pof'.
IBX-DEBUG => POF checksum: 0xe82f5b1b, IBX checksum: 0xac15f650 -- "slammerpod.pof"
Frame  0 too long!!: frametime = 17.984 (17.984)
Got event GS_EVENT_SHIP_SELECTION (13) in state GS_STATE_BRIEFING (10)
ANI iconwing01.ani with size 32x28 (12.5% wasted)
Got event GS_EVENT_WEAPON_SELECTION (21) in state GS_STATE_SHIP_SELECT (11)
ANI iconflail.ani with size 56x24 (25.0% wasted)
ANI iconSD4.ani with size 56x24 (25.0% wasted)
ANI iconPromR.ani with size 56x24 (25.0% wasted)
ANI 2_Tempest.ani with size 332x304 (40.6% wasted)
Got event GS_EVENT_SHIP_SELECTION (13) in state GS_STATE_WEAPON_SELECT (16)
Couldn't load model file in missionshipchoice.cpp
Couldn't load model file in missionshipchoice.cpp
Frame  0 too long!!: frametime = 0.313 (0.313)
Got event GS_EVENT_MAIN_MENU (0) in state GS_STATE_SHIP_SELECT (11)
Unloading in mission messages
WARNING!, Could not load door anim 2_Exit in main hall
WARNING!, Could not load door anim 2_Pilot in main hall
WARNING!, Could not load door anim 2_Continue in main hall
WARNING!, Could not load door anim 2_Tech in main hall
WARNING!, Could not load door anim 2_Option in main hall
WARNING!, Could not load door anim 2_Campaign in main hall
Got event GS_EVENT_QUIT_GAME (5) in state GS_STATE_MAIN_MENU (1)
Freeing all existing models...
... Log closed, Fri Jul 29 15:01:57 2011
WARNING: Unrecognized parameter in ai_profiles: $Default ship select effect:                      FS1

Interesting is this line too: WARNING: Unrecognized parameter in ai_profiles: $disarm or disable cause global ai goal effects:   YES   
I have no such thing in my ai_profile
Title: Re: Cinematics vs Game
Post by: Spoon on July 29, 2011, 08:12:20 am
Double postan because putting in two debug logs in code tags in one post exceeds the forum post limits


and here's a log without any lines in ai_profile but just $Selection Effect: FS1 in the ship table. This seems to act like the effect is set to 'off', if you select a ship it does not play either the FS1 or FS2 effect.

Code: [Select]
==========================================================================
DEBUG SPEW: No debug_filter.cfg found, so only general, error, and warning
categories can be shown and no debug_filter.cfg info will be saved.
==========================================================================
FreeSpace version: 3.6.13
Passed cmdline options:
  -spec_exp 15
  -fov 0.6
  -ogl_spec 20
  -spec_static 1.5
  -spec_point 1.2
  -spec_tube 1.5
  -ambient_factor 65
  -env
  -missile_lighting
  -glow
  -noscalevid
  -spec
  -normal
  -3dshockwave
  -post_process
  -bloom_intensity 40
  -fxaa
  -ballistic_gauge
  -rearm_timer
  -targetinfo
  -3dwarp
  -ship_choice_3d
  -weapon_choice_3d
  -warp_flash
  -mod Wings of Dawn II,mediavps_3612
  -fullscreen_window
Building file index...
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Advanced.vp' with a checksum of 0x4b8b0f5a
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_AnimGlows.vp' with a checksum of 0x6a554026
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.3612.vp' with a checksum of 0x59649c21
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.vp' with a checksum of 0x529cc70f
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.3612.vp' with a checksum of 0x9c510aa0
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.vp' with a checksum of 0xb9a9a485
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Music.vp' with a checksum of 0xb3e21469
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.3612.vp' with a checksum of 0x7c9d7e74
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.vp' with a checksum of 0x6ffd5c78
Found root pack 'G:\Games\Freespace\FS2OGGcutscenepack.vp' with a checksum of 0x84396e99
Found root pack 'G:\Games\Freespace\multi-mission-pack.vp' with a checksum of 0x925272dc
Found root pack 'G:\Games\Freespace\multi-voice-pack.vp' with a checksum of 0xd50e7442
Found root pack 'G:\Games\Freespace\root_fs2.vp' with a checksum of 0xce10d76c
Found root pack 'G:\Games\Freespace\smarty_fs2.vp' with a checksum of 0xddeb3b1e
Found root pack 'G:\Games\Freespace\sparky_fs2.vp' with a checksum of 0x0eae906e
Found root pack 'G:\Games\Freespace\sparky_hi_fs2.vp' with a checksum of 0xa11d56f1
Found root pack 'G:\Games\Freespace\stu_fs2.vp' with a checksum of 0xd77da83a
Found root pack 'G:\Games\Freespace\tango1_fs2.vp' with a checksum of 0x4c25221e
Found root pack 'G:\Games\Freespace\tango2_fs2.vp' with a checksum of 0x86920b82
Found root pack 'G:\Games\Freespace\tango3_fs2.vp' with a checksum of 0x705e8d71
Found root pack 'G:\Games\Freespace\warble_fs2.vp' with a checksum of 0xd85c305d
Searching root 'G:\Games\Freespace\Wings of Dawn II\' ... 5175 files
Searching root 'G:\Games\Freespace\mediavps_3612\' ... 125 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Advanced.vp' ... 1283 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_AnimGlows.vp' ... 1641 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.3612.vp' ... 315 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.vp' ... 1527 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.3612.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.vp' ... 1876 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Music.vp' ... 32 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.3612.vp' ... 13 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.vp' ... 94 files
Searching root 'G:\Games\Freespace\' ... 108 files
Searching root pack 'G:\Games\Freespace\FS2OGGcutscenepack.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\multi-mission-pack.vp' ... 108 files
Searching root pack 'G:\Games\Freespace\multi-voice-pack.vp' ... 307 files
Searching root pack 'G:\Games\Freespace\root_fs2.vp' ... 157 files
Searching root pack 'G:\Games\Freespace\smarty_fs2.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\sparky_fs2.vp' ... 3027 files
Searching root pack 'G:\Games\Freespace\sparky_hi_fs2.vp' ... 1337 files
Searching root pack 'G:\Games\Freespace\stu_fs2.vp' ... 2355 files
Searching root pack 'G:\Games\Freespace\tango1_fs2.vp' ... 32 files
Searching root pack 'G:\Games\Freespace\tango2_fs2.vp' ... 15 files
Searching root pack 'G:\Games\Freespace\tango3_fs2.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\warble_fs2.vp' ... 52 files
Searching root 'i:\' ... 0 files
Found 25 roots and 19619 files.
AutoLang: Language auto-detection successful...
Setting language to English
TBM  =>  Starting parse of 'mv_core-lcl.tbm' ...
Initializing OpenAL...
  OpenAL Vendor     : Creative Labs Inc.
  OpenAL Renderer   : Software
  OpenAL Version    : 1.1

  Found extension "ALC_EXT_EFX".

  Sample rate: 44100 (44100)
  EFX enabled: NO
  Playback device: Generic Software on Speakers (Realtek High Definition Audio)
  Capture device: Microphone (C-Media USB Headpho
... OpenAL successfully initialized!
Failed to init speech
Initializing OpenGL graphics device at 1680x1050 with 32-bit color...
  Initializing WGL...
  Requested WGL Video values = R: 8, G: 8, B: 8, depth: 32, double-buffer: 1
  Actual WGL Video values    = R: 8, G: 8, B: 8, depth: 32, double-buffer: 1
  OpenGL Vendor    : NVIDIA Corporation
  OpenGL Renderer  : GeForce GTX 570/PCI/SSE2
  OpenGL Version   : 4.1.0

  Using extension "GL_EXT_fog_coord".
  Using extension "GL_ARB_multitexture".
  Using extension "GL_ARB_texture_env_add".
  Using extension "GL_ARB_texture_compression".
  Using extension "GL_EXT_texture_compression_s3tc".
  Using extension "GL_EXT_texture_filter_anisotropic".
  Using extension "GL_ARB_texture_env_combine".
  Using extension "GL_EXT_compiled_vertex_array".
  Using extension "GL_EXT_draw_range_elements".
  Using extension "GL_ARB_texture_mirrored_repeat".
  Using extension "GL_ARB_texture_non_power_of_two".
  Using extension "GL_ARB_vertex_buffer_object".
  Using extension "GL_ARB_pixel_buffer_object".
  Using extension "GL_SGIS_generate_mipmap".
  Using extension "GL_EXT_framebuffer_object".
  Using extension "GL_ARB_texture_rectangle".
  Using extension "GL_EXT_bgra".
  Using extension "GL_ARB_texture_cube_map".
  Using extension "GL_EXT_texture_lod_bias".
  Using extension "GL_ARB_point_sprite".
  Using extension "GL_ARB_shading_language_100".
  Using extension "GL_ARB_shader_objects".
  Using extension "GL_ARB_vertex_shader".
  Using extension "GL_ARB_fragment_shader".
  Using extension "GL_NV_vertex_program3".
  Found special extension function "wglSwapIntervalEXT".

  Compiling shader: main-v.sdr (null-v.sdr), main-f.sdr (null-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lb-f.sdr)
  Compiling shader: main-v.sdr (b-v.sdr), main-f.sdr (b-f.sdr)
  Compiling shader: main-v.sdr (b-v.sdr), main-f.sdr (bg-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbg-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbgs-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbs-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lbgse-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lbse-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbgn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbgsn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbsn-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lbgsne-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lbsne-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfb-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbg-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbgs-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbs-f.sdr)
  Compiling shader: main-v.sdr (lfe-v.sdr), main-f.sdr (lfbgse-f.sdr)
  Compiling shader: main-v.sdr (lfe-v.sdr), main-f.sdr (lfbse-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbgn-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbgsn-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbn-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbsn-f.sdr)
  Compiling shader: main-v.sdr (lfne-v.sdr), main-f.sdr (lfbgsne-f.sdr)
  Compiling shader: main-v.sdr (lfne-v.sdr), main-f.sdr (lfbsne-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (null-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lg-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lgs-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (ls-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lgse-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lse-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lgn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lgsn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (ln-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lsn-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lgsne-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lsne-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (la-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lba-f.sdr)
  Compiling shader: main-v.sdr (ba-v.sdr), main-f.sdr (ba-f.sdr)
  Compiling shader: main-v.sdr (ba-v.sdr), main-f.sdr (bga-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lbga-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lbgsa-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lbsa-f.sdr)
  Compiling shader: main-v.sdr (lea-v.sdr), main-f.sdr (lbgsea-f.sdr)
  Compiling shader: main-v.sdr (lea-v.sdr), main-f.sdr (lbsea-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbgna-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbgsna-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbna-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbsna-f.sdr)
  Compiling shader: main-v.sdr (lnea-v.sdr), main-f.sdr (lbgsnea-f.sdr)
  Compiling shader: main-v.sdr (lnea-v.sdr), main-f.sdr (lbsnea-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfba-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfbga-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfbgsa-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfbsa-f.sdr)
  Compiling shader: main-v.sdr (lfea-v.sdr), main-f.sdr (lfbgsea-f.sdr)
  Compiling shader: main-v.sdr (lfea-v.sdr), main-f.sdr (lfbsea-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbgna-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbgsna-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbna-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbsna-f.sdr)
  Compiling shader: main-v.sdr (lfnea-v.sdr), main-f.sdr (lfbgsnea-f.sdr)
  Compiling shader: main-v.sdr (lfnea-v.sdr), main-f.sdr (lfbsnea-f.sdr)

  Compiling post-processing shader 1 ...
  Compiling post-processing shader 2 ...
  Compiling post-processing shader 3 ...
  Compiling post-processing shader 4 ...
  Compiling post-processing shader 5 ...
Loading built-in default shader for: fxaa-v.sdr
Loading built-in default shader for: fxaa-f.sdr
  Compiling post-processing shader 6 ...
Loading built-in default shader for: fxaapre-f.sdr

  Max texture units: 4 (32)
  Max elements vertices: 1048576
  Max elements indices: 1048576
  Max texture size: 16384x16384
  Max render buffer size: 16384x16384
  Can use compressed textures: YES
  Texture compression available: YES
  Post-processing enabled: YES
  Using trilinear texture filter.
  Using GLSL for model rendering.
  OpenGL Shader Version: 4.10 NVIDIA via Cg compiler
... OpenGL init is complete!
Size of bitmap info = 760 KB
Size of bitmap extra info = 52 bytes
ANI cursorweb with size 24x24 (25.0% wasted)
GRAPHICS: Initializing default colors...
SCRIPTING: Beginning initialization sequence...
SCRIPTING: Beginning Lua initialization...
LUA: Opening LUA state...
LUA: Initializing base Lua libraries...
LUA: Beginning ADE initialization
ADE: Initializing enumeration constants...
ADE: Assigning Lua session...
SCRIPTING: Beginning main hook parse sequence....
Wokka!  Error opening file (scripting.tbl)!
TABLES: Unable to parse 'scripting.tbl'!  Error code = 5.
TBM  =>  Starting parse of 'mv_flak-sct.tbm' ...
TBM  =>  Starting parse of 'mv_dbrs-sct.tbm' ...
TBM  =>  Starting parse of 'mv_exp-sct.tbm' ...
TBM  =>  Starting parse of 'misc-sct.tbm' ...
TBM  =>  Starting parse of 'gravity-sct.tbm' ...
TBM  =>  Starting parse of 'escort-sct.tbm' ...
TBM  =>  Starting parse of 'deathPart-sct.tbm' ...
SCRIPTING: Inititialization complete.
SCRIPTING: Splash screen overrides checked
SCRIPTING: Splash hook has been run
SCRIPTING: Splash screen conditional hook has been run
Using high memory settings...
Wokka!  Error opening file (interface.tbl)!
WMCGUI: Unable to parse 'interface.tbl'!  Error code = 5.
TBM  =>  Starting parse of 'mv_effects-sdf.tbm' ...
Windows reported 16 joysticks, we found 0
Current soundtrack set to -1 in event_music_reset_choices
TBM  =>  Starting parse of 'mv_music-mus.tbm' ...
TBM  =>  Starting parse of 'mv_effects-mfl.tbm' ...
TBM  =>  Starting parse of 'mv_effects-amr.tbm' ...
TBM  =>  Starting parse of 'mv_effects-wxp.tbm' ...
TBM  =>  Starting parse of 'Muzzleflashes-wxp.tbm' ...
TBM  =>  Starting parse of 'Explosions-wxp.tbm' ...
TBM  =>  Starting parse of 'beams-wxp.tbm' ...
BMPMAN: Found EFF (exp08.eff) with 141 frames at 25 fps.
BMPMAN: Found EFF (exp20.eff) with 81 frames at 40 fps.
BMPMAN: Found EFF (ExpMissileHit1.eff) with 92 frames at 30 fps.
BMPMAN: Found EFF (exp30.eff) with 131 frames at 30 fps.
BMPMAN: Found EFF (exp40.eff) with 33 frames at 24 fps.
BMPMAN: Found EFF (exp50.eff) with 54 frames at 30 fps.
BMPMAN: Found EFF (ExpW.eff) with 91 frames at 40 fps.
BMPMAN: Found EFF (ExpB.eff) with 74 frames at 30 fps.
BMPMAN: Found EFF (Zy.eff) with 43 frames at 30 fps.
BMPMAN: Found EFF (Tach.eff) with 31 frames at 30 fps.
BMPMAN: Found EFF (bomb_flare.eff) with 69 frames at 20 fps.
BMPMAN: Found EFF (flashexpblue.eff) with 36 frames at 30 fps.
BMPMAN: Found EFF (Dragonslave.eff) with 91 frames at 30 fps.
BMPMAN: Found EFF (Cflak.eff) with 54 frames at 30 fps.
BMPMAN: Found EFF (VX-23.eff) with 71 frames at 30 fps.
BMPMAN: Found EFF (Flashexp.eff) with 36 frames at 30 fps.
BMPMAN: Found EFF (Flashexp2.eff) with 44 frames at 30 fps.
BMPMAN: Found EFF (Zyshipexp.eff) with 51 frames at 30 fps.
BMPMAN: Found EFF (Blackhole.eff) with 63 frames at 30 fps.
BMPMAN: Found EFF (exp04.eff) with 61 frames at 30 fps.
BMPMAN: Found EFF (exp05.eff) with 72 frames at 30 fps.
BMPMAN: Found EFF (exp06.eff) with 58 frames at 30 fps.
BMPMAN: Found EFF (capflash.eff) with 40 frames at 10 fps.
BMPMAN: Found EFF (Maxim_Impact.eff) with 23 frames at 30 fps.
ANI Lamprey_Impact with size 80x80 (37.5% wasted)
BMPMAN: Found EFF (Gmuzzle.eff) with 5 frames at 30 fps.
BMPMAN: Found EFF (PWmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Rmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Bmuzzle.eff) with 5 frames at 30 fps.
BMPMAN: Found EFF (Cmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Fmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Dmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Smoke.eff) with 71 frames at 35 fps.
BMPMAN: Found EFF (Vk01NMuzzle.eff) with 15 frames at 30 fps.
BMPMAN: Found EFF (BWmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (exp07.eff) with 61 frames at 30 fps.
BMPMAN: Found EFF (Beamhitglow.eff) with 1 frames at 30 fps.
BMPMAN: Found EFF (HSMHS.eff) with 60 frames at 30 fps.
BMPMAN: Found EFF (HSMHSsmall.eff) with 60 frames at 30 fps.
BMPMAN: Found EFF (VX_02imp.eff) with 11 frames at 30 fps.
BMPMAN: Found EFF (Furaexp1.eff) with 81 frames at 30 fps.
BMPMAN: Found EFF (StarfireExp.eff) with 101 frames at 30 fps.
BMPMAN: Found EFF (SmallredExp.eff) with 46 frames at 30 fps.
BMPMAN: Found EFF (ParticleSmoke01.eff) with 54 frames at 24 fps.
WARNING: "Lifetime min or max specified, but $Lifetime was also specified; min or max will be used." at weapons.cpp:1400
TBM  =>  Starting parse of 'mv_core-wep.tbm' ...
TBM  =>  Starting parse of 'mv_effects-wep.tbm' ...
TBM  =>  Starting parse of 'mv_assets-wep.tbm' ...
TBM  =>  Starting parse of 'Wingmen-wep.tbm' ...
TBM  =>  Starting parse of 'Muzzleflashes-wep.tbm' ...
TBM  =>  Starting parse of 'beams-wep.tbm' ...
WARNING: Unrecognized parameter in ai_profiles: $disarm or disable cause global ai goal effects: YES

TBM  =>  Starting parse of 'mv_effects-obt.tbm' ...
TBM  =>  Starting parse of 'turrets-obt.tbm' ...
TBM  =>  Starting parse of 'Targetpriority-obt.tbm' ...
BMPMAN: Found EFF (ParticleSmoke02.eff) with 39 frames at 24 fps.
Particle effect for impact spew disabled on ship 'Fir'kyr Voidbringer'.
Particle effect for damage spew disabled on ship 'Fir'kyr Voidbringer'.
Particle effect for impact spew disabled on ship 'Fir'kyr VoidBearer'.
Particle effect for damage spew disabled on ship 'Fir'kyr VoidBearer'.
Particle effect for impact spew disabled on ship 'Fir'kyr VoidKeeper'.
Particle effect for damage spew disabled on ship 'Fir'kyr VoidKeeper'.
TBM  =>  Starting parse of 'mv_core-shp.tbm' ...
TBM  =>  Starting parse of 'mv_effects-shp.tbm' ...
TBM  =>  Starting parse of 'mv_assets-shp.tbm' ...
TBM  =>  Starting parse of 'Wingmen-shp.tbm' ...
ANI head1 with size 256x206 (19.5% wasted)
TBM  =>  Starting parse of 'mv_core-hdg.tbm' ...
ANI support1 with size 108x24 (25.0% wasted)
ANI damage1 with size 148x25 (21.9% wasted)
ANI wingman1 with size 71x53 (17.2% wasted)
ANI wingman2 with size 35x53 (17.2% wasted)
ANI wingman3 with size 14x53 (17.2% wasted)
ANI toggle1 with size 57x20 (37.5% wasted)
ANI weapons1 with size 126x20 (37.5% wasted)
ANI weapons1_b with size 150x20 (37.5% wasted)
ANI objective1 with size 149x21 (34.4% wasted)
ANI netlag1 with size 29x30 (6.3% wasted)
ANI targhit1 with size 31x21 (34.4% wasted)
ANI 2_energy2 with size 86x96 (25.0% wasted)
ANI time1 with size 47x23 (28.1% wasted)
ANI energy1 with size 12x41 (35.9% wasted)
ANI targetview3 with size 7x20 (37.5% wasted)
ANI targetview1 with size 137x156 (39.1% wasted)
ANI targetview2 with size 4x96 (25.0% wasted)
ANI 2_reticle1 with size 40x24 (25.0% wasted)
ANI 2_leftarc with size 103x252 (1.6% wasted)
ANI 2_rightarc1 with size 103x252 (1.6% wasted)
ANI 2_toparc2 with size 35x24 (25.0% wasted)
ANI 2_toparc3 with size 41x29 (9.4% wasted)
ANI 2_lead1 with size 26x26 (18.8% wasted)
ANI 2_lock1 with size 56x53 (17.2% wasted)
ANI 2_lockspin with size 100x100 (21.9% wasted)
ANI 2_radar1 with size 209x170 (33.6% wasted)
TBM  =>  Starting parse of 'mv_effects-str.tbm' ...
loading animated cursor "cursor"
ANI cursor with size 24x24 (25.0% wasted)
MediaVPs: Flaming debris script loaded!
MediaVPs: Explosions script loaded!
LibraryManager: Loaded file "class.lua"
LibraryManager: Loaded file "effectManager.lua"
LibraryManager: Loaded file "strings.lua"
LibraryManager: Loaded file "converter.lua"
LibraryManager: Loaded file "parser.lua"
LibraryManager: Loaded file "objectWrapper.lua"
LibraryManager: Loaded file "particles.lua"
LibraryManager: Loaded file "trailInfo.lua"
LibraryManager: Loaded file "particleParser.lua"
Ships.tbl is : INVALID!!!!
Weapons.tbl is : INVALID!!!!
cfile_init() took 195
Got event GS_EVENT_GAME_INIT (49) in state NOT A VALID STATE (0)
ANI cursor.ani with size 24x24 (25.0% wasted)
Got event GS_EVENT_MAIN_MENU (0) in state GS_STATE_INITIAL_PLAYER_SELECT (37)
WARNING!, Could not load door anim 2_Exit in main hall
WARNING!, Could not load door anim 2_Pilot in main hall
WARNING!, Could not load door anim 2_Continue in main hall
WARNING!, Could not load door anim 2_Tech in main hall
WARNING!, Could not load door anim 2_Option in main hall
WARNING!, Could not load door anim 2_Campaign in main hall
Got event GS_EVENT_TECH_MENU (11) in state GS_STATE_MAIN_MENU (1)
Techroom successfully initialized, now changing tab...
Loading model 'Ray.pof'
IBX: Found a good IBX to read for 'Ray.pof'.
IBX-DEBUG => POF checksum: 0xffbd65f5, IBX checksum: 0x521d437a -- "Ray.pof"
Got event GS_EVENT_SIMULATOR_ROOM (58) in state GS_STATE_TECH_MENU (7)
Freeing all existing models...
Frame  0 too long!!: frametime = 0.547 (0.547)
Got event GS_EVENT_START_GAME (1) in state GS_STATE_SIMULATOR_ROOM (20)
=================== STARTING LEVEL LOAD ==================
BMPMAN: Found EFF (2_Loading.eff) with 14 frames at 15 fps.
Starting model page in...
Beginning level bitmap paging...
BMPMAN: Found EFF (particleexp01.eff) with 10 frames at 8 fps.
TBM  =>  Starting parse of 'mv_effects-fbl.tbm' ...
BMPMAN: Found EFF (WarpMap01.eff) with 30 frames at 30 fps.
BMPMAN: Found EFF (WarpMap02.eff) with 30 frames at 30 fps.
BMPMAN: Found EFF (Rock_Exp.eff) with 55 frames at 30 fps.
BMPMAN: Found EFF (Furaexp2.eff) with 150 frames at 30 fps.
Loading warp model
Loading model 'warp.pof'
IBX: Found a good IBX to read for 'warp.pof'.
IBX-DEBUG => POF checksum: 0xbf802ad0, IBX checksum: 0xe7aa5a55 -- "warp.pof"
 600
BMPMAN: Found EFF (shieldhit01a.eff) with 23 frames at 21 fps.
BMPMAN: Found EFF (CSAshieldhit.eff) with 37 frames at 30 fps.
BMPMAN: Found EFF (shieldhit02a.eff) with 45 frames at 30 fps.
BMPMAN: Found EFF (shieldhit04a.eff) with 38 frames at 30 fps.
BMPMAN: Found EFF (shieldhit03a.eff) with 22 frames at 30 fps.
SHOCKWAVE =>  Loading default shockwave model...
Loading model 'shockwave.pof'
BMPMAN: Found EFF (shockwave3d-glow.eff) with 159 frames at 24 fps.
Model shockwave.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'shockwave.pof'.
IBX-DEBUG => POF checksum: 0xe3e74b11, IBX checksum: 0x314e1260 -- "shockwave.pof"
SHOCKWAVE =>  Default model load: SUCCEEDED!!
MISSION LOAD: 'Testings'
Using callsign: Isa
Loading model 'Kaze-B.pof'
IBX: Found a good IBX to read for 'Kaze-B.pof'.
IBX-DEBUG => POF checksum: 0xeb4b4dc5, IBX checksum: 0x012d0d21 -- "Kaze-B.pof"
ANI Kayser_Particle with size 80x80 (37.5% wasted)
BMPMAN: Found EFF (Particle_green.eff) with 11 frames at 6 fps.
Loading model 'CelestialF.pof'
BMPMAN: Found EFF (hullcelestial-glow.eff) with 14 frames at 12 fps.
BMPMAN: Found EFF (yellow2glass-glow.eff) with 17 frames at 12 fps.
IBX: Found a good IBX to read for 'CelestialF.pof'.
IBX-DEBUG => POF checksum: 0x55c3727a, IBX checksum: 0x49b1fa78 -- "CelestialF.pof"
Loading model 'CelestialB.pof'
IBX: Found a good IBX to read for 'CelestialB.pof'.
IBX-DEBUG => POF checksum: 0xb7c57904, IBX checksum: 0xe5839b8a -- "CelestialB.pof"
Starting mission message count : 1
Ending mission message count : 1
Current soundtrack set to -1 in event_music_reset_choices
Current soundtrack set to -1 in event_music_set_soundtrack
Loading model 'Celestial.pof'
IBX: Found a good IBX to read for 'Celestial.pof'.
IBX-DEBUG => POF checksum: 0xa4ba8c3f, IBX checksum: 0xfbcb456e -- "Celestial.pof"
Loading model 'astscar.pof'
IBX: Found a good IBX to read for 'astscar.pof'.
IBX-DEBUG => POF checksum: 0x75214c04, IBX checksum: 0x9c181b0a -- "astscar.pof"
Allocating space for at least 0 new ship subsystems ...  a total of 200 is now available (0 in-use).
Loading model 'astscarB.pof'
IBX: Found a good IBX to read for 'astscarB.pof'.
IBX-DEBUG => POF checksum: 0x9b9f00a9, IBX checksum: 0x87642cf8 -- "astscarB.pof"
Loading model 'astscarc.pof'
IBX: Found a good IBX to read for 'astscarc.pof'.
IBX-DEBUG => POF checksum: 0x88f405dc, IBX checksum: 0x68737e50 -- "astscarc.pof"
Loading model 'ZySlipstream.pof'
BMPMAN: Found EFF (blueglass-normal.eff) with 20 frames at 12 fps.
IBX: Found a good IBX to read for 'ZySlipstream.pof'.
IBX-DEBUG => POF checksum: 0x988e4927, IBX checksum: 0xab9dd30c -- "ZySlipstream.pof"
Loading model 'cavalier.pof'
IBX: Found a good IBX to read for 'cavalier.pof'.
IBX-DEBUG => POF checksum: 0xe9949d9c, IBX checksum: 0xc0696ef6 -- "cavalier.pof"
Loading model 'CelestialPOD.pof'
IBX: Found a good IBX to read for 'CelestialPOD.pof'.
IBX-DEBUG => POF checksum: 0xf32a0e61, IBX checksum: 0x8046b233 -- "CelestialPOD.pof"
Loading model 'CelestialCANNON.pof'
IBX: Found a good IBX to read for 'CelestialCANNON.pof'.
IBX-DEBUG => POF checksum: 0x6adce0e0, IBX checksum: 0xa5d59538 -- "CelestialCANNON.pof"
Loading model 'FunnelB.pof'
BMPMAN: Found EFF (mcwsring-glow.eff) with 12 frames at 9 fps.
IBX: Found a good IBX to read for 'FunnelB.pof'.
IBX-DEBUG => POF checksum: 0x52cf37c0, IBX checksum: 0x39b3fe74 -- "FunnelB.pof"
Loading model 'FunnelM.pof'
IBX: Found a good IBX to read for 'FunnelM.pof'.
IBX-DEBUG => POF checksum: 0x11c0b302, IBX checksum: 0x985451dd -- "FunnelM.pof"
Loading model 'Caliburn.pof'
IBX: Found a good IBX to read for 'Caliburn.pof'.
IBX-DEBUG => POF checksum: 0x772466ab, IBX checksum: 0xbc5fa548 -- "Caliburn.pof"
Loading model 'Challenger.pof'
BMPMAN: Found EFF (challengeri-glow.eff) with 19 frames at 12 fps.
IBX: Found a good IBX to read for 'Challenger.pof'.
IBX-DEBUG => POF checksum: 0x1cb41c0c, IBX checksum: 0x84dfbc2a -- "Challenger.pof"
Loading model 'AestivalR6.pof'
BMPMAN: Found EFF (mcwshull-glow.eff) with 7 frames at 6 fps.
IBX: Found a good IBX to read for 'AestivalR6.pof'.
IBX-DEBUG => POF checksum: 0xd4f0e87e, IBX checksum: 0xb18fc8d9 -- "AestivalR6.pof"
Loading model 'Pillager.pof'
IBX: Found a good IBX to read for 'Pillager.pof'.
IBX-DEBUG => POF checksum: 0x913425da, IBX checksum: 0x346d4ce7 -- "Pillager.pof"
Loading model 'Abyss-skybox.pof'
Model Abyss-skybox.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Abyss-skybox.pof'.
IBX-DEBUG => POF checksum: 0xe9e8030a, IBX checksum: 0x47b561d9 -- "Abyss-skybox.pof"
=================== STARTING LEVEL DATA LOAD ==================
Allocating space for at least 68 new ship subsystems ...  a total of 400 is now available (159 in-use).
About to page in ships!
BMPMAN: Found EFF (Cordipulse.eff) with 15 frames at 30 fps.
BMPMAN: Found EFF (Starfire.eff) with 21 frames at 24 fps.
Someone passed an extension to bm_load for file 'kinetictrail.dds'
Someone passed an extension to bm_load for file 'kinetictrail.dds'
BMPMAN: Found EFF (Particle_Blue.eff) with 11 frames at 6 fps.
BMPMAN: Found EFF (Wavemotion.eff) with 50 frames at 30 fps.
BMPMAN: Found EFF (particle_red.eff) with 11 frames at 22 fps.
Someone passed an extension to bm_load for file 'Pulse_Trail.dds'
Loading model 'Tempest.pof'
IBX: Found a good IBX to read for 'Tempest.pof'.
IBX-DEBUG => POF checksum: 0x4fcb12af, IBX checksum: 0xef8699b5 -- "Tempest.pof"
Loading model 'Wildfire.pof'
Model Wildfire.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Wildfire.pof'.
IBX-DEBUG => POF checksum: 0x259e6a90, IBX checksum: 0x47db1266 -- "Wildfire.pof"
Loading model 'Dart.pof'
Model Dart.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Dart.pof'.
IBX-DEBUG => POF checksum: 0xd10e57c4, IBX checksum: 0x16f288c5 -- "Dart.pof"
Loading model 'phoenix.pof'
IBX: Found a good IBX to read for 'phoenix.pof'.
IBX-DEBUG => POF checksum: 0xd02acd12, IBX checksum: 0x3fd08367 -- "phoenix.pof"
Loading model 'Wasp.pof'
IBX: Found a good IBX to read for 'Wasp.pof'.
IBX-DEBUG => POF checksum: 0xd2a15d45, IBX checksum: 0x12c8e68f -- "Wasp.pof"
Loading model 'Drg.pof'
Model Drg.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Drg.pof'.
IBX-DEBUG => POF checksum: 0x637bd23b, IBX checksum: 0x3eb1e0ee -- "Drg.pof"
Loading model 'piranha.pof'
IBX: Found a good IBX to read for 'piranha.pof'.
IBX-DEBUG => POF checksum: 0x484195d2, IBX checksum: 0xf272dc8a -- "piranha.pof"
Loading model 'hornet.pof'
IBX: Found a good IBX to read for 'hornet.pof'.
IBX-DEBUG => POF checksum: 0x066a989a, IBX checksum: 0x8d7227a4 -- "hornet.pof"
Loading model 'Refraction.pof'
IBX: Found a good IBX to read for 'Refraction.pof'.
IBX-DEBUG => POF checksum: 0x3c6e6e35, IBX checksum: 0xae05f725 -- "Refraction.pof"
Loading model 'Tsunami.pof'
IBX: Found a good IBX to read for 'Tsunami.pof'.
IBX-DEBUG => POF checksum: 0x80da58b6, IBX checksum: 0xe8167fc9 -- "Tsunami.pof"
Loading model 'trebuchet.pof'
No subsystems found for model "trebuchet.pof".
IBX: Found a good IBX to read for 'trebuchet.pof'.
IBX-DEBUG => POF checksum: 0x7c28aa13, IBX checksum: 0x837b58e3 -- "trebuchet.pof"
Loading model 'Booster.pof'
IBX: Found a good IBX to read for 'Booster.pof'.
IBX-DEBUG => POF checksum: 0x286949ee, IBX checksum: 0x0be77b05 -- "Booster.pof"
Loading model 'newhornet.pof'
IBX: Found a good IBX to read for 'newhornet.pof'.
IBX-DEBUG => POF checksum: 0x2c76000e, IBX checksum: 0x19f7f55e -- "newhornet.pof"
Loading model 'crossbow.pof'
IBX: Found a good IBX to read for 'crossbow.pof'.
IBX-DEBUG => POF checksum: 0x19e682bb, IBX checksum: 0x885d0786 -- "crossbow.pof"
Loading model 'yari.pof'
IBX: Found a good IBX to read for 'yari.pof'.
IBX-DEBUG => POF checksum: 0x9832d790, IBX checksum: 0x237df9b5 -- "yari.pof"
Loading model 'treb2.pof'
Model treb2.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'treb2.pof'.
IBX-DEBUG => POF checksum: 0x1b46178a, IBX checksum: 0x9ecd0492 -- "treb2.pof"
Loading model 'JackhammerMk2.pof'
Model JackhammerMk2.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'JackhammerMk2.pof'.
IBX-DEBUG => POF checksum: 0x44e33a9b, IBX checksum: 0x41f72935 -- "JackhammerMk2.pof"
Loading model 'helios.pof'
IBX: Found a good IBX to read for 'helios.pof'.
IBX-DEBUG => POF checksum: 0xc75db1da, IBX checksum: 0x60bd5c91 -- "helios.pof"
Loading model 'pulsar01.pof'
Model pulsar01.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'pulsar01.pof'.
IBX-DEBUG => POF checksum: 0xd7a4ff27, IBX checksum: 0x7ec85704 -- "pulsar01.pof"
Loading model 'rocket.pof'
BMPMAN: Found EFF (redglass-glow.eff) with 18 frames at 12 fps.
IBX: Found a good IBX to read for 'rocket.pof'.
IBX-DEBUG => POF checksum: 0x8e9a54d2, IBX checksum: 0xff25cfa2 -- "rocket.pof"
Loading model 'hominglaser.pof'
IBX: Found a good IBX to read for 'hominglaser.pof'.
IBX-DEBUG => POF checksum: 0x869fb72a, IBX checksum: 0x6b536b8f -- "hominglaser.pof"
Loading model 'cmeasure01.pof'
IBX: Found a good IBX to read for 'cmeasure01.pof'.
IBX-DEBUG => POF checksum: 0x562739c3, IBX checksum: 0x76256515 -- "cmeasure01.pof"
Loading model 'NFlare.pof'
Model NFlare.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'NFlare.pof'.
IBX-DEBUG => POF checksum: 0x3a6824e3, IBX checksum: 0xf4f695ad -- "NFlare.pof"
Loading model 'Flare.pof'
Model Flare.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Flare.pof'.
IBX-DEBUG => POF checksum: 0x65fdee7d, IBX checksum: 0xc51f242b -- "Flare.pof"
Loading model 'debris01.pof'
IBX: Found a good IBX to read for 'debris01.pof'.
IBX-DEBUG => POF checksum: 0x974f214b, IBX checksum: 0x0cb49c79 -- "debris01.pof"
Loading model 'debris02.pof'
IBX: Found a good IBX to read for 'debris02.pof'.
IBX-DEBUG => POF checksum: 0x8e0eed50, IBX checksum: 0x3e979514 -- "debris02.pof"
BMPMAN: Found EFF (Ringflash.eff) with 35 frames at 30 fps.
Paging in mission messages
Stopping model page in...
ANI head1.ani with size 256x206 (19.5% wasted)
ANI support1.ani with size 108x24 (25.0% wasted)
ANI damage1.ani with size 148x25 (21.9% wasted)
ANI wingman1.ani with size 71x53 (17.2% wasted)
ANI wingman2.ani with size 35x53 (17.2% wasted)
ANI wingman3.ani with size 14x53 (17.2% wasted)
ANI toggle1.ani with size 57x20 (37.5% wasted)
ANI weapons1.ani with size 126x20 (37.5% wasted)
ANI weapons1_b.ani with size 150x20 (37.5% wasted)
ANI objective1.ani with size 149x21 (34.4% wasted)
ANI netlag1.ani with size 29x30 (6.3% wasted)
ANI targhit1.ani with size 31x21 (34.4% wasted)
ANI 2_energy2.ani with size 86x96 (25.0% wasted)
ANI time1.ani with size 47x23 (28.1% wasted)
ANI energy1.ani with size 12x41 (35.9% wasted)
ANI targetview3.ani with size 7x20 (37.5% wasted)
ANI targetview1.ani with size 137x156 (39.1% wasted)
ANI targetview2.ani with size 4x96 (25.0% wasted)
ANI 2_reticle1.ani with size 40x24 (25.0% wasted)
ANI 2_leftarc.ani with size 103x252 (1.6% wasted)
ANI 2_rightarc1.ani with size 103x252 (1.6% wasted)
ANI 2_toparc2.ani with size 35x24 (25.0% wasted)
ANI 2_toparc3.ani with size 41x29 (9.4% wasted)
ANI 2_lead1.ani with size 26x26 (18.8% wasted)
ANI 2_lock1.ani with size 56x53 (17.2% wasted)
ANI 2_lockspin.ani with size 100x100 (21.9% wasted)
ANI 2_radar1.ani with size 209x170 (33.6% wasted)
ANI Kayser_Particle.ani with size 80x80 (37.5% wasted)
User bitmap 'TMP256x256+8'
User bitmap 'TMP256x256+8'
User bitmap 'TMP128x128+8'
Bmpman: 3813/4750 bitmap slots in use.
Ending level bitmap paging...
=================== ENDING LOAD ================
Real count = 375,  Estimated count = 425
================================================
MediaVPs: Flaming debris script ACTIVE!
SCRIPTING: Starting flashy deaths script loading

Class: lsf hazel-d
DRM: 0.25
DE: 2
DM: 1
FRM: 1
FE: 6
BE: 0.35
BEDu: 2000
BEDM: 6

Class: sttq gaster
DRM: 0.25
DE: 2
DM: 1
FRM: 1
FE: 6
BE: 0.35
BEDu: 2000
BEDM: 6

Class: prometheus frame
DRM: 0.25
DE: 2
DM: 1
FRM: 1
FE: 6
BE: 0.5
BEDu: 3000
BEDM: 2.5

Class: cordi broodlord
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2500
BEDM: 7

Class: sttq alate
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2000
BEDM: 6

Class: nordera battleaxe
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2000
BEDM: 5

Class: nordera blacksmith
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2500
BEDM: 5

Class: adasya
DRM: 0.25
DE: 2
DM: 1
FRM: 1
FE: 6
BE: 0.45
BEDu: 1500
BEDM: 5

Class: zgf archon
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 3000
BEDM: 5

Class: hertak armageddon
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 3000
BEDM: 10

Class: hertak flagship
DRM: 0.25
DE: 2
DM: 1
FRM: 5
FE: 6
BE: 0.75
BEDu: 4500
BEDM: 13

Class: fir'kyr voidbringer
DRM: 0.5
DE: 2
DM: 1
FRM: 5
FE: 6
BE: 0.85
BEDu: 6000
BEDM: 10

Class: fir'kyr voidbearer
DRM: 0.6
DE: 2
DM: 1.2
FRM: 5.5
FE: 6
BE: 0.9
BEDu: 8000
BEDM: 12

Class: fir'kyr voidkeeper
DRM: 0.8
DE: 2
DM: 1.5
FRM: 6
FE: 6
BE: 0.95
BEDu: 10000
BEDM: 15

Class: lsf skirmisher
DRM: 0.25
DE: 2
DM: 1
FRM: 1
FE: 6
BE: 0.45
BEDu: 2000
BEDM: 3.5

Class: lsf challenger
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2500
BEDM: 5

Class: lsf challenger ii
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.45
BEDu: 2500
BEDM: 5

Class: lsf guardian angel
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 3000
BEDM: 5

Class: lsf champion
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 3000
BEDM: 5

Class: lsf crusader 
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 2750
BEDM: 5

Class: csa starlight
DRM: 0.25
DE: 2
DM: 1
FRM: 2
FE: 6
BE: 0.5
BEDu: 1750
BEDM: 4.5

Class: sred
BEI: 0.2
BEDu: 200
BEDi: 100

Class: lred
BEI: 0.2
BEDu: 600
BEDi: 300

Class: bfred
BEI: 0.2
BEDu: 2100
BEDi: 1050

Class: terslash
BEI: 0.2
BEDu: 350
BEDi: 175

Class: lterslash
BEI: 0.2
BEDu: 150
BEDi: 75

Class: bfgreen
BEI: 0.2
BEDu: 1900
BEDi: 950

Class: lrbgreen
BEI: 0.2
BEDu: 1900
BEDi: 950

Class: bgreen
BEI: 0.2
BEDu: 1200
BEDi: 650

Class: sgreen
BEI: 0.2
BEDu: 210
BEDi: 105

Class: svas
BEI: 0.2
BEDu: 350
BEDi: 175

Class: bvas
BEI: 0.2
BEDu: 1100
BEDi: 550

Class: vslash
BEI: 0.2
BEDu: 750
BEDi: 375

Class: green beam
BEI: 0.2
BEDu: 200
BEDi: 100

Class: mjolnirbeam
BEI: 0.2
BEDu: 750
BEDi: 375

Class: mjolnirbeam#home
BEI: 0.2
BEDu: 400
BEDi: 200

Class: cyclops
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: cyclops#short
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: rebel bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 400
BEDi: 200

Class: helios
FR: 100
FE: 6
BEI: 0.6
BEDu: 6800
BEDi: 3400

Class: unknown bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 1500
BEDi: 750

Class: unknown megabomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 3200
BEDi: 1600

Class: shivan bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: shivan bomb#short
FR: 100
FE: 6
BEI: 0.6
BEDu: 2000
BEDi: 1000

Class: shivan weak bomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 400
BEDi: 200

Class: shivan megabomb
FR: 100
FE: 6
BEI: 0.6
BEDu: 6800
BEDi: 3400

Class: fusion mortar
FR: 20
FE: 6
BEI: 0.2
BEDu: 80
BEDi: 40

Class: vasudan flux cannon
FR: 20
FE: 6
BEI: 0.4
BEDu: 500
BEDi: 250
LibraryManager: Reloading all loaded librariesLibraryManager: Loaded file "class.lua"
LibraryManager: Loaded file "objectWrapper.lua"
LibraryManager: Loaded file "particles.lua"
LibraryManager: Loaded file "strings.lua"
LibraryManager: Loaded file "parser.lua"
LibraryManager: Loaded file "converter.lua"
LibraryManager: Loaded file "trailInfo.lua"
LibraryManager: Loaded file "particleParser.lua"
LibraryManager: Loaded file "effectManager.lua"
PARTICLE SCRIPT: Parsing file "particles.cfg"
PARTICLE SCRIPT: Configuration file read. Loaded 49 entries and took 0 ms
Received post for event GS_EVENT_START_BRIEFING during state transtition. Find Allender if you are unsure if this is bad.
Got event GS_EVENT_START_BRIEFING (15) in state GS_STATE_START_GAME (52)
ANI 2_BriefMap with size 918x400 (21.9% wasted)
ANI iconwing01 with size 32x28 (12.5% wasted)
Loading model 'Ray.pof'
IBX: Found a good IBX to read for 'Ray.pof'.
IBX-DEBUG => POF checksum: 0xffbd65f5, IBX checksum: 0x521d437a -- "Ray.pof"
Loading model 'RaymkIII.pof'
BMPMAN: Found EFF (ray mkiii-glow.eff) with 17 frames at 30 fps.
IBX: Found a good IBX to read for 'RaymkIII.pof'.
IBX-DEBUG => POF checksum: 0xc3e79b82, IBX checksum: 0xa58e9179 -- "RaymkIII.pof"
Loading model 'RaymkIII-E.pof'
IBX: Found a good IBX to read for 'RaymkIII-E.pof'.
IBX-DEBUG => POF checksum: 0x83520ca4, IBX checksum: 0x41e26289 -- "RaymkIII-E.pof"
Loading model 'RaymkIII-WE.pof'
IBX: Found a good IBX to read for 'RaymkIII-WE.pof'.
IBX-DEBUG => POF checksum: 0x737f4599, IBX checksum: 0x8bfa2638 -- "RaymkIII-WE.pof"
Loading model 'Kaze-BB.pof'
IBX: Found a good IBX to read for 'Kaze-BB.pof'.
IBX-DEBUG => POF checksum: 0x756c833d, IBX checksum: 0xca354163 -- "Kaze-BB.pof"
Loading model 'Hazel.pof'
IBX: Found a good IBX to read for 'Hazel.pof'.
IBX-DEBUG => POF checksum: 0x14803329, IBX checksum: 0x077637e4 -- "Hazel.pof"
Loading model 'RaymkIV.pof'
IBX: Found a good IBX to read for 'RaymkIV.pof'.
IBX-DEBUG => POF checksum: 0x7ce7f0c1, IBX checksum: 0x527b0f35 -- "RaymkIV.pof"
Loading model 'Excelion.POF'
IBX: Found a good IBX to read for 'Excelion.POF'.
IBX-DEBUG => POF checksum: 0xd31c76d4, IBX checksum: 0x5a6c01da -- "Excelion.POF"
Loading model 'Prometheus.POF'
IBX: Found a good IBX to read for 'Prometheus.POF'.
IBX-DEBUG => POF checksum: 0x7102ba28, IBX checksum: 0xb3c5ae41 -- "Prometheus.POF"
Loading model 'mcwsb.pof'
IBX: Found a good IBX to read for 'mcwsb.pof'.
IBX-DEBUG => POF checksum: 0x0e7c3a7d, IBX checksum: 0x92677ffc -- "mcwsb.pof"
Loading model 'Zervium.pof'
BMPMAN: Found EFF (hullsilver-glow.eff) with 8 frames at 9 fps.
BMPMAN: Found EFF (ringsilver-glow.eff) with 12 frames at 9 fps.
IBX: Found a good IBX to read for 'Zervium.pof'.
IBX-DEBUG => POF checksum: 0x73dfae62, IBX checksum: 0x4dadabf9 -- "Zervium.pof"
Loading model 'ZerviumT.pof'
IBX: Found a good IBX to read for 'ZerviumT.pof'.
IBX-DEBUG => POF checksum: 0xb79a04f3, IBX checksum: 0xf20f871e -- "ZerviumT.pof"
Loading model 'Verian.pof'
BMPMAN: Found EFF (starlight-glow.eff) with 20 frames at 16 fps.
IBX: Found a good IBX to read for 'Verian.pof'.
IBX-DEBUG => POF checksum: 0x60fea247, IBX checksum: 0xa337f75f -- "Verian.pof"
ANI iconflail with size 56x24 (25.0% wasted)
ANI iconSD4 with size 56x24 (25.0% wasted)
ANI iconPromR with size 56x24 (25.0% wasted)
ANI iconnewton with size 56x24 (25.0% wasted)
ANI icon_dadvanced with size 56x24 (25.0% wasted)
ANI icon_leech with size 56x24 (25.0% wasted)
ANI iconKayser with size 56x24 (25.0% wasted)
ANI icon_avenger with size 56x24 (25.0% wasted)
ANI iconLich with size 56x24 (25.0% wasted)
ANI icon_flail with size 56x24 (25.0% wasted)
ANI icon_sbreaker with size 56x24 (25.0% wasted)
ANI icon_banshee with size 56x24 (25.0% wasted)
ANI icon_mL16 with size 56x24 (25.0% wasted)
Loading model 'shardmodel.pof'
Model shardmodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'shardmodel.pof'.
IBX-DEBUG => POF checksum: 0xe9d678bd, IBX checksum: 0x70fef1f1 -- "shardmodel.pof"
Loading model 'Berylmodel.pof'
Model Berylmodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Berylmodel.pof'.
IBX-DEBUG => POF checksum: 0xde67527a, IBX checksum: 0xe8d5fce7 -- "Berylmodel.pof"
Loading model 'citrinemodel.pof'
Model citrinemodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'citrinemodel.pof'.
IBX-DEBUG => POF checksum: 0x900cb644, IBX checksum: 0x0a4c46af -- "citrinemodel.pof"
Loading model 'Rainmodel.pof'
Model Rainmodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Rainmodel.pof'.
IBX-DEBUG => POF checksum: 0xf85c1c81, IBX checksum: 0x069d763a -- "Rainmodel.pof"
Loading model 'Beammodel.pof'
Model Beammodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Beammodel.pof'.
IBX-DEBUG => POF checksum: 0x5e5075e1, IBX checksum: 0xb5489498 -- "Beammodel.pof"
Loading model 'Phasemodel.pof'
Model Phasemodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Phasemodel.pof'.
IBX-DEBUG => POF checksum: 0xb956d4d5, IBX checksum: 0x41b9e556 -- "Phasemodel.pof"
Loading model 'Sapphiremodel.pof'
Model Sapphiremodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Sapphiremodel.pof'.
IBX-DEBUG => POF checksum: 0xa9cf3ef3, IBX checksum: 0x810a5f41 -- "Sapphiremodel.pof"
Loading model 'Coilmodel.pof'
Model Coilmodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Coilmodel.pof'.
IBX-DEBUG => POF checksum: 0xf0855d96, IBX checksum: 0x25ce0856 -- "Coilmodel.pof"
Loading model 'Starfiremodel.pof'
Model Starfiremodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Starfiremodel.pof'.
IBX-DEBUG => POF checksum: 0xab394c33, IBX checksum: 0x4da0a6f2 -- "Starfiremodel.pof"
Loading model 'Lancemodel.pof'
Model Lancemodel.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'Lancemodel.pof'.
IBX-DEBUG => POF checksum: 0x7fad52f2, IBX checksum: 0x72081f91 -- "Lancemodel.pof"
Loading model 'swarmpod.pof'
Model swarmpod.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'swarmpod.pof'.
IBX-DEBUG => POF checksum: 0x52a567ee, IBX checksum: 0xa04f292a -- "swarmpod.pof"
Loading model 'slammerpod.pof'
Model slammerpod.pof has a null moment of inertia!  (This is only a problem if the model is a ship.)
IBX: Found a good IBX to read for 'slammerpod.pof'.
IBX-DEBUG => POF checksum: 0xe82f5b1b, IBX checksum: 0xac15f650 -- "slammerpod.pof"
Frame  0 too long!!: frametime = 17.260 (17.260)
Got event GS_EVENT_SHIP_SELECTION (13) in state GS_STATE_BRIEFING (10)
ANI iconwing01.ani with size 32x28 (12.5% wasted)
Couldn't load model file in missionshipchoice.cpp
Couldn't load model file in missionshipchoice.cpp
Got event GS_EVENT_MAIN_MENU (0) in state GS_STATE_SHIP_SELECT (11)
Unloading in mission messages
WARNING!, Could not load door anim 2_Exit in main hall
WARNING!, Could not load door anim 2_Pilot in main hall
WARNING!, Could not load door anim 2_Continue in main hall
WARNING!, Could not load door anim 2_Tech in main hall
WARNING!, Could not load door anim 2_Option in main hall
WARNING!, Could not load door anim 2_Campaign in main hall
Got event GS_EVENT_QUIT_GAME (5) in state GS_STATE_MAIN_MENU (1)
Freeing all existing models...
... Log closed, Fri Jul 29 15:06:46 2011
Title: Re: Cinematics vs Game
Post by: Valathil on July 29, 2011, 08:49:07 am
Im back to address some concerns youre having.
So when will we get a working FS1 effect?

Based on the debug logs I figured out what was wrong and we should have a commit for that very soon.

Quote
Start cloaked

Of course this will be added i just have to figure out how.

Quote
RABBEL RABBEL RABBEL

Guys, calm down please. I posted the vid to give you a sneak peak that im working on the SEXP and stuff for in mission Shader application. This was my FIRST working version. I have many ideas for this and did not explore any of them at the time. Yesterday I also had some RL work to do. So, please, i'm working on it, calm down. I'm always thinking about how people will use what i code so you can be sure that your needs and comments are taken into consideration
Title: Re: Cinematics vs Game
Post by: The E on July 29, 2011, 08:54:07 am
Fix for the tbl issue is in revision 7386
Title: Re: Cinematics vs Game
Post by: Valathil on July 29, 2011, 05:14:38 pm
Realtime Framebuffer Cloaking: http://www.youtube.com/watch?v=7Jn_N3RDnfs
Title: Re: Cinematics vs Game
Post by: Spoon on July 29, 2011, 05:25:54 pm
Realtime Framebuffer Cloaking: http://www.youtube.com/watch?v=7Jn_N3RDnfs
The first time I watched that my eyes were telling me the collosi shrunk

Bloody awesome effect
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 29, 2011, 05:44:09 pm
 :eek:

My FRED based cloaking effect is totally moot now...
Title: Re: Cinematics vs Game
Post by: Commander Zane on July 29, 2011, 05:53:00 pm
:jaw:
Title: Re: Cinematics vs Game
Post by: Valathil on July 29, 2011, 05:57:16 pm
:eek:

My FRED based cloaking effect is totally moot now...

i had that in the back of my head since starting the cloaking stuff and hesitated because of it cause i know you put a lot of work into that. But there is so much more possibilities with this code than just cloaking so i went ahead. Cloaking is just the easiest effect to implement when you got framebuffer and animated shaders running. But i know that youll be a great help getting the effect really cool and awesome cause what im doing now is just really simple and lame.

Anyway ive been looking into this "start cloaked" thing and i need some help cause i only have visual studio express and 1st i cant compile fred and 2nd i cant edit the fred gui so i need someone who helps me getting the flags into fred and syncing the code with the main game to transfer the parameters right cause im sure that needs something in missionparse or something but i have no idea how thats gonna work. So find me on irc if you wanna help.
Title: Re: Cinematics vs Game
Post by: Spoon on July 29, 2011, 06:42:55 pm
Yeah man, so simple and lame
Better stop now before you embarrass yourself any further!
Title: Re: Cinematics vs Game
Post by: Kolgena on July 29, 2011, 07:11:34 pm
Wow, that looks awesome.
Title: Re: Cinematics vs Game
Post by: Black Wolf on July 29, 2011, 10:03:51 pm
****. Yes.

It's always awesome when someone new pops up and just drops a succession of high-yield awesome bombs like this. :D
Title: Re: Cinematics vs Game
Post by: Rodo on July 29, 2011, 10:19:38 pm
I can't believe it.
Title: Re: Cinematics vs Game
Post by: Cobra on July 30, 2011, 12:56:14 am
I literally squeed just now. Now I'll say it.

Who's going to revive the Star Trek mods?

[EDIT] I don't know if the newest version of the effect is in the nightlies, but when viewing the ship draw effect the wireframe of the model is completely visible before the effect is complete. of course it could also be my graphics card.
Title: Re: Cinematics vs Game
Post by: Valathil on July 30, 2011, 09:33:31 am
of course it could also be my graphics card.

probably your graphics card yes
Title: Re: Cinematics vs Game
Post by: KyadCK on July 30, 2011, 12:04:48 pm
First, I'd like to say that the new effects are very, very cool. Secondly, I've noticed a minor problem with a couple ships and the FS2 effect. When selecting the ship, it begins the top-down scan, but due to the length of the Apollo and Valkyrie (and possibly more), the bar only goes down to about halfway on the cockpit (the ship goes beyond the underlying grid), and when staring to go back up the nose suddenly appears. (see youtube link)

http://www.youtube.com/watch?v=fLaO6Wbj1xI

I understand that FS1 ships will eventually use the FS1 effect, but this could be a problem for other ships as well.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 30, 2011, 12:14:58 pm
I literally squeed just now. Now I'll say it.

Who's going to revive the Star Trek mods?

[EDIT] I don't know if the newest version of the effect is in the nightlies, but when viewing the ship draw effect the wireframe of the model is completely visible before the effect is complete. of course it could also be my graphics card.

This is me too :(
Title: Re: Cinematics vs Game
Post by: Valathil on July 30, 2011, 12:26:26 pm
First, I'd like to say that the new effects are very, very cool. Secondly, I've noticed a minor problem with a couple ships and the FS2 effect. When selecting the ship, it begins the top-down scan, but due to the length of the Apollo and Valkyrie (and possibly more), the bar only goes down to about halfway on the cockpit (the ship goes beyond the underlying grid), and when staring to go back up the nose suddenly appears. (see youtube link)

http://www.youtube.com/watch?v=fLaO6Wbj1xI

I understand that FS1 ships will eventually use the FS1 effect, but this could be a problem for other ships as well.

This is a problem with a wrongly set ship radius. im not going to start handling some special cases for some some ships that have wrong parameters specified. The effect works great on 80 to 90% of ships and where theres a little bit wrong i think it can be overlooked its not that the game blows up just because the nose of a ship reaches beyond the grid
Title: Re: Cinematics vs Game
Post by: Dragon on July 30, 2011, 01:05:46 pm
Well, fixing the radius is easy with the latest PCS2 builds, so I guess if that issue will cause a problem to somebody, he'll be able to fix it himself.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 30, 2011, 01:17:08 pm
In that video, KyadCK also has the problem where the entire wireframe is drawn before the line "scrolls" down completely. Are you sure it's a gfx card thing? (Also, using the latest nightly, I don't get that white "light" effect from the scrolling green line)

(As a final tweak, it'd be nice if the animation synched with the sound a bit better. The ship rotates up a bit too slowly at the end)


Edit: Durrrrrrr I didn't update my shader file. I brb to say what happens.
Edit2: K, so the white light effect is there, but the entire wireframe still draws before the line scrolls down.
Title: Re: Cinematics vs Game
Post by: Valathil on July 30, 2011, 02:27:35 pm
hmm complete wireframe drawing must be something with the custom clipping plane combined with the way the wireframe drawn it would be great to know what command line flags you have active to see if i can replicate
Title: Re: Cinematics vs Game
Post by: Kolgena on July 30, 2011, 02:28:42 pm
Code: [Select]
C:\Program Files (x86)\Freespace\fs2_open_3_6_13r_INF_SSE2-20110730_r7388.exe -mod mediavps_3612 -spec -glow -env -nomotiondebris -missile_lighting -normal -post_process -fxaa -no_vsync -cache_bitmaps -orbradar -ship_choice_3d -3dwarp -warp_flash -snd_preload  -fov .6 -spec_exp 4 -spec_tube 1.2 -spec_point 0.85 -spec_static 2.3 -ambient_factor 80 -ogl_spec 90 -bloom_intensity 80 -fxaa_preset 0
Forcing 8xAF thru CCC. If you need to know anything else, let me know.
Title: Re: Cinematics vs Game
Post by: The E on July 30, 2011, 02:31:14 pm
Quote
(As a final tweak, it'd be nice if the animation synched with the sound a bit better. The ship rotates up a bit too slowly at the end)

The cables are too thick.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 30, 2011, 02:32:49 pm
Quote
(As a final tweak, it'd be nice if the animation synched with the sound a bit better. The ship rotates up a bit too slowly at the end)

The cables are too thick.

wat no

I think it's a valid non-OCD suggestion that the sounds should be synched to the animation. Just to be clear, I'm not saying the ship spins too slowly. I'm saying the step when the view changes from top down to sideways transitions too slowly and isn't synced with the audio.
Title: Re: Cinematics vs Game
Post by: Valathil on July 30, 2011, 02:46:17 pm
Code: [Select]
C:\Program Files (x86)\Freespace\fs2_open_3_6_13r_INF_SSE2-20110730_r7388.exe -mod mediavps_3612 -spec -glow -env -nomotiondebris -missile_lighting -normal -post_process -fxaa -no_vsync -cache_bitmaps -orbradar -ship_choice_3d -3dwarp -warp_flash -snd_preload  -fov .6 -spec_exp 4 -spec_tube 1.2 -spec_point 0.85 -spec_static 2.3 -ambient_factor 80 -ogl_spec 90 -bloom_intensity 80 -fxaa_preset 0
Forcing 8xAF thru CCC. If you need to know anything else, let me know.

try turning off the AF, i cant replicate.

Maybe ATI issue?? Who else has full wireframes?

EDIT: Newest trunk should have fixed audio syncing
Title: Re: Cinematics vs Game
Post by: The E on July 30, 2011, 04:22:51 pm
Nightly builds post 7391 will have the "cloak" code in them.

To enable its use, you need to modify your post_processing.tbl, by adding the following after the post processing effect definitions and before the #End:
Code: [Select]
#Ship Effects

$Name: Cloak
$Shader Effect: 2
$Disables Rendering: YES
$Invert timer: YES

$Name: Decloak
$Shader Effect: 2
$Disables Rendering: NO
$Invert timer: NO

You will also need this main-f.sdr:
Code: [Select]
#ifdef FLAG_LIGHT
uniform int n_lights;
#endif

#ifdef FLAG_DIFFUSE_MAP
uniform sampler2D sBasemap;
#endif

#ifdef FLAG_GLOW_MAP
uniform sampler2D sGlowmap;
#endif

#ifdef FLAG_SPEC_MAP
uniform sampler2D sSpecmap;
#endif

#ifdef FLAG_ENV_MAP
uniform samplerCube sEnvmap;
uniform bool alpha_spec;
varying vec3 envReflect;
#endif

#ifdef FLAG_NORMAL_MAP
uniform sampler2D sNormalmap;
varying mat3 tbnMatrix;
#endif

#ifdef FLAG_FOG
varying float fogDist;
#endif

#ifdef FLAG_ANIMATED
uniform sampler2D sFramebuffer;
uniform int effect_num;
uniform float anim_timer;
uniform float vpwidth;
uniform float vpheight;
#endif

varying vec4 position;
varying vec3 lNormal;

#if SHADER_MODEL == 2
  #define MAX_LIGHTS 2
#else
  #define MAX_LIGHTS 8
#endif

#define SPEC_INTENSITY_POINT 5.3 // Point light
#define SPEC_INTENSITY_DIRECTIONAL 3.0 // Directional light
#define SPECULAR_FACTOR 1.75
#define SPECULAR_ALPHA 0.1
#define SPEC_FACTOR_NO_SPEC_MAP 0.6
#define ENV_ALPHA_FACTOR 0.3
#define GLOW_MAP_INTENSITY 1.5
#define AMBIENT_LIGHT_BOOST 1.0

void main()
{
vec3 eyeDir = vec3(normalize(-position).xyz); // Camera is at (0,0,0) in ModelView space
vec4 lightAmbientDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightAmbient = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightSpecular = vec4(0.0, 0.0, 0.0, 1.0);
vec2 texCoord = gl_TexCoord[0].xy;
 #ifdef FLAG_ANIMATED
vec2 screenPos;
if(effect_num == 2)
{
screenPos = gl_FragCoord.xy * vec2(vpwidth,vpheight);
texCoord += (1.0-anim_timer)*0.3*vec2(sin(screenPos.y*50.0));
}
 #endif
 #ifdef FLAG_LIGHT
  #ifdef FLAG_NORMAL_MAP
// Normal map - convert from DXT5nm
vec3 normal;

normal.rg = (texture2D(sNormalmap, texCoord).ag * 2.0) - 1.0;
  #ifdef FLAG_ENV_MAP
vec3 envOffset = vec3(0.0);
envOffset.xy = normal.xy;
  #endif
normal.b = sqrt(1.0 - dot(normal.rg, normal.rg));
normal = tbnMatrix * normal;
float norm = length(normal);
if( length(normal) > 0.0)  // fix broken normal maps
normal /= norm ;
else
normal = tbnMatrix * vec3(0.0, 0.0, 1.0);
  #else
vec3 normal = lNormal;
  #endif

vec3 lightDir;
lightAmbient = gl_FrontMaterial.emission + (gl_LightModel.ambient * gl_FrontMaterial.ambient);
float dist;
#pragma optionNV unroll all
for (int i = 0; i < MAX_LIGHTS; ++i) {
  #if SHADER_MODEL > 2
if (i > n_lights)
break;
  #endif
float specularIntensity = 1.0;
float attenuation = 1.0;

// Attenuation and light direction
  #if SHADER_MODEL > 2
if (gl_LightSource[i].position.w == 1.0) {
  #else
if (gl_LightSource[i].position.w == 1.0 && i != 0) {
  #endif
// Positional light source
float dist = distance(gl_LightSource[i].position.xyz, position.xyz);

lightDir = (gl_LightSource[i].position.xyz - position.xyz);

  #if SHADER_MODEL > 2
if (gl_LightSource[i].spotCutoff < 91.0) {  // Tube light
float beamlength = length(gl_LightSource[i].spotDirection);
vec3 beamDir = normalize(gl_LightSource[i].spotDirection);
float neardist = dot(position.xyz - gl_LightSource[i].position.xyz , beamDir); // Get nearest point on line
vec3 nearest = gl_LightSource[i].position.xyz - beamDir * abs(neardist); // Move back from the endpoint of the beam along the beam by the distance we calculated
lightDir = nearest - position.xyz;
dist = length(lightDir);
}
  #endif

lightDir = normalize(lightDir);

attenuation = 1.0 / (gl_LightSource[i].constantAttenuation + (gl_LightSource[i].linearAttenuation * dist) + (gl_LightSource[i].quadraticAttenuation * dist * dist));

specularIntensity = SPEC_INTENSITY_POINT;
} else {
// Directional light source
lightDir = normalize(gl_LightSource[i].position.xyz);
specularIntensity = SPEC_INTENSITY_DIRECTIONAL; // Directional light
}

// Ambient and Diffuse
lightAmbient += (gl_FrontLightProduct[i].ambient * attenuation);
lightDiffuse += (gl_FrontLightProduct[i].diffuse * (max(dot(normal, lightDir), 0.0)) * attenuation);
// Specular
float NdotHV = clamp(dot(normal, normalize(eyeDir + lightDir)), 0.0, 1.0);
lightSpecular += ((gl_FrontLightProduct[i].specular * pow(NdotHV, gl_FrontMaterial.shininess)) * attenuation) * specularIntensity;
}

lightAmbientDiffuse = lightAmbient + lightDiffuse;
 #else
lightAmbientDiffuse = gl_Color;
lightSpecular = gl_SecondaryColor;
 #endif

 #ifdef FLAG_DIFFUSE_MAP
 // Base color
vec4 baseColor = texture2D(sBasemap, texCoord);
 #else
vec4 baseColor = gl_Color;
 #endif
 
vec4 fragmentColor;
fragmentColor.rgb = baseColor.rgb * max(lightAmbientDiffuse.rgb * AMBIENT_LIGHT_BOOST, gl_LightModel.ambient.rgb - 0.425);
fragmentColor.a = baseColor.a;

 #ifdef FLAG_SPEC_MAP
 // Spec color
fragmentColor.rgb += lightSpecular.rgb * (texture2D(sSpecmap, texCoord).rgb * SPECULAR_FACTOR);
fragmentColor.a += (dot(lightSpecular.a, lightSpecular.a) * SPECULAR_ALPHA);
 #else
fragmentColor.rgb += lightSpecular.rgb * (baseColor.rgb * SPEC_FACTOR_NO_SPEC_MAP);
 #endif

 #ifdef FLAG_ENV_MAP
 // Env color
  #ifdef FLAG_NORMAL_MAP
vec3 envReflectNM = envReflect + envOffset;
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflectNM).rgb, textureCube(sEnvmap, envReflectNM).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflectNM).rgb * envIntensity;
  #else
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflect).rgb, textureCube(sEnvmap, envReflect).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflect).rgb * envIntensity;
  #endif
 #endif

 #ifdef FLAG_GLOW_MAP
 // Glow color
fragmentColor.rgb += texture2D(sGlowmap, texCoord).rgb * GLOW_MAP_INTENSITY;
 #endif

 #ifdef FLAG_FOG
fragmentColor.rgb = mix(fragmentColor.rgb, gl_Fog.color.rgb, fogDist);
 #endif

 #ifdef FLAG_ANIMATED
if(effect_num == 0)
{
float shinefactor = 1.0/(1.0 + pow((fract(abs(gl_TexCoord[0].x))-anim_timer) * 1000.0, 2.0)) * 1000.0;
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
gl_FragColor.a = fragmentColor.a * shinefactor * (fract(abs(gl_TexCoord[0].x))-anim_timer) * -10000.0;
}
if(effect_num == 1)
{
float shinefactor = 1.0/(1.0 + pow((position.y-anim_timer), 2.0));
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
gl_FragColor.a = fragmentColor.a;
}
if(effect_num == 2)
{
gl_FragColor.a = 1.0;
gl_FragColor.rgb = texture2D(sFramebuffer, screenPos + anim_timer*0.1*vec2(sin(screenPos.y*50.0))).rgb*(1.0-anim_timer)+anim_timer*fragmentColor.rgb;
}
 #else
gl_FragColor = fragmentColor;
 #endif
}

This will also add a new sexp, ship-effect (To be found under Change->Ship Status).
Title: Re: Cinematics vs Game
Post by: jr2 on July 30, 2011, 04:49:47 pm
3 and 7 are done, 5 and 6 may not be a good idea (DoF looks good in a movie and motion blur was in and didn't looked good), 4 is being worked on.
From these, only 1 and 2 look truly interesting. 2 might be doable via shaders (though I don't know for sure) and 1 has been partially done via scripting (of course, it'd be great to see volumetric effects implemented into the engine).

DoF and motion blur for in-game cutscenes then?  (The ones that use the cutscene code, not actual cutscene movie files).

All of those are pretty nice additions, but the problem as I apparently see it, is that there aren't graphical coders at work around here. Some time ago, a Descent modder came here with big hopes to get shadows working in FS2, but I haven't heard of him since.

If you are so inclined to make these changes yourself, I don't think anyone here would not put you in a pedestal.

You mean karx11erx (http://www.hard-light.net/forums/index.php?action=profile;u=3884) ?  Posted this thread (http://www.hard-light.net/forums/index.php?topic=75502.0)?
Title: Re: Cinematics vs Game
Post by: Mongoose on July 30, 2011, 05:45:09 pm
I dunno where the point about motion blur as a whole looking bad comes from, since I've seen it look absolutely fantastic in games that use it properly.
Title: Re: Cinematics vs Game
Post by: Lucika on July 30, 2011, 06:32:52 pm
I am not a moderator but doesn't someone feel like splitting this? The title is completely unrelated to the discussion and it would be a shame if some people would miss the awesome cloaking stuff because of it ;)
Title: Re: Cinematics vs Game
Post by: Dragon on July 30, 2011, 06:57:43 pm
I've tested the cloaking effect and it's great except from one thing.
Since the animated shader is only applied to ship model, when a craft such as Iz'rail (or any Steve-O's fighter for that matter) cloaks, it's external weapons can be seen conspiciously floating in space.  :)
So, I have a small request to apply the cloaking effect to whatever weapons the cloaking craft happens to be carrying on it's external hardpoints.
Title: Re: Cinematics vs Game
Post by: Spoon on July 30, 2011, 07:06:58 pm
Does the cloaking effect require post processing to be enabled?
Title: Re: Cinematics vs Game
Post by: KyadCK on July 30, 2011, 07:39:57 pm
Quote
This is a problem with a wrongly set ship radius. im not going to start handling some special cases for some some ships that have wrong parameters specified. The effect works great on 80 to 90% of ships and where theres a little bit wrong i think it can be overlooked its not that the game blows up just because the nose of a ship reaches beyond the grid

I figured it was something simple. It certainly isn't game breaking, nor a huge priority.

Quote
In that video, KyadCK also has the problem where the entire wireframe is drawn before the line "scrolls" down completely. Are you sure it's a gfx card thing?

I use a ATI Radeon HD 5570 if that helps debug anything.

Quote
hmm complete wireframe drawing must be something with the custom clipping plane combined with the way the wireframe drawn it would be great to know what command line flags you have active to see if i can replicate

Code: [Select]
-mod fsport
-spec
-glow
-env
-noscalevid
-missile_lighting
-normal
-3dshockwave
-post_process
-cache_bitmaps
-dualscanlines
-targetinfo
-rearm_timer
-ballistic_gauge
-ship_choice_3d
-weapon_choice_3d
-3dwarp -warp_flash
-snd_preload
-fps
Title: Re: Cinematics vs Game
Post by: Valathil on July 31, 2011, 03:54:36 am
Does the cloaking effect require post processing to be enabled?

yes i probably should have mentioned that, maybe ill add fs1 effect as the cloak if post is disabled as a fallback have to look into that.

I've tested the cloaking effect and it's great except from one thing.
Since the animated shader is only applied to ship model, when a craft such as Iz'rail (or any Steve-O's fighter for that matter) cloaks, it's external weapons can be seen conspiciously floating in space.  :)
So, I have a small request to apply the cloaking effect to whatever weapons the cloaking craft happens to be carrying on it's external hardpoints.

interesting could you point me towards a mod that has such fighters so i can look at the problem
Title: Re: Cinematics vs Game
Post by: MatthTheGeek on July 31, 2011, 03:57:47 am
WiH. Any UEF fighter.
Title: Re: Cinematics vs Game
Post by: Trivial Psychic on July 31, 2011, 07:58:07 am
[EDIT] I don't know if the newest version of the effect is in the nightlies, but when viewing the ship draw effect the wireframe of the model is completely visible before the effect is complete. of course it could also be my graphics card.
I'm getting this too.  Win7-64, ATI HD5770-1GB, CAT. 11.6.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 31, 2011, 10:43:22 am
Yep, Catalyst 11.8 preview, mobility 3650 HD.

Probably an ATI thing. Still, I'd appreciate it if FSO didn't join the long line of TWIMTBP titles  :lol:


Turning off forced AF does not fix the issue.
Title: Re: Cinematics vs Game
Post by: Valathil on July 31, 2011, 12:09:30 pm
(http://pcper.com/images/reviews/408/nvlogo.jpg)
Title: Re: Cinematics vs Game
Post by: Commander Zane on July 31, 2011, 12:46:01 pm
Truth.
Title: Re: Cinematics vs Game
Post by: Valathil on July 31, 2011, 01:48:59 pm
Seriously though, id really like to fix it but how can i try changes out and trace the problem without a ati card. this is next to impossible
Title: Re: Cinematics vs Game
Post by: Aardwolf on July 31, 2011, 02:30:29 pm
Quote
(As a final tweak, it'd be nice if the animation synched with the sound a bit better. The ship rotates up a bit too slowly at the end)

The cables are too thick.

Oi! Stop that!
Title: Re: Cinematics vs Game
Post by: Spoon on July 31, 2011, 02:35:42 pm
Does the cloaking effect require post processing to be enabled?
yes i probably should have mentioned that, maybe ill add fs1 effect as the cloak if post is disabled as a fallback have to look into that.
Hmmm, what happens when you dont have PP enabled? Does the ship not fade out at all?
I'd love to use the effect, but I'm not sure about requiring every player to enable PP in their launcher settings
Title: Re: Cinematics vs Game
Post by: The E on July 31, 2011, 02:46:59 pm
The problem is, this effect needs the post-processing infrastructure in order to work correctly. Without post-processing, results will be ... interesting.

http://www.youtube.com/watch?v=Y0jD3hwrK3A

To be honest though, most of the real gamers will be able to run with post enabled; The ones who can't are probably on Intel chips.
Title: Re: Cinematics vs Game
Post by: Spoon on July 31, 2011, 03:11:02 pm
Well, we all know how many gamers we've had in the past running the game on 640x480  :p

But that's good enough for me, as long as the ship fades out without PP enabled.
Title: Re: Cinematics vs Game
Post by: Valathil on July 31, 2011, 03:28:31 pm
Well, we all know how many gamers we've had in the past running the game on 640x480  :p

But that's good enough for me, as long as the ship fades out without PP enabled.

I can do a fade to black with distorted textures and then poof not more cause that would require a parameter in the shader is that good enough?
Title: Re: Cinematics vs Game
Post by: Kolgena on July 31, 2011, 03:35:10 pm
That's probably good enough. At this point, making sure things work without post-processing is almost like providing legacy support.

As for the wireframe draw bug, there's not much we can do short of mailing Valathil a radeon card, is there? :/

As a stab in the dark, see if there's anything you've scripted that might for some reason be nVidia-only readable. Maybe a typo here or there doesn't compromise nvidia as badly as it does amd? No idea.
Title: Re: Cinematics vs Game
Post by: Valathil on July 31, 2011, 04:16:41 pm
So take one of this and call me in the morning
main-f.sdr
Code: [Select]
#ifdef FLAG_LIGHT
uniform int n_lights;
#endif

#ifdef FLAG_DIFFUSE_MAP
uniform sampler2D sBasemap;
#endif

#ifdef FLAG_GLOW_MAP
uniform sampler2D sGlowmap;
#endif

#ifdef FLAG_SPEC_MAP
uniform sampler2D sSpecmap;
#endif

#ifdef FLAG_ENV_MAP
uniform samplerCube sEnvmap;
uniform bool alpha_spec;
varying vec3 envReflect;
#endif

#ifdef FLAG_NORMAL_MAP
uniform sampler2D sNormalmap;
varying mat3 tbnMatrix;
#endif

#ifdef FLAG_FOG
varying float fogDist;
#endif

#ifdef FLAG_ANIMATED
uniform sampler2D sFramebuffer;
uniform int effect_num;
uniform float anim_timer;
uniform float vpwidth;
uniform float vpheight;
#endif

varying vec4 position;
varying vec3 lNormal;

#if SHADER_MODEL == 2
  #define MAX_LIGHTS 2
#else
  #define MAX_LIGHTS 8
#endif

#define SPEC_INTENSITY_POINT 5.3 // Point light
#define SPEC_INTENSITY_DIRECTIONAL 3.0 // Directional light
#define SPECULAR_FACTOR 1.75
#define SPECULAR_ALPHA 0.1
#define SPEC_FACTOR_NO_SPEC_MAP 0.6
#define ENV_ALPHA_FACTOR 0.3
#define GLOW_MAP_INTENSITY 1.5
#define AMBIENT_LIGHT_BOOST 1.0

void main()
{
vec3 eyeDir = vec3(normalize(-position).xyz); // Camera is at (0,0,0) in ModelView space
vec4 lightAmbientDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightAmbient = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightSpecular = vec4(0.0, 0.0, 0.0, 1.0);
vec2 texCoord = gl_TexCoord[0].xy;
 #ifdef FLAG_ANIMATED
vec2 screenPos;
if(effect_num == 2)
{
screenPos = gl_FragCoord.xy * vec2(vpwidth,vpheight);
texCoord += (1.0-anim_timer)*0.3*vec2(sin(screenPos.y*50.0));
}
 #endif
 #ifdef FLAG_LIGHT
  #ifdef FLAG_NORMAL_MAP
// Normal map - convert from DXT5nm
vec3 normal;

normal.rg = (texture2D(sNormalmap, texCoord).ag * 2.0) - 1.0;
  #ifdef FLAG_ENV_MAP
vec3 envOffset = vec3(0.0);
envOffset.xy = normal.xy;
  #endif
normal.b = sqrt(1.0 - dot(normal.rg, normal.rg));
normal = tbnMatrix * normal;
float norm = length(normal);
if( length(normal) > 0.0)  // fix broken normal maps
normal /= norm ;
else
normal = tbnMatrix * vec3(0.0, 0.0, 1.0);
  #else
vec3 normal = lNormal;
  #endif

vec3 lightDir;
lightAmbient = gl_FrontMaterial.emission + (gl_LightModel.ambient * gl_FrontMaterial.ambient);
float dist;
#pragma optionNV unroll all
for (int i = 0; i < MAX_LIGHTS; ++i) {
  #if SHADER_MODEL > 2
if (i > n_lights)
break;
  #endif
float specularIntensity = 1.0;
float attenuation = 1.0;

// Attenuation and light direction
  #if SHADER_MODEL > 2
if (gl_LightSource[i].position.w == 1.0) {
  #else
if (gl_LightSource[i].position.w == 1.0 && i != 0) {
  #endif
// Positional light source
float dist = distance(gl_LightSource[i].position.xyz, position.xyz);

lightDir = (gl_LightSource[i].position.xyz - position.xyz);

  #if SHADER_MODEL > 2
if (gl_LightSource[i].spotCutoff < 91.0) {  // Tube light
float beamlength = length(gl_LightSource[i].spotDirection);
vec3 beamDir = normalize(gl_LightSource[i].spotDirection);
float neardist = dot(position.xyz - gl_LightSource[i].position.xyz , beamDir); // Get nearest point on line
vec3 nearest = gl_LightSource[i].position.xyz - beamDir * abs(neardist); // Move back from the endpoint of the beam along the beam by the distance we calculated
lightDir = nearest - position.xyz;
dist = length(lightDir);
}
  #endif

lightDir = normalize(lightDir);

attenuation = 1.0 / (gl_LightSource[i].constantAttenuation + (gl_LightSource[i].linearAttenuation * dist) + (gl_LightSource[i].quadraticAttenuation * dist * dist));

specularIntensity = SPEC_INTENSITY_POINT;
} else {
// Directional light source
lightDir = normalize(gl_LightSource[i].position.xyz);
specularIntensity = SPEC_INTENSITY_DIRECTIONAL; // Directional light
}

// Ambient and Diffuse
lightAmbient += (gl_FrontLightProduct[i].ambient * attenuation);
lightDiffuse += (gl_FrontLightProduct[i].diffuse * (max(dot(normal, lightDir), 0.0)) * attenuation);
// Specular
float NdotHV = clamp(dot(normal, normalize(eyeDir + lightDir)), 0.0, 1.0);
lightSpecular += ((gl_FrontLightProduct[i].specular * pow(NdotHV, gl_FrontMaterial.shininess)) * attenuation) * specularIntensity;
}

lightAmbientDiffuse = lightAmbient + lightDiffuse;
 #else
lightAmbientDiffuse = gl_Color;
lightSpecular = gl_SecondaryColor;
 #endif

 #ifdef FLAG_DIFFUSE_MAP
 // Base color
vec4 baseColor = texture2D(sBasemap, texCoord);
 #else
vec4 baseColor = gl_Color;
 #endif
 
vec4 fragmentColor;
fragmentColor.rgb = baseColor.rgb * max(lightAmbientDiffuse.rgb * AMBIENT_LIGHT_BOOST, gl_LightModel.ambient.rgb - 0.425);
fragmentColor.a = baseColor.a;

 #ifdef FLAG_SPEC_MAP
 // Spec color
fragmentColor.rgb += lightSpecular.rgb * (texture2D(sSpecmap, texCoord).rgb * SPECULAR_FACTOR);
fragmentColor.a += (dot(lightSpecular.a, lightSpecular.a) * SPECULAR_ALPHA);
 #else
fragmentColor.rgb += lightSpecular.rgb * (baseColor.rgb * SPEC_FACTOR_NO_SPEC_MAP);
 #endif

 #ifdef FLAG_ENV_MAP
 // Env color
  #ifdef FLAG_NORMAL_MAP
vec3 envReflectNM = envReflect + envOffset;
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflectNM).rgb, textureCube(sEnvmap, envReflectNM).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflectNM).rgb * envIntensity;
  #else
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflect).rgb, textureCube(sEnvmap, envReflect).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflect).rgb * envIntensity;
  #endif
 #endif

 #ifdef FLAG_GLOW_MAP
 // Glow color
fragmentColor.rgb += texture2D(sGlowmap, texCoord).rgb * GLOW_MAP_INTENSITY;
 #endif

 #ifdef FLAG_FOG
fragmentColor.rgb = mix(fragmentColor.rgb, gl_Fog.color.rgb, fogDist);
 #endif

 #ifdef FLAG_ANIMATED
if(effect_num == 0)
{
float shinefactor = 1.0/(1.0 + pow((fract(abs(gl_TexCoord[0].x))-anim_timer) * 1000.0, 2.0)) * 1000.0;
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
gl_FragColor.a = fragmentColor.a * shinefactor * (fract(abs(gl_TexCoord[0].x))-anim_timer) * -10000.0;
}
if(effect_num == 1)
{
float shinefactor = 1.0/(1.0 + pow((position.y-anim_timer), 2.0));
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
 #ifdef FLAG_LIGHT
gl_FragColor.a = fragmentColor.a;
 #else
gl_FragColor.a = (position.y-anim_timer) * 10000.0; // ATI Wireframe fix *grumble*
 #endif
}
if(effect_num == 2)
{
gl_FragColor.a = 1.0;
gl_FragColor.rgb = texture2D(sFramebuffer, screenPos + anim_timer*0.1*vec2(sin(screenPos.y*50.0))).rgb*(1.0-anim_timer)+anim_timer*fragmentColor.rgb;
}
 #else
gl_FragColor = fragmentColor;
 #endif
}
Title: Re: Cinematics vs Game
Post by: Kolgena on July 31, 2011, 04:33:01 pm
These aren't just wide-spectrum antibiotics right? My friend told me that their usage is socially irresponsible.

K, so you are freaking awesome. Fixed it.


(One thing I noticed, just as I loaded ship selection on King's Gambit, is that bigger ships are rendered alongside smaller grids, since the game seems to try to keep the apparent size of the ships the same. As such, the Artemis is like, only half-on its tiny grid. If there's an easy fix for it, great, but otherwise, I'd have to agree with The_E that this one is "pipes2thick")

Audio sync on the newest nightly is awesome.
Title: Re: Cinematics vs Game
Post by: Valathil on July 31, 2011, 04:37:30 pm
If there's an easy fix for it

http://www.youtube.com/watch?v=gvdf5n-zI14 (http://www.youtube.com/watch?v=gvdf5n-zI14)
Title: Re: Cinematics vs Game
Post by: Kolgena on July 31, 2011, 04:41:39 pm
So I guess the problem is model-side? I noticed that it doesn't actually have to do with size, since the Ursa's relatively unaffected. The bad offenders are the Artemises and the Boanerges, that have grids easily half the size of the one for the myrmidon. (I'M LOOKING AT YOU SAB0O :D)

(Also, you got me so excited with that youtube link. I thought it was going to link me to a preview of the fix in action. lol.)
Title: Re: Cinematics vs Game
Post by: Valathil on July 31, 2011, 05:10:28 pm
(Also, you got me so excited with that youtube link. I thought it was going to link me to a preview of the fix in action. lol.)

That's EXACTLY why I did it  :lol:

If you want the exact description of the problem it depends on the ratio between model size and the zoom_amount. BUT i cant use the zoom_amount for the calculation of the grid size because then the coordinates for the glow shader would be wrong. This is also why the glow is smaller on larger ships like the ursa. Cant be helped at the moment as it would require passing many parameters to the shader to get true screen coordinates in the shader calculation which just isnt feasible right now. I dont know if it will ever be.
Title: Re: Cinematics vs Game
Post by: Spoon on July 31, 2011, 05:21:25 pm
Am I missing shaders or something for the FS1 effect?
It's not displaying for me at all on 7388

Code: [Select]
==========================================================================
DEBUG SPEW: No debug_filter.cfg found, so only general, error, and warning
categories can be shown and no debug_filter.cfg info will be saved.
==========================================================================
FreeSpace version: 3.6.13
Passed cmdline options:
  -spec_exp 15
  -fov 0.6
  -ogl_spec 20
  -spec_static 1.5
  -spec_point 1.2
  -spec_tube 1.5
  -ambient_factor 65
  -env
  -missile_lighting
  -glow
  -noscalevid
  -spec
  -normal
  -3dshockwave
  -post_process
  -bloom_intensity 40
  -fxaa
  -ballistic_gauge
  -rearm_timer
  -targetinfo
  -3dwarp
  -ship_choice_3d
  -weapon_choice_3d
  -warp_flash
  -mod Wings of Dawn II,mediavps_3612
  -fullscreen_window
Building file index...
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Advanced.vp' with a checksum of 0x4b8b0f5a
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_AnimGlows.vp' with a checksum of 0x6a554026
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.3612.vp' with a checksum of 0x59649c21
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.vp' with a checksum of 0x529cc70f
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.3612.vp' with a checksum of 0x9c510aa0
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.vp' with a checksum of 0xb9a9a485
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Music.vp' with a checksum of 0xb3e21469
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.3612.vp' with a checksum of 0x7c9d7e74
Found root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.vp' with a checksum of 0x6ffd5c78
Found root pack 'G:\Games\Freespace\FS2OGGcutscenepack.vp' with a checksum of 0x84396e99
Found root pack 'G:\Games\Freespace\multi-mission-pack.vp' with a checksum of 0x925272dc
Found root pack 'G:\Games\Freespace\multi-voice-pack.vp' with a checksum of 0xd50e7442
Found root pack 'G:\Games\Freespace\root_fs2.vp' with a checksum of 0xce10d76c
Found root pack 'G:\Games\Freespace\smarty_fs2.vp' with a checksum of 0xddeb3b1e
Found root pack 'G:\Games\Freespace\sparky_fs2.vp' with a checksum of 0x0eae906e
Found root pack 'G:\Games\Freespace\sparky_hi_fs2.vp' with a checksum of 0xa11d56f1
Found root pack 'G:\Games\Freespace\stu_fs2.vp' with a checksum of 0xd77da83a
Found root pack 'G:\Games\Freespace\tango1_fs2.vp' with a checksum of 0x4c25221e
Found root pack 'G:\Games\Freespace\tango2_fs2.vp' with a checksum of 0x86920b82
Found root pack 'G:\Games\Freespace\tango3_fs2.vp' with a checksum of 0x705e8d71
Found root pack 'G:\Games\Freespace\warble_fs2.vp' with a checksum of 0xd85c305d
Searching root 'G:\Games\Freespace\Wings of Dawn II\' ... 5175 files
Searching root 'G:\Games\Freespace\mediavps_3612\' ... 125 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Advanced.vp' ... 1283 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_AnimGlows.vp' ... 1641 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.3612.vp' ... 315 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Assets.vp' ... 1527 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.3612.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Effects.vp' ... 1876 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Music.vp' ... 32 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.3612.vp' ... 13 files
Searching root pack 'G:\Games\Freespace\mediavps_3612\MV_Root.vp' ... 94 files
Searching root 'G:\Games\Freespace\' ... 108 files
Searching root pack 'G:\Games\Freespace\FS2OGGcutscenepack.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\multi-mission-pack.vp' ... 108 files
Searching root pack 'G:\Games\Freespace\multi-voice-pack.vp' ... 307 files
Searching root pack 'G:\Games\Freespace\root_fs2.vp' ... 157 files
Searching root pack 'G:\Games\Freespace\smarty_fs2.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\sparky_fs2.vp' ... 3027 files
Searching root pack 'G:\Games\Freespace\sparky_hi_fs2.vp' ... 1337 files
Searching root pack 'G:\Games\Freespace\stu_fs2.vp' ... 2355 files
Searching root pack 'G:\Games\Freespace\tango1_fs2.vp' ... 32 files
Searching root pack 'G:\Games\Freespace\tango2_fs2.vp' ... 15 files
Searching root pack 'G:\Games\Freespace\tango3_fs2.vp' ... 10 files
Searching root pack 'G:\Games\Freespace\warble_fs2.vp' ... 52 files
Searching root 'i:\' ... 0 files
Found 25 roots and 19619 files.
AutoLang: Language auto-detection successful...
Setting language to English
TBM  =>  Starting parse of 'mv_core-lcl.tbm' ...
Initializing OpenAL...
  OpenAL Vendor     : Creative Labs Inc.
  OpenAL Renderer   : Software
  OpenAL Version    : 1.1

  Found extension "ALC_EXT_EFX".

  Sample rate: 44100 (44100)
  EFX enabled: NO
  Playback device: Generic Software on Speakers (Realtek High Definition Audio)
  Capture device: Microphone (C-Media USB Headpho
... OpenAL successfully initialized!
Failed to init speech
Initializing OpenGL graphics device at 1680x1050 with 32-bit color...
  Initializing WGL...
  Requested WGL Video values = R: 8, G: 8, B: 8, depth: 32, double-buffer: 1
  Actual WGL Video values    = R: 8, G: 8, B: 8, depth: 32, double-buffer: 1
  OpenGL Vendor    : NVIDIA Corporation
  OpenGL Renderer  : GeForce GTX 570/PCI/SSE2
  OpenGL Version   : 4.1.0

  Using extension "GL_EXT_fog_coord".
  Using extension "GL_ARB_multitexture".
  Using extension "GL_ARB_texture_env_add".
  Using extension "GL_ARB_texture_compression".
  Using extension "GL_EXT_texture_compression_s3tc".
  Using extension "GL_EXT_texture_filter_anisotropic".
  Using extension "GL_ARB_texture_env_combine".
  Using extension "GL_EXT_compiled_vertex_array".
  Using extension "GL_EXT_draw_range_elements".
  Using extension "GL_ARB_texture_mirrored_repeat".
  Using extension "GL_ARB_texture_non_power_of_two".
  Using extension "GL_ARB_vertex_buffer_object".
  Using extension "GL_ARB_pixel_buffer_object".
  Using extension "GL_SGIS_generate_mipmap".
  Using extension "GL_EXT_framebuffer_object".
  Using extension "GL_ARB_texture_rectangle".
  Using extension "GL_EXT_bgra".
  Using extension "GL_ARB_texture_cube_map".
  Using extension "GL_EXT_texture_lod_bias".
  Using extension "GL_ARB_point_sprite".
  Using extension "GL_ARB_shading_language_100".
  Using extension "GL_ARB_shader_objects".
  Using extension "GL_ARB_vertex_shader".
  Using extension "GL_ARB_fragment_shader".
  Using extension "GL_NV_vertex_program3".
  Found special extension function "wglSwapIntervalEXT".

  Compiling shader: main-v.sdr (null-v.sdr), main-f.sdr (null-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lb-f.sdr)
  Compiling shader: main-v.sdr (b-v.sdr), main-f.sdr (b-f.sdr)
  Compiling shader: main-v.sdr (b-v.sdr), main-f.sdr (bg-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbg-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbgs-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbs-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lbgse-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lbse-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbgn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbgsn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbsn-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lbgsne-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lbsne-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfb-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbg-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbgs-f.sdr)
  Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbs-f.sdr)
  Compiling shader: main-v.sdr (lfe-v.sdr), main-f.sdr (lfbgse-f.sdr)
  Compiling shader: main-v.sdr (lfe-v.sdr), main-f.sdr (lfbse-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbgn-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbgsn-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbn-f.sdr)
  Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbsn-f.sdr)
  Compiling shader: main-v.sdr (lfne-v.sdr), main-f.sdr (lfbgsne-f.sdr)
  Compiling shader: main-v.sdr (lfne-v.sdr), main-f.sdr (lfbsne-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (null-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lg-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lgs-f.sdr)
  Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (ls-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lgse-f.sdr)
  Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lse-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lgn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lgsn-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (ln-f.sdr)
  Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lsn-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lgsne-f.sdr)
  Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lsne-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (la-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lba-f.sdr)
  Compiling shader: main-v.sdr (ba-v.sdr), main-f.sdr (ba-f.sdr)
  Compiling shader: main-v.sdr (ba-v.sdr), main-f.sdr (bga-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lbga-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lbgsa-f.sdr)
  Compiling shader: main-v.sdr (la-v.sdr), main-f.sdr (lbsa-f.sdr)
  Compiling shader: main-v.sdr (lea-v.sdr), main-f.sdr (lbgsea-f.sdr)
  Compiling shader: main-v.sdr (lea-v.sdr), main-f.sdr (lbsea-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbgna-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbgsna-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbna-f.sdr)
  Compiling shader: main-v.sdr (lna-v.sdr), main-f.sdr (lbsna-f.sdr)
  Compiling shader: main-v.sdr (lnea-v.sdr), main-f.sdr (lbgsnea-f.sdr)
  Compiling shader: main-v.sdr (lnea-v.sdr), main-f.sdr (lbsnea-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfba-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfbga-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfbgsa-f.sdr)
  Compiling shader: main-v.sdr (lfa-v.sdr), main-f.sdr (lfbsa-f.sdr)
  Compiling shader: main-v.sdr (lfea-v.sdr), main-f.sdr (lfbgsea-f.sdr)
  Compiling shader: main-v.sdr (lfea-v.sdr), main-f.sdr (lfbsea-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbgna-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbgsna-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbna-f.sdr)
  Compiling shader: main-v.sdr (lfna-v.sdr), main-f.sdr (lfbsna-f.sdr)
  Compiling shader: main-v.sdr (lfnea-v.sdr), main-f.sdr (lfbgsnea-f.sdr)
  Compiling shader: main-v.sdr (lfnea-v.sdr), main-f.sdr (lfbsnea-f.sdr)

  Compiling post-processing shader 1 ...
  Compiling post-processing shader 2 ...
  Compiling post-processing shader 3 ...
  Compiling post-processing shader 4 ...
  Compiling post-processing shader 5 ...
Loading built-in default shader for: fxaa-v.sdr
Loading built-in default shader for: fxaa-f.sdr
  Compiling post-processing shader 6 ...
Loading built-in default shader for: fxaapre-f.sdr

  Max texture units: 4 (32)
  Max elements vertices: 1048576
  Max elements indices: 1048576
  Max texture size: 16384x16384
  Max render buffer size: 16384x16384
  Can use compressed textures: YES
  Texture compression available: YES
  Post-processing enabled: YES
  Using trilinear texture filter.
  Using GLSL for model rendering.
  OpenGL Shader Version: 4.10 NVIDIA via Cg compiler
... OpenGL init is complete!
Size of bitmap info = 760 KB
Size of bitmap extra info = 52 bytes
ANI cursorweb with size 24x24 (25.0% wasted)
GRAPHICS: Initializing default colors...
SCRIPTING: Beginning initialization sequence...
SCRIPTING: Beginning Lua initialization...
LUA: Opening LUA state...
LUA: Initializing base Lua libraries...
LUA: Beginning ADE initialization
ADE: Initializing enumeration constants...
ADE: Assigning Lua session...
SCRIPTING: Beginning main hook parse sequence....
Wokka!  Error opening file (scripting.tbl)!
TABLES: Unable to parse 'scripting.tbl'!  Error code = 5.
TBM  =>  Starting parse of 'mv_flak-sct.tbm' ...
TBM  =>  Starting parse of 'mv_dbrs-sct.tbm' ...
TBM  =>  Starting parse of 'mv_exp-sct.tbm' ...
TBM  =>  Starting parse of 'misc-sct.tbm' ...
TBM  =>  Starting parse of 'gravity-sct.tbm' ...
TBM  =>  Starting parse of 'escort-sct.tbm' ...
TBM  =>  Starting parse of 'deathPart-sct.tbm' ...
SCRIPTING: Inititialization complete.
SCRIPTING: Splash screen overrides checked
SCRIPTING: Splash hook has been run
SCRIPTING: Splash screen conditional hook has been run
Using high memory settings...
Wokka!  Error opening file (interface.tbl)!
WMCGUI: Unable to parse 'interface.tbl'!  Error code = 5.
TBM  =>  Starting parse of 'mv_effects-sdf.tbm' ...
Windows reported 16 joysticks, we found 0
Current soundtrack set to -1 in event_music_reset_choices
TBM  =>  Starting parse of 'mv_music-mus.tbm' ...
TBM  =>  Starting parse of 'mv_effects-mfl.tbm' ...
TBM  =>  Starting parse of 'mv_effects-amr.tbm' ...
TBM  =>  Starting parse of 'mv_effects-wxp.tbm' ...
TBM  =>  Starting parse of 'Muzzleflashes-wxp.tbm' ...
TBM  =>  Starting parse of 'Explosions-wxp.tbm' ...
TBM  =>  Starting parse of 'beams-wxp.tbm' ...
BMPMAN: Found EFF (exp08.eff) with 141 frames at 25 fps.
BMPMAN: Found EFF (exp20.eff) with 81 frames at 40 fps.
BMPMAN: Found EFF (ExpMissileHit1.eff) with 92 frames at 30 fps.
BMPMAN: Found EFF (exp30.eff) with 131 frames at 30 fps.
BMPMAN: Found EFF (exp40.eff) with 33 frames at 24 fps.
BMPMAN: Found EFF (exp50.eff) with 54 frames at 30 fps.
BMPMAN: Found EFF (ExpW.eff) with 91 frames at 40 fps.
BMPMAN: Found EFF (ExpB.eff) with 74 frames at 30 fps.
BMPMAN: Found EFF (Zy.eff) with 43 frames at 30 fps.
BMPMAN: Found EFF (Tach.eff) with 31 frames at 30 fps.
BMPMAN: Found EFF (bomb_flare.eff) with 69 frames at 20 fps.
BMPMAN: Found EFF (flashexpblue.eff) with 36 frames at 30 fps.
BMPMAN: Found EFF (Dragonslave.eff) with 91 frames at 30 fps.
BMPMAN: Found EFF (Cflak.eff) with 54 frames at 30 fps.
BMPMAN: Found EFF (VX-23.eff) with 71 frames at 30 fps.
BMPMAN: Found EFF (Flashexp.eff) with 36 frames at 30 fps.
BMPMAN: Found EFF (Flashexp2.eff) with 44 frames at 30 fps.
BMPMAN: Found EFF (Zyshipexp.eff) with 51 frames at 30 fps.
BMPMAN: Found EFF (Blackhole.eff) with 63 frames at 30 fps.
BMPMAN: Found EFF (exp04.eff) with 61 frames at 30 fps.
BMPMAN: Found EFF (exp05.eff) with 72 frames at 30 fps.
BMPMAN: Found EFF (exp06.eff) with 58 frames at 30 fps.
BMPMAN: Found EFF (capflash.eff) with 40 frames at 10 fps.
BMPMAN: Found EFF (Maxim_Impact.eff) with 23 frames at 30 fps.
ANI Lamprey_Impact with size 80x80 (37.5% wasted)
BMPMAN: Found EFF (Gmuzzle.eff) with 5 frames at 30 fps.
BMPMAN: Found EFF (PWmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Rmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Bmuzzle.eff) with 5 frames at 30 fps.
BMPMAN: Found EFF (Cmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Fmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Dmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (Smoke.eff) with 71 frames at 35 fps.
BMPMAN: Found EFF (Vk01NMuzzle.eff) with 15 frames at 30 fps.
BMPMAN: Found EFF (BWmuzzle.eff) with 4 frames at 30 fps.
BMPMAN: Found EFF (exp07.eff) with 61 frames at 30 fps.
BMPMAN: Found EFF (Beamhitglow.eff) with 1 frames at 30 fps.
BMPMAN: Found EFF (HSMHS.eff) with 60 frames at 30 fps.
BMPMAN: Found EFF (HSMHSsmall.eff) with 60 frames at 30 fps.
BMPMAN: Found EFF (VX_02imp.eff) with 11 frames at 30 fps.
BMPMAN: Found EFF (Furaexp1.eff) with 81 frames at 30 fps.
BMPMAN: Found EFF (StarfireExp.eff) with 101 frames at 30 fps.
BMPMAN: Found EFF (SmallredExp.eff) with 46 frames at 30 fps.
BMPMAN: Found EFF (ParticleSmoke01.eff) with 54 frames at 24 fps.
WARNING: "Lifetime min or max specified, but $Lifetime was also specified; min or max will be used." at weapons.cpp:1400
TBM  =>  Starting parse of 'mv_core-wep.tbm' ...
TBM  =>  Starting parse of 'mv_effects-wep.tbm' ...
TBM  =>  Starting parse of 'mv_assets-wep.tbm' ...
TBM  =>  Starting parse of 'Wingmen-wep.tbm' ...
TBM  =>  Starting parse of 'Muzzleflashes-wep.tbm' ...
TBM  =>  Starting parse of 'beams-wep.tbm' ...
WARNING: Unrecognized parameter in ai_profiles: $disarm or disable cause global ai goal effects: YES

TBM  =>  Starting parse of 'mv_effects-obt.tbm' ...
TBM  =>  Starting parse of 'turrets-obt.tbm' ...
TBM  =>  Starting parse of 'Targetpriority-obt.tbm' ...
BMPMAN: Found EFF (ParticleSmoke02.eff) with 39 frames at 24 fps.
Particle effect for impact spew disabled on ship 'Fir'kyr Voidbringer'.
Particle effect for damage spew disabled on ship 'Fir'kyr Voidbringer'.
Particle effect for impact spew disabled on ship 'Fir'kyr VoidBearer'.
Particle effect for damage spew disabled on ship 'Fir'kyr VoidBearer'.
Particle effect for impact spew disabled on ship 'Fir'kyr VoidKeeper'.
Particle effect for damage spew disabled on ship 'Fir'kyr VoidKeeper'.
TBM  =>  Starting parse of 'mv_core-shp.tbm' ...
TBM  =>  Starting parse of 'mv_effects-shp.tbm' ...
TBM  =>  Starting parse of 'mv_assets-shp.tbm' ...
TBM  =>  Starting parse of 'Wingmen-shp.tbm' ...
ANI head1 with size 256x206 (19.5% wasted)
TBM  =>  Starting parse of 'mv_core-hdg.tbm' ...
ANI support1 with size 108x24 (25.0% wasted)
ANI damage1 with size 148x25 (21.9% wasted)
ANI wingman1 with size 71x53 (17.2% wasted)
ANI wingman2 with size 35x53 (17.2% wasted)
ANI wingman3 with size 14x53 (17.2% wasted)
ANI toggle1 with size 57x20 (37.5% wasted)
ANI weapons1 with size 126x20 (37.5% wasted)
ANI weapons1_b with size 150x20 (37.5% wasted)
ANI objective1 with size 149x21 (34.4% wasted)
ANI netlag1 with size 29x30 (6.3% wasted)
ANI targhit1 with size 31x21 (34.4% wasted)
ANI 2_energy2 with size 86x96 (25.0% wasted)
ANI time1 with size 47x23 (28.1% wasted)
ANI energy1 with size 12x41 (35.9% wasted)
ANI targetview3 with size 7x20 (37.5% wasted)
ANI targetview1 with size 137x156 (39.1% wasted)
ANI targetview2 with size 4x96 (25.0% wasted)
ANI 2_reticle1 with size 40x24 (25.0% wasted)
ANI 2_leftarc with size 103x252 (1.6% wasted)
ANI 2_rightarc1 with size 103x252 (1.6% wasted)
ANI 2_toparc2 with size 35x24 (25.0% wasted)
ANI 2_toparc3 with size 41x29 (9.4% wasted)
ANI 2_lead1 with size 26x26 (18.8% wasted)
ANI 2_lock1 with size 56x53 (17.2% wasted)
ANI 2_lockspin with size 100x100 (21.9% wasted)
ANI 2_radar1 with size 209x170 (33.6% wasted)
TBM  =>  Starting parse of 'mv_effects-str.tbm' ...
loading animated cursor "cursor"
ANI cursor with size 24x24 (25.0% wasted)
MediaVPs: Flaming debris script loaded!
MediaVPs: Explosions script loaded!
LibraryManager: Loaded file "class.lua"
LibraryManager: Loaded file "effectManager.lua"
LibraryManager: Loaded file "strings.lua"
LibraryManager: Loaded file "converter.lua"
LibraryManager: Loaded file "parser.lua"
LibraryManager: Loaded file "objectWrapper.lua"
LibraryManager: Loaded file "particles.lua"
LibraryManager: Loaded file "trailInfo.lua"
LibraryManager: Loaded file "particleParser.lua"
Ships.tbl is : INVALID!!!!
Weapons.tbl is : INVALID!!!!
cfile_init() took 857
Got event GS_EVENT_GAME_INIT (49) in state NOT A VALID STATE (0)
ANI cursor.ani with size 24x24 (25.0% wasted)
Got event GS_EVENT_MAIN_MENU (0) in state GS_STATE_INITIAL_PLAYER_SELECT (37)
WARNING!, Could not load door anim 2_Exit in main hall
WARNING!, Could not load door anim 2_Pilot in main hall
WARNING!, Could not load door anim 2_Continue in main hall
WARNING!, Could not load door anim 2_Tech in main hall
WARNING!, Could not load door anim 2_Option in main hall
WARNING!, Could not load door anim 2_Campaign in main hall
Got event GS_EVENT_TECH_MENU (11) in state GS_STATE_MAIN_MENU (1)
Techroom successfully initialized, now changing tab...
Loading model 'Ray.pof'
IBX: Found a good IBX to read for 'Ray.pof'.
IBX-DEBUG => POF checksum: 0xffbd65f5, IBX checksum: 0x521d437a -- "Ray.pof"
Got event GS_EVENT_SIMULATOR_ROOM (58) in state GS_STATE_TECH_MENU (7)
Freeing all existing models...
Frame  0 too long!!: frametime = 0.595 (0.595)
Got event GS_EVENT_START_GAME (1) in state GS_STATE_SIMULATOR_ROOM (20)
Title: Re: Cinematics vs Game
Post by: mjn.mixael on July 31, 2011, 05:28:24 pm
I was just talking with The_E about that. Weapons that are in retail FS2 wouldn't use FS1 style and none of the ships would either. A few moments later he said it would be fixed in the next builds.
Title: Re: Cinematics vs Game
Post by: Kolgena on July 31, 2011, 05:35:42 pm
(Also, you got me so excited with that youtube link. I thought it was going to link me to a preview of the fix in action. lol.)

That's EXACTLY why I did it  :lol:

If you want the exact description of the problem it depends on the ratio between model size and the zoom_amount. BUT i cant use the zoom_amount for the calculation of the grid size because then the coordinates for the glow shader would be wrong. This is also why the glow is smaller on larger ships like the ursa. Cant be helped at the moment as it would require passing many parameters to the shader to get true screen coordinates in the shader calculation which just isnt feasible right now. I dont know if it will ever be.

Meh, screw it. Looks good as it is. I think if the Artemises and the boa are looked into (their grids are much smaller than even the one for the ursa... bad radius settings? No clue), it'll be fine.
Title: Re: Cinematics vs Game
Post by: Valathil on August 01, 2011, 07:20:47 am
I've tested the cloaking effect and it's great except from one thing.
Since the animated shader is only applied to ship model, when a craft such as Iz'rail (or any Steve-O's fighter for that matter) cloaks, it's external weapons can be seen conspiciously floating in space.  :)
So, I have a small request to apply the cloaking effect to whatever weapons the cloaking craft happens to be carrying on it's external hardpoints.

this is fixed in rev 7405
Title: Re: Cinematics vs Game
Post by: mjn.mixael on August 01, 2011, 12:34:53 pm
I'm having a few issues getting $Selection Effect: FS1 to work.

For weapons, I found that I had to have the flag in a TBM rather than in the TBL.

For ships, I tried the same thing, but it's just not working out.

EDIT: Also, is there a way we could define sounds for that? The FS1 effect is completely silent.

[attachment deleted by ninja]
Title: Re: Cinematics vs Game
Post by: Spoon on August 01, 2011, 12:46:19 pm
It's also not working for me.
I've got ship selection set to FS1 in the ai_profiles but its simply not happening
Title: Re: Cinematics vs Game
Post by: mjn.mixael on August 01, 2011, 01:26:20 pm
Just did some testing. AI_Profiles successfully forces it. Here's my table.

Code: [Select]
#AI Profiles

$Profile Name: SelectionEffect

$Default weapon select effect: FS1
$Default ship select effect: FS1

#END

Now, I mentioned the sound effect earlier. During my testing I realized that the FS1 effect has a sound for ship selection but not weapon selection. So.. I dunno about that, but I figured I'd let you know.

EDIT: The sound effect seems to just be with my own mod.. so I'm trying to figure out how the effect actually gets the sound file.
Title: Re: Cinematics vs Game
Post by: Spoon on August 01, 2011, 01:57:11 pm
Valathil, Being the boss that he is, once again resolved my problems.
It works for me now (even with proper lighting and all that).

Stuff looks so neat  :D
Title: Re: Cinematics vs Game
Post by: Valathil on August 01, 2011, 04:50:58 pm
I added some refraction to the cloaking shader: http://www.youtube.com/watch?v=8l3i4CTzplM&hd=1, and decloak http://www.youtube.com/watch?v=8-c27wikh5U&hd=1
Does this look better than the old version?
Title: Re: Cinematics vs Game
Post by: Dragon on August 01, 2011, 04:57:30 pm
Better.  :yes:
Title: Re: Cinematics vs Game
Post by: Kolgena on August 01, 2011, 04:58:16 pm
Yes. Although it's subtle and mostly lost in the 2D distortion/swirling from the previous version.

Maybe I'm just not sure what I'm looking for in lolyoutube quality.
Title: Re: Cinematics vs Game
Post by: Valathil on August 01, 2011, 05:15:17 pm
Yes its subtle, and it should be, you cant go distorting the background any more then you just have colors and cant see anything; even before the swirling starts

here if anyone wants to see it ingame
Code: [Select]
#ifdef FLAG_LIGHT
uniform int n_lights;
#endif

#ifdef FLAG_DIFFUSE_MAP
uniform sampler2D sBasemap;
#endif

#ifdef FLAG_GLOW_MAP
uniform sampler2D sGlowmap;
#endif

#ifdef FLAG_SPEC_MAP
uniform sampler2D sSpecmap;
#endif

#ifdef FLAG_ENV_MAP
uniform samplerCube sEnvmap;
uniform bool alpha_spec;
varying vec3 envReflect;
#endif

#ifdef FLAG_NORMAL_MAP
uniform sampler2D sNormalmap;
varying mat3 tbnMatrix;
#endif

#ifdef FLAG_FOG
varying float fogDist;
#endif

#ifdef FLAG_ANIMATED
uniform sampler2D sFramebuffer;
uniform int effect_num;
uniform float anim_timer;
uniform float vpwidth;
uniform float vpheight;
#endif

varying vec4 position;
varying vec3 lNormal;

#if SHADER_MODEL == 2
  #define MAX_LIGHTS 2
#else
  #define MAX_LIGHTS 8
#endif

#define SPEC_INTENSITY_POINT 5.3 // Point light
#define SPEC_INTENSITY_DIRECTIONAL 3.0 // Directional light
#define SPECULAR_FACTOR 1.75
#define SPECULAR_ALPHA 0.1
#define SPEC_FACTOR_NO_SPEC_MAP 0.6
#define ENV_ALPHA_FACTOR 0.3
#define GLOW_MAP_INTENSITY 1.5
#define AMBIENT_LIGHT_BOOST 1.0

void main()
{
vec3 eyeDir = vec3(normalize(-position).xyz); // Camera is at (0,0,0) in ModelView space
vec4 lightAmbientDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightAmbient = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightSpecular = vec4(0.0, 0.0, 0.0, 1.0);
vec2 texCoord = gl_TexCoord[0].xy;
 #ifdef FLAG_ANIMATED
vec2 screenPos;
if(effect_num == 2)
{
screenPos = gl_FragCoord.xy * vec2(vpwidth,vpheight);
}
 #endif
 #ifdef FLAG_LIGHT
  #ifdef FLAG_NORMAL_MAP
// Normal map - convert from DXT5nm
vec3 normal;

normal.rg = (texture2D(sNormalmap, texCoord).ag * 2.0) - 1.0;
  #ifdef FLAG_ENV_MAP
vec3 envOffset = vec3(0.0);
envOffset.xy = normal.xy;
  #endif
normal.b = sqrt(1.0 - dot(normal.rg, normal.rg));
normal = tbnMatrix * normal;
float norm = length(normal);
if( length(normal) > 0.0)  // fix broken normal maps
normal /= norm ;
else
normal = tbnMatrix * vec3(0.0, 0.0, 1.0);
  #else
vec3 normal = lNormal;
  #endif

vec3 lightDir;
lightAmbient = gl_FrontMaterial.emission + (gl_LightModel.ambient * gl_FrontMaterial.ambient);
float dist;
#pragma optionNV unroll all
for (int i = 0; i < MAX_LIGHTS; ++i) {
  #if SHADER_MODEL > 2
if (i > n_lights)
break;
  #endif
float specularIntensity = 1.0;
float attenuation = 1.0;

// Attenuation and light direction
  #if SHADER_MODEL > 2
if (gl_LightSource[i].position.w == 1.0) {
  #else
if (gl_LightSource[i].position.w == 1.0 && i != 0) {
  #endif
// Positional light source
float dist = distance(gl_LightSource[i].position.xyz, position.xyz);

lightDir = (gl_LightSource[i].position.xyz - position.xyz);

  #if SHADER_MODEL > 2
if (gl_LightSource[i].spotCutoff < 91.0) {  // Tube light
float beamlength = length(gl_LightSource[i].spotDirection);
vec3 beamDir = normalize(gl_LightSource[i].spotDirection);
float neardist = dot(position.xyz - gl_LightSource[i].position.xyz , beamDir); // Get nearest point on line
vec3 nearest = gl_LightSource[i].position.xyz - beamDir * abs(neardist); // Move back from the endpoint of the beam along the beam by the distance we calculated
lightDir = nearest - position.xyz;
dist = length(lightDir);
}
  #endif

lightDir = normalize(lightDir);

attenuation = 1.0 / (gl_LightSource[i].constantAttenuation + (gl_LightSource[i].linearAttenuation * dist) + (gl_LightSource[i].quadraticAttenuation * dist * dist));

specularIntensity = SPEC_INTENSITY_POINT;
} else {
// Directional light source
lightDir = normalize(gl_LightSource[i].position.xyz);
specularIntensity = SPEC_INTENSITY_DIRECTIONAL; // Directional light
}

// Ambient and Diffuse
lightAmbient += (gl_FrontLightProduct[i].ambient * attenuation);
lightDiffuse += (gl_FrontLightProduct[i].diffuse * (max(dot(normal, lightDir), 0.0)) * attenuation);
// Specular
float NdotHV = clamp(dot(normal, normalize(eyeDir + lightDir)), 0.0, 1.0);
lightSpecular += ((gl_FrontLightProduct[i].specular * pow(NdotHV, gl_FrontMaterial.shininess)) * attenuation) * specularIntensity;
}

lightAmbientDiffuse = lightAmbient + lightDiffuse;
 #else
lightAmbientDiffuse = gl_Color;
lightSpecular = gl_SecondaryColor;
 #endif

 #ifdef FLAG_DIFFUSE_MAP
 // Base color
  #ifdef FLAG_ANIMATED
vec4 baseColor;
if(effect_num == 2)
{
baseColor = texture2D(sBasemap, texCoord+(1.0-anim_timer)*0.5*vec2(sin(screenPos.y*50.0)));
}
else
{
baseColor = texture2D(sBasemap, texCoord);
}
  #else
vec4 baseColor = texture2D(sBasemap, texCoord);
  #endif
 #else
vec4 baseColor = gl_Color;
 #endif
 
vec4 fragmentColor;
fragmentColor.rgb = baseColor.rgb * max(lightAmbientDiffuse.rgb * AMBIENT_LIGHT_BOOST, gl_LightModel.ambient.rgb - 0.425);
fragmentColor.a = baseColor.a;

 #ifdef FLAG_SPEC_MAP
 // Spec color
fragmentColor.rgb += lightSpecular.rgb * (texture2D(sSpecmap, texCoord).rgb * SPECULAR_FACTOR);
fragmentColor.a += (dot(lightSpecular.a, lightSpecular.a) * SPECULAR_ALPHA);
 #else
fragmentColor.rgb += lightSpecular.rgb * (baseColor.rgb * SPEC_FACTOR_NO_SPEC_MAP);
 #endif

 #ifdef FLAG_ENV_MAP
 // Env color
  #ifdef FLAG_NORMAL_MAP
vec3 envReflectNM = envReflect + envOffset;
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflectNM).rgb, textureCube(sEnvmap, envReflectNM).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflectNM).rgb * envIntensity;
  #else
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflect).rgb, textureCube(sEnvmap, envReflect).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflect).rgb * envIntensity;
  #endif
 #endif

 #ifdef FLAG_GLOW_MAP
 // Glow color
fragmentColor.rgb += texture2D(sGlowmap, texCoord).rgb * GLOW_MAP_INTENSITY;
 #endif

 #ifdef FLAG_FOG
fragmentColor.rgb = mix(fragmentColor.rgb, gl_Fog.color.rgb, fogDist);
 #endif

 #ifdef FLAG_ANIMATED
if(effect_num == 0)
{
float shinefactor = 1.0/(1.0 + pow((fract(abs(gl_TexCoord[0].x))-anim_timer) * 1000.0, 2.0)) * 1000.0;
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
gl_FragColor.a = fragmentColor.a * shinefactor * (fract(abs(gl_TexCoord[0].x))-anim_timer) * -10000.0;
}
if(effect_num == 1)
{
float shinefactor = 1.0/(1.0 + pow((position.y-anim_timer), 2.0));
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
 #ifdef FLAG_LIGHT
gl_FragColor.a = fragmentColor.a;
 #else
gl_FragColor.a = (position.y-anim_timer) * 10000.0;
 #endif
}
if(effect_num == 2)
{
gl_FragColor.a = 1.0;
 #ifdef FLAG_LIGHT
gl_FragColor.rgb = mix(texture2D(sFramebuffer, screenPos + anim_timer*0.1*normal.xy + anim_timer*0.1*vec2(sin(screenPos.y*50.0))).rgb,fragmentColor.rgb,(max(anim_timer,0.2)-0.2)*1.25);
 #else
gl_FragColor.rgb = mix(texture2D(sFramebuffer, screenPos + anim_timer*0.1*lNormal.xy + anim_timer*0.1*vec2(sin(screenPos.y*50.0))).rgb,fragmentColor.rgb,(max(anim_timer,0.2)-0.2)*1.25);
 #endif
}
 #else
gl_FragColor = fragmentColor;
 #endif
}
Title: Re: Cinematics vs Game
Post by: Nighteyes on August 01, 2011, 05:37:59 pm
I added some refraction to the cloaking shader: http://www.youtube.com/watch?v=8l3i4CTzplM&hd=1, and decloak http://www.youtube.com/watch?v=8-c27wikh5U&hd=1
Does this look better than the old version?

it looks better, and subtle is indeed the way to go, only thing I can suggest is to change the "pattern" of the swirl distortion... make it more like a fractal noise and if possible some parts of the ship appearing before/after other parts... randomizing the spread of the effect over the hull of the ship.
Title: Re: Cinematics vs Game
Post by: Valathil on August 01, 2011, 05:40:33 pm
it looks better, and subtle is indeed the way to go, only thing I can suggest is to change the "pattern" of the swirl distortion... make it more like a fractal noise and if possible some parts of the ship appearing before/after other parts... randomizing the spread of the effect over the hull of the ship.

yes but thats not as easy as it sounds.
Title: Re: Cinematics vs Game
Post by: Nighteyes on August 01, 2011, 06:09:02 pm
it looks better, and subtle is indeed the way to go, only thing I can suggest is to change the "pattern" of the swirl distortion... make it more like a fractal noise and if possible some parts of the ship appearing before/after other parts... randomizing the spread of the effect over the hull of the ship.

yes but thats not as easy as it sounds.

its a suggestion, take it or leave it, its awesome as it is anyway, I would be happy either way as if you consider this effect "finished" it would just mean a new cool thing will be next in line ;) (ahem*shadows*ahem)
Title: Re: Cinematics vs Game
Post by: Kolgena on August 01, 2011, 06:23:00 pm
What if it was pure refraction and fade without the swirliness? Not saying the current effect doesn't look fantastic, it's just that I'm curious what would happen.

Also, is it possible to keep the refraction after cloaking for a Halo-style active cammo?

Sort of like this:

(http://halo.neoseeker.com/w/i/halo/3/37/ActiveCamouflage.png)

with or without the ghosting of the armor.
Title: Re: Cinematics vs Game
Post by: Trivial Psychic on August 01, 2011, 06:30:17 pm
The visual effect is awesome, though it looks somewhat odd to have the thruster effects suddenly appear and disappear at full illumination as the ship completes cloaking or begins to de-cloak.  You may want to have something that scales the thruster effects size or transparency based on the present degree of visual cloak.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Mongoose on August 01, 2011, 08:01:12 pm
Edited the thread title to something much more appropriate. :)
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 01, 2011, 09:49:29 pm
Edited the thread title to something much more appropriate. :)
:lol: :lol: :lol:
The visual effect is awesome, though it looks somewhat odd to have the thruster effects suddenly appear and disappear at full illumination as the ship completes cloaking or begins to de-cloak.  You may want to have something that scales the thruster effects size or transparency based on the present degree of visual cloak.

Thruster scaling is something ive looked into but just isnt possible at the moment without upheaving the model rendering pipeline for a quick and dirty fix. This should however be trivial once we get shader support on sprites with swifty's soft particles, im sure i can sneak something in there and then its much cleaner and neater code.
What if it was pure refraction and fade without the swirliness? Not saying the current effect doesn't look fantastic, it's just that I'm curious what would happen.

Also, is it possible to keep the refraction after cloaking for a Halo-style active cammo?

firstly letting the cloak stay on with refraction was something i discussed at length in irc today and will definitely be implemented in a short timeframe just have to add a parameter to the table.

secondly THIS: http://www.youtube.com/watch?v=ZH7uMFQBIw4&hd=1
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Trivial Psychic on August 01, 2011, 09:58:41 pm
That is SO Cool!  :yes:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 01, 2011, 10:07:21 pm
Oh GOD YES. :eek:
It looks less Klingon, which I had thought of the other effects, but many times better.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 01, 2011, 10:10:05 pm
Oh GOD YES. :eek:
It looks less Klingon, which I had thought of the other effects, but many times better.

Its more romulan now in my book
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Sonzai on August 01, 2011, 10:16:32 pm
That is an unbelievably awesome effect! :yes:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Kolgena on August 01, 2011, 10:34:32 pm
k wow. Huge improvement over the previous effect, which tbh, now seems cheesy in comparison.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 01, 2011, 10:36:44 pm
Oh GOD YES. :eek:
It looks less Klingon, which I had thought of the other effects, but many times better.

Its more romulan now in my book
I may just have to take your word for that, I haven't seen Romulan cloaking in the longest time and any video I'll find is fan-made.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Rodo on August 01, 2011, 10:46:32 pm
alpha 1: ****! did you just see that?
alpha 2: what? I saw nothing.
*PAF!
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Cobra on August 01, 2011, 10:51:16 pm
Also, confirmed: The wireframe draw problem is a Radeon issue.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 01, 2011, 11:02:10 pm
Also, confirmed: The wireframe draw problem is a Radeon issue.
Woooooooo. :doubt:
Yeah, 5870 on 11.4 and got it too. Can't go to 11.6 otherwise I'll have other (Unrelated to this thread) graphics issues on FreeSpace.
Goddammit ATI just die already.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: mjn.mixael on August 01, 2011, 11:26:32 pm
A quick note to say that I built 7410 out of SVN and The_E's fixes did solve the sound effect issue.  :yes:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: The E on August 02, 2011, 01:39:11 am
Also, confirmed: The wireframe draw problem is a Radeon issue.
Woooooooo. :doubt:
Yeah, 5870 on 11.4 and got it too. Can't go to 11.6 otherwise I'll have other (Unrelated to this thread) graphics issues on FreeSpace.
Goddammit ATI just die already.

There's a fix for that issue in this very thread. Also, 11.7 drivers seem good as well.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 02, 2011, 07:54:43 am
I'll just stick with the fix. If I try updating the drivers I bet I'd just rollback straight to 11.4 after I find an even more annoying issue than opaque canopy glass. :doubt:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Nighteyes on August 02, 2011, 08:02:33 am
that looks awesome  :yes: (maybe add a small glow around the part that is transitioning from solid to transparent?)

now, it just occurred to me, the base of this shader is going to give us HEAT DISTORTED SHOCKWAVES! can this be applied to 2D shockwaves? or only on 3D models?

*on the same note, can we use this for heat shimmer effect for thrusters?
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 02, 2011, 08:05:20 am
The glow can't be done unless Post-Processing can be displayed in the ship / weapon select screens, I asked about it too.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Nighteyes on August 02, 2011, 08:38:46 am
The glow can't be done unless Post-Processing can be displayed in the ship / weapon select screens, I asked about it too.
this shows otherwise...
http://www.youtube.com/watch?v=mSki1LMMUpE&NR=1
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 02, 2011, 08:44:38 am
Oh for the cloak effect, not selection materialization.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 02, 2011, 10:39:11 am
that looks awesome  :yes: (maybe add a small glow around the part that is transitioning from solid to transparent?)

now, it just occurred to me, the base of this shader is going to give us HEAT DISTORTED SHOCKWAVES! can this be applied to 2D shockwaves? or only on 3D models?

*on the same note, can we use this for heat shimmer effect for thrusters?

Ive tried that already, but we need Swifty's Soft particles first.

And i'd really dont think that a glow would help the effect. I think it would look silly cause the "clouds" that are projected over the ship are currently 2d sine bumbs so if would take that as the input for the glow youd get nice bright circles floating over the ships and that would really look awful so no im not going to try that methinks
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: mjn.mixael on August 04, 2011, 01:15:22 am
Having just looked over my rendered iterations of the FS2 select effect.. Would it be possible to add a green light under the grid? (Probably not.. but doesn't hurt to ask right?)

[attachment deleted by ninja]
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Kolgena on August 04, 2011, 10:49:17 am
Yeah, hopefully that's possible, though Valathil didn't really do anything first time I suggested that. Maybe not practical?
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 04, 2011, 11:19:13 am
This is why.

no postprocessing in loadout screen -> no bloom, sry, dont think its feasible to get that working but if someone can do it please do it.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Kolgena on August 04, 2011, 11:24:58 am
A point light has nothing to do with post-processing.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 04, 2011, 11:31:58 am
Meh, the first thing I noticed was the grid glowing. :doubt:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Luis Dias on August 04, 2011, 11:41:29 am
It would be really cool if such light could be changed easily in FRED or in tables or wtv.

You could build your own techroom for your own species with different colors based on its psychology, etc.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Tomo on August 05, 2011, 03:30:25 am
This is why.

no postprocessing in loadout screen -> no bloom, sry, dont think its feasible to get that working but if someone can do it please do it.
Light != bloom, you know.

Adding a fixed green light should not be too bad, however adding a user-configurable light is harder.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 05, 2011, 07:53:24 am
This is why.

no postprocessing in loadout screen -> no bloom, sry, dont think its feasible to get that working but if someone can do it please do it.
Light != bloom, you know.

Adding a fixed green light should not be too bad, however adding a user-configurable light is harder.
You think I haven't realized that?

Meh, the first thing I noticed was the grid glowing. :doubt:
Or you can't read posts either like myself. Either way I'm limiting my next posts to a Yay or Nay on the effect progress since I've frequently misread posts here. :doubt:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Spoon on August 08, 2011, 12:04:36 pm
So I noticed in the tech lab that enabling the animated shader disables transparency on transparent textures.
http://youtu.be/QsqvdzElvCI?hd=1
Haven't tested this ingame yet, just the F3 shiplab.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 08, 2011, 01:29:43 pm
This should make the cables a little thinner:

Code: [Select]
#ifdef FLAG_LIGHT
uniform int n_lights;
#endif

#ifdef FLAG_DIFFUSE_MAP
uniform sampler2D sBasemap;
#endif

#ifdef FLAG_GLOW_MAP
uniform sampler2D sGlowmap;
#endif

#ifdef FLAG_SPEC_MAP
uniform sampler2D sSpecmap;
#endif

#ifdef FLAG_ENV_MAP
uniform samplerCube sEnvmap;
uniform bool alpha_spec;
varying vec3 envReflect;
#endif

#ifdef FLAG_NORMAL_MAP
uniform sampler2D sNormalmap;
varying mat3 tbnMatrix;
#endif

#ifdef FLAG_FOG
varying float fogDist;
#endif

#ifdef FLAG_ANIMATED
uniform sampler2D sFramebuffer;
uniform int effect_num;
uniform float anim_timer;
uniform float vpwidth;
uniform float vpheight;
#endif

varying vec4 position;
varying vec3 lNormal;

#if SHADER_MODEL == 2
  #define MAX_LIGHTS 2
#else
  #define MAX_LIGHTS 8
#endif

#define SPEC_INTENSITY_POINT 5.3 // Point light
#define SPEC_INTENSITY_DIRECTIONAL 3.0 // Directional light
#define SPECULAR_FACTOR 1.75
#define SPECULAR_ALPHA 0.1
#define SPEC_FACTOR_NO_SPEC_MAP 0.6
#define ENV_ALPHA_FACTOR 0.3
#define GLOW_MAP_INTENSITY 1.5
#define AMBIENT_LIGHT_BOOST 1.0

void main()
{
vec3 eyeDir = vec3(normalize(-position).xyz); // Camera is at (0,0,0) in ModelView space
vec4 lightAmbientDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightDiffuse = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightAmbient = vec4(0.0, 0.0, 0.0, 1.0);
vec4 lightSpecular = vec4(0.0, 0.0, 0.0, 1.0);
vec2 texCoord = gl_TexCoord[0].xy;
 #ifdef FLAG_ANIMATED
vec2 screenPos;
if(effect_num == 2)
{
screenPos = gl_FragCoord.xy * vec2(vpwidth,vpheight);
}
 #endif
 #ifdef FLAG_LIGHT
  #ifdef FLAG_NORMAL_MAP
// Normal map - convert from DXT5nm
vec3 normal;

normal.rg = (texture2D(sNormalmap, texCoord).ag * 2.0) - 1.0;
  #ifdef FLAG_ENV_MAP
vec3 envOffset = vec3(0.0);
envOffset.xy = normal.xy;
  #endif
normal.b = sqrt(1.0 - dot(normal.rg, normal.rg));
normal = tbnMatrix * normal;
float norm = length(normal);
if( length(normal) > 0.0)  // fix broken normal maps
normal /= norm ;
else
normal = tbnMatrix * vec3(0.0, 0.0, 1.0);
  #else
vec3 normal = lNormal;
  #endif

vec3 lightDir;
lightAmbient = gl_FrontMaterial.emission + (gl_LightModel.ambient * gl_FrontMaterial.ambient);
float dist;
#pragma optionNV unroll all
for (int i = 0; i < MAX_LIGHTS; ++i) {
  #if SHADER_MODEL > 2
if (i > n_lights)
break;
  #endif
float specularIntensity = 1.0;
float attenuation = 1.0;

// Attenuation and light direction
  #if SHADER_MODEL > 2
if (gl_LightSource[i].position.w == 1.0) {
  #else
if (gl_LightSource[i].position.w == 1.0 && i != 0) {
  #endif
// Positional light source
float dist = distance(gl_LightSource[i].position.xyz, position.xyz);

lightDir = (gl_LightSource[i].position.xyz - position.xyz);

  #if SHADER_MODEL > 2
if (gl_LightSource[i].spotCutoff < 91.0) {  // Tube light
float beamlength = length(gl_LightSource[i].spotDirection);
vec3 beamDir = normalize(gl_LightSource[i].spotDirection);
float neardist = dot(position.xyz - gl_LightSource[i].position.xyz , beamDir); // Get nearest point on line
vec3 nearest = gl_LightSource[i].position.xyz - beamDir * abs(neardist); // Move back from the endpoint of the beam along the beam by the distance we calculated
lightDir = nearest - position.xyz;
dist = length(lightDir);
}
  #endif

lightDir = normalize(lightDir);

attenuation = 1.0 / (gl_LightSource[i].constantAttenuation + (gl_LightSource[i].linearAttenuation * dist) + (gl_LightSource[i].quadraticAttenuation * dist * dist));

specularIntensity = SPEC_INTENSITY_POINT;
} else {
// Directional light source
lightDir = normalize(gl_LightSource[i].position.xyz);
specularIntensity = SPEC_INTENSITY_DIRECTIONAL; // Directional light
}

// Ambient and Diffuse
lightAmbient += (gl_FrontLightProduct[i].ambient * attenuation);
lightDiffuse += (gl_FrontLightProduct[i].diffuse * (max(dot(normal, lightDir), 0.0)) * attenuation);
// Specular
float NdotHV = clamp(dot(normal, normalize(eyeDir + lightDir)), 0.0, 1.0);
lightSpecular += ((gl_FrontLightProduct[i].specular * pow(NdotHV, gl_FrontMaterial.shininess)) * attenuation) * specularIntensity;
}

lightAmbientDiffuse = lightAmbient + lightDiffuse;
 #else
lightAmbientDiffuse = gl_Color;
lightSpecular = gl_SecondaryColor;
 #endif
 #ifdef FLAG_ANIMATED
vec2 distort = vec2(cos(position.x*position.w*0.005+anim_timer*20.0)*sin(position.y*position.w*0.005),sin(position.x*position.w*0.005+anim_timer*20.0)*cos(position.y*position.w*0.005))*0.03;
 #endif
 #ifdef FLAG_DIFFUSE_MAP
 // Base color
  #ifdef FLAG_ANIMATED
vec4 baseColor;
if(effect_num == 2)
{
baseColor = texture2D(sBasemap, texCoord + distort*(1.0-anim_timer));
}
else
{
baseColor = texture2D(sBasemap, texCoord);
}
  #else
vec4 baseColor = texture2D(sBasemap, texCoord);
  #endif
 #else
vec4 baseColor = gl_Color;
 #endif
 
vec4 fragmentColor;
fragmentColor.rgb = baseColor.rgb * max(lightAmbientDiffuse.rgb * AMBIENT_LIGHT_BOOST, gl_LightModel.ambient.rgb - 0.425);
fragmentColor.a = baseColor.a;

 #ifdef FLAG_SPEC_MAP
 // Spec color
fragmentColor.rgb += lightSpecular.rgb * (texture2D(sSpecmap, texCoord).rgb * SPECULAR_FACTOR);
fragmentColor.a += (dot(lightSpecular.a, lightSpecular.a) * SPECULAR_ALPHA);
 #else
fragmentColor.rgb += lightSpecular.rgb * (baseColor.rgb * SPEC_FACTOR_NO_SPEC_MAP);
 #endif

 #ifdef FLAG_ENV_MAP
 // Env color
  #ifdef FLAG_NORMAL_MAP
vec3 envReflectNM = envReflect + envOffset;
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflectNM).rgb, textureCube(sEnvmap, envReflectNM).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflectNM).rgb * envIntensity;
  #else
vec3 envIntensity = (alpha_spec) ? vec3(texture2D(sSpecmap, texCoord).a) : texture2D(sSpecmap, texCoord).rgb;
fragmentColor.a += (dot(textureCube(sEnvmap, envReflect).rgb, textureCube(sEnvmap, envReflect).rgb) * ENV_ALPHA_FACTOR);
fragmentColor.rgb += textureCube(sEnvmap, envReflect).rgb * envIntensity;
  #endif
 #endif

 #ifdef FLAG_GLOW_MAP
 // Glow color
fragmentColor.rgb += texture2D(sGlowmap, texCoord).rgb * GLOW_MAP_INTENSITY;
 #endif

 #ifdef FLAG_FOG
fragmentColor.rgb = mix(fragmentColor.rgb, gl_Fog.color.rgb, fogDist);
 #endif

 #ifdef FLAG_ANIMATED
if(effect_num == 0)
{
float shinefactor = 1.0/(1.0 + pow((fract(abs(gl_TexCoord[0].x))-anim_timer) * 1000.0, 2.0)) * 1000.0;
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
gl_FragColor.a = fragmentColor.a * clamp(shinefactor * (fract(abs(gl_TexCoord[0].x))-anim_timer) * -10000.0,0.0,1.0);
}
if(effect_num == 1)
{
float shinefactor = 1.0/(1.0 + pow((position.y-anim_timer), 2.0));
gl_FragColor.rgb = fragmentColor.rgb + vec3(shinefactor);
 #ifdef FLAG_LIGHT
gl_FragColor.a = fragmentColor.a;
 #else
gl_FragColor.a = clamp((position.y-anim_timer) * 10000.0,0.0,1.0);
 #endif
}
if(effect_num == 2)
{
gl_FragColor.a = fragmentColor.a;
float cloak_interp = sin(position.x*position.w*0.005+anim_timer*20.0)*sin(position.y*position.w*0.005)*0.5-0.5; //+ anim_timer*0.1*vec2(sin(screenPos.y*50.0))
 #ifdef FLAG_LIGHT
gl_FragColor.rgb = mix(texture2D(sFramebuffer, screenPos + distort*anim_timer + anim_timer*0.1*normal.xy).rgb,fragmentColor.rgb,clamp(cloak_interp+anim_timer*2.0,0.0,1.0));
 #else
gl_FragColor.rgb = mix(texture2D(sFramebuffer, screenPos + distort*anim_timer + anim_timer*0.1*lNormal.xy).rgb,fragmentColor.rgb,clamp(cloak_interp+anim_timer*2.0,0.0,1.0));
 #endif
}
 #else
gl_FragColor = fragmentColor;
 #endif
}
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Dragon on August 09, 2011, 02:03:00 pm
I've recently noticed that enabling animated shader in Lab kills glass transparency. This effect doesn't appear in game.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: mjn.mixael on August 09, 2011, 02:08:18 pm
That was JUST fixed.. in the post right above yours...
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Dragon on August 09, 2011, 02:10:00 pm
Good to know then.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Cobra on August 09, 2011, 08:04:04 pm
I just love how cable thickness has become a meme on HLP. :D
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Nuke on August 10, 2011, 08:46:19 am
i like my cables fat. more shielding, less emi. you can also cram more current down them without melting them. they also have much higher structural integrity.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: jr2 on August 11, 2011, 02:21:00 pm
i like my cables fat. more shielding, less emi. you can also cram more current down them without melting them. they also have much higher structural integrity.

+1
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Aardwolf on August 12, 2011, 07:38:54 pm
Ugh, I hate you all :mad2:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: SypheDMar on August 12, 2011, 09:06:47 pm
Ugh, I hate you all :mad2:
We're saying it out of affectin. :p
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: MetalDestroyer on August 18, 2011, 02:16:23 pm
Is there some kind of limitation on numbers of ship that can be cloaked ?

I had 6 fighters on Alpha which are cloaked. That's work perfectly. And I decided to add another squad (Beta with only 3 fighters). And when I write the SEXP for each fighter of Beta wing. When I commit the mission, the game crash. It appears I can't use the cloak effect for more than 6 fighters.

Anyway, is it possible to add more parameter to the current ship effect, like a value to choose the opacity ?
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: jr2 on August 18, 2011, 10:22:20 pm
Make 'em distort space behind them like in Star Trek you mean?
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: MetalDestroyer on August 19, 2011, 02:20:43 am
Well, I didn't thaught like that. I was more thinking about the Starlancer cloaking device. You still see the geometry of the ship. But, if we can have distort space . Sure, I'll love to get them. But, if I understand, that is not possible in the current state.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 19, 2011, 09:49:48 am
Is there some kind of limitation on numbers of ship that can be cloaked ?

I had 6 fighters on Alpha which are cloaked. That's work perfectly. And I decided to add another squad (Beta with only 3 fighters). And when I write the SEXP for each fighter of Beta wing. When I commit the mission, the game crash. It appears I can't use the cloak effect for more than 6 fighters.

Anyway, is it possible to add more parameter to the current ship effect, like a value to choose the opacity ?

Crash is fixed in 7490 ( MY FIRST COMMIT OMG OMG OMG  :eek2: :eek2: :eek2:)
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 19, 2011, 08:54:56 pm
Double post so people will notice sry.

So you guys want thruster heat distortions?
Well how about this:
http://www.youtube.com/watch?v=71kJbX3553k&hd=1
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Luis Dias on August 19, 2011, 08:58:39 pm
he does it again! :)
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: rscaper1070 on August 19, 2011, 08:59:00 pm
 :yes: That kicks some serious ass!  :yes:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Cobra on August 19, 2011, 09:40:09 pm
Daaaagh I'm going to lose it from all the awesomeness.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Rodo on August 19, 2011, 09:41:54 pm
holy mother of god!
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: mjn.mixael on August 19, 2011, 09:47:23 pm
 :jaw:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 19, 2011, 09:55:49 pm
Oh mah gaaaaaaaawwwwd.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Mongoose on August 19, 2011, 10:22:47 pm
wut

WUT
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Bobboau on August 19, 2011, 11:19:31 pm
pretty good, needs some work still.
is the effect dynamic, or in an (ani) texture?
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 19, 2011, 11:32:03 pm
pretty good, needs some work still.
is the effect dynamic, or in an (ani) texture?

Elaborate please. Any suggestions are welcome.

The Texture for the framebuffer distortion is generated randomly every 0.1 seconds.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: mjn.mixael on August 19, 2011, 11:38:11 pm
I wonder if he means the size of the distortion will scale with the engine flare size (IE Engine output).
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 19, 2011, 11:48:23 pm
IT DOES. Did you even watch the video? thats why i engaged the afterburner
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: mjn.mixael on August 19, 2011, 11:54:32 pm
(http://keenlotus.files.wordpress.com/2011/07/chill-pill.jpg)

I did watch it. What I mean was more just change in speeds like how modelled thrusters are scaled as you accelerate decelerate.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Trivial Psychic on August 20, 2011, 07:54:52 am
[Activate Scientific Accuracy Nazi]

While that effect is cool, you should realize that distortions such as this are caused by the rapid density changes in the air due to rapid heating, which is not present in space, so if you stick to that fact, then this effect is only useful for atmosphere mods.

[End Scientific Accuracy Nazi]
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 20, 2011, 07:59:06 am
Sigh.
FreeSpace 2.
That is all. :P
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: MatthTheGeek on August 20, 2011, 08:00:49 am
REALISM

BURN IT WITH FIRE
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Luis Dias on August 20, 2011, 08:08:38 am
REALISM

DISTORT IT WITH ATMOSPHERE EFFECT..... IN SPACE!
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 20, 2011, 08:30:59 am
We talked about that already. We came to the conclusion that its 50% gas from the thrusters + 50% rule of cool that generates the effect in vacuum

What I mean was more just change in speeds like how modelled thrusters are scaled as you accelerate decelerate.

I've tried 3 times i cant parse this sentence to extract what you mean could you reformulate please.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: headdie on August 20, 2011, 08:36:27 am
We talked about that already. We came to the conclusion that its 50% gas from the thrusters + 50% rule of cool that generates the effect in vacuum

:yes:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Flipside on August 20, 2011, 08:39:48 am
I think that if I get worried about the physics of haze on a thruster, I'll turn them off, drift to complete stop and just listen to the ships around me while I think about it ;)
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 20, 2011, 08:47:12 am
We talked about that already. We came to the conclusion that its 50% gas from the thrusters + 50% rule of cool that generates the effect in vacuum

What I mean was more just change in speeds like how modelled thrusters are scaled as you accelerate decelerate.

I've tried 3 times i cant parse this sentence to extract what you mean could you reformulate please.
The more thrust you have on the engines, the engine flame is larger, smaller if you decrease the thrust, does the haze effect behave in the same way when not on afterburner? More thrust, bigger haze effect, less thrust, smaller haze effect.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Rodo on August 20, 2011, 09:02:33 am
Is that really how it works? IIRC there are only three different sizes of thrusters, complete stop, any kind of speed and afterburners.

Having the haze show up when using afterburner or any kind of speed is ok, because it will look good.
In complete stop... I can't even start to think how can it be made to look good.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 20, 2011, 09:09:15 am
The video doesn't show the Ulysses not moving, and it wasn't stated if it goes away when at zero thrust.

Even though what I was doing there was trying to make what was trying to be said earlier clear, and not myself asking questions.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 20, 2011, 09:23:37 am
Yes it does scale with the throttle. The alpha envelope of the effect is the normal secondary thruster glow which scales like you describe only with double the size so you can see it and it isnt completely masked by the glow. the afterburner elongation is not something i did it does that automatically like it does the thrusterglows.

EDIT: new version http://www.youtube.com/watch?v=_Y_do4VbGQo&hd=1
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Spoon on August 20, 2011, 01:08:49 pm
So sexy  :cool:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Reprobator on August 20, 2011, 01:15:25 pm
It rocks!
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 20, 2011, 01:50:34 pm
Outstanding. :D
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: sigtau on August 20, 2011, 01:59:35 pm
What happens if you fly through a capship's distortion plume?  Any clipping or ill effects?
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 20, 2011, 02:14:18 pm
What happens if you fly through a capship's distortion plume?  Any clipping or ill effects?

didnt try it

AND NOW WATCH THIS: WHEN YOULL SEE IT YOULL **** BRICKS

http://www.youtube.com/watch?v=YiBUtatIwus&hd=1
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Commander Zane on August 20, 2011, 02:21:34 pm
:jaw:
All this awesome in the same day my mind shall explode.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: rscaper1070 on August 20, 2011, 02:30:19 pm
When can we get our hands on this? I'm dieing to see what that looks like with Nighteye's shockwaves. Really, really cool!
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Reprobator on August 20, 2011, 02:32:25 pm
This begin to looks like the shockwave effect we see on ww2 gun cam when there is bomb explosion shockwave, really outstanding!
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Lester on August 20, 2011, 03:51:18 pm
****ing. Hell.
:jaw:
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Deadly in a Shadow on August 20, 2011, 05:21:03 pm
I wonder how much AWESOME Freespace SCP can compensate....
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: BlasterNT on August 20, 2011, 05:27:03 pm
That.  Is awesome. 

Congrats about joining the SCP, btw. 

Edit:  OMGOMGOMG REAL SHOCKWAVES
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Trivial Psychic on August 20, 2011, 06:13:43 pm
I suppose that the next cool distortion-based weapon effect would be to have weapons that employ gravity well effects, which would benefit from singularity-type light distortion.  I believe that old Inferno R1 had a singularity-based weapon... though it was never used in the main campaign.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 20, 2011, 06:32:24 pm
Thrusters and explosion effects are in trunk as of rev 7498. Thrusters are enabled by default but explosions fall under the cmdline -fb_explosions in the experimental section
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Kolgena on August 20, 2011, 07:20:00 pm
Holy crap. Just. Holy.

Looks excellent. I'm slightly curious about what the haze looks like when the thruster plume is normal to the camera. As long as it's not weird looking, I'm sold on this effect. Realism be damned.

(Could the distortion be synced to the blue shockwave bitmap, which seems to be missing? Also, the refraction is screenspace right? So we don't have to worry about 2-pixel thrusters robbing performance somewhere 15 klicks away?)
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 20, 2011, 08:37:54 pm
Holy crap. Just. Holy.

Looks excellent. I'm slightly curious about what the haze looks like when the thruster plume is normal to the camera. As long as it's not weird looking, I'm sold on this effect. Realism be damned.

(Could the distortion be synced to the blue shockwave bitmap, which seems to be missing? Also, the refraction is screenspace right? So we don't have to worry about 2-pixel thrusters robbing performance somewhere 15 klicks away?)

When youre exactly normal it kinda turns into a flat poly but you wont see that cause the bright glow from the primary thruster glow covers all.

The distortion IS synced to the blue shockwave cause as you noticed its gone; where is it gone? it became the distortion map, thats why its experimental cause at the moment i cant draw both at once and i dont want to force this kinda change on people.

Refraction is done as a offseted texture lookup, this is done per pixel/fragment so if the thruster is 2 pixel in size the refraction is caluculated for 2 pixels and not more. Only thing that cost a fixed amount of rendering time is updating the randomly generated distortion texture which is rendering 32 points + a 31*32 texture to a framebuffer soooo not that expensive i imagine.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Mongoose on August 20, 2011, 09:39:57 pm
How...how do you do all this crazy stuff?  Do you have a deal with the Coding Devil?
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Bobboau on August 20, 2011, 09:51:28 pm
ok, so congratulations on volunteering for the position of adding the -distortion texture suffix handler for all effects that could possibly use it :)

it will be interesting to see what people come up with for different thruster types and beam weapons and laser bolts and particles and warp effects and fireballs and trails and hud elements and jump nodes and other stuff
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Bobboau on August 20, 2011, 09:53:45 pm
How...how do you do all this crazy stuff?  Do you have a deal with the Coding Devil?

it's basically the same effect being applied to different situations, doing it the first time would have been hard, doing it every subsequent time would be mostly trivial.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Valathil on August 20, 2011, 10:10:34 pm
How...how do you do all this crazy stuff?  Do you have a deal with the Coding Devil?

it's basically the same effect being applied to different situations, doing it the first time would have been hard, doing it every subsequent time would be mostly trivial.

shhh, we weren't going to tell them that. Your diminishing my apparent awesomeness.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Woolie Wool on August 20, 2011, 10:12:20 pm
We talked about that already. We came to the conclusion that its 50% gas from the thrusters + 50% rule of cool that generates the effect in vacuum

What I mean was more just change in speeds like how modelled thrusters are scaled as you accelerate decelerate.

I've tried 3 times i cant parse this sentence to extract what you mean could you reformulate please.
Can there be a mission flag to turn this on and off so a mod could turn it on for atmospheric missions and off for space?
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Trivial Psychic on August 20, 2011, 10:23:45 pm
I think that this thread needs to be either split or renamed.  I say split because it started with someone asking for a bunch of things to be added to the game, then Valathil introduced the scan+grid effect for ship selection, then the cloaking, and now thruster and weapon distortions and God knows what next.  This represents three or four different topics.  If however it is destined to remain in a single thread, may I suggest it be renamed again to "Valathil's Awesome Graphical Advancements", or something like that.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Mongoose on August 20, 2011, 10:31:32 pm
I think I'll just rename it to that, mainly because I don't feel like going through the effort of splitting it up into four separate threads. :p

And don't worry, Valathil, your aura is undiminished.
Title: Re: Valathil's awesome cloaking effect (formerly Cinematics vs. Game)
Post by: Rodo on August 20, 2011, 10:34:56 pm
why, too much awesome for a single thread he?

On the new vid.. I was expecting to see the Orion exploding, but that will do for now :D
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Bobboau on August 20, 2011, 10:41:56 pm
randomly generated distortion texture

this I don't like, how much of an effort would it be to base this effect off of an ANI instead?
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Zacam on August 20, 2011, 11:53:28 pm
Thrusters and explosion effects are in trunk as of rev 7498. Thrusters are enabled by default but explosions fall under the cmdline -fb_explosions in the experimental section

And then it was just as promptly reverted in 7503. Check PM.

Needs a bit more testing, sorry folks.


For anybody that want's to see WHY, I have a link. HOWEVER. If you are prone to seizures, or think you MIGHT be, DO. NOT. WATCH. especially not in a dark room. And even though both Fraps and YouTube did crap on converting it, and it killed my FPS somewhat, it runs at about twice per frame. And when at 60 frames per second...that's damn fast.

You have been warned. http://www.youtube.com/watch?v=Olcaj8HjiAU&hq=1
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Mongoose on August 21, 2011, 02:14:00 am
Yeesh...yeah, we don't want a Pokemon incident on our hands.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Nuke on August 21, 2011, 09:32:55 am
What happens if you fly through a capship's distortion plume?  Any clipping or ill effects?

didnt try it

AND NOW WATCH THIS: WHEN YOULL SEE IT YOULL **** BRICKS

http://www.youtube.com/watch?v=YiBUtatIwus&hd=1

awesome
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Some14U on August 21, 2011, 12:59:55 pm
Maybe an AMD issue?

I noticed weird video behavior while doing a quick playtest of the distortion effects on rev 7499. Not like yours, more of a nontransparent black box on the 5650m, 6850/4890 driver version 11.8 WHQL.

No issues  on the Nvidia 540m/220m on 280.26 WHQL.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Fury on August 22, 2011, 04:45:47 am
What happens if you fly through a capship's distortion plume?  Any clipping or ill effects?

didnt try it

AND NOW WATCH THIS: WHEN YOULL SEE IT YOULL **** BRICKS

http://www.youtube.com/watch?v=YiBUtatIwus&hd=1
Now that is what I call a shockwave. I think it could use more distortion to make it look like it'll damage you too if caught within. Cool stuff.
Title: Re: Cinematics vs Game
Post by: TwentyPercentCooler on August 22, 2011, 08:39:44 am
- A while back I was working on a Warp Effect shader that squeezes the ship into a small tube and stretches it to infinity (well, a long way) as it warps. It looked really cool, but couldn't be used as there was no way for the shader to know that the ship was warping.
Equally, all the Star Trek warp effects (TOS, Next Gen and the reboot) can be done quite easily with shaders.

First off, I'd like to say...

Christ on a cracker, Valathil, that cloak looks effing fantastic. A couple more crazy advancements like this and FSO will be taking a crack at the CryTek engine.

In regards to the post that I quoted, the warp effect from the ST reboot movie would be wicked.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: BlasterNT on August 22, 2011, 09:16:22 am
Or a warp effect like this, with a distortion trail:  http://www.box.net/shared/7btkoaf1vbe87k8923b9

(video isn't mine, I found it on my hd a couple days ago)
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Valathil on August 22, 2011, 11:18:27 am
Or a warp effect like this, with a distortion trail:  http://www.box.net/shared/7btkoaf1vbe87k8923b9

(video isn't mine, I found it on my hd a couple days ago)

if the movement would work which iirc it doesnt there are threads about this i read this would be fairly easy i would need an animated texture for displacement mapping though. it would look exactly like the normal map of a grid of polys that would refract the light as desired so if anyone is keen on this effect they gonna have to provide this as im not a good artist
Title: Re: Valathil's Awesome Graphical Advancements
Post by: mjn.mixael on August 22, 2011, 11:32:26 am
A quick fix would be to just make the thruster distortion much, much larger for the Hyperspace type warpout....
Title: Re: Valathil's Awesome Graphical Advancements
Post by: MatthTheGeek on August 22, 2011, 11:34:05 am
as im not a good artist
But coding is an art, my friend :p
Title: Re: Valathil's Awesome Graphical Advancements
Post by: MetalDestroyer on August 22, 2011, 11:35:53 am
Could you do this kind of hyperspace effect ? I would love to see that effect in FSO.
http://www.youtube.com/watch?v=26Jql9Qsj_8&feature=player_detailpage#t=13s

Watch the scene between 13s and 20 s.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Valathil on August 22, 2011, 12:18:57 pm
That is not a framebuffer effect. This is vertex deformation with vertex shader. Easily doable. But guys you do realize even though all those effects are doable i dont have the time to implement every single one in 1 day right.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: MatthTheGeek on August 22, 2011, 12:26:46 pm
What's interesting is whether it's doable or not. Being actually done afterwards is just a matter of coder time and whether it is actually wanted/needed/worth it or not.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: MetalDestroyer on August 22, 2011, 12:32:37 pm
Personnaly, I really like to see that hyperspace jump for one of my mods :)
Title: Re: Valathil's Awesome Graphical Advancements
Post by: pecenipicek on August 22, 2011, 12:38:15 pm
That is not a framebuffer effect. This is vertex deformation with vertex shader. Easily doable. But guys you do realize even though all those effects are doable i dont have the time to implement every single one in 1 day right.
Dont bother with it unless a concrete mod team actually asks you to do something. If you continue working like this, you'll create tons of effects that are maybe going to get used by someone when he/she/it notices they even exist.
Seriously. Yeah, oohs and aaahs from the general populace are always oh so very rewarding, but on the overall, if it isnt going to get used in a concrete manner, you've wasted your time and effort.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Valathil on August 22, 2011, 12:44:16 pm
That is not a framebuffer effect. This is vertex deformation with vertex shader. Easily doable. But guys you do realize even though all those effects are doable i dont have the time to implement every single one in 1 day right.
Dont bother with it unless a concrete mod team actually asks you to do something. If you continue working like this, you'll create tons of effects that are maybe going to get used by someone when he/she/it notices they even exist.
Seriously. Yeah, oohs and aaahs from the general populace are always oh so very rewarding, but on the overall, if it isnt going to get used in a concrete manner, you've wasted your time and effort.

THIS

oh and btw Thrusters and explosions are in trunk again with rev 7513
Title: Re: Valathil's Awesome Graphical Advancements
Post by: chief1983 on August 22, 2011, 12:49:54 pm
Still, if a mod team sees that it's possible, they might ask for it :)
Title: Re: Valathil's Awesome Graphical Advancements
Post by: rscaper1070 on August 22, 2011, 02:01:37 pm
Dont bother with it unless a concrete mod team actually asks you to do something. If you continue working like this, you'll create tons of effects that are maybe going to get used by someone when he/she/it notices they even exist.
Seriously. Yeah, oohs and aaahs from the general populace are always oh so very rewarding, but on the overall, if it isnt going to get used in a concrete manner, you've wasted your time and effort.

Well part of the problem is that the only effects that are listed in the wiki are Lightspeed's nebulae. We need a better index so that when these effects are created the documentation gets in the wiki.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: BlasterNT on August 22, 2011, 03:40:10 pm
Um, wait, vertex deformation is easily doable?  Because that would actually help me a lot.  But you'd do that through a shader? 
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Bobboau on August 22, 2011, 03:50:06 pm
rather than focusing on specific effects you should be focusing on classes of effects, for example, the thruster effect right now uses a hard coded random texture,  it this was an animated texture then multiple modding teams could each come up with their own, the cloak has a wavy pattern, I am assuming is also hard coded, same deal, the less hard coded situation specific stuff you do them more flexible, and usable your stuff becomes.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Commander Zane on August 22, 2011, 03:55:37 pm
the cloak has a wavy pattern, I am assuming is also hard coded, same deal, the less hard coded situation specific stuff you do them more flexible, and usable your stuff becomes.
There is this.
http://www.youtube.com/watch?v=ZH7uMFQBIw4&hd=1
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Bobboau on August 22, 2011, 05:40:57 pm
point is it's hard-coded into the effect, not something based on an external file.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: pecenipicek on August 22, 2011, 05:46:47 pm
Still, if a mod team sees that it's possible, they might ask for it :)
well, i did say, "unless a mod team asks you for it" :p
Title: Re: Valathil's Awesome Graphical Advancements
Post by: rscaper1070 on August 22, 2011, 06:40:52 pm
point is it's hard-coded into the effect, not something based on an external file.

Maybe a hybrid of Valathil's coded cloak and Mjn.Mixael's (http://www.hard-light.net/forums/index.php?topic=76795.0) fred cloak to get different effects.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: The E on August 23, 2011, 02:16:20 am
point is it's hard-coded into the effect, not something based on an external file.

It's NOT hard-coded. It's coded into the shader which you can alter yourself. If you do not like this implementation, please, roll out your own.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: TwentyPercentCooler on August 23, 2011, 12:35:15 pm
So I noticed that the shockwave and thruster distortions made it back into today's build, and I'd like to say they look fantastic. The shockwaves especially - it just gives them a lot more visual oomph. The Tev assault on Rheza station never looked so good.

I would like to note, however, that the thrusters are now appearing before or after a ship jumps and appear to be floating in space at certain times. Is this an unfortunate consequence of the feature as it's currently implemented (in which case it's not a big deal, because I'm sure it'll be fixed)?
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Nuke on August 23, 2011, 01:14:44 pm
point is it's hard-coded into the effect, not something based on an external file.

It's NOT hard-coded. It's coded into the shader which you can alter yourself. If you do not like this implementation, please, roll out your own.

do shaders follow the same rules of hierarchy that tables do? can you inherit shaders from lower in the mod hierarchy and modify certain ones based on mod requirements at higher levels?
Title: Re: Valathil's Awesome Graphical Advancements
Post by: The E on August 23, 2011, 01:26:00 pm
Yes, they follow the normal hierarchy rules.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Valathil on August 23, 2011, 01:27:45 pm
So I noticed that the shockwave and thruster distortions made it back into today's build, and I'd like to say they look fantastic. The shockwaves especially - it just gives them a lot more visual oomph. The Tev assault on Rheza station never looked so good.

I would like to note, however, that the thrusters are now appearing before or after a ship jumps and appear to be floating in space at certain times. Is this an unfortunate consequence of the feature as it's currently implemented (in which case it's not a big deal, because I'm sure it'll be fixed)?

its a consequence of rendering the thrusters at the end of the renderpipeline to avoid those nasty ati artifacts. therefore the custom clipping plane the warp effect provides is not availiable anymore. i think swifty is working on that cause soft particles currently have the same problem so when he fixes it i will piggyback my fix on his.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: mjn.mixael on August 23, 2011, 02:18:33 pm
Really nice effect! A couple things..

The engine distortion seems to clip at a certain point. I've attached screens to show this happening.

Would you be interested in applying this to the standard FS warp? That blue vortex is screaming for distortion like this...
(Weapons like lasers and beams might be cool.. but at some point it's just effect saturation..) I'm happy with what we've got, but I figured I'd toss it out there.

[attachment deleted by ninja]
Title: Re: Valathil's Awesome Graphical Advancements
Post by: chief1983 on August 23, 2011, 02:26:29 pm
There's still a bug I think on OS X that the custom clipping plane doesn't even work on the ship model itself.  I think there's a screenshot or video of it happening somewhere.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Reprobator on August 23, 2011, 05:11:49 pm
That blue vortex is screaming for distortion like this...
(Weapons like lasers and beams might be cool.. but at some point it's just effect saturation..) I'm happy with what we've got, but I figured I'd toss it out there.
Agree for the vortex, but i have to say that kind of distortion used around a beam's muzzle flash (having a distortion buble that expend and gain intensity while the beam heat up)  has to be damned awesome too :D
I would sell my sister for that!

Anyway great work grats on that Mr valathil!
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Bobboau on August 23, 2011, 06:50:32 pm
It's NOT hard-coded. It's coded into the shader which you can alter yourself. If you do not like this implementation, please, roll out your own.

so if I wanted to give each ship a different cloaking disruption patern I could do that? I could assign a different texture to each?
Title: Re: Valathil's Awesome Graphical Advancements
Post by: pecenipicek on August 23, 2011, 07:24:42 pm
since the shaders arent yet appliable per object, no, you cant. You can however, manipulate the shaders on a per-mod basis.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Bobboau on August 23, 2011, 08:59:00 pm
so, if we were to allow different shaders per object, I would then have the ability to use a texture to define the disruption pattern? or would I have to think up a way to procedurally define it, and then write a complete shader for each ship I wanted to have a different style cloaking effect?
Title: Re: Valathil's Awesome Graphical Advancements
Post by: The E on August 24, 2011, 01:33:50 am
Umm, yes, you can have different effects per object. That's what the ship-effect sexp is for. Basically, that sexp sets a uniform (effect_num), and then the shader can use whatever code you want it to. Look at the wiki page for post_processing.tbl for details.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: pecenipicek on August 24, 2011, 06:06:12 am
Umm, yes, you can have different effects per object. That's what the ship-effect sexp is for. Basically, that sexp sets a uniform (effect_num), and then the shader can use whatever code you want it to. Look at the wiki page for post_processing.tbl for details.
I wasnt aware of this. I thought that that was pending the material system. Shows how little i know.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: Ace on August 25, 2011, 02:22:25 am
I was wondering about applying a shader effect to add in the "sucking" effect seen in the BSG FTL:
http://battlestar-galactica.co/battlestar-galactica-ftl-jump-effect/

Right now we have the flash but a very fast shader effect where a 2d version of the ship is then "sucked" and fades into the flash after the model is removed would do the trick.
Title: Re: Valathil's Awesome Graphical Advancements
Post by: petar91 on August 25, 2011, 05:05:01 am
Hi,

these new effects are awesome ! I think the shockwave distortion will be better without the blue 3d shockwave. Combined with particule expansion effect (BSG effect, include in diaspora : http://www.spaceanomaly.com/quand-bsg-diaspora-rencontre-hollywood/  at 00:45 ) and white flash, it could be great !