|
3D-программирование Вопросы, касающиеся программирования 3D мира |
20.07.2012, 22:32
|
#1
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Советы по оптимизации
Приветствую товарищи!
Хочу оптимизировать проект, для чего нужно динамически изменять детализацию мешей от расстояния.
Как замечал в игрушках, довольно полезная штука. Вот только организация сие оптимизации мне не очень ясна.
Эт что, надо каждый цикл проверять расстояние со всеми объектами и если оно меньше "n" то удалить старый low-меш и загрузить high-меш??
Наверное я не правильно думаю, а если объектов 1000 и каждый цикл (ну даже через цикл 2 3) проверять расстояние между Всеми объектами это вроде ресурсоемко получается?!
__________________
|
(Offline)
|
|
20.07.2012, 22:37
|
#2
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Советы по оптимизации
меши загруженны сразу.
ну или по крайней мере несколько лодов +/- текущего, с фоновой подгрузкой ближайших (но это если выеживаться).
и в зависимости от расстояния просто рисуется тот или иной меш.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.07.2012, 22:45
|
#3
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Советы по оптимизации
Сообщение от burovalex
Эт что, надо каждый цикл проверять расстояние со всеми объектами и если оно меньше "n" то удалить старый low-меш и загрузить high-меш??
Наверное я не правильно думаю, а если объектов 1000 и каждый цикл (ну даже через цикл 2 3) проверять расстояние между Всеми объектами это вроде ресурсоемко получается?!
|
Загружать во время исполнения нехорошо - только hide/show.
Иметь 1000 объектов - само по себе ресурсоёмко.
Я бы делал цикл проверки в отдельном потоке с задержкой между итерациями.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.07.2012, 23:06
|
#4
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Советы по оптимизации
Сообщение от HolyDel
меши загруженны сразу.
ну или по крайней мере несколько лодов +/- текущего, с фоновой подгрузкой ближайших (но это если выеживаться).
и в зависимости от расстояния просто рисуется тот или иной меш.
|
Ну да, не то написал, сам так не делаю. Сначала загружаю, а потом просто копирую.
__________________
|
(Offline)
|
|
20.07.2012, 23:12
|
#5
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Советы по оптимизации
Значит все-таки проверять расстояние самый оптимальный вариант?
Т.е. надо создать пивот и к нему прикрутить 3 меша?
И что получается если объект делать в 3 ступени получится так?:
if entitydistance(camera,pivot)>100 then
showentity ent1
hideentity ent2
hideentity ent3
endif
Так чтоль?
__________________
|
(Offline)
|
|
20.07.2012, 23:28
|
#6
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Советы по оптимизации
И еще вопросик, стоит ли заморачиваться с альфой, на определенном расстоянии видны low и high с плавным переходом и далле hideentity, или это уже слишком? )
__________________
|
(Offline)
|
|
20.07.2012, 23:37
|
#7
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Советы по оптимизации
хз. надо играться. я думаю будет некрасиво.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.07.2012, 23:41
|
#8
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Советы по оптимизации
Сообщение от burovalex
И еще вопросик, стоит ли заморачиваться с альфой, на определенном расстоянии видны low и high с плавным переходом и далле hideentity, или это уже слишком? )
|
Появятся некрасивые артефакты при переходе (из-за пресечения сеток), если расстояние не сильно большое, а оно того не стоит.
В GTA IV, ЕМНИП, модельки плавно менялись только на большом расстоянии, а на среднем только текстуры.
Если нет сильно большого пространства, то не стоит замарачиваться вообще с lod'ом.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.07.2012, 23:51
|
#9
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Советы по оптимизации
Вот спасибо, помогли!
Кстати, не знал что такое lod, тож спс )
Как думаете дупустим на сдщжное здание 3 уровня мешей нормально будет?
__________________
|
(Offline)
|
|
20.07.2012, 23:54
|
#10
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Советы по оптимизации
И еще, вопрос, у меня есть трава, состоящая из 3-5 плоских двухсторонних мешей с одним сурфейсом.
Стоит ли на расстоянии превращать их в один плоский меш, поворачивающийся к камере?
__________________
|
(Offline)
|
|
20.07.2012, 23:57
|
#11
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Советы по оптимизации
Сообщение от burovalex
И еще, вопрос, у меня есть трава, состоящая из 3-5 плоских двухсторонних мешей с одним сурфейсом.
Стоит ли на расстоянии превращать их в один плоский меш, поворачивающийся к камере?
|
Стоит, но не нужно, чтоб он поворачивался к камере (ресурсоёмко, хотя современное железо как насекомое - стерпит всё Но тогда смысл в оптимизации сам по себе отпадает ).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.07.2012, 00:14
|
#12
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Советы по оптимизации
Спасибо за развеивание сомнений!
__________________
|
(Offline)
|
|
21.07.2012, 13:08
|
#13
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Советы по оптимизации
http://forum.boolean.name/showthread...225#post216225
Сектора (ячейки) перед зрением игрока становятся видимыми, остальные остаются скрытыми (ShowEntity | HideEntity).
Кратко дополню (как я предполагал сделать):
Например есть объект дерево. В type. Оно имеет две model и model_low. Когда нужно (вблизи) объект на карте (из того type) воспринимает хорошую model, в дали же отображает некачественную model_low.
|
(Offline)
|
|
23.07.2012, 23:16
|
#14
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Советы по оптимизации
Вопрос
Кто-нибудь знает. Есть ли разница в единицах?
Например если я в блитце состряпаю мир в размерах не 1,2,10... а например 100000 размер машины, 1000к размер дома и т.д. и обзор камеры 100000к. Или вообще не важно какие размеры?
__________________
|
(Offline)
|
|
23.07.2012, 23:19
|
#15
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Советы по оптимизации
важно. с большими цифрами будут адовы глюки из-за погрешности флоата.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:04.
|