Revision 410dfc37
Added by Leszek Koltunski over 5 years ago
| src/main/java/org/distorted/examples/objecttree/ObjectTreeRenderer.java | ||
|---|---|---|
| 30 | 30 |
import org.distorted.library.effect.FragmentEffectChroma; |
| 31 | 31 |
import org.distorted.library.effect.MatrixEffectRotate; |
| 32 | 32 |
import org.distorted.library.effect.MatrixEffectScale; |
| 33 |
import org.distorted.library.effect.VertexEffectScale; |
|
| 33 | 34 |
import org.distorted.library.effect.VertexEffectSink; |
| 34 | 35 |
import org.distorted.library.main.DistortedEffects; |
| 35 | 36 |
import org.distorted.library.main.DistortedFramebuffer; |
| ... | ... | |
| 56 | 57 |
class ObjectTreeRenderer implements GLSurfaceView.Renderer |
| 57 | 58 |
{
|
| 58 | 59 |
private static final int NODE_FBO_SIZE = 300; |
| 59 |
private static final int GRID = 20;
|
|
| 60 |
private static final int GRID = 10;
|
|
| 60 | 61 |
|
| 61 | 62 |
private GLSurfaceView mView; |
| 62 | 63 |
private DistortedEffects mEffectsNode, mEffectsGrid; |
| ... | ... | |
| 97 | 98 |
MatrixEffectRotate rotate = new MatrixEffectRotate(rotDyn, new Static3D(1,0,0), new Static3D(0,0,0)); |
| 98 | 99 |
mEffectsGrid.apply(rotate); |
| 99 | 100 |
|
| 101 |
VertexEffectScale vScale = new VertexEffectScale( new Static3D(GRID,GRID,1) ); |
|
| 102 |
mEffectsGrid.apply(vScale); |
|
| 103 |
|
|
| 100 | 104 |
Dynamic1D sinkDyn = new Dynamic1D(3000,0.0f); |
| 101 | 105 |
sinkDyn.add(new Static1D(1.0f)); |
| 102 | 106 |
sinkDyn.add(new Static1D(0.3f)); |
| 103 |
VertexEffectSink sink = new VertexEffectSink(sinkDyn, new Static3D(0,0,0), new Static4D(0,0,0,10) );
|
|
| 107 |
VertexEffectSink sink = new VertexEffectSink(sinkDyn, new Static3D(0,0,0), new Static4D(0,0,0,GRID*0.5f) );
|
|
| 104 | 108 |
mEffectsGrid.apply(sink); |
| 105 | 109 |
|
| 106 | 110 |
mScreen = new DistortedScreen(); |
| ... | ... | |
| 139 | 143 |
|
| 140 | 144 |
public void onSurfaceChanged(GL10 glUnused, int width, int height) |
| 141 | 145 |
{
|
| 142 |
float hor = width /mLisaAspectRatio; |
|
| 143 |
float ver = height; |
|
| 144 |
float factor= hor>ver ? ver : hor; |
|
| 145 |
|
|
| 146 |
float factor= Math.min(width/mLisaAspectRatio, height); |
|
| 146 | 147 |
mScale.set( factor,factor,factor ); |
| 147 | 148 |
mScreen.resize(width, height); |
| 148 | 149 |
} |
| ... | ... | |
| 185 | 186 |
final Static4D mapTB = new Static4D(0.0f,0.0f,1.0f ,1.0f/GRID); |
| 186 | 187 |
|
| 187 | 188 |
if( mMeshQuad ==null ) mMeshQuad = new MeshQuad(); |
| 188 |
if( mMeshCubes==null ) |
|
| 189 |
{
|
|
| 190 |
mMeshCubes= new MeshCubes(GRID,GRID,1, mapFB, mapFB, mapLR, mapLR, mapTB, mapTB); |
|
| 191 |
mMeshCubes.setStretch(GRID,GRID,1); |
|
| 192 |
} |
|
| 193 |
|
|
| 189 |
if( mMeshCubes==null ) mMeshCubes= new MeshCubes(GRID,GRID,1, mapFB, mapFB, mapLR, mapLR, mapTB, mapTB); |
|
| 194 | 190 |
|
| 195 | 191 |
mRoot = new DistortedNode(mLisaTexture, mEffectsNode, mMeshQuad); |
| 196 | 192 |
mRoot.resizeFBO(NODE_FBO_SIZE,NODE_FBO_SIZE); |
| ... | ... | |
| 201 | 197 |
mScreen.detachAll(); |
| 202 | 198 |
mScreen.attach(mRoot); |
| 203 | 199 |
|
| 200 |
VertexEffectScale.enable(); |
|
| 204 | 201 |
VertexEffectSink.enable(); |
| 205 | 202 |
FragmentEffectChroma.enable(); |
| 206 | 203 |
|
Also available in: Unified diff
Convert ObjectTree to stretchless API.