Я недавно прочитал статью на Badlogicgames.com об ускорении процесса добавления информации в буферы вершин (или любой другой intbuffer), и это действительно увеличило скорость моего проекта, но я не совсем понял
"Заметив, что проблема не затронула IntBuffer.put (int [] src)"
оператор .... Возможно ли передать массив int [] вIntBuffer, чтобы получить увеличение скорости, если вам не нужны числа с плавающей запятой?Каждый раз, когда я пытаюсь поместить int [] в буфер;ничего не отображается ...
Вот пример моего текущего использования:
dMesh[i].putVertexBuffer(coords); //function being called
public void putVertexBuffer(int[] input) //actual function
{
ByteBuffer tC = ByteBuffer.allocateDirect(input.length *4);
tC.order(ByteOrder.nativeOrder());
_vertexBuffer = tC.asIntBuffer();
_vertexBuffer.put(input);
_vertexBuffer.position(0);
}
Теперь, если массив int "ordin" заполнен переменными, которые были числами с плавающей запятой, преобразованными в целые числаиспользование "Float.floatToIntBits (значение с плавающей точкой)";это нормально ... но массив стандартных целых чисел ничего не показывает ... Но если я просто имею массив float [] и меняю "asIntBuffer ()" на "asFloatBuffer ()", это работает?Я не совсем понимаю.Требуется ли конвертация?Заранее благодарю всех, кто дает какие-либо идеи.
Быстрое редактирование: я чуть не забыл ... это статья, на которую я ссылался: http://www.badlogicgames.com/wiki/index.php/Direct_Bulk_FloatBuffer.put_is_slow