Pull to refresh

Comments 18

Одна из лучших и подробных статей, что я видел на Хабре за последний год точно! Спасибо автору за такую развернутую работу.
Планируете что-нибудь написать по простейшим 3d-движкам?
Зато этот вопрос много говорит о качестве перевода. Обычно перевод легко отличить по косякам и разного рода странным конструкциям, остающимся в тексте.

Здесь же ощущение, что статья была исходно написано на русском. Заслуженный плюсик в карму PatientZero…
что правда, то правда — у него немало хороших переводов интересных статей :)
Ну у автора в профиле написано, что он интересуется подобными вещами. За спрос не бьют в нос :)
UFO just landed and posted this here
Так тут и дорог нет.
Тогда уж Wec Le Mans (или Chase H.Q.)
https://www.youtube.com/watch?v=XgyfkiAzydI

Ну в названии про дороги ни слова.


А ещё была Turbo Esprit в которой был целый 3D город с картой, пешеходами, пробками и стрельбой, прям GTA. Согласен, не совсем гоночная игра, но запомнилась своей суперграфикой.

Спасибо за перевод!
Вспомнил, как в школе (начало 2000-х) писал игру на Flash и делал там уровень в стиле таких гонок.
Реализацию изобретал сам, сделал следующим образом. Прямой участок дороги и повороты были отдельными флэш-объектами, «въезд» в поворот и «выезд» из него сделал отдельными анимациями, которые проходили достаточно быстро (кстати, сейчас подумал, что вообще говоря можно было и скорость этих анимаций привязать к скорости движения).
Полос разметки не добавлял (тем более что сеттинг был «XIX век», но в общем-то можно было их заменить на всякие камни на дороге), но технически можно было их добавить в анимацию объектов дороги.
При «повороте» объект дороги сдвигался по экрану. Небольшая хитрость была в расчёте, на сколько сдвигать в зависимости от скорости движения, тут и пригодились на практике тригонометрические функции.

Скриншоты
Прямой участок пути


Поворот


Индикатор вверху указывает, насколько сильно портится колесо при движении: если ехать по обочине или за дорогой (красная зона), портится очень быстро и до конца трассы не доедет.

Без элементов вроде разметки и объектов на обочинах выглядит просто, но в динамике (когда дорога начинает вилять) воспринимается неплохо даже сейчас.
Для поворота точки x' и y' использовались заранее посчитанные массивы в cos[] и sin[] т.к. на консолях Z68000 вычисление синуса в рантайме в 20-50 раз медленнее чем одна операция умножения
Спасибо большое, очень интересная статья
Статья как английская так и русская интересна прежде всего тем, что больше по теме особенно то и нет. Большинство ссылается на неё.
В расчетах по Z-глубине через дельту, у английского автора интересный косяк:
z = ( 0.5 + i * 0.5 ) * i * шаг глубины
где i — номер строки снизу вверх, начиная с самой нижней.

что легко проверяется через проверку формулы:
№ z
1) 4
2) 12
3) 24
4) 40
и так далее

Почему он называет шаг глубины delta delta z особенно то и не поймешь, из-за того, что он не поясняет, как работать с полученным определением глубины
> Для решения проблемы с перспективной
*перспективой
Sign up to leave a comment.

Articles