Здравствуйте LtS, Вы писали:
LtS>Большое спасибо!
&
LtS>...ну тогда ещё один навера последний вопрос: как толком рисовать в OGL не разбираясь с 3D?
LtS>Наверна надо будет сказать glDisable(GL_DEPTH_TEST), для начала. А потом хотелось бы, чтобы во всех проекциях например нарисовалась линия из (0,0) в (100, 100). Вообще говоря настройка матриц — не самый плохой вариант, но может есть что-то более прогрессивное и главное простое?
Ну куда уж прогрессивнее и проще, чем пару матриц настроитть!
Ок, без проблем. Можно настроить матрицы преобразования так, чтобы рисовать прямо в "оконных" координатах. Конкретно:
Here is code to configure OpenGL for a 2D window coordinate system with an upper left-hand origin where w and h are the windowâs width and height in pixels:
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, w, h, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
Note that the bottom and top parameters (the 3rd and 4th parameters) to glOrtho specify the window height as the top and zero as the bottom. This flips the origin to put the origin at the windowâs upper left-hand corner.
Now, you can safely set the raster position at a pixel position in window coordinates like this
glVertex2i(x, y);
glRasterPos2i(x, y);
Кстати — вот статья, откуда взят сей текст:
Avoiding 16 Common OpenGL Pitfalls.
Стаься во многих смыслах полезная, и избавляющая от многих часов битья головой об стену...
А OpenGL между прочим содержит ф-ии типа glVertex2d — то есть 2d — это его частный случай. Но все равно настраивать нужно как для 3д, — просто как будто сверху смотрим на лист фанеры....
Удачи.
Саша.