Я конвертирую некоторый код из HSLSL и XNA в CG и OpenGL.
Код предназначен для визуализации объемных данных. Но данные объема также не выбираются с использованием одинакового расстояния в каждом измерении, например (0,9f, 1f, 1f). Поэтому необходимо применять масштабный коэффициент.
В примере XNA и HLSL они делают следующее:
mul(input.Position * ScaleFactor, WorldViewProj);
Где WorldViewProj передается в шейдер.
В OpenGL у меня сложилось впечатление, что glstate.matrix.mvp - это ModelViewProjection, где ModelView - это World * View. Очевидно, я не прав, потому что когда я делаю следующее, ничто не рисуется.
output.Position = mul( input.Position * scale, glstate.matrix.mvp);
Том отображается с glMatrixMode, установленным в GL_MODELVIEW. Должен ли я создавать свои собственные матрицы? Если так, какие-нибудь хорошие учебники? : D