Просмотр полной версии : Позиционирование объектов в перспективной проекции.
Есть пререндеренный столбик якобы приближающийся.
как его позиционировать на экране?
Разрешение позиционирования равно знакоместу.
http://i.paste.pics/53c80f5f22565c025abbd59b7fd7c0ea.png
Ну вот например как тут расставляются столбики ?
https://youtu.be/WTvgU-qb3dY
Нужно координату Z еще...
Переменная, отвечающая за приближение, само собой должна быть. Хоть зэт, хоть зю, не важно. В данный момент исходя из её значения у меня меняются лишь кадры столбика. Но нужно его ещё позиционировать так, шоб казалось три дэ.
сделай таблицу "полтора на два гектара земли", в ней для каждого "квадратного метра землицы" - хранить соответствующий адрес на экране
"look-up"
Вычислительной мощи хватит и рассчитывать в реалтайме.
Даже если и табличные значения забивать, надо же их по какой-то формуле делать.
SAM style
22.12.2016, 02:36
На тебе формулу (см.картинку)
AC = BD * OA / OB
OB = расстояние до объекта
OA = расстояние до плоскости проекции
BD = реальный размер объекта
AC = размер проекции
Луч OB - направлен от точки обзора ровно в центр поля зрения
Если проще - если объект в N раз дальше от наблюдателя, чем плоскость проекции, то размер проекции будет в N раз меньше реального размера
Hacker VBI
22.12.2016, 14:22
да подбери что-то типа
https://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Graph_of_common_logarithm.svg/380px-Graph_of_common_logarithm.svg.png
и не парься.
по х - расстояние, по у - отступ от центра, + и -
Столб всегда шириной одно знакоместо? Какой угол обзора у персонажа? 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).
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot