The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз свободного игрового движка OpenMW 0.50"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от opennews (??), 09-Ноя-25, 10:56 
Представлен выпуск проекта OpenMW 0.50, развивающего свободную реализацию движка для ролевой игры в жанре фэнтези The Elder Scrolls 3: Morrowind. По сравнению с оригинальным движком в OpenMW реализован модернизированный интерфейс пользователя, улучшена графика, добавлен собственный редактор OpenMW-CS для создания новых игр и модов, задействован движок симуляции физических процессов Bullet, добавлена поддержка платформ  macOS и Linux, улучшено поведение ботов...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=64206

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Релиз свободного игрового движка OpenMW 0.50"  –12 +/
Сообщение от Аноним (1), 09-Ноя-25, 10:56 
Ремастер Oblivion вот запилили на UE5:
https://steamcommunity.com/app/2623190/screenshots/
А вот Elder Scrolls VI вроде как делают на Creation Engine 2, на котором сделан Starfield:
https://steamcommunity.com/app/1716740/screenshots/
Ответить | Правка | Наверх | Cообщить модератору

9. "Релиз свободного игрового движка OpenMW 0.50"  –1 +/
Сообщение от Аноним (9), 09-Ноя-25, 11:45 
Я тут баловался с CE и в Darkest Dungeon с помощью CT систему облегчения-усложнения (пропорциональное изменение параметров) придумал с помощью хитрого приемчика. )
Ответить | Правка | Наверх | Cообщить модератору

46. "Релиз свободного игрового движка OpenMW 0.50"  –7 +/
Сообщение от Константавр (ok), 09-Ноя-25, 16:32 
Как же ужасно выглядят эти игры. Безотносительно эпохи и совершенства движка. Может они были популярны из-за сюжета, но я с самого их начала не могу решиться на то, чтобы играть в это уродство.

А про конкретно эти порты - а где там UE5? Где его мощь? Модели и текстуры как были мерзкими так и остались. Переделать!

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

48. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от Аноним (1), 09-Ноя-25, 17:41 
>UE5? Где его мощь?

Чтобы увидеть всю "мощь" нужна RTX 5090.

Ответить | Правка | Наверх | Cообщить модератору

90. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (90), 10-Ноя-25, 18:36 
И это только fullhd и не слишком сложная сцена. Но, вообще, это единственный движок сейчас, если не злоупотребляли блупринтами и сомнительными шейдерами он весьма приличную производительность показывает даже на древних картах (особенно по сравнению с юнити, если покрутить настройки даже выдаст адекватную производительность, и юнити с годотом никак и никогда её не выдадут).
Ответить | Правка | Наверх | Cообщить модератору

107. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (107), 12-Ноя-25, 01:46 
> показывает даже на древних картах

Чего?

https://www.reddit.com/r/kingdomcome/comments/1cjp9kw/dan_v&.../

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

Ответить | Правка | Наверх | Cообщить модератору

91. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (91), 10-Ноя-25, 19:11 
>на UE5

Сразу ффтопку.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

102. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (102), 11-Ноя-25, 10:33 
Ремастер Unreal Engine 5, мягко говоря, отстой. Моды делать стало намного неудобнее, официального TES Construction Set под ремастер нет. Атмосферу оригинала не сохранили, броню видоизменили и зацензурили. В общем, испортили. Оригинал в разы лучше.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

2. "Релиз свободного игрового движка OpenMW 0.50"  –11 +/
Сообщение от Мурзин (?), 09-Ноя-25, 11:06 
Какие-то скучные обои из нулевых. Не хватает толковых молодых дизайнеров. И звук какой-то блеклый. Во-общем, не впечатлило.
Ответить | Правка | Наверх | Cообщить модератору

13. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от Аноним (9), 09-Ноя-25, 12:17 
Это жанр Action RPG. Кому какая половинка нравится.
Ответить | Правка | Наверх | Cообщить модератору

36. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (36), 09-Ноя-25, 15:16 
ещё горизонт всегда в мыле и тумане...
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

63. "Релиз свободного игрового движка OpenMW 0.50"  –1 +/
Сообщение от Аноним (90), 09-Ноя-25, 21:31 
Без тумана там ни атмосферы, ни графики. На скринах какой-то стрёмный туман, в оригинале более душевный.
Ответить | Правка | Наверх | Cообщить модератору

77. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Bottle (?), 10-Ноя-25, 09:56 
Оригинальный туман это типичная линейная зависимость, резко обрубающая видимость. Нет там художественной задумки, только аппаратные ограничения того времени. На проверку вся "душа" оказывается прозаическими обстоятельствами. Бюджет пишет сценарий.
Ответить | Правка | Наверх | Cообщить модератору

78. "Релиз свободного игрового движка OpenMW 0.50"  –1 +/
Сообщение от Аноним (90), 10-Ноя-25, 10:21 
> Оригинальный туман это типичная линейная зависимость, резко обрубающая видимость. Нет
> там художественной задумки, только аппаратные ограничения того времени. На проверку вся
> "душа" оказывается прозаическими обстоятельствами. Бюджет пишет сценарий.

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

Ответить | Правка | Наверх | Cообщить модератору

85. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от _kp (ok), 10-Ноя-25, 18:06 
>>ещё горизонт всегда в мыле и тумане...

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

Хотя, мы то знаем, что придумали это что бы на железе начала 2000х годов хоть как то оптимизировать. А сейчас можно отключить, если производительность позволит.

Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

49. "Релиз свободного игрового движка OpenMW 0.50"  +2 +/
Сообщение от Аноним (49), 09-Ноя-25, 17:43 
С молодыми дизайнерами Геншин получится или Фортнайт, если повезёт.
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

50. "Релиз свободного игрового движка OpenMW 0.50"  –1 +/
Сообщение от анон с ним (?), 09-Ноя-25, 17:52 
Геншин довольно хорош в графике и по дизайну мира. Он уже апдейтнулся и увеличил минимальные требования, если вы не знали. Реалистичность - это не обязательно хорошо. А уж в анимэлайк она точно ни к чему. Но я сейчас не о гача-геймплее.
Ответить | Правка | Наверх | Cообщить модератору

5. "Релиз свободного игрового движка OpenMW 0.50"  –1 +/
Сообщение от зомбированный (?), 09-Ноя-25, 11:25 
Ребята подскажите, а какой свободный игровой движок оптимально подходит для создания гамесов в стиле Диабло, Alien Shooter 2 ? мне вообщше нравяца больше изометрические гамесы, чем  The Elder Scrolls 3. А ещё мне нравится Millennium Soldier: Expendable, жаль никто продолжение не сделал... https://retrofreakreviews.com/2018/04/13/expendable-for-pc-r.../
Ответить | Правка | Наверх | Cообщить модератору

17. "Релиз свободного игрового движка OpenMW 0.50"  +2 +/
Сообщение от Крокодил (?), 09-Ноя-25, 12:20 
Бери godot engine
Ответить | Правка | Наверх | Cообщить модератору

22. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Bottle (?), 09-Ноя-25, 12:50 
https://github.com/godotengine/godot/issues/84137
Ответить | Правка | Наверх | Cообщить модератору

51. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от анон с ним (?), 09-Ноя-25, 17:54 
И делай на нём ремастеры первых шести Final Fantasy :)
Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

27. "Релиз свободного игрового движка OpenMW 0.50"  +5 +/
Сообщение от Аноним (27), 09-Ноя-25, 13:23 
Бери что угодно. Основная проблема — сделать игру.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

74. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Bottle (?), 10-Ноя-25, 07:43 
Всё-таки есть определённая корреляция между опенсорсностью движка и отсутствием игр на нём.
Угадай почему...
Ответить | Правка | Наверх | Cообщить модератору

29. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (29), 09-Ноя-25, 13:51 
flare engine
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

32. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от Аноним (32), 09-Ноя-25, 14:35 
> изометрические гамесы

Ты что таблеток объелся? Этот движок сам игру не сделает.

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

39. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (39), 09-Ноя-25, 15:54 
Ты даже не пытался искать.
https://github.com/bobeff/open-source-engines
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

6. "Релиз свободного игрового движка OpenMW 0.50"  +4 +/
Сообщение от Аноним (6), 09-Ноя-25, 11:32 
Долгой жизни и активного развития проекту!
Ответить | Правка | Наверх | Cообщить модератору

11. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от Аноним (9), 09-Ноя-25, 11:53 
Мне кажется движок не универсальный. Завязан на беседковское. Ресурсы под свою игру должны быть похожи на морровиндовские.
Ответить | Правка | Наверх | Cообщить модератору

18. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (18), 09-Ноя-25, 12:22 
Ресурсы упаковать в такой же контейнер или добавить поддержку ZIP не проблема. В плане самих данных: текстур, мешей, звуков, - хз.
Ответить | Правка | Наверх | Cообщить модератору

41. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от Аноним (39), 09-Ноя-25, 15:58 
>Представлен выпуск проекта OpenMW 0.50, развивающего свободную реализацию движка для ролевой игры в жанре фэнтези The Elder Scrolls 3: Morrowind.

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

Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

52. "Релиз свободного игрового движка OpenMW 0.50"  +2 +/
Сообщение от анон с ним (?), 09-Ноя-25, 17:55 
Без разницы на что должны быть похожи ресурсы, если игр на нём нет и не будет.
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

7. "Релиз свободного игрового движка OpenMW 0.50"  –9 +/
Сообщение от Шарп (ok), 09-Ноя-25, 11:36 
Графоний какой-то из первой половины нулевых. Зачем такое делать в 2к25?
Ответить | Правка | Наверх | Cообщить модератору

10. "Релиз свободного игрового движка OpenMW 0.50"  –1 +/
Сообщение от Аноним (9), 09-Ноя-25, 11:48 
я в stoneshard для себя ce-экспериментировал и слегка залип. Разнообразная Система RPG притянула. )
Ответить | Правка | Наверх | Cообщить модератору

14. "Релиз свободного игрового движка OpenMW 0.50"  +7 +/
Сообщение от Аноним (18), 09-Ноя-25, 12:18 
Чел, ты бы для приличия сравнил как выглядила оригинальная морра и запущенная под OpenMW. Ахрененный графоний. Не супер реалистичный, но всё, что нужно для создания красивого открытого мира, есть.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

15. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от KaZaaM4iK (ok), 09-Ноя-25, 12:18 
Не понял. При чём тут "графоний половины нулевых", если новость про движок для игры, которая была разработана в 2002 году. Или же ты думаешь, что сменил движок и у тебя 8к?
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

19. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (1), 09-Ноя-25, 12:29 
Игра 2002 года и без OpenMW нормально не поиграешь:
https://youtu.be/fkvMfLJK0Lw?si=XKgkGBIZiw2f8nDA&t=759
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

34. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (32), 09-Ноя-25, 14:39 
Чтобы игра не была размером в терабайт. Прошлая часть была с миром почти бесконечного размера. С миллионами персонажей. Такая современная игра на анреале ни на какой диск не поместится
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

40. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (39), 09-Ноя-25, 15:56 
Дело не в графонии а в геймплее.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

43. "Релиз свободного игрового движка OpenMW 0.50"  +4 +/
Сообщение от Аноним (39), 09-Ноя-25, 15:59 
У меня вопрос, зачем в 2kkk25 делают вас?
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

86. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от _kp (ok), 10-Ноя-25, 18:10 
>> Графоний какой-то из первой половины нулевых.

Это графика образца начала 2010х. Всё что выжали из древнего движка.
А в начале, в стоке было существенно страшнее.

Впрочем, эта игра идет на смартфоне, с дополнениями и модами, и отлично играбельна на сенсорном экране. А в этом классе, та же самая графика уже переходит в разряд фантастической. :)

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

12. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (18), 09-Ноя-25, 12:14 
Воу, кто-то занимается портом скайрима на OpenMW? Это же пушка!
Ответить | Правка | Наверх | Cообщить модератору

20. "Релиз свободного игрового движка OpenMW 0.50"  –4 +/
Сообщение от Аноним (20), 09-Ноя-25, 12:41 
В чём пушка? Скайрим самая скучная часть из всех.

Ответить | Правка | Наверх | Cообщить модератору

21. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от Аноним (90), 09-Ноя-25, 12:48 
Овливион скучнее был. Самая скучная даггерфол.
Ответить | Правка | Наверх | Cообщить модератору

67. "Релиз свободного игрового движка OpenMW 0.50"  –1 +/
Сообщение от Аноним (67), 10-Ноя-25, 00:09 
Арену не застали?
Ответить | Правка | Наверх | Cообщить модератору

16. "Релиз свободного игрового движка OpenMW 0.50"  –2 +/
Сообщение от зомбированный (?), 09-Ноя-25, 12:20 
только к концу 2025 года добавили эффект Доплера, который умели звуковые карточки ещё 90х годах прошлого века... мдя...
Ответить | Правка | Наверх | Cообщить модератору

23. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (20), 09-Ноя-25, 12:51 
Intel HDA тоже умеет?

По ощущениям, со времён, когда ESI Julia была топ картой, саундкарты только беспрестанно деградировали.

Ответить | Правка | Наверх | Cообщить модератору

25. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от зомбированный (?), 09-Ноя-25, 13:11 
все звуковые карточки на базе чипа Envy24HT не были игровыми от слова совсем, будь это ESI Juli@ или M-Audio Revo. Они вообще не умеют в эффект Доплера или ЕАХ
Ответить | Правка | Наверх | Cообщить модератору

28. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от Аноним (27), 09-Ноя-25, 13:30 
Все эти аппаратные ухищрения сейчас не нужны, всё прекрасно делается софтом.
99% звука сейчас — это встройка, если в неё что-то подобное пихать, это будет бессмысленное удорожание. А что касается качества, тут как раз встройки неплохо подтянулись.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

30. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от зомбированный (?), 09-Ноя-25, 13:57 
я как раз давно поджидал такого комментатора - софтовый 3D-вук полное фуфло!!! Это доказывает то, что в PlayStation 4 был специально добавлен аппаратный DSP. Если делать качественную реверберацию, а не на пресетах, как делают сейчас - то при 100 источниках звука твой core i7-12700 ляжет плашмями, точно также как Geforce 5080 ложится в Mafia 2 без дополнительного аппаратного обработчика PhisX !!! А помимо реверберации в 3D-звуке используются другие ресурсоемкие эффекты и с ростом полигонов растут требования к DSP в геометрической прогресси. Для современных гамесов с 128 источниками звука нужен DSP мощностью не менее 70000 MIPS !!!
Ответить | Правка | Наверх | Cообщить модератору

54. "Релиз свободного игрового движка OpenMW 0.50"  –1 +/
Сообщение от анон с ним (?), 09-Ноя-25, 18:02 
>Geforce 5080 ложится в Mafia 2 без дополнительного аппаратного обработчика PhisX

Спасибо, шиз. Обожаю твои каменты. И 12-летнего эксперта ещё. Да ладно, вас таких много тут. Просто шведский стол!:)

Ответить | Правка | Наверх | Cообщить модератору

56. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (1), 09-Ноя-25, 18:15 
Ну он прав.
В 5000-й линейке убрали поддержку 32-битного PhysX (Mafia II - 2010 года) и если в настройках включена PhysX в старых играх, то даже 5090 лагает:
https://youtu.be/XNoBsrgoppQ?si=JF1qGRM-I8M4-60k&t=1263
Ответить | Правка | Наверх | Cообщить модератору

58. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от зомбированный (?), 09-Ноя-25, 18:18 
для тех кто в бронепоезде
https://www.ixbt.com/news/2025/03/13/geforce-rtx-5080-gtx-58...
https://habr.com/ru/news/883778
Ответить | Правка | К родителю #54 | Наверх | Cообщить модератору

55. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (55), 09-Ноя-25, 18:02 
Хорошая шизофрения, отборная. В современный игры с HRTF попробуй поиграть только.
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

66. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от зомбированный (?), 09-Ноя-25, 23:32 
В каких современный гамесах ты играешь с HRTF и как ты его включаешь?
Ответить | Правка | Наверх | Cообщить модератору

62. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (62), 09-Ноя-25, 20:48 
Тоже поджидал этого коммента. Ведь в аппаратных DSP (особенно времён EAX и A3D) удивительно эффективное железо, куда нынешним CPU за ним угнаться.
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

64. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от зомбированный (?), 09-Ноя-25, 21:58 
DSP эффективнее CPU для обработки аудио в играх не просто "немного", а на порядки, в десятки и сотни раз, для специфических задач по ряду причин:

1. Гарвардская архитектура
CPU (Фон Неймановская архитектура): И команды (инструкции), и данные хранятся в одной памяти. Шина одна. Это создает "бутылочное горлышко": процессор не может одновременно загружать команду и данные, он делает это по очереди.

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

2. Параллелизм на уровне инструкций (ILP)
DSP спроектированы так, чтобы за один такт выполнять несколько операций. Типичная для аудио операция "Умножить и Накопить" (MAC - Multiply–Accumulate), которая является основой для фильтров, преобразований Фурье и т.д., выполняется на DSP за один такт. CPU же на это потратит несколько тактов.

3. Специализированные аппаратные блоки
DSP содержат "вшитые" в чип аппаратные ускорители для самых частых аудио-операций:

Аппаратные циклы: Позволяют зацикливать кусок кода без затратных проверок условия в конце каждой итерации (это "предсказано" аппаратно).

Бит-реверсивная адресация: Критически важна для быстрого выполнения Быстрого Преобразования Фурье (FFT).

Аппаратные акселераторы для кодеков: Современные аудио-DSP имеют блоки для кодирования/декодирования форматов вроде Opus, AAC, MP3 с минимальными затратами энергии.

4. Предсказуемость и детерминизм
Обработка аудио — это потоковая задача, требующая строгого соблюдения временных интервалов. Если вы не обработаете следующий сэмпл звука за 1/48000 секунды (для 48 кГц), будет слышимый щелчок или искажение.

Поэтому даже самые современные процы core i9 не смогут в современных гамесах рассчитывать звук полностью программно на уровне Audigy X-Fi (еах 5) - лагать будет мощно, фпс 1-2, но и мощности X-Fi для современных гамесов катострафически не хватит, потому что это было достаточно для гамесов 20 летней давности, а с тех пор полигонов выросло на порядки. Чем больше полигонов - тем больше отражений нужно вычислить...

В предыдущем комменте я написал в конце "Для современных гамесов с 128 источниками звука нужен DSP мощностью не менее 70 000 MIPS !!!" Для сравнения у Vortex 2 мощность 600 MIPS, а у Audigy X-Fi (EMU20k) 10 000 MIPS!!!

Ответить | Правка | Наверх | Cообщить модератору

68. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (67), 10-Ноя-25, 00:15 
> В предыдущем комменте я написал в конце "Для современных гамесов с 128 источниками звука нужен DSP мощностью не менее 70 000 MIPS !!!" Для сравнения у Vortex 2 мощность 600 MIPS, а у Audigy X-Fi (EMU20k) 10 000 MIPS!!!

Ужас! ужас! а сколько у современных CPU GIPS?

Ответить | Правка | Наверх | Cообщить модератору

69. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от зомбированный (?), 10-Ноя-25, 00:43 
Ну вот запусти преобразование Фурье на своём проце и на Audigy и тогда будешь рассказывать сколько там у тебя GIPS... ахахаххх
Наверное разработчики PlayStation получше тебя в этом соображают, если в ПС4 добавили отдельный DSP для 3D-звука !!!
Ответить | Правка | Наверх | Cообщить модератору

71. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (67), 10-Ноя-25, 05:24 
> Ну вот запусти преобразование Фурье на своём проце и на Audigy

На проце, допустим, я его запускал, ещё когда на первопне MP3 кодировал, а вот на Audigy это сделать как? Специально из закромов достану, чтобы сравнить.

> Наверное разработчики PlayStation получше тебя в этом соображают, если в ПС4 добавили отдельный DSP для 3D-звука !!!

Наверное, потому, что это устройство для совершенно определённых целей и с совершенно жёсткой конфигурацией? Там это имеет смысл. И да, это придаёт звуку какое-то особое волшебство? Я неоднократно играл, так чёт не заметил по сравнению с ПК.

Ответить | Правка | Наверх | Cообщить модератору

76. "Релиз свободного игрового движка OpenMW 0.50"  +2 +/
Сообщение от зомбированный (?), 10-Ноя-25, 09:22 
Для начала можно запустить простенький тест на Audigy:

#include <windows.h>
#include <dsound.h>
#include <cmath>
#include <vector>
#include <complex>

class FourierTest {
public:
    void generateTestSignal(std::vector<float>& signal, int sampleRate) {
        // Генерация тестового сигнала (синус + гармоники)
        for (int i = 0; i < signal.size(); i++) {
            double t = (double)i / sampleRate;
            signal[i] = 0.6f * sin(2 * M_PI * 1000 * t) +  // 1 kHz основная
                        0.3f * sin(2 * M_PI * 2000 * t) +  // 2 kHz гармоника
                        0.1f * sin(2 * M_PI * 3000 * t);   // 3 kHz гармоника
        }
    }
    
    void FFT(std::vector<std::complex<float>>& data) {
        // Реализация БПФ
        const size_t N = data.size();
        if (N <= 1) return;
        
        // Разделение на четные и нечетные
        std::vector<std::complex<float>> even(N/2), odd(N/2);
        for (size_t i = 0; i < N/2; i++) {
            even[i] = data[i*2];
            odd[i] = data[i*2+1];
        }
        
        // Рекурсивный вызов
        FFT(even);
        FFT(odd);
        
        // Объединение
        for (size_t k = 0; k < N/2; k++) {
            std::complex<float> t = std::polar(1.0f, -2.0f * M_PI * k / N) * odd[k];
            data[k] = even[k] + t;
            data[k + N/2] = even[k] - t;
        }
    }
};

если всё ОК, можно уже запустить приблизительно такой с профилированием и загрузкой ЦП, для измерения:
- Задержки ввода-вывода (latency)
- Способности обрабатывать данные без разрывов (glitches)
- Максимальную нагрузку, которую выдерживает звуковая карта:


#include <windows.h>
#include <dsound.h>
#include <cmath>
#include <vector>
#include <complex>
#include <chrono>
#include <thread>
#include <pdh.h>
#include <pdhmsg.h>
#include <iostream>
#include <iomanip>
#include <psapi.h>

#pragma comment(lib, "dsound.lib")
#pragma comment(lib, "dxguid.lib")
#pragma comment(lib, "winmm.lib")
#pragma comment(lib, "pdh.lib")

class CPUUsageMonitor {
private:
    PDH_HQUERY cpuQuery;
    PDH_HCOUNTER cpuTotalCounter;
    FILETIME prevSysKernel, prevSysUser, prevProcKernel, prevProcUser;

public:
    CPUUsageMonitor() : cpuQuery(NULL), cpuTotalCounter(NULL) {
        PdhOpenQuery(NULL, NULL, &cpuQuery);
        PdhAddEnglishCounter(cpuQuery, "\\Processor(_Total)\\% Processor Time", NULL, &cpuTotalCounter);
        PdhCollectQueryData(cpuQuery);
        
        SYSTEM_INFO sysInfo;
        FILETIME ftime, fsys, fuser;
        
        GetSystemInfo(&sysInfo);
        GetSystemTimeAsFileTime(&ftime);
        memcpy(&prevSysKernel, &fsys, sizeof(FILETIME));
        memcpy(&prevSysUser, &fuser, sizeof(FILETIME));
    }
    
    ~CPUUsageMonitor() {
        if (cpuQuery) PdhCloseQuery(cpuQuery);
    }
    
    double getCurrentCPUUsage() {
        PDH_FMT_COUNTERVALUE counterVal;
        PdhCollectQueryData(cpuQuery);
        PdhGetFormattedCounterValue(cpuTotalCounter, PDH_FMT_DOUBLE, NULL, &counterVal);
        return counterVal.doubleValue;
    }
    
    double getProcessCPUUsage(HANDLE processHandle) {
        FILETIME ftime, fsys, fuser;
        FILETIME fcreate, fexit, fkernel, fuserproc;
        
        GetSystemTimeAsFileTime(&ftime);
        GetProcessTimes(processHandle, &fcreate, &fexit, &fkernel, &fuserproc);
        
        ULARGE_INTEGER now, sys, user, procKernel, procUser;
        memcpy(&now, &ftime, sizeof(FILETIME));
        memcpy(&sys, &prevSysKernel, sizeof(FILETIME));
        memcpy(&user, &prevSysUser, sizeof(FILETIME));
        memcpy(&procKernel, &prevProcKernel, sizeof(FILETIME));
        memcpy(&procUser, &prevProcUser, sizeof(FILETIME));
        
        ULARGE_INTEGER newSys, newUser, newProcKernel, newProcUser;
        memcpy(&newSys, &fsys, sizeof(FILETIME));
        memcpy(&newUser, &fuser, sizeof(FILETIME));
        memcpy(&newProcKernel, &fkernel, sizeof(FILETIME));
        memcpy(&newProcUser, &fuserproc, sizeof(FILETIME));
        
        double percent = 0.0;
        ULONGLONG totalSys = (newSys.QuadPart - sys.QuadPart) + (newUser.QuadPart - user.QuadPart);
        ULONGLONG totalProc = (newProcKernel.QuadPart - procKernel.QuadPart) +
                             (newProcUser.QuadPart - procUser.QuadPart);
        
        if (totalSys > 0) {
            percent = (double)totalProc / totalSys * 100.0;
        }
        
        memcpy(&prevSysKernel, &fsys, sizeof(FILETIME));
        memcpy(&prevSysUser, &fuser, sizeof(FILETIME));
        memcpy(&prevProcKernel, &fkernel, sizeof(FILETIME));
        memcpy(&prevProcUser, &fuserproc, sizeof(FILETIME));
        
        return percent;
    }
};

class MemoryMonitor {
public:
    static SIZE_T getProcessMemoryUsage() {
        PROCESS_MEMORY_COUNTERS pmc;
        if (GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc))) {
            return pmc.WorkingSetSize / 1024; // KB
        }
        return 0;
    }
    
    static SIZE_T getPeakMemoryUsage() {
        PROCESS_MEMORY_COUNTERS pmc;
        if (GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc))) {
            return pmc.PeakWorkingSetSize / 1024; // KB
        }
        return 0;
    }
};

class HighPrecisionTimer {
private:
    LARGE_INTEGER frequency;
    bool supported;
    
public:
    HighPrecisionTimer() {
        supported = QueryPerformanceFrequency(&frequency);
    }
    
    double getTime() {
        if (supported) {
            LARGE_INTEGER current;
            QueryPerformanceCounter(¤t);
            return (double)current.QuadPart / frequency.QuadPart;
        }
        return (double)GetTickCount() / 1000.0;
    }
};

class FourierTest {
private:
    CPUUsageMonitor cpuMonitor;
    HighPrecisionTimer timer;
    
public:
    struct PerformanceMetrics {
        double totalTime;
        double fftTime;
        double iOTime;
        double cpuUsage;
        double memoryUsage;
        double peakMemory;
        int bufferSize;
        std::string testType;
    };
    
    void generateTestSignal(std::vector<float>& signal, int sampleRate, float frequency = 1000.0f) {
        for (size_t i = 0; i < signal.size(); i++) {
            double t = (double)i / sampleRate;
            // Сложный сигнал с несколькими гармониками
            signal[i] = 0.6f * sin(2 * M_PI * frequency * t) +
                        0.3f * sin(2 * M_PI * frequency * 2 * t) +
                        0.1f * sin(2 * M_PI * frequency * 3 * t) +
                        0.05f * sin(2 * M_PI * frequency * 5 * t);
        }
    }
    
    void FFT(std::vector<std::complex<float>>& data) {
        const size_t N = data.size();
        if (N <= 1) return;
        
        // Разделение на четные и нечетные
        std::vector<std::complex<float>> even(N/2), odd(N/2);
        for (size_t i = 0; i < N/2; i++) {
            even[i] = data[i*2];
            odd[i] = data[i*2+1];
        }
        
        // Рекурсивный вызов
        FFT(even);
        FFT(odd);
        
        // Объединение
        for (size_t k = 0; k < N/2; k++) {
            std::complex<float> t = std::polar(1.0f, -2.0f * M_PI * k / N) * odd[k];
            data[k] = even[k] + t;
            data[k + N/2] = even[k] - t;
        }
    }
    
    void optimizedFFT(std::vector<std::complex<float>>& data) {
        const size_t N = data.size();
        size_t k = N, n;
        float thetaT = M_PI / N;
        std::complex<float> phiT = std::complex<float>(cos(thetaT), -sin(thetaT));
        std::complex<float> T;
        
        while (k > 1) {
            n = k;
            k >>= 1;
            phiT = phiT * phiT;
            T = 1.0f;
            
            for (size_t l = 0; l < k; l++) {
                for (size_t a = l; a < N; a += n) {
                    size_t b = a + k;
                    std::complex<float> t = data[a] - data[b];
                    data[a] += data[b];
                    data[b] = t * T;
                }
                T *= phiT;
            }
        }
        
        // Бит-реверс перестановка
        size_t j = 0;
        for (size_t i = 0; i < N - 1; i++) {
            if (i < j) std::swap(data[i], data[j]);
            
            size_t k = N >> 1;
            while (k <= j) {
                j -= k;
                k >>= 1;
            }
            j += k;
        }
    }
    
    PerformanceMetrics testCPUFFT(int bufferSize, int sampleRate, bool useOptimized = false) {
        PerformanceMetrics metrics;
        metrics.bufferSize = bufferSize;
        metrics.testType = useOptimized ? "CPU Optimized FFT" : "CPU Standard FFT";
        
        std::vector<float> testSignal(bufferSize);
        generateTestSignal(testSignal, sampleRate);
        
        double startMemory = MemoryMonitor::getProcessMemoryUsage();
        double startCPU = cpuMonitor.getCurrentCPUUsage();
        double startTime = timer.getTime();
        
        // Выполнение БПФ
        std::vector<std::complex<float>> fftData(bufferSize);
        for (size_t i = 0; i < bufferSize; i++) {
            fftData[i] = std::complex<float>(testSignal[i], 0.0f);
        }
        
        double fftStartTime = timer.getTime();
        if (useOptimized) {
            optimizedFFT(fttData);
        } else {
            FFT(fttData);
        }
        double fftEndTime = timer.getTime();
        
        double endTime = timer.getTime();
        double endCPU = cpuMonitor.getCurrentCPUUsage();
        double endMemory = MemoryMonitor::getProcessMemoryUsage();
        
        metrics.totalTime = (endTime - startTime) * 1000; // мс
        metrics.fftTime = (fftEndTime - fftStartTime) * 1000; // мс
        metrics.cpuUsage = (startCPU + endCPU) / 2.0;
        metrics.memoryUsage = (startMemory + endMemory) / 2.0;
        metrics.peakMemory = MemoryMonitor::getPeakMemoryUsage();
        
        return metrics;
    }
    
    PerformanceMetrics testSoundCardFFT(int bufferSize, int sampleRate) {
        PerformanceMetrics metrics;
        metrics.bufferSize = bufferSize;
        metrics.testType = "Sound Card FFT";
        
        std::vector<float> testSignal(bufferSize);
        generateTestSignal(testSignal, sampleRate);
        
        double startMemory = MemoryMonitor::getProcessMemoryUsage();
        double startCPU = cpuMonitor.getCurrentCPUUsage();
        double startTime = timer.getTime();
        
        // Эмуляция работы со звуковой картой
        // В реальном приложении здесь будет DirectSound код
        double ioStartTime = timer.getTime();
        
        // Эмуляция задержки звуковой карты
        std::this_thread::sleep_for(std::chrono::microseconds(500));
        
        // Эмуляция аппаратного БПФ
        std::vector<std::complex<float>> fftData(bufferSize);
        for (size_t i = 0; i < bufferSize; i++) {
            fftData[i] = std::complex<float>(testSignal[i], 0.0f);
        }
        
        optimizedFFT(fttData); // Аппаратное ускорение
        
        double ioEndTime = timer.getTime();
        double endTime = timer.getTime();
        double endCPU = cpuMonitor.getCurrentCPUUsage();
        double endMemory = MemoryMonitor::getProcessMemoryUsage();
        
        metrics.totalTime = (endTime - startTime) * 1000; // мс
        metrics.iOTime = (ioEndTime - ioStartTime) * 1000; // мс
        metrics.cpuUsage = (startCPU + endCPU) / 2.0;
        metrics.memoryUsage = (startMemory + endMemory) / 2.0;
        metrics.peakMemory = MemoryMonitor::getPeakMemoryUsage();
        
        return metrics;
    }
    
    void runComparativeAnalysis() {
        const int sizes[] = {256, 512, 1024, 2048, 4096, 8192, 16384};
        const int sampleRate = 44100;
        const int iterations = 5;
        
        std::cout << "==================================================================================" << std::endl;
        std::cout << "                   СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ" << std::endl;
        std::cout << "==================================================================================" << std::endl;
        std::cout << std::setw(8) << "Размер" << " | "
                  << std::setw(18) << "Тип теста" << " | "
                  << std::setw(10) << "Время(мс)" << " | "
                  << std::setw(12) << "БПФ время(мс)" << " | "
                  << std::setw(10) << "ЦПУ(%)" << " | "
                  << std::setw(10) << "Память(МБ)" << " | "
                  << std::setw(12) << "Пик память(МБ)" << std::endl;
        std::cout << "----------------------------------------------------------------------------------" << std::endl;
        
        for (int size : sizes) {
            // Тест стандартного БПФ на ЦПУ
            PerformanceMetrics cpuStd = testCPUFFT(size, sampleRate, false);
            printMetrics(cpuStd);
            
            // Тест оптимизированного БПФ на ЦПУ
            PerformanceMetrics cpuOpt = testCPUFFT(size, sampleRate, true);
            printMetrics(cpuOpt);
            
            // Тест звуковой карты
            PerformanceMetrics soundCard = testSoundCardFFT(size, sampleRate);
            printMetrics(soundCard);
            
            std::cout << "----------------------------------------------------------------------------------" << std::endl;
            
            // Небольшая пауза между тестами
            std::this_thread::sleep_for(std::chrono::milliseconds(100));
        }
    }
    
    void printMetrics(const PerformanceMetrics& metrics) {
        std::cout << std::setw(8) << metrics.bufferSize << " | "
                  << std::setw(18) << metrics.testType << " | "
                  << std::setw(10) << std::fixed << std::setprecision(3) << metrics.totalTime << " | "
                  << std::setw(12) << std::fixed << std::setprecision(3) << metrics.fftTime << " | "
                  << std::setw(10) << std::fixed << std::setprecision(1) << metrics.cpuUsage << " | "
                  << std::setw(10) << std::fixed << std::setprecision(1) << (metrics.memoryUsage / 1024) << " | "
                  << std::setw(12) << std::fixed << std::setprecision(1) << (metrics.peakMemory / 1024) << std::endl;
    }
    
    void runStressTest() {
        std::cout << "\n==================================================================================" << std::endl;
        std::cout << "                         ТЕСТ ПОД НАГРУЗКОЙ" << std::endl;
        std::cout << "==================================================================================" << std::endl;
        
        const int bufferSize = 4096;
        const int sampleRate = 44100;
        const int stressIterations = 100;
        
        double totalCPUTime = 0;
        double totalSoundCardTime = 0;
        double maxCPUUsage = 0;
        double maxMemoryUsage = 0;
        
        for (int i = 0; i < stressIterations; i++) {
            PerformanceMetrics cpu = testCPUFFT(bufferSize, sampleRate, true);
            PerformanceMetrics sound = testSoundCardFFT(bufferSize, sampleRate);
            
            totalCPUTime += cpu.totalTime;
            totalSoundCardTime += sound.totalTime;
            maxCPUUsage = std::max(maxCPUUsage, cpu.cpuUsage);
            maxMemoryUsage = std::max(maxMemoryUsage, cpu.memoryUsage);
            
            if (i % 10 == 0) {
                std::cout << "Итерация " << i << "/" << stressIterations
                          << " - ЦПУ: " << std::fixed << std::setprecision(2) << cpu.totalTime << "мс"
                          << ", Зв.карта: " << sound.totalTime << "мс" << std::endl;
            }
        }
        
        std::cout << "\nРЕЗУЛЬТАТЫ ТЕСТА ПОД НАГРУЗКОЙ:" << std::endl;
        std::cout << "Среднее время ЦПУ: " << std::fixed << std::setprecision(3)
                  << (totalCPUTime / stressIterations) << " мс" << std::endl;
        std::cout << "Среднее время звуковой карты: " << (totalSoundCardTime / stressIterations) << " мс" << std::endl;
        std::cout << "Максимальная загрузка ЦПУ: " << std::fixed << std::setprecision(1)
                  << maxCPUUsage << "%" << std::endl;
        std::cout << "Максимальное использование памяти: " << std::fixed << std::setprecision(1)
                  << (maxMemoryUsage / 1024) << " МБ" << std::endl;
        
        double speedup = totalCPUTime / totalSoundCardTime;
        std::cout << "Ускорение звуковой карты: " << std::fixed << std::setprecision(2)
                  << speedup << "x" << std::endl;
    }
};

int main() {
    SetConsoleOutputCP(CP_UTF8);
    
    std::cout << "Запуск теста производительности БПФ..." << std::endl;
    std::cout << "Аудиокарта: Audigy X-Fi" << std::endl;
    std::cout << "Инициализация мониторов производительности..." << std::endl;
    
    FourierTest tester;
    
    // Запуск сравнительного анализа
    tester.runComparativeAnalysis();
    
    // Запуск теста под нагрузкой
    tester.runStressTest();
    
    std::cout << "\nТестирование завершено. Нажмите Enter для выхода...";
    std::cin.get();
    
    return 0;
}

Ответить | Правка | Наверх | Cообщить модератору

94. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (27), 11-Ноя-25, 00:32 
> В-третьих, а не дешевые ли у тебя наушники?

Во-первых, на консолях на бытовых ТВ играют. Как правило, на их же динамиках.

Вышеприведённые тесты вообще не понял, что должны показать, по-человечески можно?

Ответить | Правка | Наверх | Cообщить модератору

97. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от зомбированный (?), 11-Ноя-25, 01:01 
> Во-первых, на консолях на бытовых ТВ играют. Как правило, на их же динамиках.

чтобы на ТВ получить 3д-звук без наушников нужно подключать минимум 4 колонки (2 сзади)
> Вышеприведённые тесты вообще не понял, что должны показать, по-человечески можно?

измеряет мипсы и гипсы на аудиджи и проце через преобразование Фурье

Ответить | Правка | Наверх | Cообщить модератору

81. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от зомбированный (?), 10-Ноя-25, 10:36 
> Наверное, потому, что это устройство для совершенно определённых целей и с совершенно жёсткой конфигурацией? Там это имеет смысл. И да, это придаёт звуку какое-то особое волшебство? Я неоднократно играл, так чёт не заметил по сравнению с ПК.

Во-первых, какая у тебя ПС4 - не на всех есть DSP (Базовая PS4 (Slim, Fat) - Отсутствует, PS4 Pro - Присутствует)
Во-вторых, далеко не все игры используют этот DSP
В-третьих, а не дешевые ли у тебя наушники?

Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

95. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (27), 11-Ноя-25, 00:38 
> Во-первых, какая у тебя ПС4 - не на всех есть DSP (Базовая PS4 (Slim, Fat) - Отсутствует, PS4 Pro - Присутствует)

Ой, как всё сложно-то. Я было подумал, куплю божественную плойку и получу неземной звук (на своём телевизоре за тридцать тыщ, да), а тут сложнее с подбором конфигурации, чем на ПК.

Ответить | Правка | Наверх | Cообщить модератору

100. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от всё сжечь (?), 11-Ноя-25, 05:32 
Хер знает. Я сейчас играю на PS5 Pro и наушники гарнитура Elite. Всё как-бы зашибись. Я не тот аноним. PS4 и PS4 Pro в коробках лежат. Наследники задорого продадут :D
Ответить | Правка | К родителю #81 | Наверх | Cообщить модератору

93. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от зомбированный (?), 11-Ноя-25, 00:30 
а у PS5 есть не просто чип, а целый кастомный блок на основе GPU - Tempest Engine, способный обрабатывать сотни immersivных 3D-звуков с высочайшей детализацией, так сказать современная версия Wavetracing на Vortex... А ПК-бояре благодаря Микрософту как минимум ближайшие десятилетие будут отставать в области звука лет на 20 от PS... ахаахахх
Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

84. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от winorun (?), 10-Ноя-25, 15:08 
Ты сейчас бред несеш. Слышал звон, да не знаешь где он.
Ответить | Правка | К родителю #64 | Наверх | Cообщить модератору

31. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (1), 09-Ноя-25, 14:06 
>Все эти аппаратные ухищрения сейчас не нужны

Может быть, но разница есть даже с простыми картами:
- https://www.asus.com/ru/motherboards-components/sound-cards/.../
- https://www.asus.com/ru/motherboards-components/sound-cards/.../

Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

101. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от зомбированный (?), 11-Ноя-25, 10:12 
благодаря таким как ты звук на ПК откатился на 20 лет назад - до появления ЕАХ и A3D
ты просто из этой категории людей
https://rutube.ru/video/851ea75ace0deba9eb197255dfec4a3d/
нужно чтото с этим делать...
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

103. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (27), 11-Ноя-25, 15:07 
EAX и A3D были вынужденной мерой, причём оба не без недостатков. Сейчас 3D-звук запросто реализуется программно. Не знаю, как ещё это донести. Ну хоть API FMOD бегло просмотрите, например.
Ответить | Правка | Наверх | Cообщить модератору

104. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от зомбированный (?), 11-Ноя-25, 18:03 
Ну я не вижу в FMOD многих API, какие есть в EAX и A3D. А ещё я вижу FMOD любит жульничать с источниками звука, экономя на ресурсах ПЦ, мдя... Наверное инженеры PlayStation 5 получше тебя в этом соображают и не просто так выделили для звука мощнейший аппаратный блок ??? Качественный 3D-звук - это такая же сложная технология, как RTX, которая требует мощный, многопоточный асик
Ответить | Правка | Наверх | Cообщить модератору

105. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (27), 11-Ноя-25, 21:13 
> Ну я не вижу в FMOD многих API, какие есть в EAX и A3D.

Стыд и позор разработчикам, которые не стали слепо копировать древние API.

> А ещё я вижу FMOD любит жульничать с источниками звука, экономя на ресурсах ПЦ, мдя...

То-то A3D и EAX не жульничали.

> Наверное инженеры PlayStation 5 получше тебя в этом соображают и не просто так выделили для звука мощнейший аппаратный блок ???

Насчёт «мощнейший» это маректологическая шелуха, а зачем они так сделали — а потому что могут. У них унифицированная архитектура, которая клепается многомиллионными тиражами по 10 лет, при довольно слабом CPU. Там это выгодно. А вот 90% пользователей ПК 3D-звук на встройке нафиг не сдался, а нишевые устройства всегда будут по оверпрайсу.

> Качественный 3D-звук - это такая же сложная технология, как RTX, которая требует мощный, многопоточный асик

Ага, и типа у саундбластеров и вортексов он был.

Ответить | Правка | Наверх | Cообщить модератору

106. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от зомбированный (?), 11-Ноя-25, 22:27 
> Стыд и позор разработчикам, которые не стали слепо копировать древние API.

ну я сужу не по названиям API, а по описаниям функций

> То-то A3D и EAX не жульничали.

аргументы? у тебя их нет, потому что ты даже не читал документацию по A3D...

> Качественный 3D-звук - это такая же сложная технология, как RTX, которая требует мощный, многопоточный асик
> Ага, и типа у саундбластеров и вортексов он был.

Достаточно сравнить, как звучит реверберация в пещерах в оригинальной Diablo 2(с включенным ЕАХ) и Diablo 2 Resurrected, чтобы понять - какой фуфлыжный современный, программный 3D-звук... А вот большинство пользователей не смогут этого сделать, потому что они не смогут запустить на своих пк ХР... Я вот недавно перепрошел оригинальную Diablo 2 наслаждаясь реверберацией в пещерах и дворцах...

P.S. я вот не понимаю твоего противодействия качественному 3D-звуку, словно у тебя кусок хлеба забирают. Даже у той бабки, которой интернет не нужон, и то есть больше логичных аргументов... А может это такой генетический код русских людей - препятствовать развитию, японцы они не такие - они в отличие от русских много создали передовых технологий, а не только PlayStation...  

Ответить | Правка | Наверх | Cообщить модератору

38. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от Аноним (36), 09-Ноя-25, 15:23 
> Intel HDA тоже умеет?

Что такое "доплер"? Это изменение частоты... Т.е. скорости выборки из буфера. Меняется всего лишь сэмплинг.

Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

45. "Релиз свободного игрового движка OpenMW 0.50"  –2 +/
Сообщение от Аноним (1), 09-Ноя-25, 16:13 
https://en.wikipedia.org/wiki/Doppler_effect
Ответить | Правка | Наверх | Cообщить модератору

47. "Релиз свободного игрового движка OpenMW 0.50"  +1 +/
Сообщение от Аноним (36), 09-Ноя-25, 16:58 
Чел, что ты хотел показать этой ссылкой?

... is the change in the frequency ...

Ответить | Правка | Наверх | Cообщить модератору

24. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Legionum (?), 09-Ноя-25, 12:52 
Ну ты же не помогал проекту, поэтому все получилось медленнее.
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

44. "Релиз свободного игрового движка OpenMW 0.50"  –2 +/
Сообщение от Аноним (39), 09-Ноя-25, 16:00 
Мне нравятся только первые две части Старинных свитков, те что двухмерные. Все что позже, трехмерные скатились в попсу.
Ответить | Правка | Наверх | Cообщить модератору

59. "Релиз свободного игрового движка OpenMW 0.50"  –1 +/
Сообщение от Lyrix (ok), 09-Ноя-25, 19:56 
Арена и Багерфол - попса, ибо двухмерка тоже в моде была. Настоящий тру это настолки по DnD :)
Ответить | Правка | Наверх | Cообщить модератору

65. "Релиз свободного игрового движка OpenMW 0.50"  +2 +/
Сообщение от Аноним (65), 09-Ноя-25, 23:08 
Настолки по DnD это буквально коммерческие поделки создаваемая корпорацией ради денег, а Computer RPG это настоящее искусство.
Ответить | Правка | Наверх | Cообщить модератору

80. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Соль земли2 (?), 10-Ноя-25, 10:27 
DnD крутая система. Класс брони, спасброски. Но вроде, как закопирайчена. Иначе было бы больше игр с ней.
Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

88. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от _kp (ok), 10-Ноя-25, 18:18 
набросок или идея не может быль лучше законченного произведения.
Например в отличии от фильма, сценарий это фильма обычного человека вообще не заинтересует, это только для знатоков, что бы узнать, что было задумано, что вырезали, что испортили..
Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

61. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от суверенный гейминг (?), 09-Ноя-25, 20:24 
Тот скрин с зелёными холмами - чисто Зельда с первого Свича. Или те Зельды всё же покрасивее будут. Сейчас смартфоны в лучшую графику могут.
Ответить | Правка | Наверх | Cообщить модератору

73. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от суеверный гейминг (-), 10-Ноя-25, 06:11 
Ассеты уж такие какие есть. Сколько движок не наворачивай а ассеты оригинала - такие какие есть.
Ответить | Правка | Наверх | Cообщить модератору

82. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (90), 10-Ноя-25, 12:24 
> Тот скрин с зелёными холмами - чисто Зельда с первого Свича. Или
> те Зельды всё же покрасивее будут. Сейчас смартфоны в лучшую графику
> могут.

Это недоигры с недоконсолей. Зельда с гейкуба (и другие более ранние игры) сегодня очень неплохо смотрится в эмуляторе, современным консолям это недостижимо. А спеки посмотри сам, в оригинале, конечно, не очень выглядит. Примерно такая же история с играми на glide api -- сегодня они нормально выглядят по сравнению с другими играми того времени. Игры с soundblaster eax намного лучше современных, и это всего лишь примитивный звук. Так что, если игры выглядят плохо, это только заслуга разработчиков.

Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

89. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от _kp (ok), 10-Ноя-25, 18:23 
> чисто Зельда

В Morrowind мир не выхлоп ИИ генератора, а вручную сделан, со всеми мелочами, и сам по себе уже произведение.
А в Зельде мир однообразен, но это не плохо прикрыто его интерактивностью.

Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

99. Скрыто модератором  +/
Сообщение от всё сжечь (?), 11-Ноя-25, 05:26 
Ответить | Правка | Наверх | Cообщить модератору

70. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (70), 10-Ноя-25, 04:45 
Лучше бы картографировали всю землю в открытый мир. Хоть польза была бы от этих движков.
Ответить | Правка | Наверх | Cообщить модератору

75. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (-), 10-Ноя-25, 07:48 
> Лучше бы картографировали всю землю в открытый мир. Хоть польза была бы от этих движков.

Скачай себе OSM planet file, вон те геопаркеты из новости и SRTM сканы - и занимайся себе натяжкой совы^W геоданных на глобус. Хотя геоданные то как таковые уже есть, в ломовом объеме - остается только визуализацию придумать.

Просто как вы понимаете, даже в больших и относительно подробных данных типа osm - допустим как выглядит дом разрисовано очень базово. Указан его полигон. В лучшем случае число этажей. Больше там никаких деталей визуализации ессно нет. А если их сделать более подробными - вы наверное не представляете себе объем этих данных...

Ответить | Правка | Наверх | Cообщить модератору

79. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Соль земли2 (?), 10-Ноя-25, 10:25 
Они свой движок при этом пилят? Проще же взять Godot. Можно даже будет логику подгрузки локаций повторить на GDScript.
Ответить | Правка | Наверх | Cообщить модератору

83. "Релиз свободного игрового движка OpenMW 0.50"  +2 +/
Сообщение от Tita_M (ok), 10-Ноя-25, 14:22 
Проекту, наверное, больше 10 лет и в то время не было понятно, что godot сильно разовьётся со временем, а не сгниёт как куча других отрытых игровых движков. OpenMW уже использовал готовый игровой движок первое время, вроде тот из которого Urho3D вырос, но была низкая производительность и в конце концов решили взять готовый 3D-движок OpenSceneGraph и некоторые другие сторонние модули и писать остальное самим. Сейчас уже появился VulkanSceneGraph и кто-то делает экспериментальный и не официальный порт на него, но официальных планов по переходу, на сколько я знаю, нет.
Ответить | Правка | Наверх | Cообщить модератору

96. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (27), 11-Ноя-25, 00:41 
> и в то время не было понятно, что godot сильно разовьётся со временем, а не сгниёт как куча других отрытых игровых движков.

Зато теперь это наконец стало понятно.

Ответить | Правка | Наверх | Cообщить модератору

98. "Релиз свободного игрового движка OpenMW 0.50"  +/
Сообщение от Аноним (98), 11-Ноя-25, 01:14 
Когда начиналась рзаработка OpenMW, в 2008 году, никакого Godot ещё не релизном виде не было. В качестве рендера они взяли Ogre3D (это именно 3д движок, отвечающий только за отрисовку графики).

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

Ответить | Правка | К родителю #79 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру