У меня есть программа OpenGL, которая работает, когда я вызываю это:
gluLookAt(0.1,0.1,0.1, 0,0,0, 0,0.1,0);
… но не когда я называю это:
gluLookAt(0.01,0.01,0.01, 0,0,0, 0,0.01,0);
(В последнем случае появляется пустой экран.)
Есть ли у gluLookAt минимальный / максимальный размер аргумента с плавающей запятой?
Рисование делается около начала координат, в радиусе ~ 10-6.
Проверьте ваше значение минимального расстояния прорисовки gluPerspective:
gluPerspective(45.0, (double)window.GetWidth() / (double)window.GetHeight(), 0.1d, 2000.0d);
Это не будет работать, потому что все перед 0.1.
gluLookAt
должно хорошо работать с вашими аргументами. Однако вы меняете положение камеры (как говорит @sftrabbit). Ваша новая позиция может быть слишком близко к объекту, чтобы увидеть его.
Вы должны проверить, каково расстояние около плоскости в вашей матрице перспективы (возможно, ваш gluPerspective()
вызов?).