Важная информация

User Tag List

Показано с 1 по 8 из 8

Тема: Позиционирование объектов в перспективной проекции.

  1. #1
    Guru Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,257
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    183
    Поблагодарили
    86 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Позиционирование объектов в перспективной проекции.

    Есть пререндеренный столбик якобы приближающийся.
    как его позиционировать на экране?
    Разрешение позиционирования равно знакоместу.




    Ну вот например как тут расставляются столбики ?


  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Member Аватар для rjhaviy
    Регистрация
    06.02.2009
    Адрес
    Москва
    Сообщений
    31
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нужно координату Z еще...

  4. #3
    Guru Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,257
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    183
    Поблагодарили
    86 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Переменная, отвечающая за приближение, само собой должна быть. Хоть зэт, хоть зю, не важно. В данный момент исходя из её значения у меня меняются лишь кадры столбика. Но нужно его ещё позиционировать так, шоб казалось три дэ.

  5. #4
    Activist
    Регистрация
    15.01.2005
    Сообщений
    201
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    сделай таблицу "полтора на два гектара земли", в ней для каждого "квадратного метра землицы" - хранить соответствующий адрес на экране
    "look-up"

  6. #5
    Guru Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,257
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    183
    Поблагодарили
    86 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вычислительной мощи хватит и рассчитывать в реалтайме.
    Даже если и табличные значения забивать, надо же их по какой-то формуле делать.

  7. #6
    Guru Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    218
    Поблагодарили
    92 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На тебе формулу (см.картинку)
    AC = BD * OA / OB
    OB = расстояние до объекта
    OA = расстояние до плоскости проекции
    BD = реальный размер объекта
    AC = размер проекции
    Луч OB - направлен от точки обзора ровно в центр поля зрения
    Если проще - если объект в N раз дальше от наблюдателя, чем плоскость проекции, то размер проекции будет в N раз меньше реального размера
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	projection.png 
Просмотров:	48 
Размер:	3.2 Кб 
ID:	59076  
    Все любят гипножабу

  8. #7
    Veteran Аватар для Hacker VBI
    Регистрация
    05.03.2013
    Адрес
    г. Канев, Украина
    Сообщений
    1,596
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    да подбери что-то типа

    и не парься.
    по х - расстояние, по у - отступ от центра, + и -

  9. #8
    Junior Аватар для Sameone
    Регистрация
    30.04.2010
    Адрес
    Харцызск, Донецкая область, Украина
    Сообщений
    24
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Столб всегда шириной одно знакоместо? Какой угол обзора у персонажа? 90 градусов? Тогда делим пространство вокруг него на 32 (число столбцов на экране) х 360/90 = 128 секторов. Теперь рейкастим 32 сектора, которые в экране, в каком столб нашли, в том он и будет.
    Относительно вертикальной координаты. SAM style прав: размер проекции обратно пропорционален расстоянию. Какие вертикальные координаты концов столба, когда он в плоскости экрана? Тогда их координаты на расстоянии R будут Y=0.5Y0/R (обычно экранная плоскость примерно в полуметре от глаз игрока). Аналогичная зависимость и для высоты проекции: H=0.5H0/R.
    Если столбы спрайтовые, то выгодней ориентироваться на расстояние, с которого столб проекцируется пиксел-в-пиксел. Тогда отношение эталонного расстояния к фактическому определит коэффициент масштабирования: M=R0/R. Умножим получившееся число на Y0-координату нужного конца столба (с которого начинаем рисовать) -- и получим вертикальную координату (Y0 в этом случае относится к расстоянию, с которого столб проекцируется пиксел-в-пиксел). Расстояние R во всех случаях определяется как квадратный корень из суммы квадратов разностей координат игрока и столба: R=SQRT((Xигрок-Xстолб)^2+(Yигрок-Yстолб)^2).

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 17
    Последнее: 05.08.2009, 23:37

Ваши права

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