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

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

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 20.07.2012, 22:32   #1
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Советы по оптимизации

Приветствую товарищи!
Хочу оптимизировать проект, для чего нужно динамически изменять детализацию мешей от расстояния.
Как замечал в игрушках, довольно полезная штука. Вот только организация сие оптимизации мне не очень ясна.

Эт что, надо каждый цикл проверять расстояние со всеми объектами и если оно меньше "n" то удалить старый low-меш и загрузить high-меш??
Наверное я не правильно думаю, а если объектов 1000 и каждый цикл (ну даже через цикл 2 3) проверять расстояние между Всеми объектами это вроде ресурсоемко получается?!
__________________
(Offline)
 
Ответить с цитированием
Старый 20.07.2012, 22:37   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Советы по оптимизации

меши загруженны сразу.
ну или по крайней мере несколько лодов +/- текущего, с фоновой подгрузкой ближайших (но это если выеживаться).
и в зависимости от расстояния просто рисуется тот или иной меш.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (20.07.2012)
Старый 20.07.2012, 22:45   #3
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Советы по оптимизации

Сообщение от burovalex Посмотреть сообщение
Эт что, надо каждый цикл проверять расстояние со всеми объектами и если оно меньше "n" то удалить старый low-меш и загрузить high-меш??
Наверное я не правильно думаю, а если объектов 1000 и каждый цикл (ну даже через цикл 2 3) проверять расстояние между Всеми объектами это вроде ресурсоемко получается?!
Загружать во время исполнения нехорошо - только hide/show.
Иметь 1000 объектов - само по себе ресурсоёмко.
Я бы делал цикл проверки в отдельном потоке с задержкой между итерациями.
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (20.07.2012)
Старый 20.07.2012, 23:06   #4
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

Сообщение от HolyDel Посмотреть сообщение
меши загруженны сразу.
ну или по крайней мере несколько лодов +/- текущего, с фоновой подгрузкой ближайших (но это если выеживаться).
и в зависимости от расстояния просто рисуется тот или иной меш.
Ну да, не то написал, сам так не делаю. Сначала загружаю, а потом просто копирую.
__________________
(Offline)
 
Ответить с цитированием
Старый 20.07.2012, 23:12   #5
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 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
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

И еще вопросик, стоит ли заморачиваться с альфой, на определенном расстоянии видны low и high с плавным переходом и далле hideentity, или это уже слишком? )
__________________
(Offline)
 
Ответить с цитированием
Старый 20.07.2012, 23:37   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Советы по оптимизации

хз. надо играться. я думаю будет некрасиво.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (20.07.2012)
Старый 20.07.2012, 23:41   #8
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Советы по оптимизации

Сообщение от burovalex Посмотреть сообщение
И еще вопросик, стоит ли заморачиваться с альфой, на определенном расстоянии видны low и high с плавным переходом и далле hideentity, или это уже слишком? )
Появятся некрасивые артефакты при переходе (из-за пресечения сеток), если расстояние не сильно большое, а оно того не стоит.
В GTA IV, ЕМНИП, модельки плавно менялись только на большом расстоянии, а на среднем только текстуры.
Если нет сильно большого пространства, то не стоит замарачиваться вообще с lod'ом.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (20.07.2012)
Старый 20.07.2012, 23:51   #9
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

Вот спасибо, помогли!
Кстати, не знал что такое lod, тож спс )

Как думаете дупустим на сдщжное здание 3 уровня мешей нормально будет?
__________________
(Offline)
 
Ответить с цитированием
Старый 20.07.2012, 23:54   #10
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

И еще, вопрос, у меня есть трава, состоящая из 3-5 плоских двухсторонних мешей с одним сурфейсом.
Стоит ли на расстоянии превращать их в один плоский меш, поворачивающийся к камере?
__________________
(Offline)
 
Ответить с цитированием
Старый 20.07.2012, 23:57   #11
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Советы по оптимизации

Сообщение от burovalex Посмотреть сообщение
И еще, вопрос, у меня есть трава, состоящая из 3-5 плоских двухсторонних мешей с одним сурфейсом.
Стоит ли на расстоянии превращать их в один плоский меш, поворачивающийся к камере?
Стоит, но не нужно, чтоб он поворачивался к камере (ресурсоёмко, хотя современное железо как насекомое - стерпит всё Но тогда смысл в оптимизации сам по себе отпадает ).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (21.07.2012)
Старый 21.07.2012, 00:14   #12
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

Спасибо за развеивание сомнений!
__________________
(Offline)
 
Ответить с цитированием
Старый 21.07.2012, 13:08   #13
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 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
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

Вопрос
Кто-нибудь знает. Есть ли разница в единицах?
Например если я в блитце состряпаю мир в размерах не 1,2,10... а например 100000 размер машины, 1000к размер дома и т.д. и обзор камеры 100000к. Или вообще не важно какие размеры?
__________________
(Offline)
 
Ответить с цитированием
Старый 23.07.2012, 23:19   #15
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Советы по оптимизации

важно. с большими цифрами будут адовы глюки из-за погрешности флоата.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (24.07.2012)
Ответ


Опции темы

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

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


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


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