Griff's normalmapped ship remakes

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

Moderators: winston, another_commander

User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Post by Cody »

Installed trunk v3046, added OXPs and save game, opened Oolite in default window, viewed demo shots, hit spacebar, went to F2, player options, altered volume, selected ‘play in fullscreen mode’, hit enter… screen froze, flashed around a bit, froze again, stayed black. Big jump in CPU usage. Crashed it with Alt F4.

Re-installed trunk… no problems now, I can’t recreate the problem, with or without OXPs.
Tried several times, no problems. False alarm… sorry.

edit: different Latest.log errors in trunk here, no decals, little paint.
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2483
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Post by Griff »

oops, there an error in the orbital shuttle config.plist, line 244

Code: Select all

fragment_shader = "griff_orbital_shuttle_r_channel_decals_constant_light_flicker"; 
it's missing the full filename for the shader, that line should be

Code: Select all

fragment_shader = "griff_orbital_shuttle_r_channel_decals_constant_light_flicker.fragment"; 
i'm not sure what all these errors are

Code: Select all

Fragment shader(s) failed to link,  vertex shader(s) failed to link. 
ERROR: error(#277) Symbol 'gl_TexCoord[0]' usage doesn't match between two stages
ERROR: error(#277) Symbol 'gl_TexCoord[0]' usage doesn't match between two stages
maybe they'll go away by fixing the orbital shuttle plist?


i think a fix for the sidewinder errors in the 2nd log is to open the 4 fragment shaders in the oxp, and change line

Code: Select all

   vec4 colorMap = texture2D(uColorMap, vTexCoord); 
to

Code: Select all

   vec3 colorMap = texture2D(uColorMap, vTexCoord).rgb; 
the fix for this error

Code: Select all

shader.compile.fragment.failure]: ***** GLSL fragment shader compilation failed for griff_tharglet_organic.fragment:
is to open the griff_tharglet_organic.fragment shader, go to line 141 and change glowmap to glowMap
( the m should be an M )
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Post by Cody »

Applied fixes to 1.73.4… less error messages of this type…

Code: Select all

Fragment shader(s) failed to link,  vertex shader(s) failed to link. 
ERROR: error(#277) Symbol 'gl_TexCoord[0]' usage doesn't match between two stages 
ERROR: error(#277) Symbol 'gl_TexCoord[0]' usage doesn't match between two stages
… but still a few there, and oddly none of the usual…

Code: Select all

[shader.uniform.unpermittedMethod]: Did not bind uniform "alertlevel" to property -[ShipEntity alertCondition] - unpermitted method.
The ships look real good, though.

Applied fixes to trunk v3046… no error messages at all apart from two of these…

Code: Select all

[shader.uniform.unpermittedMethod]: Did not bind uniform "alertlevel" to property -[<OOWeakReference> alertCondition] - unpermitted method.
… but the decals don’t appear to show and there is very little paintwork… the ships aren’t ‘tinny’ like before, there is texture but little colour. Also no flashing lights on cargo pod and escape capsule.

I’m a bit brain-dead now, so I’m going to leave trunk alone and take 1.73.4 out for a spin… for fun, not to test.
The Viper looks particularly tatsy… I don’t normally take on GalCops finest, but…
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2483
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Post by Griff »

ah, i think this

Code: Select all

ERROR: error(#277) Symbol 'gl_TexCoord[0]' usage doesn't match between two stages
might be coming from the griff_ferdelance_normalmapped.oxp, i just spotted a stray 'gl_TexCoord[0].st' i line 113 of the griff_ferdelance_mainhull.fragment (and line 116 in griff_ferdelance_player_mainhull.fragment). I'm not near a pc with oolite or rendermonkey at the moment so i can't test, but a fix might be to change (gl_TexCoord[0].st) to vTexCoord, so the whole line looks like this:

Code: Select all

   vec4 microfleckTex = texture2D(uMicrofleckmap, vTexCoord * 30.0);
i think that might work, but i'm not entierly sure, that line is supposed to be tiling a very small bumpy normal map across the surface of the ship, it's job in the shader is to fake those tiny metallic flakes you get in expensive 2 tone car paint.
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Post by Cody »

Applied those changes... still plenty of error messages.
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6312
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Post by Diziet Sma »

The new version of the all-in-one.oxp is online.
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Post by Cody »

Just had a good cruise with the re-tweaked shipset.

No more error messages, apart from the usual:

Code: Select all

[shader.uniform.unpermittedMethod]: Did not bind uniform "alertlevel" to property -[ShipEntity alertCondition] - unpermitted method.
All is well... and I'm feeling particularly pleased with myself.
Why?... because I just picked-off an incoming hardhead missile with my laser... that's a first for me.

The Free Mexican Air Force is flying tonight.

Many thanks, Griff.
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2483
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Post by Griff »

Thanks for all your help squashing the bugs El Viejo!
If anyone needs to update their individual download oxps the buggy ones were the 'cobra MK 1' & 'Fer-de-lance' oxps (which both still had a stray gl_texcoord reference in their fragment shaders mucking things up), the 'Sidewinder' oxp had a bug in it's shader (where it tried to multiply a vec4 by a vec3 with hilarious consequences), the 'Organic Thargoid' shader had a typo in it (which stopped the glow effects working) and one of the 'Orbital Shuttles' had a mis-typed fragment shader reference in it's shipdata.plist which probably stopped it ever appearing in game.
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

El Viejo wrote:

Code: Select all

[shader.uniform.unpermittedMethod]: Did not bind uniform "alertlevel" to property -[ShipEntity alertCondition] - unpermitted method.
I don’t think I ever provided a sufficiently clear explanation of this error, so I guess I might as well do it now.
  • alertCondition is a property that can only be bound to shaders on the player ship, because it’s the only ship which has an alert condition.
  • Ergo, attempting to use it on a non-player ship generates the error.
  • “Player-only” ships can be spawned as non-player ships in a number of cases: the demo screen, the shipyard screen, and when the player ejects. Only the first is avoidable.
There are three possible fixes here:
  1. Implement all player bindable methods in a sensible way for non-players. Obviously the problem here is time.
  2. Implement all player bindable methods to return fixed values for non-players. The downside is that it wouldn’t be obvious when a player-only binding is being used for a non-player ship by mistake.
  3. Add a “proxy player ship” class used for the above-mentioned cases.
I’m going to try a hybrid of 1 and 3: bindings that are relevant to NPSs (like fuelLevel_number) or refer to global state (like clock_number) will be moved into ShipEntity, and the rest will be implemented in a “player proxy” class to return fixed values (like always 1 for alertCondition).

I’ll also be removing some bindable properties from the whitelist. While you can bind to planet_number, I can’t conceive of a reason you’d want to. Some properties (which I don’t think have ever been used) will also be renamed.
User avatar
Commander McLane
---- E L I T E ----
---- E L I T E ----
Posts: 9520
Joined: Thu Dec 14, 2006 9:08 am
Location: a Hacker Outpost in a moderately remote area
Contact:

Post by Commander McLane »

So far Griff has employed another solution: In case of NPCs he hasn't used alertlevel at all, but isHostile = hasHostileTarget) instead.
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

As of r3053, the new proxy ship is used for the doppelganger created when using an escape pod. I went one better than I planned and copied all the bindable values to the new ship (although some should update and don’t , such as shield levels). The whitelist has also been revised.

Edit: …and in r3054, PlayerProxyEntity is now used in the demo screen (for non-carriers), the shipyard screen and the saved game browser.
User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6312
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Post by Diziet Sma »

Some minor shader bugfixes for the latest all-in-one.oxp have now been uploaded to the Dizzy's site.
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
User avatar
JazHaz
---- E L I T E ----
---- E L I T E ----
Posts: 2991
Joined: Tue Sep 22, 2009 11:07 am
Location: Enfield, Middlesex
Contact:

Post by JazHaz »

What is the current model for the Griff Shuttle?

Got a feeling that this image is out of date:

Image
JazHaz

Gimi wrote:
drew wrote:
£4,500 though! :shock: <Faints>
Cheers,
Drew.
Maybe you could start a Kickstarter Campaign to found your £4500 pledge. 8)
Thanks to Gimi, I got an eBook in my inbox tonight (31st May 2014 - Release of Elite Reclamation)!
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2483
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Post by Griff »

that texture and model do appear in the game, but there's also a more beaten up texture as well, it's basically that texture but with extra brown blobs on it, and some 'dents' in the normal map i don't think i took a screenshot, but i can certainly grab one from rendermonkey and upload it this evening.

actually thinking about it, you might mean the 'worm' remake, that did indeed get changed to another model that was originally a remake of the 'escape pod', it got switched to the 'worm' because the original 'griff worm' wasn't very good, i don't think there are any screen shots of this either, i'll upload one this evening

edit: updated the shuttle & worm photos on page 1
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2483
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Post by Griff »

added a 'Mamba' remake (not yet included in Dizzy's all-in-1 bundle oxp)
Image
Post Reply