Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
NickolayAkimov
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 24
#1

OpenGL Управление камерой - C++

06.09.2013, 18:20. Просмотров 1333. Ответов 1
Метки нет (Все метки)

Здравствуйте уважаемые форумчане!
Очень нужен ваш совет. Ситуация заключается в следюющем. Я начал изучение opengl, сейчас разбираюсь с функцией gluLookAt(...), в теории как она работает, вроде все понятно, но приступив к практике, сразу же натыкаюсь лбом в угол.
Задача стоит в том что нужно реализовать движение камеры по сцене, для начала вперед назад(к обьекту/от обьекта).

Реализовать пытаюсь следующим образом:
в gluLookAt() передаю переменные xp=0,yp=0,zp=-200 - позиция наблюдателя и xl=0, yl=0; zl=0 - точка взгляда, по нажатию кнопку 'w'(в нижнем регистре) для zp и zl делаю +21. Т.е по идее камера должна приближаться к объекту по оси Z. Но вместо этого объект абсолютно никак не изменяется, и только после нескольких нажатий просто исчезает.

Подскажите пожалуйста в чем моя ошибка? Код привожу ниже, буду очень благодарен за любую помощ.
За ранее спасибо с ув. Nickolay
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <string.h>
#include <glut.h>
#include <windows.h>
#include <glaux.h>
 
using namespace std;
 
float xp = 0.0;
float yp = 0.0;
float zp = -100.0;
 
float xl = 0.0;
float yl = 0.0;
float zl = 0.0;
 
float xv = 0.0;
float yv = 1.0;
float zv = 0.0;
 
 
void Keyboard(unsigned char key, int x, int y)
{
        switch(key)
        {
            
        
            case 'w': zp = zp+21.0f;
                     zl = zl+21.0f;
                     cout << "zp = " << zp << endl;
                cout << "zl = " << zl << endl;
                                   break;
        }
        glutPostRedisplay();
}
 
void Draw()
{
 
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity;
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity;
    gluLookAt(xp,yp,zp, xl,yl,zl, xv,yv,zv);
    glPushMatrix;
         glClear(GL_COLOR_BUFFER_BIT);
         glColor3f(0.0, 1.0, 0.0);
 
         glBegin(GL_LINES);
            
                        GLUquadricObj * quadSphere;
            quadSphere = gluNewQuadric();
            gluQuadricDrawStyle(quadSphere, GLU_LINE );
            gluSphere( quadSphere , 50 , 36 , 18 );
            gluDeleteQuadric(quadSphere); 
            glEndList();
 
        glEnd();
        glutSwapBuffers();
    glPopMatrix;
        //cout << "Draw();" << endl;
}
 
void Initialize()
{
        glClearColor(1.0, 0.0, 0.0, 1.0);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        glOrtho(-200.0, 200.0, -200.0, 200.0, -200.0, 200.0);
}
 
int main(int argc, char** argv)
{
        //Инициализация
        glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);
        glutInitWindowSize(400, 400);
        glutInitWindowPosition(100, 200);
        glutCreateWindow("Lesson 01");
        //Регистрация
        glutDisplayFunc(Draw);//Рисование
    glutKeyboardFunc(Keyboard);
        Initialize();
        glutMainLoop();
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2013, 18:20     OpenGL Управление камерой
Посмотрите здесь:

Реализовать управление камерой с помощью мыши - C++ WinAPI
Здравствуйте, программируя в OpenGL столкнулся с такой проблемой - мне необходимо создать управление камерой с помощью мыши (т.е. при...

Работа с камерой - C++ Linux
Добрый день Не подскажите как в Linux-e работать с вебкой на с++? Какие нужно использывать библиотеки?

Работа с Web-камерой - Visual C++
Подскажите, как работать с Web-камерой, в частности нужно выхватывать кажыдые n секунд изображения.

Работа с веб камерой - C++ Builder
Здрасьте. Пробую захват изображения с вебкамеры(Genius iLook 300). нарыл такой код: HWND hWndC; ...

Работа с веб-камерой, видеосвязь - C++ Builder
доброго времени суток! передо мной стоит задача организовать общение по веб-камере между двумя компьютерами через интернет. посоветуйте...

Программа работающая с веб-камерой и сетью - C++
Задача: Написать программу, которая будет включать веб-камеру и обрабатывать с нее видео, если на видео присутствует определенный процент...

Как управлять веб-камерой с помощью кода. - C++
Здравствуйте, как написать программу, которая будет использовать веб-камеру для съемки видео или фотографий. Знаете, что-то вроде motion...

Написание программы для работы с вэб-камерой. - C++
как написать программу для работы с вэб камерой или где можно об этом почитать

OpenGl - Visual C++
Вот код: /* * (c) Copyright 2012, Stanislav Sidletsky * Inet: stanislav.sidletsky@gmail.com */ #include &lt;stdlib.h&gt; ...

си++ и opengl - Visual C++
Здравствуйте, помогите пожалуйста: я рисую ландшафт вроде бы код есть,но текстурирование у меня получается некрасивое 2D, скажите...

С++ и OpenGL - C++
Всем доброго времени суток, подскажите почему у меня не определяется метод glBufferData(GL_ARRAY_BUFFER), библиотека не видит, подключенные...

Opengl и C++ - C++
Посоветуйте книгу, литературу....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,189
Завершенные тесты: 1
06.09.2013, 22:03     OpenGL Управление камерой #2
Неужели без предупреждений скомпилировалось?
C++
1
2
3
4
5
glLoadIdentity;
...
glPushMatrix;
...
glPopMatrix;
Где скобки?

Добавлено через 2 минуты
Да, и матрицу проекции на единичную в Draw() не надо сбрасывать.
Yandex
Объявления
06.09.2013, 22:03     OpenGL Управление камерой
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru