Project

General

Profile

« Previous | Next » 

Revision 529054e9

Added by Leszek Koltunski about 4 years ago

Fixes for the merge. Everything works now!
Next step: make the center of Vertex & Fragment effects be in the center of the Object, rather than the lower-left corner.

View differences:

src/main/java/org/distorted/examples/generic/GenericEffect.java
324 324
    {
325 325
    GenericActivity2 act = mAct.get();
326 326

  
327
    float x = (mInterCenter[0]*0.012f - 0.1f)*act.getWidth();
328
    float y = (mInterCenter[1]*0.012f - 0.1f)*act.getHeight();
329
    float z = (mInterCenter[2]*0.012f - 0.1f)*act.getDepth();
327
    float x = (mInterCenter[0]*0.012f - 0.6f)*act.getWidth();
328
    float y = (mInterCenter[1]*0.012f - 0.6f)*act.getHeight();
329
    float z = (mInterCenter[2]*0.012f - 0.6f)*act.getDepth();
330 330

  
331 331
    mCenterSta.set(x,y,z);
332 332
    }
......
359 359

  
360 360
    float factorX = act.getWidth() / 100.0f;
361 361
    float factorY = act.getHeight()/ 100.0f;
362
   // float factorZ = act.getDepth() / 100.0f;
362
 // float factorZ = act.getDepth() / 100.0f;
363 363

  
364 364
    int deduct = (mName.getType() == EffectType.VERTEX ? 50:0);
365 365

  
src/main/java/org/distorted/examples/generic/GenericRenderer.java
60 60
    private MeshQuad mRegionQuad, mCenterQuad, mBackgroundQuad;
61 61
    private DistortedNode mCenterNode, mRegionNode;
62 62
    private float mObjWidth, mObjHeight, mObjDepth;
63
    private Static3D mCenterPoint, mRegionPoint, mRegionScalePoint;
64
    private Static3D mRotateCen, mMoveObject, mScaleObject, mMoveCenter, mScaleCenter, mMoveRegion, mMoveBackground, mScaleBackground;
63
    private Static3D mCenterPoint, mRegionPoint, mScaleRegion;
64
    private Static3D mMoveObject, mScaleObject, mScaleCenter, mMoveBackground, mScaleBackground;
65 65
    private boolean mShowingCenter=false;
66 66
    private boolean mShowingRegion=false;
67 67
    private float mFactorObj;
......
79 79

  
80 80
      GenericActivity2 act = (GenericActivity2)v.getContext();
81 81

  
82
      mRotateCen      = new Static3D(0,0,0);
83 82
      mMoveObject     = new Static3D(0,0,0);
84 83
      mScaleObject    = new Static3D(1,1,1);
85
      mMoveCenter     = new Static3D(0,0,0);
86 84
      mScaleCenter    = new Static3D(1,1,1);
87
      mMoveRegion     = new Static3D(0,0,0);
88 85
      mMoveBackground = new Static3D(0,0,0);
89 86
      mScaleBackground= new Static3D(1,1,1);
90 87

  
......
116 113

  
117 114
      mCenterPoint= new Static3D(0,0,0);
118 115
      mRegionPoint= new Static3D(0,0,0);
119
      mRegionScalePoint = new Static3D(0,0,0);
116
      mScaleRegion = new Static3D(0,0,0);
120 117

  
121 118
      mCenterNode = new DistortedNode(mCenterTexture, centerEffects, mCenterQuad);
122 119
      mRegionNode = new DistortedNode(mRegionTexture, regionEffects, mRegionQuad);
......
126 123
      mScreen.attach(mBackgroundTexture, backgroundEffects, mBackgroundQuad );
127 124
      mScreen.attach(mObjectTexture    , mObjectEffects   , mesh );
128 125

  
129
      float regionSize = mRegionQuad.getStretchX();
130
      mRotateCen = new Static3D(0 ,0, 0);
126
      Static3D rotateCen = new Static3D(0,0,0);
131 127

  
132
      MatrixEffectQuaternion quat1cen = new MatrixEffectQuaternion(mQuat1, mRotateCen);
133
      MatrixEffectQuaternion quat2cen = new MatrixEffectQuaternion(mQuat2, mRotateCen);
134
      MatrixEffectMove centerMove = new MatrixEffectMove(mCenterPoint);
128
      MatrixEffectQuaternion quat1cen = new MatrixEffectQuaternion(mQuat1, rotateCen);
129
      MatrixEffectQuaternion quat2cen = new MatrixEffectQuaternion(mQuat2, rotateCen);
130
      MatrixEffectMove centerMove     = new MatrixEffectMove(mCenterPoint);
135 131

  
136 132
      centerEffects.apply( new MatrixEffectScale(mScaleCenter) );
137 133
      centerEffects.apply( centerMove );
138
      centerEffects.apply( new MatrixEffectMove(mMoveCenter) );
134
      centerEffects.apply( new MatrixEffectMove(new Static3D(0,0,12)) );
139 135
      centerEffects.apply(quat2cen);
140 136
      centerEffects.apply(quat1cen);
141 137

  
142
      regionEffects.apply( new MatrixEffectMove(new Static3D( -regionSize*0.5f , -regionSize*0.5f , 0)) );
143
      regionEffects.apply( new MatrixEffectScale(mRegionScalePoint) );
144
      regionEffects.apply( new MatrixEffectMove(mRegionPoint) );
138
      regionEffects.apply( new MatrixEffectScale(mScaleRegion) );
145 139
      regionEffects.apply( centerMove );
146
      regionEffects.apply( new MatrixEffectMove(mMoveRegion) );
140
      regionEffects.apply( new MatrixEffectMove(mRegionPoint) );
141
      regionEffects.apply( new MatrixEffectMove(new Static3D(0,0,10)) );
147 142
      regionEffects.apply(quat2cen);
148 143
      regionEffects.apply(quat1cen);
149 144

  
......
158 153

  
159 154
    void resetMatrixEffects()
160 155
      {
161
      Static3D rotateObj = new Static3D( mObjWidth/2, mObjHeight/2, mObjDepth/2 );
156
      Static3D rotateObj = new Static3D(0,0,0);
162 157

  
163 158
      MatrixEffectQuaternion quat1obj = new MatrixEffectQuaternion(mQuat1,  rotateObj);
164 159
      MatrixEffectQuaternion quat2obj = new MatrixEffectQuaternion(mQuat2,  rotateObj);
......
221 216
      {
222 217
      float factorReg = 2*mFactorObj*r/mRegionQuad.getStretchX();
223 218
      mRegionPoint.set(mFactorObj*x,mFactorObj*y, mFactorObj*z);
224
      mRegionScalePoint.set(factorReg,factorReg,factorReg);
219
      mScaleRegion.set(factorReg,factorReg,factorReg);
225 220
      }
226 221

  
227 222
///////////////////////////////////////////////////////////////////////////////////////////////////
......
259 254
        factorCen  = (0.08f  *width)/centerSize;
260 255
        }
261 256

  
262
      setCenter(0.5f*mObjWidth,0.5f*mObjHeight,0.5f*mObjDepth);
257
      setCenter(0,0,0);
263 258
      setRegion(0.0f,0.0f,0.0f,0.25f*(mObjWidth+mObjHeight));
264 259

  
265
      mMoveObject.set( (width-mFactorObj*mObjWidth)/2 , (height-mFactorObj*mObjHeight)/2 , -mFactorObj*mObjDepth );
266
      mRotateCen.set(width*0.5f,height*0.5f, 0);
260
      mMoveObject.set( 0, 0 , -mFactorObj*mObjDepth );
267 261
      mScaleObject.set(mFactorObj,mFactorObj,mFactorObj);
268
      mMoveCenter.set( (width -factorCen*centerSize-mFactorObj*mObjWidth )/2 ,
269
                       (height-factorCen*centerSize-mFactorObj*mObjHeight)/2 , 15 );
270 262
      mScaleCenter.set(factorCen,factorCen,factorCen);
271
      mMoveRegion.set( (width -mFactorObj*mObjWidth )/2 ,(height-mFactorObj*mObjHeight)/2 , 12 );
272 263

  
273 264
      float backgroundSize = mBackgroundQuad.getStretchX();
274 265
      float factorBackX = ((float)width)/backgroundSize;
275 266
      float factorBackY = ((float)height)/backgroundSize;
276 267

  
277 268
      // quite tricky: move the background exactly to the FAR plane! (see InternalOutputSurface.setProjection() )
278
      mMoveBackground.set( -width*0.5f, -height*0.5f, -0.9f*height*(1.0f-NEAR)/(2.0f*(float)Math.tan(FOV*Math.PI/360)) );
269
      mMoveBackground.set( 0,0, -0.9f*height*(1.0f-NEAR)/(2.0f*(float)Math.tan(FOV*Math.PI/360)) );
279 270
      mScaleBackground.set( 2*factorBackX, 2*factorBackY, 1.0f );
280 271

  
281 272
      mScreen.resize(width, height);

Also available in: Unified diff