purebasic.info

PureBasic forum
Текущее время: Сб янв 20, 2018 11:49 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: 3D вид из глаз со столкновениями
СообщениеДобавлено: Сб июн 15, 2013 10:05 am 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Вт янв 01, 2013 6:11 pm
Сообщений: 74
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Всем привет, уже неделю бьюсь с Огром и никак не могу написать основу с видом из глаз и столкновениями. С начало создавал узел к которому цеплял камеру и было все отлично пока не понадобилось столкновение камеры с другими объектами. Долго эксперементировал, создавал узлы, цеплял камеру, объекты в этим узлам. В общем комбинировал это все с собой и т.д. но ничего толком не вышло.

Кто нибудь объясните как сделать вид из глаз со столкновениями? Например там: Создать узел, к нему прицепить камеру и объект и т.д. Передвигать нужно узел или наоборот объект.

Выкладываю исходник что бы посмотрели что да как. Сейчас в исходнике создан объект (игрок, просто куб), камера которая следит за ним и пару объектов с физикой. Пожалуйста допишите в исходник или объясните на пальцах как это делается, заодно люди которые решат сделать 3д в ПБ не будут мучатся :(

Исходник на Яндекс.диске http://yadi.sk/d/eLOGbxt35pfTu

ps. Проблема была еще в том что если я передвигаю объект с помощью entitymove() то при падении если передвигать этот объект остается в воздухе, то есть на той высоте где он был когда падал (в воздухе висит). Пробовал использовать импульсы и ничего из этого хорошего не вышло.

pss. гуглил, рылся в примерах.

Спасибо


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 3D вид из глаз со столкновениями
СообщениеДобавлено: Вт апр 29, 2014 9:36 am 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Вт апр 29, 2014 8:26 am
Сообщений: 66
Благодарил (а): 50 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
easy писал(а):
Всем привет, уже неделю бьюсь с Огром и никак не могу написать основу с видом из глаз и столкновениями. С начало создавал узел к которому цеплял камеру и было все отлично пока не понадобилось столкновение камеры с другими объектами. Долго эксперементировал, создавал узлы, цеплял камеру, объекты в этим узлам. В общем комбинировал это все с собой и т.д. но ничего толком не вышло.

Кто нибудь объясните как сделать вид из глаз со столкновениями? Например там: Создать узел, к нему прицепить камеру и объект и т.д. Передвигать нужно узел или наоборот объект.

Выкладываю исходник что бы посмотрели что да как. Сейчас в исходнике создан объект (игрок, просто куб), камера которая следит за ним и пару объектов с физикой. Пожалуйста допишите в исходник или объясните на пальцах как это делается, заодно люди которые решат сделать 3д в ПБ не будут мучатся :(

Исходник на Яндекс.диске http://yadi.sk/d/eLOGbxt35pfTu

ps. Проблема была еще в том что если я передвигаю объект с помощью entitymove() то при падении если передвигать этот объект остается в воздухе, то есть на той высоте где он был когда падал (в воздухе висит). Пробовал использовать импульсы и ничего из этого хорошего не вышло.

pss. гуглил, рылся в примерах.

Спасибо


Как раз сейчас работаю над подобными вопросами. Есть желание полностью подчинить себе камеру во всех отношениях. Например, авто-приближение до выбранной цели, столкновения. Я так понял, что у камеры, нет такого разнообразия функций как у Entity, По этому, первое что я начал пробовать, так это поместить камеру в центр Entity и синхронизировать её по x,y,z и по всем направлениям Entity. Entity(примитиву) делаю поддержку физики. Во всей сцене, естественно включена гравитация. И что-б мой Entity в месте с камерой не падал под действием гравитации, я добавляю ему антигравитацию, поэтому он теперь как-бы находится в невесомости по отношению ка всему миру. А так как контейнером для камеры получается теперь служит Entity (физическое тело), то управляя им, моя камера получает все свойства Entity. Можно даже сказать, что теперь я управляю не перемещением, направлением камеры, а перемещением и направлением Entity, а камера просто отображает, что видно из Entity. Что имею в результате: так-как в мире включена поддержка физики и столкновений, то перемещая Entity (под действием импульса), он подлетая к другим телам, теперь не проходит их на сквозь, а ударяется об них, отталкиваясь, соответственно установленной ему силы упругости. Размер самого Entity (контейнера для камеры), даёт придел, чтоб камера не подходила к объектам в ноль. Управление таким контейнером я спроектировал абсолютно на одной мышке, другими словами - всё что можно в пространстве делать - делается мышкой (клавиатура поддерживается параллельно). Мне сильно не нравились "аналоговые" перемещения мыши (видна дрожь картинки на экране), поэтому я начал думать о том, что-бы как-то от этого избавиться. И в конце концов сейчас дорабатываю алгоритм управления мышью исключительно как штурвалом летательного аппарата (на подобие НЛО). Например: итрервал перемещения мыши в перёд, даёт "моему взору на мир" величину начального положительного импульса ускорения, и камера четко, красиво и мягко начинает движение вперёд. Движение назад мышью - плавно остановят камеру до полной остановки, и только следующее движение назад, даст отрицательный импульс для отдаления камеры. Аналогичто этому во всех остальных направлениях и перемещениях. Клик по удалённому объекту рассчитывает плавную кривую, для запуска авто-перемещения камеры. На данном этапе разработки, конечно ещё есть свои сложности, например: все движения камеры командами самой камеры, по умолчанию включены как локальные (с поворотом камеры, поворачивается и все её три оси координат, поэтому последующие её движения вперёд, и ведут её туда, куда она смотрит). А вот в командах Entity, вращение самого Entity ни как не влияет на мировые оси, поэтому, повернув Entity, и двигая его вперёд, вперёд он уже двигаться не будет, и плохо то, что даже изменяя его режим с MoveEntity(#Entity, x, y, z ,#PB_World ) на MoveEntity(#Entity, x, y, z ,#PB_Local ) - абсолютно ничего не меняется! Конечно я могу написать алгоритм с использованием мат-функций Sin(), Cos(), но добавлять в главный рендер-цикл лишние действия, както не желательно, так-как борьба идёт за оптимизацию каждого такта. Поэтому намечается вопрос: Если MoveEntity(#Entity, x, y, z ,#PB_Local ) у всех себя ведёт как ...#PB_World, то что это - не учет или ошибка движка ORGE ? или я всё таки что-то упускаю из виду?

_________________
PureBasic 5.40 LTS Windows x86 x64


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 3D вид из глаз со столкновениями
СообщениеДобавлено: Вт апр 29, 2014 2:46 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт окт 31, 2008 4:49 pm
Сообщений: 716
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Render
И не лень было столько текста писать? )

_________________
мой форум http://spaceminers.mybb2.ru
Dungeon Raider (Ogre). Game video: http://www.youtube.com/watch?v=ZlhBgPJhAxI


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB