Вычисление координат дисплея для горизонта с учетом положения камеры и векторов вперед, вверх и вправо - PullRequest
0 голосов
/ 13 февраля 2020

Я написал простой симулятор американских горок в Scratch с использованием 3d сплайнов катмулла для создания макета дорожки. Минимизирующие вращение кадры рассчитываются так, чтобы нормали поверхности плавно проходили по сплайну Путь камеры предварительно рассчитывается с помощью матрицы поворота для каждой позиции (с использованием единичных нормалей для направления движения, нормали поверхности дорожки и их перекрестного произведения. Все это отлично работает и может быть просмотрено здесь .

Я хотел бы добавить простой фон, где все, что выше горизонта, - синее для неба, а все, что ниже, - зеленое для земли, но я нахожусь в полном мысленном блоке о том, как рассчитать это. Я подозреваю, что должен рассмотреть горизонт как простую трехмерную плоскость с нормалью поверхности (0,1,0), повернуть ее с помощью матрицы обзора и затем создать видимые координаты горизонта из результата, но мне нужна помощь в том, как сделайте это.

Любые предложения будут приветствоваться!

1 Ответ

0 голосов
/ 14 февраля 2020

Я достиг этого, вращая положение горизонта (0,0,0) относительно камеры и нормали плоскости, используя матрицу наблюдения. Тогда это был всего лишь случай проецирования удаленной точки на горизонте на экран.

...