private int computeNbTri() { int nbTri = 0; for (Geometry geometry : listGeoms) { if (geometry.getMesh().getNumLodLevels() > 0) { nbTri += geometry.getMesh().getLodLevel(lodLevel).getNumElements(); } else { nbTri += geometry.getMesh().getTriangleCount(); } } return nbTri; }
lodSize[i] += g.getMesh().getLodLevel(i).getData().limit(); numOfVertices = g.getVertexCount(); for (int i = 0; i < lodLevels; i++) { boolean isShortBuffer = g.getMesh().getLodLevel(i).getFormat() == VertexBuffer.Format.UnsignedShort; if(isShortBuffer){ ShortBuffer buffer = (ShortBuffer) g.getMesh().getLodLevel(i).getDataReadOnly(); for (int j = 0; j < buffer.limit(); j++) { lodData[i][bufferPos[i]] = (buffer.get()& 0xffff) + indexPos[i]; IntBuffer buffer = (IntBuffer) g.getMesh().getLodLevel(i).getDataReadOnly(); for (int j = 0; j < buffer.limit(); j++) { lodData[i][bufferPos[i]] = buffer.get() + indexPos[i];
private void renderMeshVertexArray(Mesh mesh, int lod, int count, VertexBuffer instanceData) { if (mesh.getId() == -1) { updateVertexArray(mesh, instanceData); } else { // TODO: Check if it was updated } if (context.boundVertexArray != mesh.getId()) { gl3.glBindVertexArray(mesh.getId()); context.boundVertexArray = mesh.getId(); } // IntMap<VertexBuffer> buffers = mesh.getBuffers(); VertexBuffer indices; if (mesh.getNumLodLevels() > 0) { indices = mesh.getLodLevel(lod); } else { indices = mesh.getBuffer(Type.Index); } if (indices != null) { drawTriangleList(indices, mesh, count); } else { drawTriangleArray(mesh.getMode(), count, mesh.getVertexCount()); } clearVertexAttribs(); }
indices = mesh.getLodLevel(lod); } else { indices = mesh.getBuffer(Type.Index);
lodSize[i] += g.getMesh().getLodLevel(i).getData().limit(); numOfVertices = g.getVertexCount(); for (int i = 0; i < lodLevels; i++) { boolean isShortBuffer = g.getMesh().getLodLevel(i).getFormat() == VertexBuffer.Format.UnsignedShort; if(isShortBuffer){ ShortBuffer buffer = (ShortBuffer) g.getMesh().getLodLevel(i).getDataReadOnly(); for (int j = 0; j < buffer.limit(); j++) { lodData[i][bufferPos[i]] = (buffer.get()& 0xffff) + indexPos[i]; IntBuffer buffer = (IntBuffer) g.getMesh().getLodLevel(i).getDataReadOnly(); for (int j = 0; j < buffer.limit(); j++) { lodData[i][bufferPos[i]] = buffer.get() + indexPos[i];
lodSize[i] += g.getMesh().getLodLevel(i).getData().capacity(); ShortBuffer buffer = (ShortBuffer) g.getMesh().getLodLevel(i).getData(); buffer.rewind();
private void renderMeshVertexArray(Mesh mesh, int lod, int count, VertexBuffer instanceData) { if (mesh.getId() == -1) { updateVertexArray(mesh, instanceData); } else { // TODO: Check if it was updated } if (context.boundVertexArray != mesh.getId()) { gl3.glBindVertexArray(mesh.getId()); context.boundVertexArray = mesh.getId(); } // IntMap<VertexBuffer> buffers = mesh.getBuffers(); VertexBuffer indices; if (mesh.getNumLodLevels() > 0) { indices = mesh.getLodLevel(lod); } else { indices = mesh.getBuffer(Type.Index); } if (indices != null) { drawTriangleList(indices, mesh, count); } else { drawTriangleArray(mesh.getMode(), count, mesh.getVertexCount()); } clearVertexAttribs(); }
private void renderMeshVertexArray(Mesh mesh, int lod, int count, VertexBuffer instanceData) { if (mesh.getId() == -1) { updateVertexArray(mesh, instanceData); } else { // TODO: Check if it was updated } if (context.boundVertexArray != mesh.getId()) { glBindVertexArray(mesh.getId()); context.boundVertexArray = mesh.getId(); } // IntMap<VertexBuffer> buffers = mesh.getBuffers(); VertexBuffer indices; if (mesh.getNumLodLevels() > 0) { indices = mesh.getLodLevel(lod); } else { indices = mesh.getBuffer(Type.Index); } if (indices != null) { drawTriangleList(indices, mesh, count); } else { drawTriangleArray(mesh.getMode(), count, mesh.getVertexCount()); } clearVertexAttribs(); clearTextureUnits(); }
indices = mesh.getLodLevel(lod); } else { indices = mesh.getBuffer(Type.Index);
indices = mesh.getLodLevel(lod); } else { indices = mesh.getBuffer(Type.Index);