Показать сообщение отдельно
Старый 17.06.2010, 08:08   #5
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: 3Д оптимизация

Применение этого способа оптимизации я вижу такое:
в игре имеются высоко полигональные модельки/объекты (больше подойдут типа прямоугольный параллелепипед - например домики, здания, бункера, стены или ящики). Например у здания каждое окошко обработано.
Но не стоит считывать крайние точки именно у самой модели, так как просчитывание каждой вершины будет накладно.
Лучше в редакторе модели сразу же сделать прямоугольник (или плоскость) по краям модели. А в программе считывать вершины этого прямоугольника.

*____________* <- вершина
|(~~~)---/~~)|
|! 
моделька !|
|!
__________!| 
Поправки:
RenderMaxXL=Width ;исправил с =Widht2(пол экрана) на ширину экрана (крайнее правое)
RenderMaxXR=0 ;с пол экрана на противоположное крайнее левое
RenderMaxYU=Height ;с =Height2 (пол высоты) на крайнее нижнее (в понимании верхнее)
;а то до этого застревали точки на середине экрана
Text RenderMaxXL,RenderMaxYU,RenderMaxXL ;здесь случайно оставил RenderMaxYD
Text RenderMaxXR,RenderMaxYU,RenderMaxXR
If (leftmost>RenderMaxXL+1) And (rightmost<RenderMaxXR-1) And (topmost>RenderMaxYU+1) Then
HideEntity ent
Else
If (topmost>1) And (leftmost>1) And (rightmost<Width-1) Then ShowEntity ent ;добавил проверку. Без этого при наклонении камеры, вниз все объекты (топмост и др. которых был меньше 0 и 1) изображались.
End If
Вроде в коде оставил pxCreateWorld(1,"") и pxSetGravity(0,-40,0) - их нужно удалить.

Остаётся глюк (на рисунке): почему-то крайнее левое иногда равняется 0 (нулю). То ли что-то пропущено, то ли равняется на невидимый объект.

И все же невыгодно просчитывать каждые 1000 или 10000 тысячные объекты. Нужно как-то сократить число (но вроде не возможно, кроме как просто иметь меньшее их количество).

Блин глюки в работе с верхней вершиной. Когда задний объект ниже ближнего, но края его видны.
Миниатюры
Нажмите на изображение для увеличения
Название: Glyk.jpg
Просмотров: 821
Размер:	29.5 Кб
ID:	10367  
(Offline)
 
Ответить с цитированием