Четверг, 28 Марта 2024, 16:08

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » OpenGL (Из координат экрана в мировые координаты)
OpenGL
ad141Дата: Пятница, 22 Февраля 2013, 20:13 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Я вот не знаю как сделать так чтобы мышь на экране был как луч выходящий из камеры в 3Д пространстве.

У меня получается сделать так что бы луч выходил из камеры только тогда, когда мышь ровно по центру окна.

Дано:
Point3f CamPos; // Позиция камеры (x, y, z)
Point2f CamR; // Ориентация камеры (x, y)
Point2f Mouse; // Позиция мыши (x, y) y=x=(-1; 1)
float YЧ; // Соотношение окна (Высота/Ширина)

Надо получить позицию точки на некотором расстояние от камеры, которая задана позицией мыши.

Это вход в перспективу:

float x = Cam::fov/90.0f*Cam::Start;
float y = x*YX;
glFrustum(-x,x,-y,y,Cam::Start,Cam::Finish);

Перед отрисовкой:

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //GL_ACCUM_BUFFER_BIT
glLoadIdentity();
glRotatef(-CamR.y,1.0f,0.0f,0.0f);
glRotatef(CamR.x,0.0f,1.0f,0.0f);
glTranslatef(-CamPos.x, -CamPos.y, -CamPos.z);

Надо как то получить эту точку:

glVertex3f(
CamPos.x+sin((Магия X) * GRAD)*cos(Магия Y * GRAD),
CamPos.y+(sin(Магия Y * GRAD)),
CamPos.z-cos((Магия X) * GRAD)*cos(Магия Y * GRAD)
);



Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
Форум игроделов » Программирование » C/C++ » OpenGL (Из координат экрана в мировые координаты)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг