Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > Unity

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 28.07.2018, 22:48   #1
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 274
Написано 31 полезных сообщений
(для 43 пользователей)
Расчет линии горизонта

Можно ли по высоте камеры от уровня земли и ее углу тангажа как-то рассчитать позицию линии горизонта в экранных координатах, с учетом дальней плоскости отсечения камеры?

По рисунку мне нужно найти расстояние h от нижней границы экрана.
Миниатюры
Нажмите на изображение для увеличения
Название: horizont line.PNG
Просмотров: 29
Размер:	25.2 Кб
ID:	22875  
(Offline)
 
Ответить с цитированием
Старый 29.07.2018, 05:57   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,418
Написано 5,245 полезных сообщений
(для 15,175 пользователей)
Ответ: Расчет линии горизонта

Твоя задача найти координаты XYZ этой точки что ты нарисовал (зная вектор направления камеры и расстояние клипа это можно сделать), а потом спроецировать в экранные координаты (в Юнити есть АПИ для этого, гугли Unity Camera Project)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 29.07.2018, 08:35   #3
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 274
Написано 31 полезных сообщений
(для 43 пользователей)
Ответ: Расчет линии горизонта

Сообщение от ABTOMAT Посмотреть сообщение
Твоя задача найти координаты XYZ этой точки что ты нарисовал (зная вектор направления камеры и расстояние клипа это можно сделать), а потом спроецировать в экранные координаты (в Юнити есть АПИ для этого, гугли Unity Camera Project)
Спс за ответ.
Нет все труднее. На выходе должно быть типа линяя горизонта 200 пикселей от нижней границы экрана... Или линия горизонта ушла за экран. Можно не в пикселях а например в координатах от 0 до 1. Все это при условии что линия горизонта не вращается по оси крена (поперечная ось), то есть она всегда горизонтально расположена на экране.

В общем если смотреть скриншот нужно рассчитать высоту зеленой линии на экране. Она получается ниже реальной линии горизонта потому что Far clip plane камеры обрезает синюю плоскость ближе.

Задачка непростая в общем и ее сложно объяснить но я старался доходчиво.
Миниатюры
Нажмите на изображение для увеличения
Название: horizont line.PNG
Просмотров: 27
Размер:	154.5 Кб
ID:	22877  
(Offline)
 
Ответить с цитированием
Старый 29.07.2018, 09:03   #4
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 274
Написано 31 полезных сообщений
(для 43 пользователей)
Ответ: Расчет линии горизонта

Как минимум возникает проблема найти точку пересечения клипа камеры с нулевым уровнем земли.
Ладно Автэ не ломай голову есть у меня одна идея.

Последний раз редактировалось Evgen, 29.07.2018 в 11:28.
(Offline)
 
Ответить с цитированием
Старый 29.07.2018, 12:43   #5
Evgen
Знающий
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow capital of Earth! :)
Сообщений: 274
Написано 31 полезных сообщений
(для 43 пользователей)
Ответ: Расчет линии горизонта

Решено.


float cdist=100// cam clip plane
Vector3 p1=Camera.main.ViewportToWorldPoint(new Vector3 (0.5f0fcdist));
Vector3 p2=Camera.main.ViewportToWorldPoint(new Vector3 (0.5f1fcdist));
float deltaz = (p1.p2.z);
float groundoffset 0.6f;
float h 1.0f/deltaz*(p1.z-groundoffset); 
Debug.Log("p1z="+p1.z+" p2z="+p2.z+" h="+h); 
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 11:41.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com