About Netimmerse engine version 4.2
Пара слов о формате ниф файла 4.2, или нцать НЕ любезностей в адрес беседки.
Морровинд появился не Благодаря а ВОПРЕКИ.(С)
Вся история беседки это отречения от Дара, которым был Морровинд(С)
Беседка получила в свои руки Алмаз, но в итоге сделала из него стекляшку(С)
Дух Морровинда - Свобода. Но в курице от нее остался только дым и пластик(С)
Беседка боится древних свитков, они ее породили, они ее и погребут(С)
Поэтому, мы до сих пор не увидели ТЕС6, да(С)
Обновление движка Netimmerse (в скором времени поглощенным gamebryo) до версии 4.2, как можно видеть из даты плагина к МАХу, произошло в скоре после выхода Морровинда. А именно в мае-июле 2002 года.
Это обновление принесло массу всего полезного и вкусного!
Об этом см. внизу страницы.
Т.е. обновление до 4.2 версии принесло весомое число полезностей!
Как простых улучшений быстродействия, так и добавления полноценной поддержки многих элементов, уже бывших в коде 4.0, но еще не работали в полном объеме.
Самые заметные улучшения 4.2, это:
- поддержка шейдерных текстур.
- изменений организации
КФ файла. Она была упрощена в разы.
- добавлено создание полноценных
Порталов.
- добавление Bone
Lod контроллеров.
Это когда можно изменять детализацию анимацию костей.
В удалении, работают только самые заметные детали, при приближении включается дополнительная анимация.
И еще много чего полезного привнесло это обновление!
Увы, ничего из этого не было добавлено в МВ.
Как помнит Вики(педия) - трибунал это 2003 год, а Бладмун вовсе 2004ый.
Т.е. два крупных обновления затрагивавших ЕХЕ файл игры!
Но ни одно из них, не было патчем до версии 4.2.
И вот тут самое "приятное"!
В то же время существовали еще две игры основанных на движке 4.0 версии.
Это: Freedom Force (FFE) и Dark Age of Camelot (DAoC).
И, обе эти игры получили обновление до версии 4.2!
А DAoC еще и до версии 10.х, но это не удивительно, поскольку игра сетевая и жива по сей (2020) год.
Морровинд тоже жив, правда по иным причинам, но он не получил не одного из возможных обновлений движка.
Равно как и нормальных патчей для багов, но это уже другая история.
И если говорить, что обновление до 10-20х версии ниф файлов, может быть проблематичным, т.к. в теории может привести к проблемам со старыми моделями.
То вот обновление до 4.2 (да еще в те годы!) не создало бы проблем, но наоборот, улучшило бы быстродействие и расширило арсенал модмейкеров в разы! Не говоря уже, что могло бы исправить массу багов.
Впрочем, в каждой ложки дегтя не без капли меду(С)
Зная беседку, можно было бы ожидать ухудшения стабильности, или иных проблем.
Да-да Вики помнит Фол-аут4 и 76! и что курица это все тот же Нетиммерсе 4.0, но с подтяжкой лица.
А еще был Бладмун с "грязными ГМСТ", что вообщем-то тоже баг(С)
Однако, весьма печально, что игра продаваемая уже более 18 лет, не получила самых очевидных улучшений которые без значительных сложностей могли быть привнесены в Трибунале, или в Бладмуне.
Может быть, лет еще через так 10, когда ОпМВ (наконец-то) дорастет таки до версии 1.0 и сможет развиваться дальше, "мы" получим всякие новые вкусности, которых нет(не было)и вероятно)никогда)не будет) в Ванильном МВ. Но которые могли бы быть в нем уже больше 10 лет как.
Философские выводы оставим на усмотрение читателя, а сейчас просто отметим, то, чего мы не увидели еще тогда:
Выдержка из официальной справки:
NetImmerse 4.2.2 (это касается всего. И поддержки плагинов для МАХа и исправлений движка).
· SceneImmerse: Fixed a bug that was preventing cameras controlled by an NiPathController from animating correctly.
· SceneImmerse: Now properly setting the selective update flags on ABV wireframe representations so that they update properly when visible.
· SceneImmerse: Now Preventing the DX8 renderer from being recreated when the window size has a dimension of zero. This prevents a crash that occurred when the render view's window was sized to zero.
· AnImmerse: Added a test for NULL to prevent a crash that occurs when AnImmerse encounters null entries in an NiNode child array.
· AnImmerse: Fixed a couple bugs relating to path settings. Made the Path Settings dialog box more intuitive.
· NiStripify: Changed Stripify to accommodate NiBoneLODControllers so that NIF files containing NiBoneLODControllers will export correctly on PS2 and NGC.
· NiMilesAudio has been enhanced to run on Miles 6.5c. This is an upgrade from the previous version Miles 6.1a. As you upgrade be sure you setup your MILES_PATH correctly (see below) and delete your old Miles redistribution files. You must delete ALL of the old redistribution file because Miles 6.5c will give runtime errors attempting to load the old files. Attempting to compile NiMilesAudio with an older version of Miles will result in compile errors associated with a sounds gain.
· NetImmerse version 4.2.2 and later uses the MILES_PATH environment variable in the dsp to point to install location of Miles. Because Developer Studio reads all environment variables at startup, be sure you restart Developer Studio after creating the environment variable.
· The NiAudioSource has been upgraded to include GetPlayLength() which get the length of a sound.
· A bug was fixed in NiMilesSource to correct memory leak associated with unload a sound which was never played.
· A bug was fixed in NiMilesSource so correctly show the status of a sound as DONE when it has finished playing.
· A bug was fixed in NiMilesSource so you can SetConeData() before the sound begins playing.
· A bug was fixed in NiMilesAudioSource to properly set the units per meter in Miles.
· NiPathController: Fixed a bug that could cause errors in banking around a curve.
· NiAnimation and NiOptimization were optimized such that animation data arrays will only have one key if they contain necessary data that is not animated instead of two, and GenInterp will quick-out when it encounters such arrays.
· BoneLOD Sample: Added a sample that showcases the NiBoneLODController. It provides a sample MAX file and NiApplication-based application using an NiBoneLODController to optimize character update and render speed.
· NiBoneLODController: Changed Stripify to accommodate NiBoneLODControllers so that NIF files containing NiBoneLODControllers will export correctly on PS2 and NGC.
-
Fixed a bug in NiCollisionPropagation::TestCollisions to correct errors in cases of USE_TRIANGLES vs. USE_TRIANGLES.
-
-
Fixed a bug that caused NiUVControllers to be cloned incorrectly.
-
-
NiTSet: Fixed the OrderedRemoveAt function to decrement the size of the array after moving the elements, eliminating a possible memory exception.
Got rid of the extra max map types. This should help to avoid confusion about what Maps Gamebryo supports.
-
A new About box has been added to the Gamebryo 3ds max Plug-in Utility rollout. This panel reflects the version number of Max, Havok, Character Studio, & Gamebryo used when building Gamebryo 3ds max Plug-in.
-
Due to the speed of stripifying large scenes, a "Stripify for viewer" checkbox has been added to the renderer panel.
-
Note Tracks in MAX files are no longer automatically assumed to indicate the root of a character for keyframe extraction unless they contain a text key whose first five characters are "start".
-
RemoveUnncessaryLookAtControllers was removing controllers from target cameras before the camera had been updated, causing incorrect transformations for the camera to be stored in the NIF file.
-
Fixed bug with skinning code where we weren't setting the object offset transform flag of the GetSkininitTM call.
-
PNG textures that have been palettized with alpha will no longer loose alpha on export. A new library, NiPNGReader.lib, has been linked into Gamebryo 3ds max Plug-in configurations to support this feature.
-
Fixed the exportation of NiBoneLODControllers.
-
Fixed a crash bug that sometimes occurred when exporting a 3ds max file with more than one animation sequence in it.
-
There are two new billboard modes, accessible by the user defined properties "billboardCenter" and "billboardRigidCenter".
-
Visibility controllers applied to particle systems now work. You should attach the visibility controller directly to the particle system.
-
You can optionally have SuperSpray particle systems emit from the icon emitter size rather than a point. Since this behavior is actually different from Max behavior, you must enable it explicitly, by adding "UseAreaSuperSpray=1" to {3dsmax}/plugcfg/mimmerse.ini .
-
The 3dsMax API makes no distinction between objects that are hidden explicitly by the artist vs. objects hidden because they're part of an inactive child of an LOD node. Thus, on export, Gamebryo 3ds max Plug-in can't distinguish between the two cases and must interpret hidden objects in an LOD node to be part of an inactive child. To work around this limitation in 3dsMax, the user may add the phrase "NiHide" as part of the user-defined data to hide the object (in the AppCull sense) on export.
-
Bone LOD support has now been added. Please see the documentation on this feature for more info.
-
Added support for MaxScripting of Export and Optimization settings. Please see the Gamebryo 3ds max Plug-in Maxscript documentation for more details.
-
Added -front [x | negx | y | negy] flag to NiKeyframeExtractor to support rotation accumulation facing directions other than down the pos x axis.
-
Made a fix so that Gamebryo 3ds max Plug-in now correctly sets the transforms on the NiParticles object so that space warps will work correctly with particle systems.
-
Fixed some issues where RemoveExtraUVSets was required with most Multi/Sub-Objects. UV animation with MSO is now supported. Fixed intermittent problem with Mix materials.
-
Added support for a User-Defined Properties tag attached to a particle system indicating to which node other than the root the NiParticles object should be attached. For more information, see the "Animation Systems" section of the NetImmerse Animation documentation
Список не полный, но одного этого вполне достаточно для понимая масштаба "потерь".
Но что же, утешим себя, что лучше Морровинд 4.0, чем курица 20.0 и лучшее враг хорошего.