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

Вниз

Оптимизация glscene   Найти похожие ветки 

 
!Trinix ©   (2005-06-07 08:41) [0]

Господа! Приветствую!
Решил спросить про оптимизацию glscene:
Вы знаете, что серьезный (более или менее) 3D проект очень тормозит. Чтобы от этого избавися программисты убирают модели, которые игрок не видит. Я пробовал так сделать, но жрет много процессора. Помогите, пожалуйста.
P.S. заодно оцените мой сайт sgstd.nm.ru.
Спасибо!


 
DeadMeat ©   (2005-06-07 08:56) [1]

Ты чуток конкретней спроси, и покажи что уже есть, что моросит...


 
!Trinix ©   (2005-06-07 09:01) [2]

Как отгружать модели из памяти, когда игрок отворачивается и загружать когда опять их видит. Я использовал пример visor из glscene.nm.ru.


 
П7   (2005-06-07 09:05) [3]

Приклисты, блин...


 
!Trinix ©   (2005-06-07 09:16) [4]

Простите, не понял.


 
Xeno ©   (2005-06-07 09:23) [5]

>!Trinix
А зачем их выгружать, ето не правильно, тормоза будут, делай их просто невидимыми (visible:=false) вне камеры :)


 
!Trinix ©   (2005-06-07 09:33) [6]

Но они все равно остаются на сцене, и от невидимости FPS не уменьшится.


 
DeadMeat ©   (2005-06-07 09:51) [7]

Хреново однако...


 
Fosgen   (2005-06-07 09:54) [8]

!Trinix, ты думаешь отчего вообще FPS зависит? ОТ КОЛИЧЕСТВА ОТОБРАЖАЕМЫХ ПОЛИГОНОВ В СЦЕНЕ, блин... Таким образом если полигоны какой-либо модели НЕ ВИДИМЫ, сл-но они не отображаются и производительность видеосистемы не кушают... Так что не рассуждай, когда тебе конкретный совет предлагают, а попробуй, для начала...


 
П7   (2005-06-07 10:02) [9]

Я говорю "СМЕШНО!!!". Чего не понятно?


 
!Trinix ©   (2005-06-07 10:20) [10]

>Fosgen
Спасибо, туплю...


 
Zer0 ©   (2005-06-07 15:03) [11]

вот магические слова, которорые отвечают за ускорение отрисовки:
visibility culling (on view fustrum), occlusion culling, dynamic level of detail, shaders optimization


 
Fosgen   (2005-06-07 16:20) [12]

На будущее (если еще кто с таким же вопросом) - Сравните сами: скорость работы памяти (хоть видео, хоть ОЗУ) измеряется в наносекундах (нс), а производительность дисковой подсистемы в миллисекундах (мс) - разница в порядки раз! Так что сами уже решайте чем быстрее пользоваться - выгрузкой\загрузкой с диска, али работой с памятью (и только с ею родимой!)...


 
!Trinix ©   (2005-06-07 17:29) [13]

Господа, извините - вопрос не по теме.
Как при столкновении камеры со стеной отодвигать камеру ближе к игроку, если честно, то я с collision плохо разобрался.


 
Zer0 ©   (2005-06-07 17:38) [14]

есть игрок с центром на который смотрит камера,
есть камера у которой заданы углы поворота (в горизонтальной плоскости) и наклона,
пускаем луч из центра игрока в направленни противоположному направлению обзора камеры(как-будто смотрим на камеру из игрока =),
смотрим с какими предметами сцены этот луч сталкивается сталкивается и соотвественно зная расстояние, которое прошел луч до первого столкновения корректируем положение камреы.
в жлсцене есть специально заготовленные RayCast-бла-бла-бла функции.


 
!Trinix ©   (2005-06-07 17:53) [15]

Спасибо


 
!Trinix ©   (2005-06-07 18:59) [16]

Простите, еще один вопрос:
допустим есть класс TPerson, от него образуются классы TMage и TWarrior. Можно обратится к TPerson так, чтобы это обращение пошло одновременно на TMage и TWarrior?


 
Fosgen   (2005-06-08 07:08) [17]

2 !Trinix : Ты же обращаешься к экземпляру класса, а не к самому классу - а судя по твоему вопросу ты хочешь параллельно аж к трем объектам обратиться - помни, что реально в ед. времени процессор обрабатывает все же одну операцию, несмотря на все рассказы о мультизадачностях и параллельных процесах... Ну как одновременно обрабатываемые можно совместить операции мат. сопроцессора, да работу видеокарты, но обращение СРАЗУ к трем объектам, да еще и автоматизированное... Читайте книжки по ООП...


 
Zer0 ©   (2005-06-08 09:19) [18]

если класс TMage наследуются от TPerson,
то при обращении к классу TMage, как к TPerson и изменение его полей естественно приведет к тому что в TMage эти поля тоже изменятся (они содержатся в одних и тех же ячейках памяти).
при вызове медодов класса возможно использование и "перегрузка" методов предка.

про другие виды обращения (интерфейсы и прочая чорная магия) - rtfm.


 
!Trinix ©   (2005-06-08 13:21) [19]

Можете чуть-чуть понятнее разъяснить.


 
dimodim   (2005-06-08 14:13) [20]


> Можете чуть-чуть понятнее разъяснить.

Камп грузится не из-за моделей в сцене
А из-за качества текстур .Наверное...
---
Ну пошпили В Хроники Риддика - там графа АФИГЕТЬ, а у меня 40fps
Пошпилив свою демку где лежит 150 тайлов травы 30 fps Причем в Риддеке качество текстур фотоаграфическое , а у меня тайлы 20*20 bmp 256 цветов.
--
Тормозит Жлсцене скажи спасибо разработчикам


 
VVV-First   (2005-06-08 14:26) [21]

а вот если при приближении к объекту менять текстуру с малыми размерами на больший  и наоборот , это вообще поможет или это капля в море?


 
DeadMeat ©   (2005-06-08 15:24) [22]

Мы всегда тебе рады димодин... ;)

Хотя бы про размеры текстур почитал бы.. Прогер-сценарист....
Про русский я молчу.


 
!Trinix ©   (2005-06-08 18:36) [23]

>VVV-First
Это называется мип-маппинг, происходит автоматически (заложено в функциях 3DApi).
Ходите в форуме по созданию игр, а таких вещей не знаете..


 
VVV-First   (2005-06-08 19:04) [24]

да стыдно %)
если знаешь дай ссылочку почитать


 
Fosgen   (2005-06-08 19:12) [25]

2 !Trinix: Насчет классов - если ты обращаешься к TMage - потомку класса TPerson (учти - в любом случае идет обращение к ОДНОМУ экземпляру класса! Т.е. - к одному объекту. Object:TMage;). Причем обращаешься ты к нему как к объекту класса TPerson (Object as TPerson) то при изменении его полей поля объекта TMage (Object as TMage) тоже поменяются - объект-то один и тот же...


 
VVV-First   (2005-06-08 19:27) [26]


> !Trinix ©  
но ты тоже молодец

> Как отгружать модели из памяти, когда игрок отворачивается
> и загружать когда опять их видит.


 
Ищущий   (2005-06-09 08:51) [27]

2Fosgen
В принципе верно, но только для ОДНОГО объекта (в смысле экземпляря класса)

2!Trinix ©
Можно перебрать объекты  с parent class TPerson и изменить необходимое свойство.


 
!Trinix ©   (2005-06-09 14:05) [28]

спасибо, не могли бы вы мне заодно сказать форматы файлов с анимацией, которые поддерживает GLScene. (obj e t. c.)


 
XProger ©   (2005-06-09 14:16) [29]

md2


 
!Trinix ©   (2005-06-09 18:07) [30]

но не один же формат?


 
Fosgen   (2005-06-09 22:17) [31]

Как это не грустно - практически один. Конечно еще формат моделей от Quake 2, но там анимация морфовская - пересчитывается для всей модели, а не скелетная (как md2) - может пересчитываться run-time для части модели...


 
DeadMeat ©   (2005-06-10 08:52) [32]

Хе.. А я думал что как раз md2 это морфовая.. А md3 скелетная.
А еще я думал, что в GLScene есть smd, и md5.


 
!Trinix ©   (2005-06-10 09:12) [33]

В таком случае, дайте мне, пожалуйста, нормальную ссылку на экспорт в md2 из макса 5.1, сразу говорю qtip не отображается в file\export...


 
Xemo   (2005-06-10 09:36) [34]

>!Trinix ©
В плаиге QTtip экспорт в MD2 производиться не из меню "file\export...",а из кладки "утилиты"(кажись так называется :)
Читай внимательней хелп на странице производителя, там даже картинки есть!


 
!Trinix ©   (2005-06-10 10:26) [35]

ок


 
Sapersky   (2005-06-10 11:37) [36]

А я думал что как раз md2 это морфовая.. А md3 скелетная.

А я до сих пор наивно полагаю что md3 морфовая :) C той только разницей от md2, что голова/торс/ноги обрабатываются отдельно (что, кстати, иногда создаёт проблемы по их совмещению). В принципе, это можно назвать скелетом из 3-х костей :)

smd - "настоящая" скелетная, и то уже порядком устарела по нынешним временам (ну ещё бы, сколько ей лет?). В частности, положение вершины определяется только 1-й костью, хотя в 3D API (и T&L ускорителей) давно уже присутствует поддержка нескольких, т.н. skinning или geometry blending.


 
DeadMeat ©   (2005-06-10 12:43) [37]

Аа.. Блин..
Прошу прощения.
Перепутал с GLM, в JA. Она же тоже на кваковском движке.. Вот и перепутал.. Думал там MD3..
Миль пардон.
А md2 все равно не скелет.. ;))


 
!Trinix ©   (2005-06-10 13:23) [38]

Я скачал qtip1.2 для 5 макса, но там пронумерованы и названы 308 фреймов, можно импортировать из других md2 файлов эти названия и количесва фреймов, но скажите, как самому все обозвать: в реале моя модель владеет более 1000 фреймов.


 
!Trinix ©   (2005-06-10 16:54) [39]

версия 1.2


 
!Trinix ©   (2005-06-10 16:56) [40]

ой простите, уже указал


 
Fosgen   (2005-06-12 11:50) [41]

Извиняюсь, накосячил - конечно smd - скелетные, а все mdX - морфовые.. Вот только у smd вроде ограничение в 500 полигонов есть...



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

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

Наверх




Память: 0.57 MB
Время: 0.047 c
3-1126530501
naz
2005-09-12 17:08
2005.10.23
Temporary table


2-1127749588
erika
2005-09-26 19:46
2005.10.23
fb


9-1118324957
Novouralsk
2005-06-09 17:49
2005.10.23
Помогите плиз!!!


1-1128332065
Profi
2005-10-03 13:34
2005.10.23
Пропадают данные из TreeNode.Data при обращении к ним.


3-1125930670
_Lucky_
2005-09-05 18:31
2005.10.23
Возможно ли реализовать одним запросом на SQL, без использования