Форум: "Игры";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
ВнизМиникарта Найти похожие ветки
← →
Ricks © (2005-10-13 11:40) [0]Столкнулся с проблеммой создания миникарты. Думаю основную текстуру (ландшафт) создавать в начале, а объекты выводить точками в процессе игры. Правильно ли это? И еще: необходимо показывать на миникарте положение камеры. Как это лучше реализовать, может кто-то сталкивался??
← →
П7 (2005-10-13 12:25) [1]Текстуру для мини-карты лучше подготовить заранее и грузить вместе с уровнями. Если конечно она у тя не генерится на лету.
ПОложение камеры - пямоугольником, как и везде.
← →
Antonn © (2005-10-13 12:29) [2]П7 (13.10.05 12:25) [1]
ПОложение камеры - пямоугольником, как и везде.
если это 2Д, то да, прямоугольником. в 3Д еще клином делают(Earth 2050, ColdZero)
← →
A22 © (2005-10-13 17:53) [3]клином... может, трапецией? проекция фрустума на плоскость будет как раз ею
← →
Ricks © (2005-10-14 11:18) [4]
> проекция фрустума на плоскость
А как его спроектировать?
← →
A22 © (2005-10-14 13:26) [5]берем позицию камеры pos, вектор взгляда dir, боковой вектор side, значения zNear и zFar (расстояние от камеры до соотв. плоскостей), размеры виджимой на экране части ближней плоскости отсечения w, h;
Далее
float fw = (w/2)*zFar/zNear;
Vec2 p0 = (pos + zNear*dir + w/2*side).xz;
Vec2 p1 = (pos + zNear*dir - w/2*side).xz;
Vec2 p2 = (pos + zFar *dir + fw *side).xz;
Vec2 p3 = (pos + zFar *dir - fw *side).xz;
").xz" в том смысле, что pos, dir, side - трехмерные векторы, нам же высота не потребуется.
Если проекция задается не через w/h, а с помощью FOV, можно пересчитать
← →
A22 © (2005-10-14 13:34) [6]если известен FOV, то
(w/2) = zNear * tg(FOV/2);
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c