Commit Graph

133 Commits

Author SHA1 Message Date
vincentlj
ba61e2cbe4 GPUParticles: Finish refactorisation.
Heightmap are enabled again for snow.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14994 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-10 17:40:25 +00:00
vincentlj
af81015fcd GPUParticles: Use different shaders to avoid unneeded uniforms.
Heightmap affector is temporarly disabled.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14993 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-10 17:26:57 +00:00
vincentlj
45067e59cf OGL32CTX: Revert to use gl_TextureMatrix[]
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14992 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-10 01:29:32 +00:00
vincentlj
90f701c42d OGL32CTX: Attempt to replace implicitly defined uniforms for objectpass
This breaks animated textures in xr591...

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14990 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-10 00:31:22 +00:00
vincentlj
857f675f35 OGL32CTX: Replace another series of implicit declared uniforms
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14989 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-10 00:30:56 +00:00
vincentlj
9a99c3dae6 OGL32CTX: Replace implicitly defined uniforms in displace
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14985 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-09 17:32:51 +00:00
vincentlj
75b492b871 OGL32CTX: Replace implicitly declared uniforms in bubble
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14984 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-09 17:32:38 +00:00
vincentlj
751d09d35f GPUParticles: Remove snow shader as we use another now.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14983 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-09 17:09:50 +00:00
vincentlj
986f3a6098 OGL32CTX: Remove implicitly defined uniforms in normalmap
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14982 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-09 17:08:23 +00:00
vincentlj
e6d774a3ac OGL32CTX: Remove implicitly defined uniforms in splatting
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14981 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-09 17:08:15 +00:00
vincentlj
9ba803140a OGL32CTX: Remove implicitly defined uniforms in grass
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14980 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-09 17:08:03 +00:00
vincentlj
9d7ab41c11 OGL32CTX: Replace ftransform by gl_ModelViewProjectionMatrix * gl_Vertex.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14979 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-09 16:09:27 +00:00
vincentlj
99fde5faa4 GPUParticles: Kill snow flake when it hit the ground according to the heightmap.
(Actually we move it outside of the player view)

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14977 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-09 01:49:06 +00:00
vincentlj
42c16b32cb OGL32CTX: Replace deprecated "varying" by in/out semantic and make them explicit.
gl_Texcoord[]/gl_Color should be explocitly passed as in/out.
Compilers can pack varyings if the architecture does benefit from it (for instance intel mesa driver) but on the other hand they usually don't change size of varying even if there is only a single component used.
So storing vec2 into vec4 may waste performances.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14974 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-09 00:17:28 +00:00
vincentlj
2ba340b6cb OGL32CTX: Add vertex shader where default one was assumed.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14973 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-08 23:11:10 +00:00
vincentlj
53e32a9848 GPUParticles: bump shaders version to 140 to enable texture buffer support.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14971 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-08 19:09:04 +00:00
vincentlj
28d02f9622 GPUParticles: Implement particle flip.
Snow quads suffers from folding, I have to investigate and/or ask hiker.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14969 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-08 18:34:57 +00:00
samuncle
ff7a3d01c4 Minor update on the skybox shader
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14966 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-08 08:48:46 +00:00
vincentlj
5b8ca4fcd7 GPUParticles: Implement HeightMapAffector equivalent.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14961 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-07 21:06:06 +00:00
vincentlj
51023ceb81 GPUParticles: Fix adjusted_initial_velocity computation.
Thank to Auria and hiker for their help.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14947 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-07 00:04:43 +00:00
vincentlj
88bb3a8da8 GPUParticles: Add support for increase factor
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14945 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-06 22:58:04 +00:00
vincentlj
7a95d46448 GPUParticles: Use smoothstep for fade out and remove direction modulation by size.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14944 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-06 22:35:54 +00:00
vincentlj
841aa05cc0 GPUParticles: Use gl_vertexID to improve particle emission rate handling.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14941 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-06 18:05:21 +00:00
vincentlj
7778a71c0a OGL32CTX: Use correct type in coloredquad.frag
Spotted by arb debug output too.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14927 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-05 18:54:40 +00:00
vincentlj
aad565a9bf GPUParticles: Use size value so that it doesn't get optimized away
Spotted by arb debug output.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14926 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-05 18:44:52 +00:00
vincentlj
d28a869444 Fix skybox frag shader
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14920 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-05 00:08:11 +00:00
vincentlj
fa068d7810 OGL32CTX: Ask #version 130 for all our shaders
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14919 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-05 00:08:00 +00:00
vincentlj
57d5d658a0 OGL32CTX: Fixes sourcerect in draw2DImage replacement
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14918 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-04 23:28:59 +00:00
vincentlj
7bb1e671b2 OGL32CTX: Port draw2DRectangle too
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14916 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-04 22:10:56 +00:00
samuncle
bd69c8c0d7 Add the skybox shader for harvest. For the moment it's still an object in the transparent pass. The object should be in the skybox pass
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14909 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-04 20:43:18 +00:00
vincentlj
b28044e603 OGL32CTX: Implement a draw2DImage function using shaders.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14903 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-04 17:12:30 +00:00
vincentlj
96841f5731 GPUParticles: Avoid particle respawning at too old location.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14889 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-02 17:20:26 +00:00
vincentlj
be93478687 GPUParticles: Fix orientation of reemitted particles.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14875 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-01 19:13:57 +00:00
vincentlj
a38522da70 GPUParticle: Implement size parameter.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14862 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2014-01-01 01:11:44 +00:00
vincentlj
1d3a33bf8e GPUParticles: Use quad instead of POINT_SPRITE
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14861 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-31 20:39:00 +00:00
vincentlj
9fbd2b19b1 GPUParticle: Implements generic fade out and rework particles lifetime.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14852 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-31 17:25:10 +00:00
vincentlj
8670aa86dc GPUParticle: Fix some parameters not used correctly.
Some previous value (like dt) came from debug attempt.
This fixes the particles behind the wheels of the wagon in minel.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14848 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-31 00:58:42 +00:00
vincentlj
d4b9ccf499 GPUParticles: Particles don't follow their source.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14838 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-30 13:57:55 +00:00
vincentlj
871e2b998b GPUParticles: Implement softness and use maxangle spread
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14832 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-29 20:36:21 +00:00
vincentlj
636f6412ab GPUParticles: Use some parameters, and texture, to display particles.
Still not enabled.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14831 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-29 19:24:19 +00:00
vincentlj
a2d1a86bac Lights: Make possible for gpu drivers to unroll loop.
GPU doesn't like indirect addressing and thus it's better to have unrolled loop. This is only possible for loop with a static iteration count.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14830 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-29 18:37:45 +00:00
vincentlj
4c725ac8f4 GPUParticles: Got PointEmitter to draw something at last.
Still WIP, uses a #ifdef to disable it but I wanted to keep a working commit
somewhere in case I mess up somewhere.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14829 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-29 18:23:36 +00:00
vincentlj
6d0e6a67b2 PointLight:Fix shader arithmetic type mismatch reported by mesa
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14813 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-27 17:03:02 +00:00
vincentlj
9826af0747 Rain: Avoid making a draw call that won't be used and make some cleanup
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14811 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-27 16:37:24 +00:00
vincentlj
053170fc27 Rain: Use transform feedback to decouple simulation from rendering
It's the base for a future gpu based particle system

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14806 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-27 02:50:25 +00:00
samuncle
cb21815054 Improved the specularity by adding a little offset to the energy
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14805 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-27 02:41:58 +00:00
samuncle
32a61d770e Allow kart to use specular map
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14803 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-27 02:06:08 +00:00
vincentlj
30a030bd4c Light: Pseudo sort lights distance using bucket to evict them fast.
Lower max light level to 16 as it proves sufficient.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14801 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-27 00:34:41 +00:00
vincentlj
4d0b9236b2 Lights: improve bandwidth usage
It should improve performance a lot, but it handles at most 32 simultaneous lights on screen.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14800 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-26 22:55:15 +00:00
vincentlj
4f36e43b14 Fix unexported FragData
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14797 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2013-12-26 18:28:35 +00:00