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

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

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

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 13.01.2011, 15:07   #16
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: C# Быстрый поворот/перемещение множества объектов

Сообщение от Evgen Посмотреть сообщение
Да можно. Только у меня уже привычка (оставшаяся от Java) обращаться к классам типа Mathf.бла-бла-бла только в случае крайней необходимости. Скорость выражения типа Mathf. практический не уменьшают, но когда дело касается 5-10тыс. объектов могут отнять десяток FPS. Если я не прав поправьте.
Не прав, эти операции у тебя выполняются один раз за апдейт .
(Offline)
 
Ответить с цитированием
Старый 13.01.2011, 15:11   #17
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений
(для 100 пользователей)
Ответ: C# Быстрый поворот/перемещение множества объектов

Сообщение от pax Посмотреть сообщение
Не прав, эти операции у тебя выполняются один раз за апдейт .
Ладно, Ладно. В этом варианте конечно один раз, но это только пока все кубики едут в одну сторону
(Offline)
 
Ответить с цитированием
Старый 13.01.2011, 15:13   #18
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 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
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: C# Быстрый поворот/перемещение множества объектов

Кстати зачем такое количество кубиков?
(Offline)
 
Ответить с цитированием
Старый 13.01.2011, 15:48   #22
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 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
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений
(для 100 пользователей)
Ответ: C# Быстрый поворот/перемещение множества объектов

Не подскажите как сделать чтобы объект был ярким без источников света.
Чтобы у него была полная яркость на C#?
(Offline)
 
Ответить с цитированием
Старый 13.01.2011, 16:26   #24
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 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 за это полезное сообщение:
Evgen (13.01.2011), pax (14.01.2011)
Старый 13.01.2011, 16:58   #25
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 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
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: C# Быстрый поворот/перемещение множества объектов

Сообщение от Evgen Посмотреть сообщение
Если нет, то как этот шейдер прикрутить к кубикам?
создаешь файл с расширением .shader
копируешь в него текст шейдера
переносишь файл в папку Assets своего проекта
создаешь новый материал, выбираешь ему созданный шейдер
выбираешь материал для меша
(Offline)
 
Ответить с цитированием
Старый 13.01.2011, 17:55   #27
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: C# Быстрый поворот/перемещение множества объектов

Сообщение от Evgen Посмотреть сообщение
Просто куб наименее прожорливая фигура 12 треугольников 8 вершин.
В каждом уважающем себя кубе 24 вершины.
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (13.01.2011)
Старый 13.01.2011, 18:50   #28
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: C# Быстрый поворот/перемещение множества объектов

ну может у него куб без нормалей и текс. координат.

имхо объекты без коллайдеров имеют право на жизнь тоже.


чот меня внезавпно заинтересовало юнити. пойду качну..
(Offline)
 
Ответить с цитированием
Старый 13.01.2011, 21:26   #29
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений
(для 100 пользователей)
Сообщение Ответ: C# Быстрый поворот/перемещение множества объектов

Сообщение от HolyDel Посмотреть сообщение

чот меня внезавпно заинтересовало юнити. пойду качну..
Неделю назад я тоже так подумал
Если бы знал, что появилась бесплатная версия, может и раньше бы качнул.
(Offline)
 
Ответить с цитированием
Старый 13.01.2011, 22:07   #30
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 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

Пока как-то так
Миниатюры
Нажмите на изображение для увеличения
Название: Clip.jpg
Просмотров: 833
Размер:	62.8 Кб
ID:	12367  

Последний раз редактировалось Evgen, 15.01.2011 в 14:45.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


Часовой пояс GMT +4, время: 15:19.


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