cela doit être simple, mais il me manque. J'ai un modèle complexe qui a plus de 32767 sommets. maintenant, les index ne peuvent être passés à opengl que comme type GL_UNSIGNED_BYTE ou GL_UNSIGNED_SHORT. java n'a pas de concept de unsigned, de sorte que l'option short non signé correspond simplement à (signed) short, qui est 16 bits, ou +32767. quand je spécifie les vertices, je dois passer opengl un short [], où les valeurs dans le tableau pointent vers un vertex dans le tableau vertice. cependant, s'il y a> 32767 sommets, la valeur ne rentrera pas dans le short [].java opengl: glDrawElements() avec> 32767 sommets
Y a-t-il une autre façon de spécifier les indices? extrait de code est ci-dessous, merci.
short[] shorts = ... read the indices ...;
...
ShortBuffer indicesBuffer = null;
ByteBuffer ibb = ByteBuffer.allocateDirect(indices.length * Short.SIZE/8);
ibb.order(ByteOrder.nativeOrder());
indicesBuffer = ibb.asShortBuffer();
indicesBuffer.put(indices);
indicesBuffer.position(0);
...
gl.glDrawElements(GL10.GL_TRIANGLES, numOfIndices, GL10.GL_UNSIGNED_SHORT, indicesBuffer);
...
par la façon dont cela se trouve être sur la plate-forme Android en utilisant opengl-es 1.0. –
Je pense que la plupart du téléphone ne peut pas gérer cette complexité avec des performances raisonnables. –