|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
13.01.2011, 15:07
|
#16
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Сообщение от Evgen
Да можно. Только у меня уже привычка (оставшаяся от Java) обращаться к классам типа Mathf.бла-бла-бла только в случае крайней необходимости. Скорость выражения типа Mathf. практический не уменьшают, но когда дело касается 5-10тыс. объектов могут отнять десяток FPS. Если я не прав поправьте.
|
Не прав, эти операции у тебя выполняются один раз за апдейт .
|
(Offline)
|
|
13.01.2011, 15:11
|
#17
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Сообщение от pax
Не прав, эти операции у тебя выполняются один раз за апдейт .
|
Ладно, Ладно. В этом варианте конечно один раз, но это только пока все кубики едут в одну сторону
|
(Offline)
|
|
13.01.2011, 15:13
|
#18
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Сообщение от Evgen
for(int i = 0; i<cube.Length; i++){
cubex[i]+=Mathf.Sin(deg2rad)*speed;
cubey[i]+=Mathf.Cos(deg2rad)*speed;
}
|
Тогда зачем вызываешь одинаковые операции Sin и Cos в цикле в данном случае?
|
(Offline)
|
|
13.01.2011, 15:20
|
#19
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Сообщение от pax
Тогда зачем вызываешь одинаковые операции Sin и Cos в цикле в данном случае?
|
В смысле одинаковые? Sin прирост по x относительно угла rot, Cos прирост по y.
Говорю же это только сейчас в одну сторону. Далее добавлю массив cuber[] где буду хранить направление каждого куба. В радианах скорее всего. Так что deg2rad может вовсе не пригодится.
На а дальше как-то так.
for(int i = 0; i<cube.Length; i++){
cubex[i]+=Mathf.Sin(cuber[i])*speed;
cubey[i]+=Mathf.Cos(cuber[i])*speed;
}
|
(Offline)
|
|
13.01.2011, 15:26
|
#20
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Я на самом деле о Sin и Cos вообще не подумал бы, а работал бы так:
cubet[i].position += cubet[i].forward*speed;
|
(Offline)
|
|
13.01.2011, 15:46
|
#21
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Кстати зачем такое количество кубиков?
|
(Offline)
|
|
13.01.2011, 15:48
|
#22
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Сообщение от pax
Я на самом деле о Sin и Cos вообще не подумал бы, а работал бы так:
cubet[i].position += cubet[i].forward*speed;
|
Да мы с этого начинали.
Через cubet[i].position есть небольшой прирост, но он не значителен.
Что касается Sin/Cos таким путем можно перемещать и 50000 объектов. А в реале обновлять только то, что попадает в камеру и работать должно шустро.
В тему кубиков, MINE CRAFT тут ни причем =) Просто куб наименее прожорливая фигура 12 треугольников 8 вершин.
Ну это пока кубики, потом может танки или космические корабли или еще чего =)
|
(Offline)
|
|
13.01.2011, 16:23
|
#23
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Не подскажите как сделать чтобы объект был ярким без источников света.
Чтобы у него была полная яркость на C#?
|
(Offline)
|
|
13.01.2011, 16:26
|
#24
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
для fullbright нужно использовать шейдер. например такой: http://www.unifycommunity.com/wiki/i...hp?title=Unlit
по "оптимизации" кубов я не понял постановки задачи.
без коллайдеров (а следовательно физики) скорость возросла.
только вот в игре объекты без коллайдеров практически невозможны, так как (ВНЕЗАПНО!) отсутствует возможность отслеживать их контакты и "пикать лучами из мышки".
распределенные во времени вычисления удобнее всего организовать через coroutines (сопрограммы): http://unity3d.com/support/documenta..._26_Yield.html
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
|
|
13.01.2011, 16:58
|
#25
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
То PAX
Может я что-то не понял. Этот пример реализация вывода части из большого множества объектов на экран. cubex,cubey это массивы float.
Как показала практика быстрее рассчитать перемещение с помощью SinCos а потом в порядке очереди обновлять координаты кубов, что позволяет увеличить FPS.
То ffinder
Сообщение от ffinder
для fullbright нужно использовать шейдер. например такой: http://www.unifycommunity.com/wiki/i...hp?title=Unlit
по "оптимизации" кубов я не понял постановки задачи.
без коллайдеров (а следовательно физики) скорость возросла.
только вот в игре объекты без коллайдеров практически невозможны, так как (ВНЕЗАПНО!) отсутствует возможность отслеживать их контакты и "пикать лучами из мышки".
распределенные во времени вычисления удобнее всего организовать через coroutines (сопрограммы): http://unity3d.com/support/documenta..._26_Yield.html
|
А без шейдеров никак?
Можно как в Blitz3d например. EntityFX cube,1
Если нет, то как этот шейдер прикрутить к кубикам?
Физика мне точно не нужна а вот насчет pick пока не знаю, может тоже не понадобится.
|
(Offline)
|
|
13.01.2011, 17:12
|
#26
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Сообщение от Evgen
Если нет, то как этот шейдер прикрутить к кубикам?
|
создаешь файл с расширением .shader
копируешь в него текст шейдера
переносишь файл в папку Assets своего проекта
создаешь новый материал, выбираешь ему созданный шейдер
выбираешь материал для меша
|
(Offline)
|
|
13.01.2011, 17:55
|
#27
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Сообщение от Evgen
Просто куб наименее прожорливая фигура 12 треугольников 8 вершин.
|
В каждом уважающем себя кубе 24 вершины.
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.01.2011, 18:50
|
#28
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
ну может у него куб без нормалей и текс. координат.
имхо объекты без коллайдеров имеют право на жизнь тоже.
чот меня внезавпно заинтересовало юнити. пойду качну..
|
(Offline)
|
|
13.01.2011, 21:26
|
#29
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Сообщение от HolyDel
чот меня внезавпно заинтересовало юнити. пойду качну..
|
Неделю назад я тоже так подумал
Если бы знал, что появилась бесплатная версия, может и раньше бы качнул.
|
(Offline)
|
|
13.01.2011, 22:07
|
#30
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: C# Быстрый поворот/перемещение множества объектов
Извините за примитивный вопрос.
Вот создал я Terrain вручную, а как определить высоту Terrain в точке x,z например?
В Blitz я использовал TerrainHeight#(terrain,grid_x,grid_z). А тут как?
И еще как можно определить нормали к поверхности terrain в определенной точке. Чтобы кубы разворачивать к поверхности.
По поводу self-ilumination есть ambientLight
http://unity3d.com/support/documenta...ientLight.html
Пока как-то так
Последний раз редактировалось Evgen, 15.01.2011 в 14:45.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:41.
|