2012-01-08 3 views
0

Я меняю форму больше, чем радиус по умолчанию 1, но, похоже, не работает; это то, что я пытаюсь:OpenGL - Невозможно изменить размер glutSolidIcosahedron()?

void glutSolidIcosahedron(GLdouble size); 
glutSolidIcosahedron(9); 

Это нормально, я сделал это (как показано ниже):

glScalef(9.0,9.0,9.0); 
glutSolidIcosahedron(); 

Есть ли другой способ?

ответ

0

glutSolidIcosahedron() создает икосаэдр с центром в начале координат и с радиусом 1.0. Он не принимает никаких параметров, чтобы настроить его размер или масштаб. Так что да, единственный способ изменить размер - использовать glScalef или какой-либо другой способ настройки текущей матрицы.

+0

Как только я изменил размер, свет не кажется пораженным, это странно – Led

+0

Когда вы масштабируете объект, он также масштабирует нормали, которые могут вызвать проблемы с освещением, если вы не включаете 'GL_NORMALIZE' или' GL_RESCALE_NORMAL' , См. Это [faq] (http://www.opengl.org/resources/faq/technical/lights.htm#ligh0090). –

+0

благодарит Дэвида Ура за легенду – Led

Смежные вопросы