Итак, в настоящее время я изучаю OpenGL, и в следующем уроке говорится:
Первое, что мы должны сделать, это сохранить наш массив с плавающей точкой в FloatBuffer. Это в основном связано с тем, что мы должны взаимодействовать с библиотекой OpenGL, которая основана на C, поэтому мы должны преобразовать наш массив с плавающей точкой во что-то, что может управляться библиотекой.
И я полностью понимаю, но что было странно, что каждый метод OpenGL, предоставленный LWJGL, работает с буферами, но также и с простыми массивами.
Почему это так и почему я должен использовать буферы тогда?
Некоторые примеры:
Это работает с indices
, являющимся IntBuffer
, но также и int[]
.
glBufferData(GL_ARRAY_BUFFER, indices, GL_STATIC_DRAW);
Это работает с value
является FloatBuffer
, но также является float[]
.
glUniformMatrix4fv(
uniforms.get(uniformName),
false,
value
);