![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проецирование 3Д в 2Д.
@!!ex_ © (2007-06-22 17:19:00)Возник какой то странный косяк.
http://www.gamedev.ru/images/?id=21619
http://www.gamedev.ru/images/?id=21615
http://www.gamedev.ru/images/?id=21614
Когда объект сверху экрана, то практически не заметно, что не правильно рисуется.
Когда объект внизу экрана, выделение смещается на половину размера...
Причем в фулскрине все правильно считается.
@!!ex_ (2007-06-22 20:39:00) [1]Все. разобрались.
Вот тут решение:
http://www.gamedev.ru/code/forum/?id=66829&page=3#32
Dib@zol (2007-06-22 19:01:00) [2]И вапще - засвети плиз код визуализации прицела. А то хреново так вслепую предполагать.
Dib@zol (2007-06-22 18:59:00) [3]А может лучше так?
Берутся 4 нижние точки Bound-box'a (канешна если это AABB а не OBB), от них строятся перпендикуляры к поверхности видимости (те. грани фрустума) с длиной, равной высоте AABB. От полученных 4-х точек строятся края прицела.
А если OBB - ща подумаю...
@!!ex_ (2007-06-22 18:33:00) [4]Берется Bound Box машины. Его точки проецируются на экран.
Выбирается прямоугольник, влкючабщий все 8 спроецированных точек.
Рисуется. получается, что рисуется не там где должен, смещен относительно машины.
Dib@zol (2007-06-22 18:19:00) [5]Если я правильно понял, при перемещении автомобиля на некоторый вектор N изображение "прицела" смещается на m пикселей в направлении вектора. Зависимость m от N походу прямая. Поэтому при разрешении, меньшем "эталонного" (сиречь фул-скрина) и возникает подобный баг. => Введи коэффициенты, которые при выборе разрешения будут просчитывать отношения scrX/etalX и scrY/etalY соответственно, и домножай смещение "прицела" на эти коэффициенты.
ЗЫ Если я не угадал, объясни КАК реализуется его отрисовка.