Elder-scrolls IV Oblivion

Feedback on past, current, and future development.
User avatar
cc9cii
Posts: 478
Joined: 28 Mar 2013, 04:01

Re: Elder-scrolls IV Oblivion

Post by cc9cii » 10 Mar 2019, 00:38

It's just bullet + ogrebullet which we already had in 0.36. I'll add some more commentary on the videos below.

Workaround to missing bone reference:
The deformed forearms of NPCs in the previous video appear normal here. This proves my theory that the skinned mesh is referring to bones (e.g. Bip01 L ForeTwist) that are not updated in the animation (in this case idleanims/laugha.kf). The workaround is simply changing all those bone references to a nearby bone that should have similar rotations (i.e. Bip01 L Forearm) when assigning bone weighting during the skinning process. However, this hack won't work in all situations and I suspect I've simply not figured out how the NIF and the original engine works.

BreezeHome:
Feeling defeated by FO3, needed a bit of a pick-me-up so I turned to a familiar setting. But there's no letup anywhere. Years ago when I first started working on TES5 NIF loading with OpenCS I noticed that some models are turned around 180 deg (e.g. Architecture\WhiteRun\WRInteriors\WRIntRoofSTCorL.nif) and that there are references that control the loading of objects (e.g. upgrading by paying $$$ to Proventus Avenicci). I had forgotten about these.

I can't figure out what makes these back-to-front NIFs different. So for now the rotations at the root node are simply ignored for all TES5 NIFs. This doesn't seem to cause problems with other NIFs (at least in my limited testing so far). The parent references for controlling object loading is probably a bigger issue. These references can occur later in the ESM than the objects. Which means the loading has to be done in two parses - unless some other workaround can be devised. For the video, these are simply hard coded.

The interior lighting is not yet enabled, so everything is dark.

WhiteRun:
Initially getting out the door from BreezeHome ended up in crashes and half the meshes not rendering. The missing renders were simple coding error where BSLODTriShape were being inherited from the wrong parent class. But this highlights how TES5 tries to squeeze performance out of everything. I've not been able to figure out how the LOD control is done, however. The crashes were due to the NiSwitchNode in Salmon lacking a node name which caused the skeleton build logic to fail.

Once safely outside, had to get rid of the civil war stuff (again with parent references). As people have noted already, the frame rate is extremely poor. I've not bothered to look what's causing that but I suspect LOD has something to do with it. The Furniture Marker near the forge are not handled at all (all the while meshes) and the water shaders are not handled (again white). In fact I don't think any shaders are enabled at all, which wouldn't help with the performance.

Solitude:
This is my second favorite place to grind for gold and skills (and chances to get poison/disease resistance). Initially one could see through the worldspace ground mesh down to the water and terrain (which I might disable in worldspaces to increase performance). This was due to some of the nodes having the same name. To get around this had to add node number to the mesh name. In a similar issue, the Baked potato in Bard's College has two bones with the same name - not sure how to deal with this one.

Bthardamz:
Just your average Dwarven ruin. I just wanted to see if I would encounter major issues but fortunately didn't. The interior lighting is still not implemented so all interiors are bright and sunny just like the exterior cells.

Escape from Vault101:
Here is FO3 defeating me again. Currently the door animations are done using Ogre's node animation with the meshes "attached" to the nodes (bones) as if they are skinned. However this doesn't work in FO3. In fact even when the implementation is changed to attach Ogre::Entities to tagpoints the meshes are not in the right places. Had to abandon working on FO3 once more, it is too depressing.

Nagastani:
Nothing really interesting here but some leveled creatures. I have to say the animation in TES4 is so much better than TES3.

Physics:
Not much to see here, just some havok-like physics. We already had ogrebullet in 0.36 (probably much before that). The havok-like movements are simply enabled by assigning an Ogre::SceneNode to each btRigidBody and getting Bullet to move the SceneNode (which will move the attached Ogre::Entity). The complication here is (at least for me) figuring out what transform to use where. Currently the constraints are not re-implemented so no ragdoll. It is not clear which objects are meant to have "havok" behaviour. The NIF files have flags that indicate this but sometimes unexpected meshes also have this flag turned on.

The objects are in slow-motion due to the scaling factors in Bullet. Bullet calculations are done assuming real-world dimensions but our game world is not (and Havok is 7 times smaller still). So the objects move as if they are on the low-gravity env like the moon.

And we finally have interior lighting (but sometimes the flicker is a bit too much).

User avatar
AnyOldName3
Posts: 1595
Joined: 26 Nov 2015, 03:25

Re: Elder-scrolls IV Oblivion

Post by AnyOldName3 » 10 Mar 2019, 01:18

How many of these issues absolutely can't be solved by staring really hard at the NifSkope source code until it makes sense? If there's stuff that still makes no sense, the Skyrim SE Reverse Engineering Discord server is a good place to go to find people who know a lot about the guts of the engine, and for some features, if none of those people can say what's going on, no one can.
AnyOldName3, Master of Shadows

User avatar
cc9cii
Posts: 478
Joined: 28 Mar 2013, 04:01

Re: Elder-scrolls IV Oblivion

Post by cc9cii » 10 Mar 2019, 03:29

Well, Nifskope doesn't have to worry about duplicated (or missing) node names, inconsistent Hovok flags, parent references or worry about the insane amount of time it takes to attach an animation to a skeleton (not that it knows how to deal with Skyrim's animation files, anyhow, at least not without 3rd party conversion to kf)

Asking others for help is a good idea, but I'm not sure if my timezone will suit Discord (I've never used it but I thought it was like a real-time chat thingy?). Having said that I certainly can't do it all on my own. I'll have to release the current code shortly and hope to attract enough devs who are willing to make contributions to OpenMW. As I have indicated in the past I don't know how much longer I can work on this stuff so it needs to be within the next few months I think.

User avatar
Br0ken
Posts: 241
Joined: 02 Apr 2012, 05:54
Location: Siberia

Re: Elder-scrolls IV Oblivion

Post by Br0ken » 10 Mar 2019, 12:17

AnyOldName3 wrote:
10 Mar 2019, 01:18
If there's stuff that still makes no sense, the Skyrim SE Reverse Engineering Discord server is a good place to go to find people who know a lot about the guts of the engine
Very interesting, can you post a link, please?

User avatar
AnyOldName3
Posts: 1595
Joined: 26 Nov 2015, 03:25

Re: Elder-scrolls IV Oblivion

Post by AnyOldName3 » 11 Mar 2019, 02:26

Br0ken wrote:
10 Mar 2019, 12:17
AnyOldName3 wrote:
10 Mar 2019, 01:18
If there's stuff that still makes no sense, the Skyrim SE Reverse Engineering Discord server is a good place to go to find people who know a lot about the guts of the engine
Very interesting, can you post a link, please?
Can you ping me about this again tomorrow, please?
AnyOldName3, Master of Shadows

Sagacity
Posts: 19
Joined: 05 Mar 2019, 12:58

Re: Elder-scrolls IV Oblivion

Post by Sagacity » 12 Mar 2019, 03:53

AnyOldName3 wrote:
11 Mar 2019, 02:26
Br0ken wrote:
10 Mar 2019, 12:17
AnyOldName3 wrote:
10 Mar 2019, 01:18
If there's stuff that still makes no sense, the Skyrim SE Reverse Engineering Discord server is a good place to go to find people who know a lot about the guts of the engine
Very interesting, can you post a link, please?
Can you ping me about this again tomorrow, please?
Ping, I guess? Also, quick question; will OpenMW support shader files, like Skyrim does? IIRC, you can create custom shaders and package them to be loaded in Skyrim.

User avatar
AnyOldName3
Posts: 1595
Joined: 26 Nov 2015, 03:25

Re: Elder-scrolls IV Oblivion

Post by AnyOldName3 » 12 Mar 2019, 14:23

Don't quote me on this, but I think most things calling themselves shader mods actually just change the Nif files to enable shader effects either already in the game or provided by ENB. I think ENBs can provide their own post-process shaders, too.

When we have a post-process system, it should be flexible enough that modders can set up their own post-process shaders. Also, the regular lighting shaders are just sitting there in the installation directory, so there's nothing stopping people meddling with them right now.
AnyOldName3, Master of Shadows

User avatar
AnyOldName3
Posts: 1595
Joined: 26 Nov 2015, 03:25

Re: Elder-scrolls IV Oblivion

Post by AnyOldName3 » 12 Mar 2019, 15:30

Here's a link to the server. Grab it while it's hot, as it expires in 24 hours because that's how Discord works. https://discord.gg/AmNMVF
AnyOldName3, Master of Shadows

User avatar
Mistahtokyo
Posts: 125
Joined: 07 Sep 2013, 18:31

Re: Elder-scrolls IV Oblivion

Post by Mistahtokyo » 12 Mar 2019, 16:26

AnyOldName3 wrote:
12 Mar 2019, 15:30
Here's a link to the server. Grab it while it's hot, as it expires in 24 hours because that's how Discord works. https://discord.gg/AmNMVF
You know you can set the expiration time to unlimited and the link will essentially last forever, right?

User avatar
AnyOldName3
Posts: 1595
Joined: 26 Nov 2015, 03:25

Re: Elder-scrolls IV Oblivion

Post by AnyOldName3 » 12 Mar 2019, 16:35

True, but then a spambot might trawl the forum in a few weeks and the server would have to do something to protect itself.
AnyOldName3, Master of Shadows

Post Reply