2015-09-23 2 views
0

Я работаю над заданием, и мне нужно рисовать, используя только GL_POINTS. Я понимаю, что это дорогостоящий подход, но это для домашней работы, поэтому никаких GL_TRIANGLES/GL_POLYGON/GL_LINES и т. Д.GLUT OpenGL - Drawing Shapes, используя только GL_POINTS

Во-первых, я пытаюсь понять концепцию использования только точек. Скажем, я хочу нарисовать квадрат размером 100 х 100 пикселей. Нужно ли мне четыре цикла for-loops рисовать по 100 пикселей в прямых линиях для создания квадрата? Что делать, если я хочу заполнить квадрат цветом?

Я понимаю, как рисовать квадрат с помощью GL_POLYGON, так как это довольно прямолинейно. Мы используем библиотеку GLUT только для рисования фигур с точками.

+0

Возможно, необходимо перенести в computergraphics.stackexchange. – imallett

+0

Спасибо, я отправлю туда. – Chris

+1

Я был более помечен этому вопросу, чтобы модератор мог его переместить. Если вы хотите сделать это самостоятельно, удалите этот вопрос здесь, чтобы вы не перекрестно размещали. – imallett

ответ

-1

Чтобы нарисовать квадрат, который 100x100 пикселей в ширину, вам нужно будет использовать только в приложении:

glEnable(GL_PROGRAM_POINT_SIZE); 

Затем в вершинном шейдере для единственной вершины, что вам нужно (центр квадрата) :

gl_PointSize = pixel_size; 

В вашем случае:

gl_PointSize = 100; 
0

Я думаю, что назначение в основном силы вы должны написать свой собственный рендерер. Так, например, вам нужно будет реализовать алгоритм Брешенема для линий и растрирования строк для треугольников. После этого вы можете триангулировать каждую фигуру и просто растеризовать ее как несколько треугольников.