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

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

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

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

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


person ustits    schedule 09.12.2012    source источник


Ответы (1)


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

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

person sergiol    schedule 05.04.2014