Android GL_FLOAT преобразует в GL_SHORT в массиве вершин OpenGL ES

#android #opengl-es

#Android #opengl-es

Вопрос:

 float coords[] = {
  0.0f, 0.0f, 0.0f, 
  0.0f, 1.0f, 0.0f, 
  1.0f, 1.0f, 0.0f, 
  1.1f, 2.3f, 0.0f, 
}
  

у меня есть простой массив координат с плавающей точкой. Как я могу преобразовать его в GL_SHORT?

так что не это: gl.glVertexPointer(измерение, GL10.GL_FLOAT, 0, mVertexBuffer);

но: gl.glVertexPointer(измерение, GL10.GL_SHORT, 0, mVertexBuffer_short);

Ответ №1:

Числа были бы точно такими же (как в {0,0,0, 0,1,0, ...} ). Если бы у вас были дроби, вам пришлось бы применить подходящую масштабирующую матрицу во время рендеринга, чтобы вы могли представлять свои точки в виде целых чисел.