Тема: C#
Показать сообщение отдельно
Старый 21.08.2012, 12:04   #85
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 7,645
Репутация скрыта [+/-]
$finX, с XNA я дела не имел, последний раз занимался 3D-графикой довольно давно, но позволю себе дать несколько общих советов.
Первый - при компиляции в Debug-режиме 3d-графика тормозит намного существеннее, нежели в Release. По крайней мере, при написании на C++ с Irrlicht так.
Второй - естественно, тысячи кубиков тормозят, поскольку компьютер вынужден рассчитывать видимость для каждого из них. Например, когда кубик окружён со всех сторон шестью другими кубиками, ежу понятно, что он не может быть видимым. Ежу, но не компьютеру. Он сообразит это только когда просчитает видимость всех граней с того места, где находится камера.
Поэтому выход один - оптимизировать код так, чтобы гарантированно невидимые кубики даже не подавались на рендеринг. А в идеале - не подавались не только кубики, а отдельно невидимые грани (т.е. кубик как отдельная моделька из 3dmax'а - это очень плохая идея). Как это сделать? Лезть в глубины XNA и математики, никак иначе. И писать шейдеры.
Ну и наконец, XNA и .NET сами по себе добавляют тормозов, чисто исходя из своей сути и архитектуры. За удобство нужно платить.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)

Последний раз редактировалось pokibor; 21.08.2012 в 12:07.
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием