К этому моменту в университете я научилися выводить примитивные геометрические объекты в окне вида с помощью контекста устройства, описываемого классом CDC. Очевидно, что такая графика вряд ли может удовлетворить реальные потребности пользователей САПР. Данный класс пользователей давно привык к детально прорисованным трехмерным сценам, использованию реалистичных текстур и т.д. Так же очевидно, что я не далеко не первый на пути «модернизации» графики в окнах, основанных на классе CView. Такие задачи ставились достаточно давно и одним из эффективных решений было предложена интеграция всем известной графической библиотеки OpenGL в приложение MFC, что сразу же подниметграфические возможности данного приложения на абсолютно новый уровень.
В качестве тестовой задачи для реализации вывода графики с использованием OpenGL поставим цель создания «просмотрщика» 3Dмоделей в формате STL. Данный формат существует в бинарной и текстовой версиях. Для простоты реализации возьмем только текстовый вариант. В STL-файле содержится информация о треугольных элементах, составляющих поверхность модели. Вершины треугольником задаются ключевым словом vertex с последующим указанием координат x, y и zчерез пробел. Нормаль к треугольнику кодируется словами facetnormal c последующим указанием координат вектора нормали. Остальные ключевые слова носят вспомогательный характер. Пример части STL-файла приведен ниже
facet normal 0.000000e+00 0.000000e+00 -1.000000e+00
outer loop
vertex -7.093629e+00 -2.435246e+00 0.000000e+00
vertex -7.500000e+00 9.184850e-16 0.000000e+00
vertex -5.918554e+00 -4.606596e+00 0.000000e+00
endloop
endface