ПрограммированиеФорумОбщее

Размер сцены в Unity3D (2 стр)

Страницы: 1 2
#15
16:51, 20 окт 2014

Gladiator
Не привязывайся к точным данным. Не измеряй всё в км. Работай с условными единицами.
Пример простой:
Возьмем 1234.567 = 10х10 км
А теперь корабль подлетает к другому короблю, с скоростью 1 км/ч = 0.000278 км/с.
dT обновления мира допустим 1 сек.
Т.о. корабль должен сдвигаться через каждую сек. на  0.000278 км.
Но 1234.567 + 0.000278 = 1234.567. Вот такая арифметика с float.
И в итоге получится что корабль стоит на месте. Пока скорость не увеличишь или пока dT не увеличится.

Нужно изменять начальную точку отчета.
Нужно абсолютные позиции хранить в double.

#16
18:20, 20 окт 2014

asvp
Понятно. Спасибо за ответ!
Хотя я не думаю что это необходимо в моём случае.. Это же не симулятор стыковки кораблей :) Да и дополнительный оверхед в виде дабловых позиций я думаю ни к чему :)

Всем спасибо за ваши мнения!

#17
20:00, 20 окт 2014

Gladiator
> Это же не симулятор стыковки кораблей
Да какая разница. Все равно если улетишь далеко от начала координат, то стоять на месте будешь. Поэтому делают относительные координаты.
Почитай про Space Engine и вот он решил эту проблему.
Но раз юзаешь Unity3D, то он не заточен по такие проекты.

#18
20:10, 20 окт 2014

asvp
> Но раз юзаешь Unity3D, то он не заточен по такие проекты.
Да на юнити помню на это ограничение стояло. Так и не стал заморачиваться, все равно потом куча дополнительных проблем возникало при переносе центра координат всего мира в центр активной зоны, именно для юнити. Они давали возможность делать большие миры когда с NASA сотрудничали (по моему это 2-3.2 версии), потом все развалилось.

#19
20:18, 20 окт 2014

asvp
> он не заточен по такие проекты.
Да? Все дело в прямизне рук. Вот пример на Юнити:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Более того можно посмотреть проект. Тут: ScrawkBlog Бесплатно.

#20
20:23, 20 окт 2014

seaman
Я знаю этот проект, изначально он создавался на чистом шейдере, все что там рендерилось это 1 QUAD. Вся его фишка в том что он написан на базовых методах OpenGL, к которым Unity предоставляет доступ, в обход самого движка. Если есть интерес писать в движке движек то вперед.

#21
21:32, 31 окт 2014

foxes
> Вся его фишка в том что он написан на базовых методах OpenGL, к которым Unity
> предоставляет доступ, в обход самого движка.
Не ко всем версиям OpenGL. Конкретно к той, на которой написан оригинальный Proland (3.3) - нет. Так что автор порта переписал все с нуля, с учетом "особенностей" юнити.

#22
22:46, 31 окт 2014

Belfegnar
> Так что автор порта переписал все с нуля, с учетом "особенностей" юнити.
Я не думаю что он очень сильно парился.

#23
23:13, 31 окт 2014

foxes
ну я покурил его сорцы немного несколько месяцев назад. Он с c++ на c# переписал. И на DX11 пересел. Так что попарился все-таки, думаю))
на оптимизацию забил, как я понял: там что-то около пол-мегабайта каждый кадр льется, gc рыдает наверн. ну и на мультитаск забил: все задачи в мейне в начале кадра разом фигачит.

#24
23:29, 31 окт 2014

foxes
> Вся его фишка в том что он написан на базовых методах OpenGL, к которым Unity
> предоставляет доступ, в обход самого движка. Если есть интерес писать в движке
> движек то вперед.

Юнити не предоставляет базовых методов OpenGL в обход движка. Просто есть три стандартных способа рисовать на экране:
1. Поместить объект на сцену.
2. Рисовать меши без предварительного создания объектов при помощи класса Graphics.
3. Рисовать примитивы без предварительного создания мешей при помощи класса GL, используя OpenGL-подобный синтаксис. К OpenGL оно не имеет отношения и на Windows прекрасно работает через DirectX.

О существовании способов 2 и 3 народ часто вообще не догадывается.

#25
23:53, 31 окт 2014

4. Native Plugin Rendering

#26
1:14, 1 ноя 2014

Мне всегда было любопытно, этот 4 способ кто-нибудь когда-нибудь зачем-нибудь использовал?

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.