Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 02.11.2006, 23:43   #1
jimon
 
Сообщений: n/a
камера для гонок

помогите псевдокодом
ну или идеи киньте
надо камера примерно как в nfs .. ну или что нить нормальное

щас update камеры работает на немного страшноватом коде
но он работает

irr::core::matrix4 camera_base_projection;
camera_base_projection.setTranslation(irr::core::vector3df(-4.0f,2.0f,0.0f));

NxMat34 pose = player->getGlobalPose();

const NxVec3 pos = pose.t;
const NxMat33 orient = pose.M;

irr::core::matrix4 irrMat;

orient.getColumnMajorStride4(&irrMat.M[0]);

irr::core::vector3df rot = irrMat.getRotationDegrees();

pos.get(&irrMat.M[12]);

irrMat.M[3] = irrMat.M[7] = irrMat.M[11] = 0.0f;
irrMat.M[15] = 1.0f;

irr::core::matrix4 irrMat2;

irrMat2.setRotationDegrees(rot);

irrMat2.setTranslation(irrMat.getTranslation());

irrMat2 *= camera_base_projection;

irr::core::vector3df pos_c = irrMat2.getTranslation();

irr::core::vector3df target(pose.t.x,pose.t.y,pose.t.z);

target += camera->getTarget() * 0.0005f;

camera->setPosition(pos_c);
camera->setTarget(target);
ps. матричные операции зло, запутатся нефиг делать...
 
Ответить с цитированием
Старый 03.11.2006, 00:03   #2
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: камера для гонок

В алгоритмике нежелательно приводить как пример код на каком-либо языке программирования. Или формулы, или псевдокод - чтобы было понятно, что там у тебя происходит.
(Offline)
 
Ответить с цитированием
Старый 03.11.2006, 00:54   #3
jimon
 
Сообщений: n/a
Re: камера для гонок

ну вот слегка перевел на русский язык
но думаю от етого код стал еще запутанее

матрица положения камеры - ставим ей трансляцию от игрока в локальных координатах

получаем матрицу игрока (physx еще)
получаем от туда положение и матрицу поворота (3 на 3)

суем матрицу поворота в буферную матрицу
суем в ету матрицу положение игрока

множим буферную матрицу на матрицу матрицу положения камеры
результат возвратим в буферную матрицу

получим из буферной матрицы трансляцию
зделаем буферный вектор - цель камеры
к цели камеры прибаляем текущий вектор направления камеры умноженый на 0.0005

ставим положение и вектор направления камере
 
Ответить с цитированием
Старый 04.11.2006, 21:17   #4
ЛысыЙ_Чук-Иванчук
Дэвелопер
 
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений
(для 17 пользователей)
Re: камера для гонок

Разгон камера отходит,
Тормоз камера подходит,
Поворот в право, видно правую сторону,
Поворот в лево, левую,
Даеш назад камера плавно перетекает на перед,

P.S. Как в GTA
(Offline)
 
Ответить с цитированием
Старый 05.11.2006, 00:54   #5
jimon
 
Сообщений: n/a
Re: камера для гонок

vlad
ето я и без тебя придумал
теперь переведи ето все в псевдокод управления матрицами ...
или вот задача - дано вектор положения игрока
надо получить вектор положения камеры, так что дерзай
 
Ответить с цитированием
Старый 21.05.2007, 17:57   #6
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Re: камера для гонок

Не думаю, что тема ещё актуальна, но всё-таки...
Такие предложения (сразу не пинать, лучше грамотно объяснить, почему это плохая идея):
Креатим трёхмерный(или двухмерный, там по ситуациим надо смотреть) массив со, скажем, сотней ячеек в каждую сторону.

Прогоняем без рендера эту сотню циклов, каждый раз забивая в ячейку положение предмета + некоторое отклонение(чтобы когда предмет остановится, не было того, что называется "camera inside")

Номер ячейки (он и по X, и по Y один и тот же, так что есть резон юзать не трёхмерку, а три линейки) за каждый проход увеличиваем на один, если номер достиг значения 100 (я вот не помню, как я делал в блитце - сотня там, 99, может 101... завтра наверно блитц-код дам. если тема будет востребована) то обнуляем номер.

А теперь - вминание! Для того, чтобы камера таким макаром следила за обжектом, помещаем её в точку с координатами:
сам_х=х(номер+1)
сам_у=у(номер+1)
сам_z=z(номер+1)
Или для трёхмерки:
PositionEntity cam,coordinats(номер+1,номер+1,номер+1)

Вот такой трактат (-:
Теперь я буду рад услышать ваши комментарии.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 22.05.2007, 01:44   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: камера для гонок

имхо плохой вариант. годиться тока для старых машин, кторые дымились при вычислении sin/cos.
вопрос не стоял в том как сдеать ету камеру.
вопрпос стоял в том, как ето сделать в матрицах, если дан вектор машины.
а надо получить проекционную матрицу, если я правильно понял.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движок для гонок sash13 3D-программирование 10 16.11.2007 17:54
Ремейк гонок с SEGA Kellin Болтовня 8 14.01.2007 13:40
Кому нужна деньга(Конкурс создание гонок) ЛысыЙ_Чук-Иванчук Болтовня 11 17.12.2006 04:16
ИИ для гонок MiXaeL 3D-программирование 13 13.09.2006 08:52
Физика для гонок+(Столкновение) ЛысыЙ_Чук-Иванчук 3D-программирование 9 28.08.2006 23:22


Часовой пояс GMT +4, время: 01:08.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com