Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Рисование 3D в MFC

Автор вопроса: ustitsОтветов: 1

не спрашивайте меня почему, но мне нужно нарисовать трехмерную фигуру с помощью MFC. Я создал классы матриц и векторов. Я рассчитываю ViewMatrix (обратная матрица камеры) и проекционную матрицу.

Каждую вершину я умножаю на мировоззрение и матрицу проекции. Я делю этот вектор на W и получаю координаты x,y окна просмотра. Я также извлекаю квинтиллион из WorldViewMatrix и умножаю его на вектор нормали, чтобы получить нормаль этого многоугольника.

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

Хотелось бы узнать, как это реализовано на реальных графических процессорах. У них есть вершинные и поинтовые и другие шейдеры. Я хочу сделать что-то вроде этого.

gpulight3dpolygonprojection

Ответы

Ответ 1 · sergiol

Я думаю, вам нужно будет использовать OpenGL или DirectX внутри вашего приложения MFC. Я уже делал интеграцию с OpenGL... лет 10 назад... не помню как делал.

Если это когда-либо будет возможно с помощью технологий Native Win32 GDI и GDI+, то возможности 3D будут очень ограничены.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы