final FloatBufferData texCoordsData = meshData.getTextureCoords(0); saveFloatBufferData(texCoordsData, objPw, "vt", expectedTupleCount); final FloatBufferData normalsData = meshData.getNormalCoords(); saveFloatBufferData(normalsData, objPw, "vn", expectedTupleCount);
final FloatBufferData normsData = _meshData.getNormalCoords(); if (normsData == null) { _meshData.setNormalBuffer(BufferUtils.createVector3Buffer(verts));
final FloatBufferData normsData = _meshData.getNormalCoords(); if (normsData == null) { _meshData.setNormalBuffer(BufferUtils.createVector3Buffer(verts));
_meshData.getNormalCoords().setNeedsRefresh(true);
Vector3[] norms = null; if (mesh.getMeshData().getNormalBuffer() != null) { norms = BufferUtils.getVector3Array(mesh.getMeshData().getNormalCoords(), Vector3.UNIT_Y);
if (meshData.getNormalCoords() != null) { meshData.getNormalCoords().setVboAccessMode(VBOAccessMode.StreamDraw);
Vector3[] norms = null; if (mesh.getMeshData().getNormalBuffer() != null) { norms = BufferUtils.getVector3Array(mesh.getMeshData().getNormalCoords(), Vector3.UNIT_Y);
public void visit(final Spatial spatial) { if (spatial instanceof Mesh) { final Mesh mesh = (Mesh) spatial; _deleter.deleteVBOs(mesh.getMeshData().getVertexCoords()); _deleter.deleteVBOs(mesh.getMeshData().getIndices()); _deleter.deleteVBOs(mesh.getMeshData().getInterleavedData()); _deleter.deleteVBOs(mesh.getMeshData().getNormalCoords()); _deleter.deleteVBOs(mesh.getMeshData().getTangentCoords()); for (final FloatBufferData coords : mesh.getMeshData().getTextureCoords()) { _deleter.deleteVBOs(coords); } _deleter.deleteVBOs(mesh.getMeshData().getColorCoords()); _deleter.deleteVBOs(mesh.getMeshData().getFogCoords()); } } }
/** * */ public void updateGeometry() { final int numPairs = _tessSteps + 1; final int totalVerts = _tessRings * numPairs * 2; final MeshData meshData = getMeshData(); FloatBuffer crdBuf = meshData.getVertexBuffer(); if (crdBuf == null || totalVerts != crdBuf.limit() / 3) { // allocate new buffers meshData.setVertexBuffer(BufferUtils.createVector3Buffer(totalVerts)); meshData.setNormalBuffer(BufferUtils.createVector3Buffer(totalVerts)); meshData.setTextureBuffer(BufferUtils.createVector2Buffer(totalVerts), 0); crdBuf = meshData.getVertexBuffer(); meshData.getVertexCoords().setVboAccessMode(VBOAccessMode.DynamicDraw); meshData.getNormalCoords().setVboAccessMode(VBOAccessMode.DynamicDraw); meshData.getTextureCoords(0).setVboAccessMode(VBOAccessMode.DynamicDraw); } final FloatBuffer nrmBuf = meshData.getNormalBuffer(); final FloatBuffer txcBuf = meshData.getTextureBuffer(0); calculateVertexData(_tessRings, numPairs, totalVerts, crdBuf, nrmBuf, txcBuf); // mark our data as needing updates meshData.markBufferDirty(MeshData.KEY_VertexCoords); meshData.markBufferDirty(MeshData.KEY_NormalCoords); meshData.markBufferDirty(MeshData.KEY_TextureCoords0); updateModelBound(); }
meshData.getNormalCoords(), meshData.getColorCoords(), meshData.getTextureCoords()); } else { if (RENDER_VERTEX_ONLY) { renderer.applyNormalsMode(getSceneHints().getNormalsMode(), _worldTransform); if (getSceneHints().getNormalsMode() != NormalsMode.Off) { renderer.setupNormalDataVBO(meshData.getNormalCoords()); } else { renderer.setupNormalDataVBO(null);
renderer.applyNormalsMode(getSceneHints().getNormalsMode(), _worldTransform); if (getSceneHints().getNormalsMode() != NormalsMode.Off) { renderer.setupNormalData(meshData.getNormalCoords()); } else { renderer.setupNormalData(null);