Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

Отсечение невидимых граней в GLScene.   Найти похожие ветки 

 
Санёк   (2005-08-14 21:34) [0]

Столкнулся с очень неприятной ситуацией.
Динамически создаю порядко двух тысяч сфер одинакового радиуса.
ФПС естественно очень резко проседает.
Сначала создавал все сферы как отдельные объекты.
Потом посмотрел пример с проксями - все равно фпс очень мал.
Посмотрел пример с isvolumeclipped - помогает, но тоже не очень - у меня в сцене нету объектов, которые могут быть вне области видимости.
делал так:
for i:=0 to SphereCube.Count-1 do
begin
if isvolumeclipped(SphereCube.Children[i].AbsolutePosition,Int(GLSphere1.Radius),rci.rcci) then
SphereCube.Children[i].Visible:=False
else
SphereCube.Children[i].Visible:=True;
end;


это правильно?

ладно, поехали дальше.
суть в том, что сферы периодически заезжают одна в другую.
как убрать ту часть сферы, которая находится внутри другой?
Т.е. я так понимаю, хоть сфера заезжает, хоть нет - она все равно рендерится целиком.
Да, с VisibilityCulling так и не разобрался.
подскажите пожалуйста, чего почитать по данному вопросу?

и еще.
попробовал рисовать нужное мне пайпами - фпс почему-то несомненно выше!
но тоже возник вопрос - чтобы сделать разрыв в пайпе, нужно новый создать, а не продолжать старые ноды?


 
XProger ©   (2005-08-14 21:42) [1]

Сколько полигонов на сфере?
Вполне можно пихнуть всю геомертию в VBO. Должно значительно повысить фпс...
Отсекать те части про внутри другой сферы будет ещё накладнее.
Если VBO не устраивает - попробуй рисовать ручками по полигонам, попутно ручками отсекая каждый нелицевой. Это будет значительно быстрее стандартного OpenGL отсечения (glCullFace)


 
Санёк   (2005-08-15 01:48) [2]

GLSphere1.Slices:=16;
GLSPhere1.Stacks:=16;

VBO это вот это - http://www.gamedev.ru/terms/VBO
через GLScene  к нему есть доступ?
или надо писать в OnRender"e DirectOpenGL"а?


 
XProger ©   (2005-08-15 01:59) [3]

Из GLScene есть доступ к OpenGL, а оттуда ко всему что пожелаешь...



Страницы: 1 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.039 c
14-1135920937
begin...end
2005-12-30 08:35
2006.01.22
С Днём рождения! 30 декабря


14-1135881866
SourseStr
2005-12-29 21:44
2006.01.22
Шифрование и дешифрование текстов по принципу S-Coder ...


2-1136301078
frEE)styler
2006-01-03 18:11
2006.01.22
Не получается вызвать процедуру!


11-1097922134
Владимир Кладов
2004-10-16 14:22
2006.01.22
KOLOLERE2


1-1134992828
Scorpio
2005-12-19 14:47
2006.01.22
Закрыитие документа WORD без сохранения