Применение этого способа оптимизации я вижу такое:
в игре имеются высоко полигональные модельки/объекты (больше подойдут типа прямоугольный параллелепипед - например домики, здания, бункера, стены или ящики). Например у здания каждое окошко обработано.
Но не стоит считывать крайние точки именно у самой модели, так как просчитывание каждой вершины будет накладно.
Лучше в редакторе модели сразу же сделать прямоугольник (или плоскость) по краям модели. А в программе считывать вершины этого прямоугольника.
*____________* <- вершина
|(~~~)---/~~)|
|! моделька !|
|!__________!|
Поправки:
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 тысячные объекты. Нужно как-то сократить число (но вроде не возможно, кроме как просто иметь меньшее их количество).
Блин глюки в работе с верхней вершиной. 
Когда задний объект ниже ближнего, но края его видны.