можно ли повторно использовать GLUquadricObj в рамках одного вызова gluNewQuadric и gluDeleteQuadric?

Я только что прочитал из вопроса № 6663300, что функции переполнения неправильные, и я должен использовать примитивы рисования glu вместо перенасыщения.

поэтому у меня есть несколько вопросов о том, как следует использовать GLUquadricObj. Куда бы я ни пошел, GLUquadricObj обычно используется в качестве указателя, а затем создается и уничтожается новый экземпляр в конце 1 фазы рисования. Есть ли время, когда GLUquadricObj используется без указателя, чтобы вы передавали ссылку на GLUquadricObj в такие функции, как gluCylinder?

для второго вопроса, скажем, у меня есть постоянно обновляемая анимация, которая продолжается до тех пор, пока программа не закроется, должен ли я создавать и удалять GLUquadricObj для каждого нарисованного кадра? или я могу просто оставить один GLUquadricObj созданным, а затем удалить его, когда программа закроется? нужно ли мне использовать список рисунков, если я хочу сохранить только 1 указатель GLUquadricObj на протяжении всей анимации?

GLUquadricObj *qobj = 0; qobj = gluNewQuadric();

gluCylinder(qobj,CylinderRadius,CylinderRadius,length,Slices,stacks);

gluDeleteQuadric(qobj);

Будет ли эффективнее, чтобы GLUquadricObj был глобальным, а не локальным? или я должен просто оставить создание и уничтожение GLUquadricObj внутри нарисованного кадра?


person TopTierTracker    schedule 23.01.2013    source источник


Ответы (1)


Есть ли время, когда GLUquadricObj используется без указателя, чтобы вы передавали ссылку на GLUquadricObj в такие функции, как gluCylinder?

Я так не думаю. объявление переменной GLUquadricObj, вероятно, не устанавливает правильно ее внутреннее состояние, поэтому не делайте этого. (хотя я не смотрел источник glu, поэтому не могу сказать наверняка)

Будет ли эффективнее, чтобы GLUquadricObj был глобальным, а не локальным?

Наверное, очень незначительно.

или я должен просто оставить создание и уничтожение GLUquadricObj внутри нарисованного кадра?

Да. Не беспокойтесь об эффективности, если вы только изучаете opengl, разница, которую это изменение внесет, совершенно незаметна. Просто оставьте все как есть.

person Slicedpan    schedule 23.01.2013