Помогите нарисовать пунктирную линию в OpenGl - PullRequest
8 голосов
/ 16 марта 2011

Я пытаюсь нарисовать пунктирную линию в OpenGl, используя текстуру, равномерно распределенную по траектории как штрихи. Я могу получить сплошную линию, но это не будет работать для этого проекта. Может ли кто-нибудь помочь направить меня в правильном направлении?

Ответы [ 3 ]

11 голосов
/ 16 марта 2011

Пунктирная или пунктирная линия в OpenGL называется пунктирной.

glPushAttrib(GL_ENABLE_BIT); 
# glPushAttrib is done to return everything to normal after drawing

glLineStipple(1, 0xAAAA);  # [1]
glEnable(GL_LINE_STIPPLE);
glBegin(GL_LINES);
glVertex3f(-.5,.5,-.5);
glVertex3f(.5,.5,-.5);
glEnd();

glPopAttrib();

0xAAAA - это параметр, с которым вы хотите поэкспериментировать.

(Источник здесь )

0 голосов
/ 16 марта 2011

Пунктирная линия - это просто серия коллинеарных отрезков с промежутками между ними.Если вы хотите текстурировать, вы можете испустить кучу квадов.Вы можете управлять координатами текстуры, чтобы каждый штрих был частью текстуры, или каждый штрих охватывал всю текстуру или любой другой шаблон повторения, который вам нравится.

Что вы пробовали до сих пор?Покажите код, который не работает, и выводимый рисунок, который он создает.Тогда объясни, чем ты хочешь быть другим.

0 голосов
/ 16 марта 2011

Лучший способ - использовать glBegin (GL_POINTS);и распределите точки линейно.

...