CPU and Single Core Implications

General discussion regarding the OpenMW project.
For technical support, please use the Support subforum.
User avatar
lysol
Posts: 1513
Joined: 26 Mar 2013, 01:48
Location: Sweden

Re: CPU and Single Core Implications

Post by lysol »

Chris wrote: 07 Dec 2017, 00:57
lysol wrote: 06 Dec 2017, 18:12 Yet, this is what 80 % of morrowind modders do all the time and Bethesda as never sued anyone for it.
FWIW, Bethesda has explicitly stated that using modified assets for mods is fine, as long as it's for the game the original assets came from (e.g. modified Morrowind assets for Morrowind is fine, modified Oblivion or Doom assets for Skyrim is not). You could make a Morrowind Meshes Optimized mod for Morrowind that both vanilla and OpenMW engines benefit from.
Exactly
aesylwinn wrote: 07 Dec 2017, 00:51 Going somewhat off of what AnyOldName3 mentioned, what if there were a tool that could apply a patch/diff to assets based on a checksum? I know nothing of the legal implications, but from my viewpoint, it seems like it could be viable.
Having a program automating a fix for the original models would be awesome if it could be done. Instant FPS boost ftw.
Xenuria
Posts: 45
Joined: 26 Feb 2017, 22:35

Re: CPU and Single Core Implications

Post by Xenuria »

Chris wrote: 06 Dec 2017, 15:59
"See the console"? What do you mean by that? If you're talking about that fan theory that CHIM is a break of the fourth wall talking about the developer console and modding, you should know the person who came up with CHIM for TES disfavored the idea (the same person also says CHIM is a separate thing from godhood). It's a neat fan theory, but that's all it is. Considering Morrowind is also on the XBox, which lacks the console and modding support, it doesn't really fit anyway.
You won't find much love for console gamers here on the net, especially not when the game of choice is an RPG about breaking the forth wall and getting access to the raw values of the world.

CHIM being the construction set or console access IS a fan theory. CHIM isn't breaking the forth wall it is a pseudo-godhead wherein a faint or vague perception of the forth wall exists. Not the ability to be at cause with it.


Being true god-head and having access to the console and construction set is NOT a fan theory, it's hard canon written into the game by kirkbride and Tod "The Liar" Howard. A god cannot die, but all the people in ES lore claiming to be gods do alot of dying, the only people who don't are the PC. The PC can "load a save" thus negating them every being dead in any timeline. The distinction drawn between PC in the different games is that due to the way games after morrowind were made, the PC can't do many of the things they could before. Yes if you want to be really anal and hyper technical all the player characters are god's after they finish their monomyth. The distinction is that only the Neravarine can jump across continents, TK from space, walk across the surface of the sun, command humanoid an entire region with a single spell, etc.

Not All Players who are Neravarine become True Gods.
All Players who are Neravarine CAN become True Gods.

Every Square is a Rectangle but not every Rectangle is a Square.
That said the best possible outcome for this project is one that allows players to do all these things with more than 2fps.

I have done video where I command humanoid all 50~ grids, it takes a very long time and the fps is horrible but it works and it's canon.
I have done a video where I TK picked a plant on the ground from outside the atmosphere of the planet, it works but the fps is horrible. Guess what still canon.

On another note...
Is there a way for OPENMW to log how much of a delay or lag is caused by any given error?
Like the infamous photodragons.nif or out of bound UVs or things of that sort. Is the performance drop negligible or is a logging system something that would help people find problem areas with meshes and textures?
Chris
Posts: 1625
Joined: 04 Sep 2011, 08:33

Re: CPU and Single Core Implications

Post by Chris »

Xenuria wrote: 08 Dec 2017, 16:29 Being true god-head and having access to the console and construction set is NOT a fan theory, it's hard canon written into the game by kirkbride and Tod "The Liar" Howard.
Then how do you explain Anu being the godhead? Kirkbride did a lot of teasing about the existence of a godhead in TES lore, as an actual in-universe being (where the console and construction set don't exist) rather than a concept we the players fill out-of-game, and soon after the release of c0da revealed it to be Anu. The TES universe we know is the dream of Anu who is the godhead, and he even pointed out the in-game hints he wrote in implying it.

I wish I could provide references to these statements he made, but it was quite a while ago on the old forums that are now shut down.
A god cannot die, but all the people in ES lore claiming to be gods do alot of dying, the only people who don't are the PC.
Gods can't die as mortals die. A god can't be permanently killed, as we see with Dagoth Ur who kept coming back whenever he was "killed", until we severed his connection to the heart and removed his godhood. The daedra are similar, as they'll always reform in the waters of Oblivion and come back no matter how much they're "killed". The divines were "killed", but still have active presences (and power) on the world. It's not the same thing as a mortal dying.
The PC can "load a save" thus negating them every being dead in any timeline.
That's part of the fan-theory, which Kirkbride himself doesn't subscribe to.
The distinction is that only the Neravarine can jump across continents, TK from space, walk across the surface of the sun, command humanoid an entire region with a single spell, etc.
Except he can't. The game Morrowind only features the island of Vvardenfell (and Solstheim), which it a mere portion of the continent of Tamriel. Without exploits, you need Tarhiel's scrolls of icarian flight to even have a hope of jumping from one end of the island to the other, let alone the length of a single continent, let alone multiple continents. You can't get to space because it's not represented in the game (the atmosphere/clouds are part of a skybox which stay relative to the camera; you literally can't reach it let alone go past it to "space"), nor can you walk on the surface of the sun for the same reason (and as per TES lore the sun doesn't even have a surface anyway, it's a hole where the light from Aetherius is shining in from; and there, the Daggerfall Agent has the Nerevarine beat since the Agent did walk (and fly) in Aetherius at the end of Daggerfall's MQ).
User avatar
raevol
Posts: 3093
Joined: 07 Aug 2011, 01:12
Location: Caldera

Re: CPU and Single Core Implications

Post by raevol »

Well this thread went sideways fast.
CMAugust
Posts: 285
Joined: 10 Jan 2016, 00:13

Re: CPU and Single Core Implications

Post by CMAugust »

psi29a wrote: 07 Dec 2017, 09:30 That would work, if someone wants to work on a mod specific to/for OpenMW, that's fine. OpenMW can even recommend it, blog about it and even display a link in the launcher if needed, that too is also fine. If OpenMW developers want to work on the project, that too is fine.
That already sounds like the ideal scenario really. Makes perfect sense to keep the actual mods on a mod database.

Going back to the question this sprung from:
scrawl wrote: 18 Jul 2017, 12:16I don't doubt there are tricks and hacks that could be added to the engine to try and workaround such things, but it would be much easier (and future proof) to just fix the assets instead.
Is fixing assets - all assets you're talking about, at least - something the modding community can do already, or does it require more code support in the engine and/or tools?
User avatar
FiftyTifty
Posts: 63
Joined: 15 Oct 2014, 21:02

Re: CPU and Single Core Implications

Post by FiftyTifty »

Has the OpenMW team ever made contact with Boris Vorontsov previously? I said it before, but he'd be a great contact to get info on optimizing the renderer side of things.
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: CPU and Single Core Implications

Post by scrawl »

can do already
Mostly yes, you can:
1. Prefer alpha testing over alpha blending for flora and fauna
2. Reduce the number of different textures/materials

1. will slightly change the look of the game though, especially with the low resolution textures that morrowind uses, alpha-blended 'soft' edges tend to look much better than alpha-tested ones. So you might want to couple this change with a high-res texture overhaul.

2. is difficult because you don't know which textures are used together until you launch the game. Furthermore you will probably need new UVs because there are many textures set to 'repeat' UVs so you can't merge those textures.

Something we can't do yet, is changing the editor/esm files to include hints on which meshes can be batched together, or at least make it so that Static objects are actually static. (Whoever called them that needs to be fired!)

@MajinCry, I don't think the batching method is really our problem (any method is more or less fine I think), the problem is what can we batch in the first place when this gets massively complicated by Morrowind's files which:
* are affected by many (some moving) lights,
* move or disable objects unpredictably (script access),
* make very liberal use of alpha blending (see above)

The issue with lights can be fixed by switching to deferred shading, but for that you also need an asset overhaul first because many lights in Morrowind look just awful with per-pixel lighting.

As you can see, there are some chicken-and-egg problems. I should probably write all this down on the wiki somewhere under 'modernization roadmap' or something like that.
Xenuria
Posts: 45
Joined: 26 Feb 2017, 22:35

Re: CPU and Single Core Implications

Post by Xenuria »

Chris wrote: 08 Dec 2017, 19:06 Except he can't. The game Morrowind only features the island of Vvardenfell (and Solstheim), which it a mere portion of the continent of Tamriel. Without exploits, you need Tarhiel's scrolls of icarian flight to even have a hope of jumping from one end of the island to the other, let alone the length of a single continent, let alone multiple continents. You can't get to space because it's not represented in the game (the atmosphere/clouds are part of a skybox which stay relative to the camera; you literally can't reach it let alone go past it to "space"), nor can you walk on the surface of the sun for the same reason (and as per TES lore the sun doesn't even have a surface anyway, it's a hole where the light from Aetherius is shining in from; and there, the Daggerfall Agent has the Nerevarine beat since the Agent did walk (and fly) in Aetherius at the end of Daggerfall's MQ).
If you want to argue the semantics of what constitutes an exploit than you have somewhat of an argument to stand on when you say the nerevarine can't do x y z. It's quite possibly the biggest can of worms/slippery slope in all of TES lore but it's on you if you want to take that stance. However if you operate inside the vanilla unmodified product, my assertion still remains unassailable.

In the Vanilla unmodified game, without using any exploits or console commands or any sort of external trickery...

The main character can in fact run or jump past the entire continent, pick plants from orbit, command the towns and even the entire continent with a spell. All of these things can be done canonically the distinction is that doing them with console makes the means by which you get to them not canon or legit. The things themselves are canon as they can be reached without cheating.

With regards to stability I think the best days are ahead of us. I don't have the skills some other people here have so I will stick to what I know. I am going to keep jotting down edge cases where performance does odd things. I will keep making videos like the ones I have been because it's unique and gives otherwise esoteric insight into performance hypotheticals.
User avatar
FiftyTifty
Posts: 63
Joined: 15 Oct 2014, 21:02

Re: CPU and Single Core Implications

Post by FiftyTifty »

scrawl wrote: 09 Dec 2017, 16:11
@MajinCry, I don't think the batching method is really our problem (any method is more or less fine I think), the problem is what can we batch in the first place when this gets massively complicated by Morrowind's files which:
* are affected by many (some moving) lights,
* move or disable objects unpredictably (script access),
* make very liberal use of alpha blending (see above)

The issue with lights can be fixed by switching to deferred shading, but for that you also need an asset overhaul first because many lights in Morrowind look just awful with per-pixel lighting.

As you can see, there are some chicken-and-egg problems. I should probably write all this down on the wiki somewhere under 'modernization roadmap' or something like that.
For those use case conditions, isn't that why you'd use a more robust batching method? Moving and disabled/enabled objects are only a problem with bog standard static batching, as it's designed with the idea that the models will not be changed at all, so they're merged together. Boris' example of batching covers that roadbump, and can even batch objects with bone weights.

As for per pixel lighting, wouldn't you be able to fake it by having a vertex shader modify the vertex colours of meshes?
User avatar
AnyOldName3
Posts: 2666
Joined: 26 Nov 2015, 03:25

Re: CPU and Single Core Implications

Post by AnyOldName3 »

The benefits of deferred shading and lighting are that you don't have to do anything with lights at all until you're at a point when you know exactly which lights will affect each pixel and then for each individual light, you can do a single additive pass over the existing framebuffer to add its contribution to each pixel. You don't need to work out which eight lights make the most significant contribution to each mesh before sending it to the GPU and can, therefore, decouple that from the shader state. This means fewer things are different between each mesh and more things can be grouped together. However, it means that every part of lighting has to be per-pixel. This isn't an issue for most games as per-pixel lighting is more realistic, but when you have the collection of hacks resembling a game engine that Bethesda produced and assets designed with that engine in mind, issues appear.
Post Reply