Revision 1b059065
Added by Leszek Koltunski over 5 years ago
| src/main/java/org/distorted/library/effectqueue/EffectQueuePostprocess.java | ||
|---|---|---|
| 161 | 161 |
MeshBase mesh = node.getMesh(); |
| 162 | 162 |
DistortedEffects effects = node.getEffects(); |
| 163 | 163 |
|
| 164 |
float halfW = mesh.getStretchX() / 2.0f;
|
|
| 165 |
float halfH = mesh.getStretchY() / 2.0f;
|
|
| 166 |
float halfZ = mesh.getStretchZ() / 2.0f;
|
|
| 164 |
float halfW = mesh.getBoundingX();
|
|
| 165 |
float halfH = mesh.getBoundingY();
|
|
| 166 |
float halfZ = mesh.getBoundingZ();
|
|
| 167 | 167 |
|
| 168 | 168 |
int width = buffer.getWidth(); |
| 169 | 169 |
int height = buffer.getHeight(); |
| src/main/java/org/distorted/library/main/DistortedLibrary.java | ||
|---|---|---|
| 441 | 441 |
GLES31.glUniform1ui(DistortedLibrary.mMainOITNumRecordsH, (int)(DistortedLibrary.mBufferSize*surface.mWidth*surface.mHeight) ); |
| 442 | 442 |
mesh.bindVertexAttribs(DistortedLibrary.mMainOITProgram); |
| 443 | 443 |
|
| 444 |
float halfX = mesh.getStretchX() / 2.0f;
|
|
| 445 |
float halfY = mesh.getStretchY() / 2.0f;
|
|
| 446 |
float halfZ = mesh.getStretchZ() / 2.0f;
|
|
| 444 |
float halfX = mesh.getBoundingX();
|
|
| 445 |
float halfY = mesh.getBoundingY();
|
|
| 446 |
float halfZ = mesh.getBoundingZ();
|
|
| 447 | 447 |
float inflate = mesh.getInflate(); |
| 448 | 448 |
float distance = surface.mDistance; |
| 449 | 449 |
float mipmap = surface.mMipmap; |
| ... | ... | |
| 473 | 473 |
GLES31.glUniform1i(DistortedLibrary.mMainTextureH, 0); |
| 474 | 474 |
mesh.bindVertexAttribs(DistortedLibrary.mMainProgram); |
| 475 | 475 |
|
| 476 |
float halfX = mesh.getStretchX() / 2.0f;
|
|
| 477 |
float halfY = mesh.getStretchY() / 2.0f;
|
|
| 478 |
float halfZ = mesh.getStretchZ() / 2.0f;
|
|
| 476 |
float halfX = mesh.getBoundingX();
|
|
| 477 |
float halfY = mesh.getBoundingY();
|
|
| 478 |
float halfZ = mesh.getBoundingZ();
|
|
| 479 | 479 |
float inflate = mesh.getInflate(); |
| 480 | 480 |
float distance = surface.mDistance; |
| 481 | 481 |
float mipmap = surface.mMipmap; |
| src/main/java/org/distorted/library/main/DistortedScreen.java | ||
|---|---|---|
| 27 | 27 |
import android.opengl.GLES31; |
| 28 | 28 |
|
| 29 | 29 |
import org.distorted.library.effect.MatrixEffectMove; |
| 30 |
import org.distorted.library.effect.MatrixEffectScale; |
|
| 30 | 31 |
import org.distorted.library.mesh.MeshQuad; |
| 31 | 32 |
import org.distorted.library.type.Static3D; |
| 32 | 33 |
|
| ... | ... | |
| 166 | 167 |
fpsTexture.setTexture(fpsBitmap); |
| 167 | 168 |
fpsCanvas = new Canvas(fpsBitmap); |
| 168 | 169 |
fpsEffects = new DistortedEffects(); |
| 169 |
fpsMesh.setStretch(FPS_W,FPS_H,0);
|
|
| 170 |
fpsEffects.apply( new MatrixEffectScale( new Static3D(FPS_W,FPS_H,1) ) );
|
|
| 170 | 171 |
fpsEffects.apply(mMoveEffect); |
| 171 | 172 |
|
| 172 | 173 |
mPaint = new Paint(); |
| src/main/java/org/distorted/library/mesh/MeshBase.java | ||
|---|---|---|
| 68 | 68 |
private int mNumVertices; |
| 69 | 69 |
private float[] mVertAttribs; // packed: PosX,PosY,PosZ, NorX,NorY,NorZ, InfX,InfY,InfZ, TexS,TexT |
| 70 | 70 |
private float mInflate; |
| 71 |
private float mStretchX, mStretchY, mStretchZ;
|
|
| 71 |
private float mBoundingX, mBoundingY, mBoundingZ;
|
|
| 72 | 72 |
|
| 73 | 73 |
private class Component |
| 74 | 74 |
{
|
| ... | ... | |
| 100 | 100 |
|
| 101 | 101 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 102 | 102 |
|
| 103 |
MeshBase(float sx, float sy, float sz)
|
|
| 103 |
MeshBase(float bx, float by, float bz)
|
|
| 104 | 104 |
{
|
| 105 |
mStretchX = sx;
|
|
| 106 |
mStretchY = sy;
|
|
| 107 |
mStretchZ = sz;
|
|
| 105 |
mBoundingX = bx/2;
|
|
| 106 |
mBoundingY = by/2;
|
|
| 107 |
mBoundingZ = bz/2;
|
|
| 108 | 108 |
|
| 109 | 109 |
mShowNormals = false; |
| 110 | 110 |
mInflate = 0.0f; |
| ... | ... | |
| 120 | 120 |
|
| 121 | 121 |
MeshBase(MeshBase original) |
| 122 | 122 |
{
|
| 123 |
mStretchX = original.mStretchX;
|
|
| 124 |
mStretchY = original.mStretchY;
|
|
| 125 |
mStretchZ = original.mStretchZ;
|
|
| 123 |
mBoundingX = original.mBoundingX;
|
|
| 124 |
mBoundingY = original.mBoundingY;
|
|
| 125 |
mBoundingZ = original.mBoundingZ;
|
|
| 126 | 126 |
|
| 127 | 127 |
mShowNormals = original.mShowNormals; |
| 128 | 128 |
mInflate = original.mInflate; |
| ... | ... | |
| 183 | 183 |
|
| 184 | 184 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 185 | 185 |
/** |
| 186 |
* Sets the stretch parameters. Coordinates of all vertices will be first pre-multiplied by those. |
|
| 187 |
*/ |
|
| 188 |
public void setStretch(int sx, int sy, int sz) |
|
| 189 |
{
|
|
| 190 |
mStretchX = sx; |
|
| 191 |
mStretchY = sy; |
|
| 192 |
mStretchZ = sz; |
|
| 193 |
} |
|
| 194 |
|
|
| 195 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 196 |
/** |
|
| 197 |
* X coordinates of all vertices will be first pre-multiplied by this parameter. |
|
| 186 |
* Each mesh has its 'bounding box' - return half of its X-length. |
|
| 187 |
* <p> |
|
| 188 |
* In case of all 'simple' Meshes, the bounding box is always 1x1x1 (Sphere, Cubes) or 1x1x0 |
|
| 189 |
* (Rectangles, Triangles, Quad - i.e. all 'flat' Meshes). But this can be something else in case of |
|
| 190 |
* MeshComponent. |
|
| 198 | 191 |
*/ |
| 199 |
public float getStretchX()
|
|
| 192 |
public float getBoundingX()
|
|
| 200 | 193 |
{
|
| 201 |
return mStretchX;
|
|
| 194 |
return mBoundingX;
|
|
| 202 | 195 |
} |
| 203 | 196 |
|
| 204 | 197 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 205 | 198 |
/** |
| 206 |
* Y coordinates of all vertices will be first pre-multiplied by this parameter.
|
|
| 199 |
* Each mesh has its 'bounding box' - return half of its Y-length.
|
|
| 207 | 200 |
*/ |
| 208 |
public float getStretchY()
|
|
| 201 |
public float getBoundingY()
|
|
| 209 | 202 |
{
|
| 210 |
return mStretchY;
|
|
| 203 |
return mBoundingY;
|
|
| 211 | 204 |
} |
| 212 | 205 |
|
| 213 | 206 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 214 | 207 |
/** |
| 215 |
* Z coordinates of all vertices will be first pre-multiplied by this parameter.
|
|
| 208 |
* Each mesh has its 'bounding box' - return half of its Z-length.
|
|
| 216 | 209 |
*/ |
| 217 |
public float getStretchZ()
|
|
| 210 |
public float getBoundingZ()
|
|
| 218 | 211 |
{
|
| 219 |
return mStretchZ;
|
|
| 212 |
return mBoundingZ;
|
|
| 220 | 213 |
} |
| 221 | 214 |
|
| 222 | 215 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 352 | 345 |
mVertAttribs[index+POS_ATTRIB+1] = tmp[1]*x + tmp[5]*y + tmp[ 9]*z + tmp[13]; |
| 353 | 346 |
mVertAttribs[index+POS_ATTRIB+2] = tmp[2]*x + tmp[6]*y + tmp[10]*z + tmp[14]; |
| 354 | 347 |
|
| 355 |
//android.util.Log.e("mesh", "vert BEFORE: ("+x+","+y+","+z+")");
|
|
| 356 |
//android.util.Log.e("mesh", "vert AFTER: ("+mVertAttribs[index+POS_ATTRIB ]+","+mVertAttribs[index+POS_ATTRIB+1]+","+mVertAttribs[index+POS_ATTRIB+2]+")");
|
|
| 357 |
|
|
| 358 | 348 |
x = mVertAttribs[index+NOR_ATTRIB ]; |
| 359 | 349 |
y = mVertAttribs[index+NOR_ATTRIB+1]; |
| 360 | 350 |
z = mVertAttribs[index+NOR_ATTRIB+2]; |
| ... | ... | |
| 484 | 474 |
|
| 485 | 475 |
} |
| 486 | 476 |
} |
| 477 |
|
|
| 478 |
|
|
| 479 |
|
|
| 480 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 481 |
|
|
| 482 |
public void setStretch(int sx, int sy, int sz) |
|
| 483 |
{
|
|
| 484 |
mBoundingX = sx/2.0f; |
|
| 485 |
mBoundingY = sy/2.0f; |
|
| 486 |
mBoundingZ = sz/2.0f; |
|
| 487 |
} |
|
| 488 |
|
|
| 489 |
public float getStretchX() |
|
| 490 |
{
|
|
| 491 |
return mBoundingX*2; |
|
| 492 |
} |
|
| 493 |
public float getStretchY() |
|
| 494 |
{
|
|
| 495 |
return mBoundingY*2; |
|
| 496 |
} |
|
| 497 |
public float getStretchZ() |
|
| 498 |
{
|
|
| 499 |
return mBoundingZ*2; |
|
| 500 |
} |
|
| 501 |
|
|
| 502 |
|
|
| 487 | 503 |
} |
| 488 | 504 |
|
| 489 | 505 |
|
Also available in: Unified diff
Correct the Rubik app for the recent changes to the library's Node.