При передаче данных материала в opengl (для использования в шейдере):
float white[4] ={1.0f,1.0f,1.0f,1.0f};
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, white);
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, white);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white);
int whitei[4] = {255,255,255,255};
glMaterialiv(GL_FRONT_AND_BACK, GL_AMBIENT, whitei);
glMaterialiv(GL_FRONT_AND_BACK, GL_DIFFUSE, whitei);
glMaterialiv(GL_FRONT_AND_BACK, GL_SPECULAR, whitei);
Первый работает красиво, а второй дает только черную сетку.Оба были использованы в одном и том же контексте (в основном я написал первый, а затем второй заменил первый).
Кто-нибудь знает, почему это так?glMaterialiv действительно облегчит мою жизнь (если я смогу заставить ее работать), потому что я сохраняю свои цвета в байтах rgba, и я не уверен, хочу ли я сделать их в 4 раза больше, просто чтобы преобразовать их в плавающие.