forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Количество полигонов на уровне - программная оптимизация? (http://forum.boolean.name/showthread.php?t=14499)

Drayfer 31.03.2011 01:16

Количество полигонов на уровне - программная оптимизация?
 
Создаю уровень: два больших здания и окружение между ними. Моделю в максе. На данный момент на уровне порядка 150 тыс. полигонов. В дальнейшем ожидается - около 250тыс.

Как по вашему - это много или мало?
Просто у меня теперь начала подтормаживать игра, когда например приближаешься к высокополигональным моделям. Игра от первого лица. Да и вообще медленнее вся сцена становится с увеличением полигонов. Действия на уровне в большей степени будут проходить внутри зданий.

Какие есть пути программной оптимизации в прорисовке сцены? БЕЗ оптимизации в уменьшении полигонов.

Я знаю только - уменьшить дальность прорисовки:
CameraRange camera,10,20000
Но тут с уменьшением расстояния второго параметра - теряется вся "реалистичность"...
P.S. на моем компе еще не так заметно, а вот на более слабых - так вообще...

Mr_F_ 31.03.2011 01:29

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Цитата:

Какие есть пути программной оптимизации в прорисовке сцены? БЕЗ оптимизации в уменьшении полигонов.
wut?

юзай разный куллинг. если внутри зданий, то BSP+порталы юзай.

Drayfer 31.03.2011 01:37

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Цитата:

Сообщение от Mr_F_ (Сообщение 184316)
wut?

юзай разный куллинг. если внутри зданий, то BSP+порталы юзай.

не понял что такое "wut"?
И что такое куллинг?

Порталы - это разделить существующий уровень на части. И при переходе в какую-то комнату например - загружать эту часть?

Aikon 31.03.2011 01:55

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Drayfer, для дальних расстояний обычно используют упрощенные модели, когда игрок приближается, то загружаются более высокого качества. То же самое с текстурами.
В обычных движках это все делается автоматически. В Blitz3D наверно придется ручками.

havok 31.03.2011 02:01

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Кинь мне свой уровень и я уменьшу количество без потери текстурных координат - очень много полигонов :((

Igor 31.03.2011 12:38

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Цитата:

Drayfer, для дальних расстояний обычно используют упрощенные модели, когда игрок приближается, то загружаются более высокого качества.
В Call of Duty Modern warfare как-то насчитал целых 5 моделек одного и того же велосипеда))
А сейчас делают хитрее - в некоторых играх модель с другой детализацией при появлении плавно меняет прозрачность - в Order of war например - так у меня вообще не получалось отследить подгрузку моделек.
Ещё способ - сделать прозрачный куб (или пирамидку) вокруг модельки, если их не видно, то и модель не видно, её не отрисовывать.

RegIon 31.03.2011 13:07

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Цитата:

Ещё способ - сделать прозрачный куб (или пирамидку) вокруг модельки, если их не видно, то и модель не видно, её не отрисовывать.
+ еще 1000 поликов,а не проще тогда математическую модель

Drayfer 31.03.2011 13:07

Ответ: Количество полигонов на уровне - программная оптимизация?
 
а вот еще хотел узнать - те модели, которые находятся сзади камеры обзора - они отрисовываются?

А по поводу прозрачного куба: тут надо мелкие модели помещать в куб или например целое здание можно так, когда например нахожусь в другом здании?

Костян, это как математическую модель?

И кстати, как сделать, чтоб игра на всех компах одинаково шла? Как сделать это ограничение FPS?

Igor 31.03.2011 13:11

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Цитата:

+ еще 1000 поликов,а не проще тогда математическую модель
Принцип знаю, реализацию - нет. Расскажи как надо.

RegIon 31.03.2011 13:35

Ответ: Количество полигонов на уровне - программная оптимизация?
 

? Как сделать это ограничение FPS?
создаем таймер timer=CreateTimer(fps)
дальше в цикле WaitTimer (timer)
Цитата:

Принцип знаю, реализацию - нет. Расскажи как надо.
Считать куда повернута камера,относительно объекта,а проще найти пример в хелпе,где функция которая возвращает 1 если объект виден,а если он виден,то отрисовываем,нет-нет.

maxturbo 31.03.2011 14:03

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Вложений: 1
А мне кажется не плохо было бы использовать плагин MMSectorSystem для оптимизации количества полигонов :)
По части FPS...
Код:

Graphics3D 640,480,16,2

Const UPS=60

cam=CreateCamera()

l=CreateLight()

period=1000/UPS
time=MilliSecs()-period

Repeat
  Repeat
  elapsed=MilliSecs()-time
  Until elapsed
  ticks=elapsed/period
  tween#=Float(elapsed Mod period)/Float(period)
 
  For k=1 To ticks
  time=time+period 
  If KeyHit(1) End
  UpdateWorld 
  Next
 
  RenderWorld tween
  Flip

Forever

Думаю в коде все понятно :)

Drayfer 31.03.2011 14:43

Ответ: Количество полигонов на уровне - программная оптимизация?
 
maxturbo, а как пользоваться этим плагином? расскажи плиз на словах или дай ссылку на мануал какой-то...

ARA 31.03.2011 15:17

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Drayfer
Не можешь в семпле разобраться? Тогда бросай геймдев! Срочна!

Drayfer 31.03.2011 15:23

Ответ: Количество полигонов на уровне - программная оптимизация?
 
ARENSHI, я просто не понял к чему подключается этот плагин?
А заниматься геймдевом меня на данный момент обязывает мой дипломный проект)))
Так что, если не в тягость лучше поясни немного.

P.S. гугл мне ответа по поводу этого плагина не дал.

maxturbo 31.03.2011 15:46

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Цитата:

Сообщение от Drayfer (Сообщение 184364)
ARENSHI, я просто не понял к чему подключается этот плагин?
А заниматься геймдевом меня на данный момент обязывает мой дипломный проект)))
Так что, если не в тягость лучше поясни немного.

P.S. гугл мне ответа по поводу этого плагина не дал.

Там справка же есть в архиве :) в папке help :) Почитай :)
Или ты вообще представления не имеешь как сторонние библиотеки подключать к проекту??

ARA 31.03.2011 15:57

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Цитата:

Сообщение от Drayfer (Сообщение 184364)
ARENSHI, я просто не понял к чему подключается этот плагин?

К блицу библиотека.

Инструкция по применению:
1) Расстегнуть молнию.
2) Бежать.
3) Закинуть MMSectorSystem.decls и MMSectorSystem.dll в C:\Program Files\Blitz3D\userlibs
4) Запускать семпл MMSectorSystem_v0.9d\CODE\sample.bb
5) Получать удовольствие!

Drayfer 31.03.2011 16:07

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Вот это уже другое дело. Спасибо! Буду разбираться

LLI.T.A.L.K.E.R. 31.03.2011 16:39

Ответ: Количество полигонов на уровне - программная оптимизация?
 
ARENSHI, промпт-о-переводчик :-D

PHP код:

MMSector_Init(80,100,100) ; // подготовка системы

sector1=MMSector_AddSectorWithBox(12.5,6,0,100,12,25) ; // создание сектора 1
m=LoadMesh("room2.x") ; // загрузка комнаты
MMSector_AddStatic(sector1,m) ; // прикрепление комнаты к сектору 1

sector2=MMSector_AddSectorWithBox(75,6,12.5,25,12,50) ; // создание сектора 2
// потом что хочешь грузи

MMSector_Connect(sector1,sector2) ; // соединение сектора 1 с сектором 2
// ВОТ ТУТ ТО И САМАЯ ЗАПАРА
// (придётся код делать, чтобы всё на АВТОМАТе было)
// и т. д. 

Но если хорошенько подумать... блин Он Крут!! (MMSS)

Mr_F_ 31.03.2011 21:10

Ответ: Количество полигонов на уровне - программная оптимизация?
 
по демке он просто не рендерит комнату, если портал не в кадре.
часто в играх порталы чуть умнее - от камеры через портал строится фрустум, рендерится то, что с другой стороны портала попадает в этот фрустум. в мафии так было например, в фоллаут3.
Цитата:

Ещё способ - сделать прозрачный куб (или пирамидку) вокруг модельки, если их не видно, то и модель не видно, её не отрисовывать.
))
как по-твоему блиц определяет видимость объекта? как раз по попаданию баундинг бокса вокруг объекта в камеру.
Цитата:

а вот еще хотел узнать - те модели, которые находятся сзади камеры обзора - они отрисовываются?
нет

Mr_F_ 05.04.2011 20:25

Ответ: Количество полигонов на уровне - программная оптимизация?
 
скажи

Nuprahtor 05.04.2011 20:27

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Цитата:

Сообщение от Veapok (Сообщение 184995)
юзай меньше партиклов! Я вот знаю как огонь сделать (без партиклов и обьемно)

В первом квейке такой был

ARA 05.04.2011 20:42

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Veapok получает пожизненный эцих с гвоздями.
Причина: клон пользователя Alex_Noc (который ещё отбывает).

Alex_Noc, мы следим за тобой. Исчо один виртуал и вышка.

Nuprahtor 05.04.2011 20:45

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Значит мы не увидим объемный огонь?:(

Gector 05.04.2011 20:52

Ответ: Количество полигонов на уровне - программная оптимизация?
 
Цитата:

Сообщение от Nuprahtor (Сообщение 185007)
Значит мы не увидим объемный огонь?:(

Имхо. Партиклами универсальней). Мешем он не везде подходит да и нужно уметь его так рисовать.

Harter 06.04.2011 08:06

Ответ: Количество полигонов на уровне - программная оптимизация?
 
lol

Drayfer 07.04.2011 23:48

Ответ: Количество полигонов на уровне - программная оптимизация?
 
На предыдущей странице maxturbo дал такой код - для ограничения FPS:
Код:

Graphics3D 640,480,16,2

Const UPS=60

cam=CreateCamera()

l=CreateLight()

period=1000/UPS
time=MilliSecs()-period

Repeat
  Repeat
  elapsed=MilliSecs()-time
;1
  Until elapsed
  ticks=elapsed/period
  tween#=Float(elapsed Mod period)/Float(period)
  ;2
  For k=1 To ticks
;3
  time=time+period 
  If KeyHit(1) End
  UpdateWorld 
  Next
 
  RenderWorld tween
  Flip

Forever

Так вот я не понял, дальше при вставке этого в мою программу - мой код вставлять в каком месте:
1, 2 или 3?

SBJoker 08.04.2011 00:20

Ответ: Количество полигонов на уровне - программная оптимизация?
 
В третью...


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot