Jump to content

HDT-SMP performance question


Recommended Posts

Posted

So, regarding the issue of HDT-SMP vs. CBPC, my understanding is that CBPC offers "better performance" than HDT-SMP for general use. But why is this exactly? It it simply due to using less complex collision shapes, or is it due to something deeper in the implementation?

 

I've seen that people recommend not using HDT-SMP for NPCs due to the fact that all the physics calculations can result in slowdown and crashes. Is this also an issue with CBPC? Would using greatly simplified collision shapes in HDT-SMP be a possible solution?

Posted
19 hours ago, Doc_Ctdm said:

So, regarding the issue of HDT-SMP vs. CBPC, my understanding is that CBPC offers "better performance" than HDT-SMP for general use. But why is this exactly? It it simply due to using less complex collision shapes, or is it due to something deeper in the implementation?

You need to differentiate between physics (movement) and collisions. They have different tax on your CPU.

 

Physics:

CBPC - fast computation, decent results.

SMP - a little bit slower computation, more realistic results.

 

Collisions:

CBPC - fast computation due to less complex model, approximate collisions, not very accurate.

SMP - slow computation, performance hit varies on used collision types, poly/vertex count and overall XML tweaking, very accurate collisions.

 

20 hours ago, Doc_Ctdm said:

I've seen that people recommend not using HDT-SMP for NPCs due to the fact that all the physics calculations can result in slowdown and crashes. Is this also an issue with CBPC? Would using greatly simplified collision shapes in HDT-SMP be a possible solution?

You would hardly notice any visual physics difference on NPCs between CBPC and SMP while walking in town for example, but you will notice the performance hit. Thats why people do not use SMP on NPCs. Thats just for physics, enabling collisions could widen the gap even more if collisions occur during NPC animations.

 

Simplyfying the SMP proxy objects (ie lowering poly count) can help with performance a bit, but after some point you are suppressing the SMP benefit - accuracy.

The problem with SMP meshes is that mod authors have different setup/PC and tweaks it for their game. While it can work great in their setup it might not in yours.

Also some modders do not even bother tweaking the XMLs. Its very easy to setup basic XML, but it takes a lot of time to tweak it performance wisely (no use of triangle-triangle col, using no col with bones and weight-threshold tags, limiting constraints so unwanted collisions do not happen at all, etc.)

Posted

SMP provides a faster dynamic reaction to acceleration changes. Afaik, as a result it's more computationally demanding than CPBC.

 

I don't see CBPC as "better" at all. Can you point me to a document that states "CBPC is better performing" than SMP? Or is this simply your subjective opinion?

 

SMP is inherently unstable due to what appears to me to be an open loop response (or a stuck AGC or an error integrator that isn't being zeroed periodically), or all of the above.

 

For me, SMP response is far more "natural" as is the area-of-affect edge characteristic on breasts. However, my machine is ~relatively new and so has plenty of horsepower (although in retrospect I kinda wish I'd opted for a video card with a bit more onboard memory), so depending on what you're using (I don't know and don't care, no offense) , SMP may just not be a practical control algorithm to employ, in which case maybe you should reinstall CBBE-3BBB with the CBPC only setting. 

 

Performance is measured in different ways depending on what one wants to achieve. A "better performing texture" might be a 256K grid, when "how can I make this game work on my obsolete computer with too little memory and other weak components" is the metric, and yet for a person with a high horse power machine expecting photo realism, a 256K texture would be an example of a "poor performer"

 

For instance, if your metric is gas mileage, a 3 cylinder hybrid is the winner in comparison to a 500HP sportscar. But if you measure performance on  the basis of handling, acceleration, and speed, the sports car is the clear winner.

 

Posted
5 hours ago, anjenthedog said:

SMP provides a faster dynamic reaction to acceleration changes. Afaik, as a result it's more computationally demanding than CPBC.

 

I don't see CBPC as "better" at all. Can you point me to a document that states "CBPC is better performing" than SMP? Or is this simply your subjective opinion?

Of course SMP is more demanding, its more complex.

From the CBP nexus description: (CBP is just for physics, but Shizof, author of CBPC used it a base)

Basic Breast/Butt and Belly bounce driven by a simple physics model

 

For Physics:

SMP is based on the Bullet physics, CBPC is using simple physics model. If you look at CBP sources the code for physics simulation is very simple.

SMP can attach physics to (almost) any bone. CBPC is just for a few predefined. Thats why CBPC will not work for things like clothes and hair, but SMP will. With SMP you can create constraints, some of them can be pretty complex (groups), depending on the SMP config those can be iterated several times for most accurate result taking a lot of computation power.

This complexity of SMP adds more tax on the CPU, but if you use physics only for the same bones as CBPC is using then you will notice performance difference only if there are many NPCs around you.

 

For Collisions:

CBPC is using virtual spheres (think of invisible balls with different radius) for collisions and calculating those are way less taxing (Here).

SMP is using Bullet engine and mesh on mesh collisions, again the complexity takes its toll, but the collisions work accurately. I will repeat myself, but poorly written SMP XML WILL have serious impact on performance.

If you define untweaked triangle to triangle object collision meshes and both meshes consist of thousands of polygons (like collision body on body) then it will kill your CPU (yes even those shiny new ones). This is way way more CPU demanding then simple sphere collisions used by CBPC. Collisions are what kills performance with SMP, not the physics calculations. The solution would be to use GPU for this, but as I have read its not as easy to implement.

5 hours ago, anjenthedog said:

SMP is inherently unstable due to what appears to me to be an open loop response (or a stuck AGC or an error integrator that isn't being zeroed periodically), or all of the above.

SSE SMP is useable, but has a "room for improvement". Thats why I went back to using LE with SMP only (no PE) and its stable with solid performance.

 

5 hours ago, anjenthedog said:

SMP may just not be a practical control algorithm to employ, in which case maybe you should reinstall CBBE-3BBB with the CBPC only setting

SMP is the only SSE option to run physics/collisions on something else than body (hair, clothes, horses).

 

5 hours ago, anjenthedog said:

Performance is measured in different ways depending on what one wants to achieve

The goal is to have acceptable FPS. This is individual preference, some are fine with 30, some freak out when the number changes from 60.

I believe you can use SMP for NPCs (just physics, no collisions) and still have very low FPS hit, but again, the CBPC simplified physics are good engough for NPCs that you will hardly notice any difference unless you are really examinating it.

Its up to anyone to decide if they have CPU power for SMP. Someone who has FPS killer mods probably cant while someone rocking FPS light mods can if they choose to. Many users like SMP clothes and hairs, things that CBPC cant service.

CBPC is very simple and works fine for most users who dont have the knowledge or rig power to run SMP. Shizof did a great job and users can enjoy jiggles on SSE out of the box. It was never meant to replace HDT SMP entirely.

Posted

I use SMP for all my followers (3) (and my female player). I have no issues (beyond the eventual destabilization in smp and need to reset it) , nor do I have a NASA computer, so it's not as if I'm running some SOA system. Enjoy your game. With all due respect, I need no instruction from you. I spent a decade working in control systems. PS> I was addressing the OP, not you. 

 

  • 5 months later...
Posted

Probably ressing a dead thread here, but I'm curious if anyone knows - with all the improvements of single thread performance combined with high core count of some of the newer AMD processors, vs some of the potentially higher single thread performance of the Intel processors, would I have significant performance improvements with one vs the other? Or would adjusting the collision object triangle count provide a more noticeable improvement over just regular hardware upgrades?

 

Currently running an i7-6700k. Using 3BA bodies with SMP enabled hair/clothing, usually only setting SMP on my PC, and maybe a couple followers. I definitely notice a slowdown, and I'm unsure if I should start looking at the related xml files, or if CPU hardware would make any difference. I know that in some ways this is the chicken and egg argument, but if anyone has any thoughts or knowledge on the subject, it would be great to hear.

Posted
20 hours ago, applesandmayo said:

Probably ressing a dead thread here, but I'm curious if anyone knows - with all the improvements of single thread performance combined with high core count of some of the newer AMD processors, vs some of the potentially higher single thread performance of the Intel processors, would I have significant performance improvements with one vs the other? Or would adjusting the collision object triangle count provide a more noticeable improvement over just regular hardware upgrades?

 

Currently running an i7-6700k. Using 3BA bodies with SMP enabled hair/clothing, usually only setting SMP on my PC, and maybe a couple followers. I definitely notice a slowdown, and I'm unsure if I should start looking at the related xml files, or if CPU hardware would make any difference. I know that in some ways this is the chicken and egg argument, but if anyone has any thoughts or knowledge on the subject, it would be great to hear.

I think that the biggest bottleneck is not the CPU, but rather the GPU (especially VRAM). There is a way to use mostly CBPC for the physics and SMP for jewelry, wigs, etc. That seems to be very effective in terms of resources. Also, there are several guides out there on improving Skyrim performance. With a bunch of tweaks to configuration files, you can get quite a few extra fps.

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...