Project

General

Profile

« Previous | Next » 

Revision 3e673c74

Added by Leszek Koltunski about 7 years ago

Enrich the Multiblur app.

View differences:

src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
32 32
import org.distorted.library.EffectNames;
33 33
import org.distorted.library.EffectTypes;
34 34
import org.distorted.library.MeshCubes;
35
import org.distorted.library.type.Dynamic3D;
35 36
import org.distorted.library.type.DynamicQuat;
36 37
import org.distorted.library.type.Static1D;
37 38
import org.distorted.library.type.Static3D;
......
65 66
    private GLSurfaceView mView;
66 67
    private DistortedTexture mTex1, mTex2;
67 68
    private DistortedEffects[] mEffects;
68
    private Static3D[] mMoveVector;
69
    private Static3D[]  mMoveVector;
70
    private Dynamic3D[] mMoveDynamic;
69 71
    private DistortedScreen mScreen;
70 72
    private DynamicQuat mQuatInt1, mQuatInt2;
73
    private int mDistance;
71 74

  
72 75
    Static4D mQuat1, mQuat2;
73 76
    int mScreenMin;
......
77 80
    MultiblurRenderer(GLSurfaceView v)
78 81
      {
79 82
      mView = v;
83
      mDistance = -1;
80 84

  
85
      mMoveDynamic= new Dynamic3D[NUM_OBJECTS];
81 86
      mMoveVector = new Static3D[NUM_OBJECTS];
82
      for(int i=0; i<NUM_OBJECTS; i++) mMoveVector[i] = new Static3D(0,0,0);
87
      mEffects    = new DistortedEffects[NUM_OBJECTS];
83 88

  
84
      mEffects = new DistortedEffects[NUM_OBJECTS];
85
      for(int i=0; i<NUM_OBJECTS; i++) mEffects[i] = new DistortedEffects();
89
      for(int i=0; i<NUM_OBJECTS; i++)
90
        {
91
        mMoveVector[i]  = new Static3D(0,0,0);
92
        mEffects[i]     = new DistortedEffects();
93
        mMoveDynamic[i] = new Dynamic3D();
94

  
95
        mMoveDynamic[i].add(mMoveVector[i]);
96
        }
86 97

  
87 98
      mEffects[0].blur(new Static1D(10));
88 99

  
......
118 129
    public void onSurfaceChanged(GL10 glUnused, int width, int height) 
119 130
      {
120 131
      mScreenMin = width<height ? width:height;
121
    	
132

  
133
    	float factor    = 0.15f*mScreenMin/OBJ_SIZE;
122 134
      Static3D center = new Static3D( (float)OBJ_SIZE/2, (float)OBJ_SIZE/2, 0.0f );
123
      float factor = 0.15f*mScreenMin/OBJ_SIZE;
124
      float xMove  =(width -factor*OBJ_SIZE)/2;
125
      float yMove  =(height-factor*OBJ_SIZE)/2;
126
      float size   = 1.3f*OBJ_SIZE;
135
      Static3D moveVec= new Static3D( (width -factor*OBJ_SIZE)/2 ,(height-factor*OBJ_SIZE)/2 ,0);
127 136

  
128 137
      for(int i=0; i<NUM_OBJECTS; i++)
129 138
        {
130 139
        mEffects[i].abortEffects(EffectTypes.MATRIX);
131 140

  
132
        mMoveVector[i].set(xMove,yMove,0);
133
        mEffects[i].move(mMoveVector[i]);
141
        mEffects[i].move(moveVec);
134 142
        mEffects[i].scale(factor);
135 143
        mEffects[i].quaternion(mQuatInt1, center);
136 144
        mEffects[i].quaternion(mQuatInt2, center);
137
        mMoveVector[i].set(size*MOVE_VEC[3*i], size*MOVE_VEC[3*i+1], size*MOVE_VEC[3*i+2]);
138
        mEffects[i].move(mMoveVector[i]);
145
        mEffects[i].move(mMoveDynamic[i]);
139 146
        }
140 147

  
148
      computeMoveVectors();
149

  
141 150
      mScreen.resize(width, height);
142 151
      }
143 152

  
......
178 187
        android.util.Log.e("Multiblur", ex.getMessage() );
179 188
        }
180 189
      }
190

  
191
///////////////////////////////////////////////////////////////////////////////////////////////////
192

  
193
    private void computeMoveVectors()
194
      {
195
      float size= 1.3f*OBJ_SIZE*(mDistance/50.0f);
196

  
197
      for(int i=0; i<NUM_OBJECTS; i++)
198
        {
199
        mMoveVector[i].set(size*MOVE_VEC[3*i], size*MOVE_VEC[3*i+1], size*MOVE_VEC[3*i+2]);
200
        }
201
      }
202

  
203
///////////////////////////////////////////////////////////////////////////////////////////////////
204

  
205
    void setDistance(int distance)
206
      {
207
      mDistance = distance;
208
      computeMoveVectors();
209
      android.util.Log.e("renderer", "distance: "+distance);
210
      }
181 211
}

Also available in: Unified diff