Симулятор. Предварительное тестирование.

Выслал ссылки всем изъявившим желание потестировать.
Ведется FAQ по текущей версии rcsim.narod.ru/faq_rus.htm.

Если есть комментарии, мне интересно услышать мнение по следующим пунктам:
0. Стабильность работы программы. Критические ошибки (не запускается, аварийное завершение)

  1. Usability. Удобство использования программы, отдельных её частей и функций.
  2. Производительность. Рывки, подвисания.
  3. Графика. Ошибки, “артефакты”. Неправильные цвета, координаты текстур, шрифты.
  4. Физика в целом (искючая специфику поведения модели)
  5. Поведение модели.

Примечания.

  1. Вкл-выкл мотор - E. 😃 Буду переделывать (опционально каналом джойстика)
  2. Карта - естественно тестовая. уже есть парочка других, покрасивее (их формат немного поменялся и поэтому я их не включил).
  3. Включенная модель - пятисотка, вес 1.8 кг, не слишком “пуляющая” по коллективному шагу, но возможно многовато по циклическому.
  4. Есть 2 части - конфигурация и собственно симулятор. Есть мысль выкинуть конфигуратор вообще, а всю его функциональность перенести в 3D приложение. Единственный минус - при сменах некоторых опций необходимы рестарты программы.

Возможно что-то забыл, спрашивайте, пишите.

p.s. Если есть поблемы, указывайте спецификации среды (ОС, железо, джойстик). Если технических проблем нет, можно без формализма.

p.p.s. Как написано ниже антивирусы могут давать срабатывания типа malware. Что на смом деле не так и связано с используемым exe-упаковщиком (для уменьшения объема).
Если есть сомнения, можно проверить exe и dll модули ежедневно обновляющимся Касперским-онлайн

www.kaspersky.ru/scanforvirus

  • 1496
Comments
thesash

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

Andrew Stick

Ага, спасибо. И сразу проблема:
При попытке запуска симуляции, появляется такое окошко

В настройках все отлично работает.
Ругается на rcsim.exe

Возможно я чего-то недоложил в пакет.
Подождем, что скажут другие.

vitkor

Пока могу сказать, что запускается нормально. Работает. Были проблемы с записью файла конфигурации - решил. Отчет будет позже, скорее всего в выходные сяду и вдумчиво протестирую. Нашел одну фичу! 😃
Система: Windows 7 64bit, video ATI 5870 1Гб, Intel core i7 860, 8ГБ памяти.

thesash

Да, вот еще минифак:
Q: Как выходить из симулятора ?
A: Либо Alt-F4 😃, либо жмем ESC, появляется меню. В нем File-Exit.

Q: Как запустить Fullscreen на широких (16:9) мониторах, и вообще в других разрешениях, не указанных в списке ?
A: Пока в списке видеорежимов указаны только “стандартные”. Но можно руками в поле Resolution ввести нужный режим (если уверены, что он поддерживается вашей системой) в виде X x Y. Автоопределение списка появится позже.

vitkor

Ты нашел ту фичу, которую нашел я! 😃

Andrew_Stick

мой конфиг.
WinXP pro SP2, ATI hd 2600, iP4-2.4, 1гиг памяти

thesash
Andrew Stick;bt28290

мой конфиг.
WinXP pro SP2, ATI hd 2600, iP4-2.4, 1гиг памяти

Ok. А как проявляется ошибка, подробнее ?
Ставилось из зипа или из инсталятора ?
Советую попробовать :

  • поставить разрешение 640 х 480 (не Fullscreen)
  • убрать stencilbuffer.
  • Direct3D вместо OpenGL (или наоборот)
    Если есть проблемы с записью конфигурации через launcher - может попробовать в config.xml руками параметры выставить.

Ну и еще… у меня XP SP3. Я не Майкрософт, утверждать что SP3 жизненно необходим не могу, просто предполагаю, в качестве гипотезы.

Ну а может быть вместо SP3 можно обойтись просто Microsoft Visual C++ 2008 SP1 Redistributable Package (x86): www.microsoft.com/downloads/details.aspx?familyid=…

Andrew_Stick

Попробовал накатить Сишный РП, не помогло. Завтра попробую сп3 поставить

thesash

Ну ладно, попробуйте, но может дело не в этом.
Просто мне трудно понять, что происходит, я несколько раз просил привести

последовательность действий, приводящих к ошибке.

Andrew_Stick

)) все просто. Запускаем ланчер.ехе, потом нажимаем Ф2
Или мышой тыкаем в старт

thesash

Ну это я понял. Я дальше про опции спрашивал и xml.

В общем смотрите, будет желание разобраться, давайте, а пока - сами видите:
метод локализации проблем “всё просто” не действует.

p.s. Почитал про ATI hd 2600. Она вроде DX10 поддерживает. Правда его не поддерживает XP.
И здесь сразу много вопросов.
p.p.s Можно еще попробовать driver=“software” - корректно работать не будет, но в качестве диагностики
нужности SP3 может кое-что прояснить.

thesash

Выложил новую версию 0.5.1
По идее ошибки должны выдаваться более внятно (но не везде 😁)

Все кто просил версию
rcsim.narod.ru/links.htm

  • вверху ссылка.

Еще раз просьба, если хотите оставить фидбэк, не теряйте наше общее с вами время, допросы с пристрастием крайне непродуктивная вещь 😃, сообщайте подробности (включая опции программы, с которыми у Вас возникали проблемы).

Andrew_Stick

Так 0.5.1 Настройки :
контроллер - без изменений
симуляция - без изменений
видео - любые сочетания (проверил все)

при запуске симуляции, появляется рамка нового окна, поверх нее маленькое окошко. Заголовок: Unknown unhandled exeption
Тело: unhandled exeption и одна кнопка ОК
При нажатии возврат в окно настроек.

Проверил на работе 5.0. Такаяже фигня как и дома.
ВинХП СП2, П4 3.2 1гиг памяти, видео что-то дешевое на АТИ чипе.
Установил на работе СП 3. Но уехал до завершения работы инсталлятора. Завтра проверю и отпишусь.

thesash

Я в общем-то не любитель хвалебных од, и всегда хочется по сути, за что Вам и спасибо.

Longobard

win7, технических проблем нет (кроме хаотичных рывков картинки, при fps 30-35 и выводе direct3d).
Что же касается движка - претензии такие:

  1. Очень ватный переворот вбок (по оси aleiron) и относительно резкий - по элеватору. Руддер тоже оооочень задумчивый.
  2. При попытке играть шагом (плюс-минус-плюс-минус) верт проваливается и падает. Вообще он очень легко падает вниз и очень задумчиво поднимается вверх, как будто в нем двигатель в одну хомячковую силу 😃

Инерции у вертолёта тоже почти нет. Харрикейн (пролет по кругу хвотом вперед в инверте) сделать так и не получилось, вертолёт просто встает на месте и теряет скорость
В целом физика очень странная, непохожая ни на реальность, ни на другие симуляторы. Хотя это альфа 😉 Но тест на то и тест - чтобы безжалостно указывать на недостатки.
А в остальном - вполне работающий симулятор 😃

На самом деле 30 FPS - это и есть проблема.
Минимальные, при котрых физика работает штатным образом, это 60+.
Попробуйте OpenGL, и меньшее разрешение.
Так-же штатным является VSync. И предпочтительным OpenGL 😃
Если Видео GеForce, может попробовать создать профиль приложени (NV Control Panel) с оптимизацией под скорость ?

Если-бы каким-нибудь образом удалось поднять FPS до 60, и снова проверить поведение модели (инерция и т.д).
А кстати, какой DirectX, и какой OpenGL ?

vitkor

Александр, давай рассказывай как модели настраивать. Я разобрался, но без спросу не буду рассказывать. Также, поясни параметры: какие единицы используются, какой параметр за что отвечает. Там их не так много. Сейчас занимаюсь доводкой модели. В стоке очень резвая по циклику - вбок переворачивается сильно быстро, и дохлая по общему шагу. В общем, надо доводить еще.
По поводу FPS - у меня 60. Стоит vsync в драйверах. Все пучком. Рывков не замечено. Также, у AlexSr были проблемы с антивирусом - ложное срабатывание. Пока все. Отчет о тестировании от меня будет не ранее выходных.

P.S Для тех у кого не заработало. Проверьте, возможно антивирус что-то блокирует. В инсталляторе вирусов нет - инфа 100%.

Longobard

Поставил opengl, теперь удалось добиться 60FPS. Но только если вертушка не некотором расстоянии. Вблизи - падение до 40FPS.
Физика теперь стала получше, да. Появилась инерция. Но мощи в вертолёте все равно нет ( несмотря на нормальные обороты ротора). Попытки сделать tail slide, флипы или еще что-нибудь такое… Да даже банально выход с разворота на горке! Все - дрова. Верт фырчит и падает в землю, даже не делая попытки увеличить подъемную силу 😃 Любые силовые маневры приводят к крашу из-за отсутствия мощности.
Покормите хомячка, который у вас там ротор крутит! 😁

И управление по циклику все равно очень вялое, как будто большие экспоненты включены.
Время раскрутки ротора на старте слишком большое. Тут “реализм” не нужен, ждать по 10сек надоедает. В Фениксе ротор раскручивается почти мгновенно.

thesash

Ну вас не поймёшь - одному резвая, другому вялая по циклику 😁

В принципе есть файл ep500.zip - в нем model.xml
Там есть секция <properties>.

Проблема в том, что

  1. Не всё в берется оттуда, кое-что просто тупо hardcoded внутри программы.
  2. Не всё в одинаковых единицах. В основном это си, но есть и “попугаи”.
  3. Формат не окончательный, наверняка будут изменения.

Опишу только то, что реально можно подкрутить прямо сейчас:

liftpower=“2.5” - тяговооруженность, т.е. макс. подъемная сила ОР, выраженная в усл. единицах, сейчас не помню, типа (масса модели * гравитация). Т.е, если поставить 1, то оно не взлетит (будет еле держаться в воздухе).

rotaterate=“0.8;1.2;0.8” - Скорости вращения (вернее вращ. момент) циклик и хвост ELE;RUD;AIL

Ну и есть кривые отклика контроллера, там можно покрутить.

Матрицу инерции (распределение массы по объему) косвенно редактировать тоже можно, но сейчас она связана с геометрией, и поэтому редактировать не стоит. Сделаю отдельный параметр.

Всё остальное - (даже несмотря на то, что вам кажется, что вы понимаете как этот параметр должен работать) сыровато, и не всегда может дать требуемый эффект 😃. Т.е. попозже, и как я говорил, параметры вынесу в отдельный текстовый файл (для удобства).

p.s. Да, какие-то антивирусы могут давать предупреждения, т.к. используется т.н. ехе-packer - для оптимизации объема программы.
Но уверяю, вирусов не держу.

thesash

Ну в общем вынес 2 решения:

  1. Уменьшить нижний порог в графике (полигоны в модели, пыль, итд). Хотя изначально думал еще наворотов подогнать. Есть еще вариант: сделать упрощенную тень. Не так красиво, но помогает в ориентации.

  2. Модель. В приложение к текущему будет отдельный текстовый файл, где можно будет менять основные параметры. Перенос из кода, упорядочивание и документирование в процессе, так-что пока не сильно спешите, в новой версии будет описание.

p.s. У кого тормозит, выключайте тень (stencilbuffer) - она прилично кушает. К примеру запускаю в разрешении 1280 x 720 - без тени 360-400 fps. С тенью 160-230.
Для справки ниже моя конфигурация (на самом деле скромная по нынешним понятиям).


------------------
System Information
------------------
   Operating System: Windows XP Professional (5.1, Build 2600) Service Pack 3 (2600.xpsp.080413-2111)
           Language: English (Regional Setting: Russian)
          Processor: AMD Athlon(tm) 64 X2 Dual Core Processor 4600+,  MMX,  3DNow (2 CPUs), ~2.4GHz
             Memory: 1024MB RAM
          Page File: 437MB used, 2023MB available
    DirectX Version: DirectX 9.0c (4.09.0000.0904)
     DxDiag Version: 5.03.2600.5512 32bit Unicode
---------------
Display Devices
---------------
        Card name: NVIDIA GeForce 7300 GT
   Display Memory: 128.0 MB
   Driver Version: 6.14.0011.9562 (English)
Driver Attributes: Final Retail
 Driver Date/Size: 11/21/2009 08:34:54, 6282752 bytes
      WHQL Logo'd: Yes
-------------
Sound Devices
-------------
            Description: Realtek HD Audio output
                   Type: WDM
         Driver Version: 5.10.0000.5377 (English)
      Driver Attributes: Final Retail
            WHQL Logo'd: Yes
        Driver Provider: Realtek Semiconductor Corp.
         HW Accel Level: Full
              Cap Flags: 0xF5F
    Min/Max Sample Rate: 8000, 192000
Static/Strm HW Mix Bufs: 33, 32
 Static/Strm HW 3D Bufs: 33, 32
              HW Memory: 0
       Voice Management: No
 EAX(tm) 2.0 Listen/Src: Yes, Yes
   I3DL2(tm) Listen/Src: Yes, Yes
Sensaura(tm) ZoomFX(tm): No
alex_bbb

Работает на Vista 64
фпс около 120 в максимальном разрешении на ноуте AMD Turion x2-2000 видео ATI Mobility 3850.

заметил одну особенность - при быстрых пролетах v=4-6 ротор какбы “перестает держать”, и верт просаживается вниз.Приходится давать полный шаг. А он медленный.
При всем этом циклик остается бешеным в любом диапазоне скоростей.

Andrew_Stick

Чуда не произошло. На СП 3 тоже самое
Такая-же ошибка как и в первом комменте 😦
Видимо придется выбыть из тестирования

thesash
Andrew Stick

Чуда не произошло.

Жаль конечно, но чудес на самом деле не бывает.
Я бы рад помочь, но могу только гадать, что у вас за система.
Если есть желание, надо предметно разбираться (к примеру самое простое пришлите мне на почту файл, сгенерированный msinfo32).

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

thesash

Выложена новая подверсия. narod.ru/disk/…/setup 0.5.2.1 alpha.exe.html
Ничего революционного. Скорее типа патча.
Стоит попробовать тем, у кого не идет.

  • Обновил версию графического движка. Обновление обещало “it fixes a severe bug … which causes reduced rendering speed.”. У себя большой разницы не заметил.
  • Лог в файл rcsim_log.txt
  • Несколько более предметные сообщения об ошибках.
  • Модель подзаряжена по общему шагу (4.5 вместо 2.5)
  • Добавлена опция упрощенной тени. Пока выглядит позорно, буду заниматься.
  • Предупреждение в виде “!!!” при маленьком уровне FPS.

Внятное настраивание моделей в процессе, но будет позже.

Для желающих поменять Ц и К шаги пока рекомендую временно обойтись кривыми.
В “умолчательном” положении они кстати довольно сомнительные - это мои личные настройки, использую для отладки.

thesash
Longobard;bt28322

Время раскрутки ротора на старте слишком большое. Тут “реализм” не нужен, ждать по 10сек надоедает. В Фениксе ротор раскручивается почти мгновенно.

Поменяйте softstart=“0.0”. На самом деле это будет равно ~1.5 секунды (цикл коррекции говернера).

А вообще тут не всё так просто (не на уровне реализации, а на уровне постановки задачи):
0. У меня (почти) всё по честному - если что-то летит - это сила, если крутится - вращающий момент. Если дать большой импульс на ротор, тушку просто свернет. Но это конечно можно обойти (давая “нечестный” контр-импульс - сейчас кстати отчасти так и делается (потому-что гира тоже в 2 оператора написана), поэтому и хвост такой нереалистичный), есть небольшой вопрос когда это делать:

  1. Нужно иметь возможность авторотации (с отменой). Т.е. вкл-выкл мотор.
  2. Не только с клавы “E” как сейчас, но и обязательно с передатчика, каналом throttle.
  3. А вот после того-же autorotation escape (когда из холда обратно включаем газ) - применять хак или нет? А если сел, остановился, покурил и снова полетел ?

Если я непонятно объяснил суть вопроса, спрашивайте, попробую по другому сформулировать.

AlexSr

На самом деле 30 FPS - это и есть проблема.

Да. Большая проблема.
Такой ФПС на моей машине выдаёт Реал-Флай 3.5 (последней их версии).
Феникс выдаёт в сингле - 70, и онлайне 70 если летаю один, порядка 40 если в двоём, и 25-30 если втроём. При этом, я ещё и хост.
Физика при этом - не страдает заметно. Хотя и “дропит” и вообще - это уже не полёт.

Машина у меня очень слабая по нынешним меркам:
AMD Athlon XP 2500+ (1,83 ГГЦ) 512 МБ озу, NVIDIA GeForse Ti4200 (8xAGP)
Разрешение нативное мониторному (в котором тестил) = 1280*1024

Зато, реально протестить производительность 😃

В установщике (версия 0.5.2) - при установке не проверяется путь предыдущей установки. К существующему у меня пути старой установки (при выборе нестандартного размещения. Указываю принудительно), добавляется ещё раз часть пути \RCM Heli simulator .

После установки в корне папки лежит по ДВА файла:
unins000.dat и unins001.dat
unins000.exe и unins001.exe

Предыдущие настройки симуляции (джойстика) - теряются. (перезапись config.xml при установке)

В лаунчере выбор пункта меню Start (F2) выдаёт сообщение:
Cannot execute empty command-line.

ФПС в версии 0.5.2 порядка 35 в Директах;
и порядка 38 - в ОпенGL. 😦

Физика - ну… её нет в принципе! Это да же не “конь в вакууме” 😅
Инерция и ускорение свободного падения далеки от реальности.
Тяга (питч) ротора соответствует самому “дохлому” сооснику. (тяга нормальная - два веса минимум)
При этом, реакция по тяге запаздывает страшно.

Пока это всё - что бросилось в глаза.

По поводу моделирования полёта, стоит почитать по ссылке в этом посте rcopen.com/forum/f19/topic175516/7
Dynamic Model for a Miniature Aerobatic Helicopter (MIT(с))

Там рассмотрены основные аспекты мат-моделирования именно модельных вертолётов.

thesash

На самом деле, Вы говорите всё тоже самое, что говорил Longobard.

Я понимаю, примерно так это и должно выглядеть, но…

Я снова вынужден повторить, что если у кого-то железо при определенных настройках не вытягивает 60 FPS (почему - это другой вопрос), то физика не считается корректно, и говорить о ней вообще не имеет смысла. Такова особенность реализации (я не говорю о том, что ее нельзя поменять), основанная на спецификации, а там написано GeForce 6xxx+ и аналоги.

С инсталятором, да, был косяк, сменил mutex, переделывать очень много приходится. А uninstall делался ? По идее надо-было-бы (не помню, писал, или нет).

Конфиг пока не может не перезаписываться, т.к. формат меняется. Ничего не поделаешь (кстати я вот тут выше поднимал вопрос о throttle - и пока его не решу).

Проблема выбора мин. конфигурации для разработки - это всегда очень сложно. Сделать упор на “low-end” - значит потерять в фичах, на “hi-end” - потерять “средних” пользователей. Какой-бы распрекрасный по физике симулятор ни был, мало кто захочет его запускать без ускорителя, в режиме VGA 320*200*8 bit. Поэтому графика должна быть на уровне.

Посему был сделан выбор на среднюю на тек. момент конфигурацию.

Тут я вижу 2 варианта - для тех пользователей, у которых что-то не работает (вкл. 60+ fps) - попытаться добиться работоспособности (снижением разрешения, выключением тени, итд, я могу описать, как это делать), либо подождать, через пару недель я примусь за низкополигональные модели, и некоторые другие оптимизации. Возможно найду и процитирую фак, как tweak-ать видеосистемы на производительность.

Прямо сейчас заниматься оптимизацией не могу. Позже.

p.s. Спасибо за упорство AndrewStick - был найден недоложенный в setup wrap_oal.dll. Не знаю, запустилось-ли у него после этого, а мой косяк тут был.

Andrew_Stick

Доложил дллку, начало запускаться 😃

AlexSr

Александр, несколько замечаний/рассуждений общего плана.
1 -Канал газа нужен. Авторотация по нему нужна. “быстрый” старт, скажем в Фениксе, реализован по выбору пользователя. Можно с раскруткой при “появлении” модели, можно сразу с оборотами. Но, это имеет отношение только к “ресету” модели и никаким образом к авторотациии.

2 -Привязка обсчёта физики к ФПС. Наверное, так проще разработчикам библиотек, и так проще совмещать цикличность выполнения программы.
Но, имхо, это неверно в принципе.
Обсчёт физики должен быть равномерным и привязан к реалтайму (именно времени, а не времени между кадрами. Иначе будет то, что часто наблюдайтся в симах - проблемы дробления и неадекватности поведения.
ФПС может меняться по множеству, не зависящих от самого приложения причин.
В этом варианте - невозможна интерполяция вперёд. В варианте реалтайма - возможна. Хотя, это конечно усложняет алгоритмы работы.
Одно дело “дёргание картинки” при сохранении правильной траектории и реакции (стабильность получения данных от “джойстика” - то же важна), другое дело - изменение самой физики полёта в зависимости от фпс.

3 -Всякие красивости (за исключением тени от вертолёта, она полезна для ориентациии) на данном этапе - не нужны вовсе. Вы же пытаетесь симулятор написать, а не аркаду? Когда решены основные вопросы и остаётся запас по производительности - можно заниматься “красотой”.
В противном случае, получится всего лишь подобие уже существующих коммерческих продуктов.

P.S. Не сочтите всё это за “наезд”! “Пряники” будут потом, пока - только “шишки” 😁

thesash

Да нет, всё нормально. Я прекрасно понимаю некоторое недоумение пользователей. Каждой водитель - он всегда пешеход 😃. И если есть косяки, то они есть косяки, как не называй.

AlexSr;bt28413

Обсчёт физики должен быть равномерным и привязан к реалтайму (именно времени, а не времени между кадрами. Иначе будет то, что часто наблюдайтся в симах - проблемы дробления и неадекватности поведения.
ФПС может меняться по множеству, не зависящих от самого приложения причин.
В этом варианте - невозможна интерполяция вперёд. В варианте реалтайма - возможна. Хотя, это конечно усложняет алгоритмы работы.
Одно дело “дёргание картинки” при сохранении правильной траектории и реакции (стабильность получения данных от “джойстика” - то же важна), другое дело - изменение самой физики полёта в зависимости от фпс.

На самом деле всё так и есть - физика просчитывается по рилтайму, а не по скорости графики. Ведь те, у кого дает 120-240 фпс, не наблюдают, что вертолет летит в 2-4 раза быстрее. Есть и интерполяция, сглаживающая разбегание физики и графики… но…

Всегда есть нижний предел (который всегда должен быть > 0), при которм “разбегание” настолько велико, что симуляция теряет стабильность и смысл - всетаки пользователь управляет глядя на картинку. У меня сейчас этот предел равен 60. Я могу поставить и 20 - но при этом на экране будет изображаться модель там, где ее на самом деле уже нет, а если выключить интерполяцию, получится слайд-шоу. Интерполяция вперед - вещь сомнительная для интерактивных (упр. пользователем) объектов.

Я безусловно признаю, что в тестовой версии перегрузил графику - хоть визуально это не очень заметно (на самом деле виной тут карта(scenery)), и если ее упростить, полeтит даже сейчас). Во многих симах вообще всё гораздо прощще - модель - а вокруг нее только панорамная текстура. И просчитывается только “пол”. Никаких объектов, по карте ходить нельзя.

В общем решение я уже принял - надо несколько более диференцированно подходить к детализации, сделать порог в 30fps. Сделать облегченные версии графики без ущерба визуализации и т.д. На след. этапе этим и буду заниматься.

AlexSr
thesash;bt28416

Всегда есть нижний предел (который всегда должен быть > 0), при которм “разбегание” настолько велико, что симуляция теряет стабильность и смысл - всетаки пользователь управляет глядя на картинку. У меня сейчас этот предел равен 60. Я могу поставить и 20 - но при этом на экране будет изображаться модель там, где ее на самом деле уже нет

Ну, на самом деле - у модели (реальной) и так присутствуют задержки. Правда не визуальные, а по каналу управления (и скорости серв). И это, на самом деле, то же важный момент.
Мне конечно очень сложно советовать, что то, по скольку не знаю способов и механизмов реализации. Вам то виднее!
Попробую уменьшить разрешение и посмотрим на результат.

vitkor

Всегда есть нижний предел (который всегда должен быть > 0), при которм “разбегание” настолько велико, что симуляция теряет стабильность и смысл - всетаки пользователь управляет глядя на картинку. У меня сейчас этот предел равен 60. Я могу поставить и 20 - но при этом на экране будет изображаться модель там, где ее на самом деле уже нет, а если выключить интерполяцию, получится слайд-шоу. Интерполяция вперед - вещь сомнительная для интерактивных (упр. пользователем) объектов.

Саш, обычно нижний предел принято считать 30-40 FPS. Выше человек уже не замечает разницы, и ниже очень все видно. Не совсем понятно, что так может тормозить компутор. Вроде графика не тяжелая на вид. Может многовато полигонов в кадре получается?

У меня если vsync отключить получается около 700fps в разрешении 1920х1080. Ограничиваю на 60. В целом, физика уже гораздо лучше. Настроил модель почти под себя, и в принципе можно летать. Пока есть такие замечания:

  1. Тяга, видимо, никак не связана с оборотами ротора. Так как при увеличении оборотов особой разницы в тяге не чувствуется. Увеличение мощности двигателя влияет только на количество оборотов ротора, и слабо на тягу. При 3000 оборотов тик-так сделать не смог.
  2. Следствие 1-го. При отклонении ручки газа от нуля, сначала реакция на шаг резкая, потом все хуже и хуже. Обороты при этом не проседают почти. Когда делаешь перекладку шага - остановить вертолет не получается. Он проседает, слегка замедляется, и продолжает падать. Т.е ощущение, что на 500-ку поставили двигатель от 300-ки.
  3. Столкновения иногда отрабатываются странно. Возникает ощущение, что вертолет абсолютно упругое тело. Особенно заметно если слегка коснуться шасси земли.
  4. При настройке каналов джойстика, когда прыгают линейки по каналам - прыгают они с большой задержкой. Если это не баг, а фича, то задержку можно уменьшить вдвое.
  5. При запуске с нестандартным разрешением, например 501х502 в режиме direct3D программа аварийно завершается. В режиме openGL запускается, но отсутствует стандартное обрамление окна виндовс. Т.е нет крестика закрыть, свернуть и пр. Видимо придется делать список разрешений.
  6. Гироскопический момент от ротора - по моему он отсутствует. Или слабо выражен. Так как вертолет на 2300 оборотов, почти также стабилен, как и при 3000.
  7. Хвост непонятный. Поведение очень похоже на Futaba 401 при низкой установленной чувствительности.

В целом физика уже сильно лучше. Вертолет уже не привязанный за ротор на веревочке. Летает для альфа версии неплохо. Я бы сказал, что хорошо.
Нужно решать вопросы со связкой двигатель-ротор- тяга.
Пока все. Позже напишу еще, и попробую выложить видео. Если получиться.
Получилось достаточно сносно пролететь круги и восьмерки с пируэтами, просто круги. Полетать в инверте, сделать радугу. Тик-так увы не смог. Дури не хватает вертолету. 😃

Кому интересно кусок конфига модели, замените у себя и попробуйте. Станет полегче, и вертолет станет более похож на себя. Если комп не тянет, попробуйте снизить разрешение до минимального и установить режим openGL, отключить vsync.

<properties
scheme =“classic cp”
rpmnominal=“3000”
rpmmax=“3000”
rpmgovernor=“3000”
softstart=“1.0”
tailforcerate =“1.0”
enginepower=“3.0”
liftpower=“3.0”
frameinconsistency=“0.1”
rotaterate=“0.4;1.2;0.4”
cyclicloadrate=“3.0”
collectiveloadrate=“7.5”
airdrag=“0.1;0.1;0.1”
/>

thesash
vitkor;bt28422

Саш, обычно нижний предел принято считать 30-40 FPS. Выше человек уже не замечает разницы, и ниже очень все видно. Не совсем понятно, что так может тормозить компутор. Вроде графика не тяжелая на вид. Может многовато полигонов в кадре получается?

Навороты там присутствуют в большом объеме. Модель по полигонам слишком большая (для старых видеокарт). На карте (которая на самом деле не плоское поле, а ландшафт с картой высот) включено несколько detailmap-ов (травка под ногами), слой облаков (или по моему даже несклько). Карты отражений в модели (в самом 3Д-файле этого сейчас нет, но они включены, и время отжирается). Итог такой: вроде ничего сверхестественного, а тормозит (на старом железе).
Уже писал, всё это буду делать опциями детализации (видимо в в. 0.7)

Теперь с моделью:

Самая главная проблема, что большая часть сейчас прошита в коде и не читается из файла. У меня есть несколько режимов отладки (ну типа читкоды 😃), что-то из этих коэффициентов возможно попало в “релиз”.
Конкретно сейчас занимаюсь соданием “профилей” - т.е. выбираемый (из множества) файл конфигураций на одну модель, и тогда будет неважно, что я там у себя начудил, конечного пользователя это не затронет.

По поводу оборотов и тяги, там в нескольких местах есть зависимости управляемости, тяги, срыва потока и т.д. Но не во всех местах читается из файла конфигурации, очень много пока вшито. Соответственно да, меняя файл меняешь только часть - выходит очень странно.

По поводу величины тяги - она у меня зависит от 4х табличных кривых: питч, обороты и верт. и гориз. скорости … но… моя явная недоработка (просто еще не брался как следует) - вычисление эффекта срыва потока. Он сейчас начинается очень быстро и почти всегда. И соответственно неоправданно много отжирает от подъемной силы. Опять-же вшито. Отсюда очень странная реакция на питч. Примерно то-же самое с просадкой оборотов.

По поводу цельности тушки - да, так и есть. Она монолитная (я писал пред. записях). Буду делать 3 материала - пружинящие шасси, жесткий ротор, сминаемая тушка.

По поводу замечаний - большое спасибо, учту.
Уже определилися с направлением работ, видимо сообществу надо немного подождать выхода версии 0.6 - там будет сформирован (честный) список параметров модели (с описанием).

thesash
AlexSr;bt28420

присутствуют задержки … по каналу управления

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

Ну в общем ладно, паблик рилейшн я пока приостановлю и переключусь на собственно работу. После выхода подверсии сообщю.

AlexSr

Поставил версию 0.5.2.1
При установке “упрощённых теней” ФПС подскочил до: 70-75 ; временами, на фоне неба: 90-100 (без синхронизации)
Так что, тени “кушают” половину и больше ФПСов.

Верт не редактировал.
Поведение вертолёта по питчу (общему шагу) типично для “перегруженной” модели. Или, для очень “худого” ротора (малая плотность ротора). Скорее, это похоже на “винт” с большим шагом, а не ротор. Производительность растёт с ростом попутной скорости, и падает - при встречной.
То есть, складывается такое впечатление, что вертолёт имеет гиганскую массу и слабую тягу.
Ни о каких “подрывах” (кратковременных импульсах тяги) - речи вообще не идёт. По этому, как виктор и написал, элементарный Тик-Так просто нереально исполнить. Только по очень большой дуге.

При этом, циклическая тяга - более “правильная”. Но, опять же, с ростом циклической скорости вращения - растёт и циклическая тяга. Это неправильно в принципе. Возможно, где то перепутан знак?

Тяга, что общая, что циклическая, должны быть максимальны в начальный момент (до движения) и падать - с ростом попутной скорости.

vitkor

Вот, сделал видео. Возможно будет интересно разработчику симулятора.

  1. Круг с пируэтами.
  2. Попытка сделать радугу, тик-так. Восмерка с пируэтами - немного.
  3. Отскок вертолета от земли.
    Размер роликов примерно по 7Мб.

P.S Александр, убери кактус из полетной зоны! 😃

thesash
AlexSr;bt28433

Тяга, что общая, что циклическая, должны быть максимальны в начальный момент (до движения) и падать - с ростом попутной скорости.

Да, согласен.

thesash
vitkor;bt28443

P.S Александр, убери кактус из полетной зоны! 😃

Кактусы за спиной

<?xml version="1.0"?>
<world version="2" size = "500;500;500" gravity = "9.8">

  <sky type ="skydome" texture = "sky.bmp" texture_percentage ="1.0" sphere_percentage ="1.05"
    clouds_texture = "clouds.bmp" />
  <lightsource ambient ="255;32;32;32" shadow_color = "100;0;0;0" position = "-500;4000;-1500" color="255;200;200;200" />

  <terrain type = "flat" tilescount ="1;1" texture = "terrain.bmp"
   detail_texture ="land_details.jpg" detail_scale ="250;250;0" /> <!--will be reimplemented -->

  <object
    filename ="helipad.object.xml"
    position = "0;0;0"
    rotation = "0;0;0"
  />

  <object
    filename ="cactus.object.xml"
    position = "10;0;-15"
    rotation = "0;0;0"
  />

  <object
    filename ="cactus.object.xml"
    position = "-15;0;-30"
    rotation = "0;0;0"
  />

  <object
    filename ="forest.object.xml"
    position =  "100;0;250"
    rotation = "0;0;0"
  />

  <object
    filename ="forest.object.xml"
    position =  "-70;0;150"
    rotation = "0;0;0"
  />

  <object
    filename ="forest.object.xml"
    position =  "-200;0;-150"
    rotation = "0;90;0"
  />

</world>

Меняем media\core.zip\test.world.xml

>При настройке каналов джойстика, когда прыгают линейки по каналам -
>прыгают они с большой задержкой. Если это не баг, а фича,
>то задержку можно уменьшить вдвое.

А на “controller hud indicator” - цветные линии в симуляторе - задержка видна ?
И какой джойстик ? PPJoy?

vitkor

На цветных линиях в симуляторе задержки нет. Все нормально.
А вот при настройке есть запаздывание, причем в одну сторону. Вправо.
Эффект примерно такой: перемещаем стик, он уже уперся в ограничитель, а полоска еще ползет. Также резко убираем в центр, полоска сдвигается мгновенно.

Джойстик PPJoy. В других программах, где есть полоски индикаторы - попробовал все в порядке.

vitkor

Поковырял вдумчиво симулятор. В принципе, пока добавить нечего. Как говорил выше, нужно разбираться с общим шагом и газом. Есть некоторые пожелалки:

  1. Иногда случается такое, что вертолет может залететь в виртуального пилота. Предлагаю в таком случае инициировать краш.
  2. При краше, для натуральности можно отстреливать лопасти. Более никаких разрушений в принципе, на мой взгляд не надо. Лучше потратить силы на физику полета.
  3. Надо подумать о методике тестирования. Так как летают все по разному, модели настраивают под свои задачи, и объективно оценить сложно. Можно например рекомендовать всем летать какой-то не слишком сложный набор фигур, например: петля, бочка, восьмерка, восьмерка в инверте, тик-так, радуга. Для первичной оценки, думаю, что достаточно. Впрочем, можно добвить фигур по вкусу. Главное, чтобы слетать их смогли много пилотов. С тех у кого уровыень пилотирования повыше - спросить по всей строгости. 😃
  4. Дать возможность настраивать под себя модели. Потом эти модели можно будет уже включать в поставку симулятора. Пусть это будет пресловутый Trex 500, но настройки уже будут разные на выбор.

P.S В целом, при определенном умении, в данном симуляторе УЖЕ МОЖНО ТРЕНИРОВАТЬСЯ. Нужно только модель под себя подстроить. ИМХО, симулятор уже подходит для выработки первичных навыков.

thesash

Виктор, еще раз спасибо за детальный подход к вопросу.

Фича “получение моделью в лоб” на самом деле уже была реализована, но изза небольшой переделки формата карт отложена (но вернется). Будут и другие модели. Все пожелалки считаю здравыми, и так или иначе будут реализованы. Модель повреждений будет детализована (лопасти сейчас немного криво складываются, будут ломаться и/или отстеливаться, в зав. от типа удара).
И еще к примеру сейчас есть небольшая проблема с повреждением обоих роторов. Т.е. : факт его повреждения регистрируется по силе контакта с землей, а глубина проникновения игнорируется. Иными словами, если аккуратно (трудно, но можно) погрузить диск ротора в землю (хорошо заметно с ХР), то контакт не регистрируется. В тоже время, если совсем чуть-чуть (по глубине проникновения) но с большой силой (направление тоже игнорируется) лишь коснутся земли, то ротор считается поврежденным. Просто пишу что такая недоработка есть, мне известна, и меры будут приняты.

В целом ближайший план работ таков:

  1. Упорядочивание формата моделей (с публикацией и болле внятной (вкл. исправление некотрых тек. ошибок) интерпретацией физ. параметров).
  2. Оптимизация быстродействия, снижение требований к железу.
  3. Наколбасить чуть побольше моделей (в планах 450 и 600 нитро) и карт.
HikeR

На цветных линиях в симуляторе задержки нет. Все нормально.
А вот при настройке есть запаздывание, причем в одну сторону. Вправо.

это у вас видимо семерка так “улучшает” контрол прогресс-бара. в свойствах launcher.exe на вкладке “совместимость” поставьте галку “отключить визуальное оформление”.

Александр, несколько вопросов касаемо:

  • поддержка фотополей (это красиво и не слишком требовательно)
  • открытый формат моделей (не сменные шкурки, а возможность засунуть свою любимую визуалку), пусть даже в виде одностороннего конвертера
  • честная поддержка соосных/многороторных конфигураций (а не эмуляция невидимого хвостового ротора), возможно ли такое?
  • в итоге планируется некая “летная модель” с кучей переменных, или что-то вроде “вот у меня лопасти с таким-то профилем, длиной и шириной, мотор с такой-то характеристикой (готовой или введенной вручную), сервы с таким-то откликом и тд…”? то есть конфигурация будет рассчитываться и отталкиваться от введенных человеко-понятных значений, или пользователь будет гадать “а на что же влияет ‘коэффициент упругости левой задней опоры’”?

замеченные неудобства.

  • звук; очень неприятный эффект мгновенной смены канала, нет плавного “перемещения/перетекания” что-ли, галка про “3d sound…” не меняет ситуации.
  • после запуска на весь экран строго в центре остается мышиный курсор, скрывать бы его либо в угол загонять.

по поведению модели даже и сказать пока нечего, я боролся с уводом хвоста, с просто реактивным пулянием, с подбором кривых. в итоге вроде и летает, но при малейшей ошибке просто камнем падает, не успеваешь “ой” сказать. в каких-то ситуациях похоже на тяжелый вертолет, а иногда вес ощущается только по звуку 😉

а так очень даже впечатляет, разве что самостоятельно настраиваемых опций очень мало.

thesash

Прогрессбары в 7-ке. Видимо да, поскольку использую стандартный контрол из ctl32 - то возможности по их тонкой настройке ограничены. Видимо буду менять на свою отрисовку.

HikeR;bt28896

Александр, несколько вопросов касаемо:

  • поддержка фотополей (это красиво и не слишком требовательно)
  • открытый формат моделей (не сменные шкурки, а возможность засунуть свою любимую визуалку), пусть даже в виде одностороннего конвертера
  • честная поддержка соосных/многороторных конфигураций (а не эмуляция невидимого хвостового ротора), возможно ли такое?
  • в итоге планируется некая “летная модель” с кучей переменных, или что-то вроде “вот у меня лопасти с таким-то профилем, длиной и шириной, мотор с такой-то характеристикой (готовой или введенной вручную), сервы с таким-то откликом и тд…”? то есть конфигурация будет рассчитываться и отталкиваться от введенных человеко-понятных значений, или пользователь будет гадать “а на что же влияет ‘коэффициент упругости левой задней опоры’”?
  • Фотополя (с большой долей вероятности) будут (собственно это проще). Просто руки не дошли.
  • Открытй формат - он и так почти откртый, без конвертеров (zip, xml, 3d форматы). Почему почти - потому что сейчас (временно) по организационно-техническим причинам визуальные 3d файлы от ep-500 вшиты в экзешник. Причин несколько, их буду озвучивать позже.
  • Соосники (они в планах есть, но не в первую очередь) конечно будут честные. Собственно по “честному” их делать (для меня) прощще.
  • Летная модель. Сейчас очень много вшито. В итоге планируется нечто среднее, с постепенным переходом от вшитых таблиц к расчету по мере развития. К примеру профиль сейчас конечно не расчитывается. Сервы уже сейчас в некотором виде заложены. Но сосбственно тип профиля, длина и ширина тоже параметры. И вопрос лишь в степени детализации расчета физ. эффектов.
    Расчитывать можно и силу трения в резбовых соединениях в зависимости от марки локтайта, раскручивать их в полете от вибрации и т.д. И здесь есть 2 основных контрдовода:
  • Ресурсоемкость такой разаработки (я всётаки (еще 😁) не аэрофлай и не феникс).
  • Востребованность таких фич в массах.
    Сейчас есть очень много мест, где конь не валялся (те-же прогрессбары и звук … и еще 20 неозвученных пунктов). Сначала будут реализованы они, а потом пересмотрены другие компоненты на предмет детализации расчетов.

Косяков (сказать точнее просто недоработок) еще очень много, планов тоже.
В грядущей версии все должно быть несколько поадекватнее в плане настроек.

p.s. Да, звук на каком-то этапе “отвалился”, погляжу.

Громозека

Мне ваш сим очень напомнил мой первый симулятор, этот www.marksfiles.net/HeliSimRC/index.htm
ПО функциям можно ориентироваться на него. Этот записывать полёты даже умеет.
Но ваш на рабочем (не 3д видеокарта) компе не заработал, видать передовые технологие 3д используются, а по ссылке запустился.

thesash
Громозека;bt29107

Но ваш на рабочем (не 3д видеокарта) компе не заработал

Вы FAQ читали ? Там всё написано про конфигурацию.
Еще раз, хотелось-бы уточнить:

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

Иначе, как я уже говорил мне придется тратить время на допросы.
Извините, но я не могу тратить на это время.

p.s. Про оптимизацию уже писал.

thesash

2 Громозека (сорри, коммент типа удалился, изза моего незнания тонкостей блог-движка, но вроде по ссылке раскрвыается)

Я рассматривал этот симулятор, не далее как летом 2009го, так-же как и
Heli-X
ClearView
Preflight
FSOne,
Sikorsky
Плюс еще парочка, не упоминая о всех других коммерческих “флагманах” + FMS.

Моя позиция очень проста: аргументы типа “Вы езжайте в Киев и посмотрите” - не рассматриваю.
Почему: Вы по каким-то причинам (м.б время, желание) не хотите излагать суть вопроса, почему я должен докапываться до этой сути за Вас ?
Прошу не обижаться, это просто логика, и попытка рационального ипользования времени. Я и так трачу много (сверх запланированного) времени на какой-никакой суппорт в виде этого блога, сайта, документации, и кстати FAQ-а на русском. Не то чтобы я это ставлю себе в каую-то особую заслугу, а просто оно (время) соответсвенно отнимается от самой разработки.

То, что вы пытетесь обсуждать - не конечная версия, она не предназначена для конечных пользователей.
Это альфа-версия. Обкатка движка, с целью получения фидбэка. Работы (и планов) еще очень много, и мне хотелось-бы заниматься этим предметно.

Просто призываю Всех, давайте не будем скатываться в *общие* рассуждения о методиках проектирования програмных продуктов (не то чтобы при ~20-летнем опыте работы в области программирования я не мог сказать ничего по этому вопросу, а просто у меня на это нет времени).

Если хотите по сути - тут я готов обсуждать (при условиях, озвученных выше).

thesash

Еще новости

  1. Нашел явный косяк. Было случайно отключено сопротивление воздуха, т.е. оно было = 0. И поскольку вычисление подъемной силы было сделано в хитром макетном виде, автоматически, то и ситуация с общим шагом была досаточно странной.
    При правильном расчете сил (в общем случае) при даче питча аппарат должен снижать ускорение по мере вертикального (и вообще любого) разгона (как и отмечал AlexSr).
  2. Сделана выбиралка карт.
AlexSr

ОК! Александр - ждём новый релиз, с поправленым “воздухом”.
Весьма существенное изменение в физике.

thesash

Да, к сожалению, еще немного придется подождать, потому что:

  1. По основной работе небольшой завал.
  2. Праздники, хозяйственно-личные дела.
  3. Полетать тоже хочется (зима вообще была караул 4 месяца средняя дневная температура -20 -25), вчера с октября прошлого года первый раз вылетел на улице. Супер.

Ну и по делу. Решил сразу побольше включить в релиз.
Итого, в 0.6 будет включено:

  1. Доработки физики (в т.ч. воздух, силовая установка)
  2. Вынос всех, каких можно параметов из хардкода в файлы конфигурации, с их документированием.
  3. Переделка джойстика (канал throttle c передатчика и пр.)
  4. Выбор карт (ландшафт) и дополнительная (облегченная, как первый способ оптимизации производительности) карта.
  5. Ползунки, для Win7.

Ориентировочный срок - неделя.

Есть кстати вопрос:
Достаточно-ли 7 точечной кривой в каналах контроллера ? Или надо к примеру 9 и больше?

vitkor

Я обычно в передатчике кривые настраиваю. Точек 7 штук - обычная средняя аппарататура. В общем, по моему мнению 7-ми точек достаточно.i

thesash

Мелкие новости:
Горит рабочий проект, и я видимо недели на 2-3 делаю паузу. В связи с этим, и т.к. были желающие посмотреть выкладываю версию 0.5.8 в текущем состоянии (как оно есть) на сайте (в разделе links) разместил ссылку.

К сожалению сделано не всё, что обещал в 0.6, но тем не менее:
Что поменялось:

  1. Оптимизация производительности (почти) не проводилась.
  2. Вместо упраздненных фич “Engine autostart”, “Toggle engine” двигатель теперь управляется каналом Throttle.
    1.1. Контроллер (пока) включает / выключает двигатель по 50%-му порогу. В дальнейшем поведение контроллера (???) видимо будет переносено в настройки модели. Autorotation escape происходит, если обороты не упали до совсем критической величины.
    1.2. Так-же, есть возможность управлять этим каналом с клавиатуры. В этом случае “автостарт” будет работать при установленной галочке “Invert”.
  3. Тестовые ползунки каналов для W7 (часть оставленя старые)
  4. Как писалось раньше, можно выбирать карты (самих карт пока нет 😁)
  5. Вынесена (незначительная часть параметров модели в отдельный XML файл). Есть сопротивление воздуха. На подбор корректных параметров времени много не тратил. Если не нравится, подкорректируйте пока сами.
  6. Внутри много других (возможно сразу незаметных) мелких переработок (и видимо багов тоже), котрые сейчас нет времени описывать.
  7. Силовая установка и хвост остались прежними.

Комментировать в течении вышеуказанного срока видимо много не смогу, но если есть желание, пишите, я почитаю, и учту.