|
0 / 0 / 0
Регистрация: 19.12.2021
Сообщений: 56
|
||||||
Получить положение камеры18.12.2023, 10:49. Показов 5055. Ответов 66
Метки нет (Все метки)
Помогите составить формулу. Нужно в игре развернуть камеру таким образом чтобы она смотрела на координаты точки, которые я задам. Есть 2 переменные, которые отвечают за поворот персонажа. Первая переменная float относительно X её значения от -1 до 1. И точно так же переменная Y. Вот допустим персонаж находится на координатах x: 0, y: 0. А повернуть камеру надо чтобы она смотрела на координаты x: 50 y: 50. Надо составить какую то формулу, которая будет определять в какую сторону нужно повернуться, чтобы смотреть на нужные координаты.
Вот для примера координаты персонажа, координаты на которые он смотрит и значение камеры. Char Coords x:0 y:0 Object Coords x:10 y:0 Camera value x:1 y:0 Char Coords x:0 y:0 Object Coords x:0 y:10 Camera value x:0 y:1 Char Coords x:0 y:0 Object Coords x:-10 y:0 Camera value x:-1 y:0 Char Coords x:0 y:0 Object Coords x:0 y:-10 Camera value x:0 y:-1 Char Coords x:0 y:0 Object Coords x:10 y:10 Camera value x:0.70 y:0.70 Char Coords x:0 y:0 Object Coords x:-10 y:-10 Camera value x:-0.70 y:-0.70 Нужна функция которая будет принимать координаты персонажа и координаты объекта и возвращать правильные переменные для камеры.
0
|
||||||
| 18.12.2023, 10:49 | |
|
Ответы с готовыми решениями:
66
Получить положение курсора (Си) Положение камеры Положение камеры |
|
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
|
|
| 18.12.2023, 21:10 | |
|
WEewt345, наверное, лучше сделать так, чтобы GetCameraPosition также записывала угол. Так будет легче для поворота. Все равно, интерполяцией x и y камеры поворот будет отстойным. Лучше по углу интерполировать.
Добавлено через 7 минут zayats80888, а как же собираешься реализовать dot без тригонометрии (без косинуса)? Ты же считаешь, что нельзя их использовать, они медленные). На самом деле, я согласен, векторное произведение это один из самых распространенных методов определения стороны, в которую смотрит персонаж в играх. Вообще, без тригонометрии в играх никак...
1
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||
| 18.12.2023, 21:13 | |||
|
Векторное называют cross (т.к. крестик). Вот так.
0
|
|||
|
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
|
|
| 18.12.2023, 21:15 | |
|
zayats80888, для поиска направления нужен dot, а не cross. Хотя, может и cross работает. Но даже для cross нужна функция sin.
0
|
|
| 18.12.2023, 21:18 | |
|
0
|
|
|
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
|
|
| 18.12.2023, 21:20 | |
|
zayats80888, я не знаю, что ты называешь cross. Мне казалось, что этим словом называют это:
0
|
|
|
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
|
|
| 18.12.2023, 21:21 | |
|
zayats80888, ладно, делай, как хочешь. Главное, чтобы ТС был доволен.
Смотри на картинку , как реализовать через dot
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 18.12.2023, 21:23 | ||
|
Не по теме:
Линейная алгебра поможет тебе посчитать его без тригонометрии, используя только координаты. Добавлено через 1 минуту
0
|
||
|
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
|
|
| 18.12.2023, 21:24 | |
|
zayats80888, да, но у ТС функция через atan2 уже дает нам угол. Почему его не использовать? Ладно, забей. Делай по-своему. Может ТС понравится так больше.
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 18.12.2023, 21:26 | |
|
Не по теме: А я напомню, что скалярное произведение коммутативно, а вот векторное антикоммутативно. Добавлено через 1 минуту
0
|
|
|
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
|
|
| 18.12.2023, 21:35 | |
|
zayats80888, мне интересно, но я потом посмотрю. Я очень занят. Но через неделю я вернусь в эту тему и попытаюсь вспомнить линейную алгебру)
Добавлено через 5 минут zayats80888, я просто столько использовал готовых функций, что забыл мат часть. Будет хорошо, если ты покажешь. Я обязательно потом зайду в эту тему. А потом, может я напишу для ТС, как это сделать, используя угол из функции, которую я написал, с atan2. У меня есть идея использовать этот угол.
0
|
|
| 18.12.2023, 21:43 | ||
|
Не по теме:
А что на самом деле ТС хочет, а именно как связаны его два вопроса, я так и не понял.
0
|
||
|
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
|
|
| 18.12.2023, 21:52 | |
|
Не по теме: zayats80888, как оно работает в теории, я это понимаю. Имею в виду, что я могу погуглить и о векторном произведении и о скалярном. Тут больше меня интересовало, как это будет выглядеть в конечном коде ТС. Ты мне сказал, что брось тригонометрию, нормализируй без нее. Сейчас для направления советуешь векторное произведение. Это уже сколько операций? Чет уже сомнения касательно оптимизации. А вот, если нормализировать так, как сделал я через atan2, cos, sin, то у нас уже есть угол. По сути, нужно сравнивать 2 угла и на основе сравнения решать, в какую сторону поворачивать. Но может я не так понимаю всю картину? Поэтому хотел посмотреть на конечный код, с твоей нормализацией и со всем прочим. Ну ок, пусть ТС читает и разбирается. WEewt345, лучше создай новый вопрос, т.к. по правилам форума нельзя так постепенно закидывать новыми вопросами. На твой изначальный вопрос я уже ответил. А это уже другой вопрос.
0
|
|
| 18.12.2023, 21:57 | |
|
0
|
|
|
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
|
||
| 18.12.2023, 22:17 | ||
|
zayats80888, я задачу так понял:
Есть персонаж, который имеет координаты x1,y1. На расстоянии 1 от персонажа есть камера с координатами CameraBufferX, CameraBufferY. Есть точка x2,y2. Суть в том, что камера поворачивается по кругу вокруг персонажа так, что она смотрит на эту точку (x2,y2). На входе известны x1,x2,x2,y2. Координаты камеры я уже показал как найти. Т.е. ТС теперь знает, как получить координаты камеры. Но он, наверное, хочет интерполировать вращение. Поэтому он написал
0
|
||
| 18.12.2023, 22:17 | |||
|
0
|
|||
| 18.12.2023, 22:24 | |
|
Не по теме: Igor3D, в моих играх всегда очень много тригонометрии, но с оптимизацией всё норм. Я использую тригонометрические и гиперболические функции даже для света и звука. Но я сам редко пользуюсь этими функциями именно для вращения, т.к. использую готовые функции движка на основе кватернионов. Не писать же ТС игровой движок? Ради одной банальной игры/задачи можно использовать углы Эйлера.
0
|
|
| 18.12.2023, 22:30 | |
|
0
|
|
| 18.12.2023, 22:34 | |
|
Не по теме: Igor3D, например, в шейдерах стекла или воды, чтобы придать реалистичности. Я строго соблюдаю законы оптики в моих рецептах)
0
|
|
| 18.12.2023, 23:36 | ||
|
0
|
||
|
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
|
|
| 19.12.2023, 08:51 | |
|
Igor3D, ну я вот по таким рецептам учился https://godotshaders.com/shader/realistic-water/ , и там для функции волны нужны тригонометрические функции. Согласен, для простого стекла или простой воды они не нужны.
0
|
|
| 19.12.2023, 08:51 | |
|
Указать положение камеры в SlimDX 11
Рассчитать положение креста в изображении с веб-камеры Изменить положение камеры не меняя фокус - Helix Toolkit 3D Приложение крашится если после вызова камеры поменять положение на горизонталь Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного.
1. Почему показания термометра заряжены целью?
Цель заложена в самом. . .
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
По ссылке 403. Не очень информативно такую ссылку постить.
Запись от Usaga размещена Сегодня в 06:46 . . .
|
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|