Revision b35570ad
Added by Leszek Koltunski over 5 years ago
| src/main/java/org/distorted/library/mesh/MeshJoined.java | ||
|---|---|---|
| 27 | 27 | /** | 
| 28 | 28 | * Join a list of (probably already changed by Matrix Effects) Meshes into one. | 
| 29 | 29 | * <p> | 
| 30 |  * Try to keep the origin (0,0,0) in the center of gravity of the whole thing.
 | |
| 30 |  * You need to try and keep the origin (0,0,0) in the center of gravity of the whole thing.
 | |
| 31 | 31 | */ | 
| 32 | 32 | public MeshJoined(MeshBase[] meshes) | 
| 33 | 33 |     {
 | 
| src/main/java/org/distorted/library/mesh/MeshTriangles.java | ||
|---|---|---|
| 25 | 25 | */ | 
| 26 | 26 | public class MeshTriangles extends MeshBase | 
| 27 | 27 |   {
 | 
| 28 | private static final float HEIGHT = (float)Math.sqrt(3)*0.5f; | |
| 29 | 28 | private int numVertices; | 
| 30 | 29 | private int remainingVert; | 
| 31 | 30 |  | 
| ... | ... | |
| 36 | 35 | remainingVert--; | 
| 37 | 36 |  | 
| 38 | 37 | attribs[VERT_ATTRIBS*vertex + POS_ATTRIB ] = x-0.5f; | 
| 39 |      attribs[VERT_ATTRIBS*vertex + POS_ATTRIB+1] = y-HEIGHT/3;
 | |
| 38 |      attribs[VERT_ATTRIBS*vertex + POS_ATTRIB+1] = y-0.5f;
 | |
| 40 | 39 | attribs[VERT_ATTRIBS*vertex + POS_ATTRIB+2] = 0.0f; | 
| 41 | 40 |  | 
| 42 | 41 | attribs[VERT_ATTRIBS*vertex + NOR_ATTRIB ] = 0.0f; | 
| ... | ... | |
| 44 | 43 | attribs[VERT_ATTRIBS*vertex + NOR_ATTRIB+2] = 1.0f; | 
| 45 | 44 |  | 
| 46 | 45 | attribs[VERT_ATTRIBS*vertex + INF_ATTRIB ] = (x-0.5f); | 
| 47 |      attribs[VERT_ATTRIBS*vertex + INF_ATTRIB+1] = (y-HEIGHT/3);
 | |
| 46 |      attribs[VERT_ATTRIBS*vertex + INF_ATTRIB+1] = (y-0.5f);
 | |
| 48 | 47 | attribs[VERT_ATTRIBS*vertex + INF_ATTRIB+2] = 0.01f ; // Inflated surface needs to be slightly in front | 
| 49 | 48 |  | 
| 50 | 49 | attribs[VERT_ATTRIBS*vertex + TEX_ATTRIB ] = x; | 
| ... | ... | |
| 84 | 83 | float sx = 0.0f; | 
| 85 | 84 | float sy = 0.0f; | 
| 86 | 85 | float dx = 0.5f/level; | 
| 87 |      float dy = HEIGHT/level;
 | |
| 86 |      float dy = 1.0f/level;
 | |
| 88 | 87 | int vertex = 0; | 
| 89 | 88 |  | 
| 90 | 89 | for(int row=level; row>=1; row--) | 
| ... | ... | |
| 108 | 107 | */ | 
| 109 | 108 | public MeshTriangles(int level) | 
| 110 | 109 |      {
 | 
| 111 |      super(1,HEIGHT,0);
 | |
| 110 |      super(1,1,0);
 | |
| 112 | 111 |  | 
| 113 | 112 | computeNumberOfVertices(level); | 
| 114 | 113 |  | 
| src/main/res/raw/main_vertex_shader.glsl | ||
|---|---|---|
| 181 | 181 | #endif | 
| 182 | 182 |  | 
| 183 | 183 | v_Position = v; | 
| 184 |   v_endPosition   = v + 0.3*u_Stretch*n;
 | |
| 184 |   v_endPosition   = v + 0.2*u_Stretch*n;
 | |
| 185 | 185 | v_TexCoordinate = a_TexCoordinate; | 
| 186 | 186 | v_Normal = normalize(vec3(u_MVMatrix*vec4(n,0.0))); | 
| 187 | 187 | gl_Position = u_MVPMatrix*vec4(v,1.0); | 
Also available in: Unified diff
Minor.
Looks like MeshBase.join() actually works.