Revision 2221,
1.3 KB
checked in by plemenos, 18 years ago
(diff) |
|
-
Property svn:executable set to
*
|
Rev | Line | |
---|
[2221] | 1 |
|
---|
| 2 | ///////////////////////////////////////////////////////////////////////////
|
---|
| 3 | //
|
---|
| 4 | // fragment program in charge
|
---|
| 5 | // of position texture update
|
---|
| 6 | //
|
---|
| 7 | ///////////////////////////////////////////////////////////////////////////
|
---|
| 8 |
|
---|
| 9 |
|
---|
| 10 |
|
---|
| 11 | float4 main(float2 coords : TEXCOORD0,
|
---|
| 12 | uniform float tslf,
|
---|
| 13 | uniform float bbposTexSide,
|
---|
| 14 | uniform float partCount,
|
---|
| 15 | uniform float3 randomMove,
|
---|
| 16 | uniform float3 lastMove,
|
---|
| 17 | uniform float3 fallVect,
|
---|
| 18 | uniform sampler2D oldPos : TEXUNIT0) : COLOR
|
---|
| 19 | {
|
---|
| 20 | float4 newPos;
|
---|
| 21 |
|
---|
| 22 | newPos = tex2D(oldPos, coords);
|
---|
| 23 | newPos.a =1;
|
---|
| 24 |
|
---|
| 25 | // compute the newt position, based on fall direction and speed, and user movement to compensate
|
---|
| 26 | newPos.xyz += fallVect * tslf - lastMove;
|
---|
| 27 |
|
---|
| 28 | // keep the particles within the box
|
---|
| 29 | if (newPos.y <= 0.05)
|
---|
| 30 | {
|
---|
| 31 | newPos.y += 0.9;
|
---|
| 32 | newPos.xz += randomMove.xz;
|
---|
| 33 | }
|
---|
| 34 | else if (newPos.y >= 0.95)
|
---|
| 35 | {
|
---|
| 36 | newPos.y -= 0.9;
|
---|
| 37 | }
|
---|
| 38 |
|
---|
| 39 | if (newPos.x <= 0.05)
|
---|
| 40 | {
|
---|
| 41 | newPos.x += 0.9;
|
---|
| 42 | }
|
---|
| 43 | else if (newPos.x >= 0.95)
|
---|
| 44 | {
|
---|
| 45 | newPos.x -= 0.9;
|
---|
| 46 | }
|
---|
| 47 |
|
---|
| 48 | if (newPos.z <= 0.05)
|
---|
| 49 | {
|
---|
| 50 | newPos.z += 0.9;
|
---|
| 51 | }
|
---|
| 52 | else if (newPos.z >= 0.95)
|
---|
| 53 | {
|
---|
| 54 | newPos.z -= 0.9;
|
---|
| 55 | }
|
---|
| 56 |
|
---|
| 57 | return newPos;
|
---|
| 58 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.