49 Commits

Author SHA1 Message Date
Kevin Anthoney
d99f401559 make ooliteNormalMatrix a mat3 and normalize it 2014-07-07 14:22:41 +01:00
Kevin Anthoney
5ce1987e3c forgot to commit actual shaders 2014-07-06 18:50:30 +01:00
Jens Ayton
7ccf6282fd Remove OO_REDUCED_COMPLEXITY usage 2014-03-15 11:49:41 +01:00
cim
6552e6fd88 Remove obsolete REDUCED_COMPLEXITY from planet shader 2014-02-09 17:35:11 +00:00
Kevin Anthoney
7c7a004038 slightly better way of fixing planet render problem when rolling ship 2014-02-07 20:47:55 +00:00
Kevin Anthoney
b6c3541ea3 Fix planet rendering problem when rotating ship 2014-02-07 19:42:58 +00:00
Kevin Anthoney
bbf0a63bff fix sharp planet day/night terminator problem 2014-02-07 07:39:02 +00:00
cim
1035b65d6a Cube map support for new planets 2014-01-03 21:26:40 +00:00
Nikos Barkas
afb09f9a7e Here goes another year. Happy 2013. The Reference Sheet and the Readme still need to have year references bumped.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@5596 127b21dd-08f5-0310-b4b7-95ae10353056
2012-12-31 09:00:28 +00:00
Jens Ayton
96221108ce Sneakily switching to tgmath.h to see if anyone explodes.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@5086 127b21dd-08f5-0310-b4b7-95ae10353056
2012-07-13 13:33:28 +00:00
Marc
b353faef84 A mixed bag:
* change: specifically setting empty comms_log_gui & message_gui sections inside hud plists now resets those guis to Oolite's default. Updated standard huds accordingly.
 * bugfix: fixed crash with malformed gui declarations inside hud plists - trunk & maintenance.
 * change: internal name of commodity identifiers normalised: 'liquor/wines', 'alien items', 'gem-stones' are now expressed internally as 'liguor_wines', 'alien_items' and 'gem_stones' - in most cases the old identifiers are still recognised, for backward compatibility.
 - linux build and windows build directories separated, both can now share the same source directory without build conflicts.
 - updated copyright notice in shaders files, minor planet drawable cleanup.

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@4826 127b21dd-08f5-0310-b4b7-95ae10353056
2012-04-01 13:27:36 +00:00
Marc
baf5830463 - restored NEW_PLANETS shader files.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@4818 127b21dd-08f5-0310-b4b7-95ae10353056
2012-03-28 22:11:06 +00:00
Jens Ayton
deb8b846be Cleanup.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@4741 127b21dd-08f5-0310-b4b7-95ae10353056
2012-01-18 15:23:11 +00:00
Jens Ayton
121f6ef237 Slightly simplified default fragment shader now that we don't need to worry about Mac OS X 10.4 compatibility.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@4739 127b21dd-08f5-0310-b4b7-95ae10353056
2012-01-16 18:53:56 +00:00
Michael Werle
7312ad733c Bump copyright to 2012. Happy New Year!
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@4692 127b21dd-08f5-0310-b4b7-95ae10353056
2012-01-03 16:08:14 +00:00
Jens Ayton
396a29a9c1 Removed patent nonsense from default vertex shader.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@4534 127b21dd-08f5-0310-b4b7-95ae10353056
2011-05-01 16:10:30 +00:00
Jens Ayton
aee593fa13 Fixed some comments.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@4530 127b21dd-08f5-0310-b4b7-95ae10353056
2011-04-28 18:47:04 +00:00
Jens Ayton
1e08cd022f Use recommended keys for fallback material. Removed some new-planets stuff that isn't used.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@4363 127b21dd-08f5-0310-b4b7-95ae10353056
2011-02-16 16:44:29 +00:00
Jens Ayton
dd205c915b Fixed a shader error when using normal map but no specular lighting at all. Odd thing to do, but valid.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3390 127b21dd-08f5-0310-b4b7-95ae10353056
2010-05-21 15:01:48 +00:00
Jens Ayton
084248f98f Tiny tweaks: renamed AI methods scanFor{Nearest|Random}Merchantmen to ...Merchantman (with compatibility aliases). Removed all Light 0 stuff from shaders. Belatedly bumped cache format version for changed dust shader.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3314 127b21dd-08f5-0310-b4b7-95ae10353056
2010-05-09 23:13:12 +00:00
Jens Ayton
1d7b85b918 Slight dust shader optimization.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3313 127b21dd-08f5-0310-b4b7-95ae10353056
2010-05-09 19:37:09 +00:00
Jens Ayton
5599e4f375 More dust fun: dust box repeating is now handled in shader, so dust is now static geometry in shader mode.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3312 127b21dd-08f5-0310-b4b7-95ae10353056
2010-05-09 19:23:06 +00:00
Jens Ayton
7c674d3d4a Dust draws with vertex arrays, warping is applied in shader (which allows for more customization as a side effect).
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3311 127b21dd-08f5-0310-b4b7-95ae10353056
2010-05-09 18:22:53 +00:00
Jens Ayton
edf647f4e5 Dust is now more subtle, especially in shader mode. It also scales smoothly instead of jumping between dot sizes.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3304 127b21dd-08f5-0310-b4b7-95ae10353056
2010-05-08 22:51:33 +00:00
Jens Ayton
8392bee4a5 Fade dust motes to clear instead of black when shady.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3298 127b21dd-08f5-0310-b4b7-95ae10353056
2010-05-06 18:22:53 +00:00
Jens Ayton
12016a853b Cleaned up redundant dual licensing headers as previously discussed. Gosh, there's a lot of them. Feel free to ad your name or 'and contributors' as appropriate. Also, excluded unused classes OOCamera and OOLight from build, but didn't delete them.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3263 127b21dd-08f5-0310-b4b7-95ae10353056
2010-05-02 12:32:43 +00:00
Jens Ayton
45380f2f9e Changed coordinate scheme for non-shader/default-shader cube maps to be based on vertex positions rather than normals.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3180 127b21dd-08f5-0310-b4b7-95ae10353056
2010-04-21 19:12:26 +00:00
Jens Ayton
ab623a5c94 * Big unified emission and illumination map thingy for non-shader mode. Known
limitations:
  - causes synchronous wait for component textures to load.
  - Component textures are cached unnecessarily.
* cleanup of material dictionary handling.
* Added foo_color variants of material colour key names.
* Added illumination_color material property.

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3178 127b21dd-08f5-0310-b4b7-95ae10353056
2010-04-21 18:21:29 +00:00
Jens Ayton
c9cdbc7631 Added extra shader validation, controlled by DEBUG_SHADER_VALIDATION flag. Removed DEBUG_ENTITIES and merged DEBUG_OCTREE and DEBUG_OCTREE_TEXT into DEBUG_OCTREE_LOGGING.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3148 127b21dd-08f5-0310-b4b7-95ae10353056
2010-04-11 16:03:43 +00:00
Jens Ayton
d8d5393d4e Workaround for Svengali's GLSL preprocessor bug.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3132 127b21dd-08f5-0310-b4b7-95ae10353056
2010-04-07 22:35:24 +00:00
Jens Ayton
fa25226d5f Cube mapping (for diffuse map) supported in default shader.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3123 127b21dd-08f5-0310-b4b7-95ae10353056
2010-04-05 14:32:33 +00:00
Jens Ayton
02e4b2bf8a Fixed Mac build.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3060 127b21dd-08f5-0310-b4b7-95ae10353056
2010-03-13 15:05:22 +00:00
Marc
3320a6bc4d - Faster lights on/off implementation for shaders (as per bug #16268), included within a slight lighting & update method rewrite. Not directly usable as dimmer switch yet, but can be easily adapted to that purpose.
- OOGL wrapper added to a few stray opengl instructions from a previous commit.
- Possible fix for lower end graphic cards F7 lighting direction bug, as reported by a_c.
- Hopefully the last rename for the 'old' setSunCenterPosition method from rev2936

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2962 127b21dd-08f5-0310-b4b7-95ae10353056
2010-01-11 20:53:02 +00:00
Marc
193a5b5c4c - Lights on on/off switch added to shaders, could also be used as a dimmer switch in the future. :) This should finally fix bug #16268: Lighting issues for shaders.
- HUD whitelisting, part 0.5!

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2952 127b21dd-08f5-0310-b4b7-95ae10353056
2010-01-10 10:23:20 +00:00
Jens Ayton
f1393d68b5 Cleanup; fixed a bug in default shader with normal mapping; less harsh shadows on shaderless new planets.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2950 127b21dd-08f5-0310-b4b7-95ae10353056
2010-01-09 20:18:21 +00:00
Jens Ayton
ca61fb9709 Hermite interpolation for less awful planet normal maps. All-zero alpha channels are now also ignored by debug dumper.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2897 127b21dd-08f5-0310-b4b7-95ae10353056
2009-12-20 19:41:20 +00:00
Jens Ayton
1c0251db3a Normal mapping for generated planets (full shader mode only). Normal/baked shadow intensity is now consistent when changing planet texture size. Switched to 1024x1024 except for reduced detail mode. NB: texture debug dump requires new methods which aren't implemented for SDL, but is switched off.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2881 127b21dd-08f5-0310-b4b7-95ae10353056
2009-12-13 12:35:42 +00:00
Jens Ayton
f3fb4e8c34 Planet shader now handles lighting and specular mapping (and light mapping, but no light maps are generated yet). Known issue: terminator is distorted near poles.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2879 127b21dd-08f5-0310-b4b7-95ae10353056
2009-12-12 19:10:55 +00:00
Jens Ayton
8a4c33aff7 Fixed bug where ambient light level was multiplied with itself in default shader.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2871 127b21dd-08f5-0310-b4b7-95ae10353056
2009-12-10 17:45:54 +00:00
Jens Ayton
41f5d03697 Rudimentary planet shader (disabled with SHADY_PLANETS macro in OOPlanetEntity.m; texture mapping only, no lighting, but with per-pixel calculation of longitude component to completely eliminate distortion. Interacts badly with mip-mapping, though.)
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2860 127b21dd-08f5-0310-b4b7-95ae10353056
2009-12-07 22:42:23 +00:00
Jens Ayton
022f22173b Fixed normal-mapping bug in default shader.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2054 127b21dd-08f5-0310-b4b7-95ae10353056
2009-02-11 19:26:31 +00:00
Jens Ayton
2612658ce8 Various tweaks to make reuse in tools easier.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1887 127b21dd-08f5-0310-b4b7-95ae10353056
2008-11-30 02:03:27 +00:00
Jens Ayton
1cb2df40dd Cleaned up shaders slightly.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1886 127b21dd-08f5-0310-b4b7-95ae10353056
2008-11-28 20:20:58 +00:00
Jens Ayton
ab24d9efd3 Rewrote default shader to work in tangent space and support normal mapping.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1885 127b21dd-08f5-0310-b4b7-95ae10353056
2008-11-28 19:37:47 +00:00
Jens Ayton
f68d550d8e Added JS Ship methods dumpCargo(), ejectItem() and ejectSpecificItem(). Spotlight indexer now indexes required.plist max_version for display in More Info. Fix for internal consistency in default fragment shader's handling of specular exponents.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1471 127b21dd-08f5-0310-b4b7-95ae10353056
2008-03-09 15:27:06 +00:00
Jens Ayton
856409ed46 Added ability to explicitly bind shaders to subentity rather than root entity (backported to 1.70-m). Added support for hull heat glow to default shader (full shader mode only). Added Eric Walch's list of pre-existing roles to pirate-victim-roles.plist.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1265 127b21dd-08f5-0310-b4b7-95ae10353056
2007-12-05 14:32:56 +00:00
Jens Ayton
3fbc24887d * All ships now have a JavaScript script attached, allowing JS scripts to
add behaviours to any ship.
* Legacy script_actions, setup_actions, launch_actions and death_actions
  handled through default JavaScript script.
* In order to implement the above, JS Ship now has a runLegacyScriptActions
  method. This is not to be exposed as an "official" method, though, since
  we might want to change the mechanism -- for instance, to "compile"
  legacy scripts into JS. Handling dynamically-generated legacy scripts in
  that case would be a significant complication.
* Updates for Mac OS X 10.5 "Leopard".
  - Errors on reading/writing plist will not cause a crash if building
    against the Leopard SDK. (I have no intention of requiring Leopard any
    time soon, but future-proofing is good.)
  - OOWeakReference is now more efficient when running under Leopard, by
    implementing the new "fast forwarding" mechanism.
  - Threads now have names set under Leopard, which may provide debugging
    advantages.
  - Fixed some new build warnings for new version of apple-gcc.
  - Updated type declarations to identify Oolite saved games as property
    lists.
* Cleaned up PlayerEntityControls.m somewhat. Moved method declarations
  into files, fixed indentation, broke up monster giant method of doom.
* Script-generated asteroids now behave like system populator-generated
  asteroids (As Seen on BB[TM]).
* Minor optimizations and simplifications of legacy script engine.
* JS System.filteredEntities() now has sensible behaviour if predicate
  throws an exception: the predicate is not called again, and null is
  returned. The exception is reported and not rethrown.


git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1240 127b21dd-08f5-0310-b4b7-95ae10353056
2007-11-23 15:04:14 +00:00
Jens Ayton
44fd79dc64 Cache synthesized material dictionaries. Added sendScriptMessage: AI method.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1231 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-23 07:36:58 +00:00
Jens Ayton
9d9128bcb1 * Got Game Options submenu working under OS X.
* Save reduced detail, wireframe and shader settings in preferences.
* Implemented variable shader complexity support.
Added default shader, used for all otherwise-unshaded ships with full shaders on, and for smooth ships or ships with effect maps specified in material dictionary with simple shaders.
* All ships now drawn with slight specular highlight by default (shininess = 10, intensity = 0.2) except in reduced detail mode.
* (JS) Made Ship.shipDescription read-write (except for the player).
* (JS) Added global function ExpandDescription(string : String), to perform substitutions like %H, [commander_name] and so forth. 
* (JS) Added global function RandomName(), intended to be like %R substitution. In so doing, I discovered that %R is broken, but left it as-is so it will generate the same name for existing descriptions. Added %X to do the same thing, but without the bugs. RandomName() is different from either in that it doesn't use the "predictable" PRNG, so it will provide a new name each time. To use the "predictable" variant in JavaScript, use ExpandDescription("%X"). 
* Ships that hyperspace out are no longer replenished in interstellar space.

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1228 127b21dd-08f5-0310-b4b7-95ae10353056
2007-10-22 12:18:18 +00:00