Physics/Rendering engine

Everything about development and the OpenMW source code.
Post Reply
drshfyersrg
Posts: 8
Joined: 17 Sep 2017, 23:52

Physics/Rendering engine

Post by drshfyersrg »

I just wondered about the development choice of using Bullet instead of something like PhysX. I was also going to ask how hard you think it would be to change something like this in the future if you so chose. The main reason to use PhysX over Bullet is stuff like extensive and performant cloth physics. Not to mention the outstanding performance and utilization of GPUs, especially for large amounts of physics objects (Maybe movable props mod?). I have seen plenty of implementations of PhysX with OSG (https://github.com/xarray/osgPhysX and https://www.youtube.com/watch?v=tGAxs5kkDzc to name a few). Cross-platform is probably the biggest part of the decision, but wondered if there were any other reasons.

About the rendering engine: How come you decided to settle for forward rendering instead of deferred? Considering the game is open-world (Meaning lots going on with lighting. And the possibility of outdoor lights mod? :O), I would have thought deferred would have been the obvious choice. And like PhysX, you can find many implementations of deferred rendering and deferred shading with OSG (http://www.mutantstargoat.com/bekos/wor ... cenegraph/ as one example). MSAA would be one reason, it's also heftier on the GPU, possibly not as cross-platform friendly.

And that brings me to my next and final question: Do you think either of these are a possibility in the future?
User avatar
raevol
Posts: 3093
Joined: 07 Aug 2011, 01:12
Location: Caldera

Re: Physics/Rendering engine

Post by raevol »

PhysX wasn't open source when this project was started, and I'm getting inconsistent information about whether it's open source now. Aside from being the Right Thing (tm), this project has only survived because it is open source.

Someone else will have to answer about forward/deferred.
drshfyersrg
Posts: 8
Joined: 17 Sep 2017, 23:52

Re: Physics/Rendering engine

Post by drshfyersrg »

You need to be part of the gameworks development program to get PhysX source. And I think it might have hostile licensing, or maybe they're strict on who they accept into the program, I don't know. Thank you for the quick answer, though :)
User avatar
raevol
Posts: 3093
Joined: 07 Aug 2011, 01:12
Location: Caldera

Re: Physics/Rendering engine

Post by raevol »

Ok, thanks for clarifying. I was honestly pretty confused about what I was reading in my search results! Hahaha.
Chris
Posts: 1625
Joined: 04 Sep 2011, 08:33

Re: Physics/Rendering engine

Post by Chris »

drshfyersrg wrote: 25 Sep 2017, 04:11 About the rendering engine: How come you decided to settle for forward rendering instead of deferred? Considering the game is open-world (Meaning lots going on with lighting. And the possibility of outdoor lights mod? :O), I would have thought deferred would have been the obvious choice.
Because forward rendering is easier to get started with since it's doable with the fixed-function pipeline. And since that's what vanilla Morrowind expects (per-vertex lighting and all), it was a decent base to start with to get comparable visuals. I'm certainly all for having an option to use deferred rendering to eliminate the problem with light limits, though there are other things that can be checked out as well (such as clustered forward rendering, a more advanced version of such can be seen in Doom 2016).
User avatar
AnyOldName3
Posts: 2666
Joined: 26 Nov 2015, 03:25

Re: Physics/Rendering engine

Post by AnyOldName3 »

Even if PhysX *was* open source, the GPU version only runs on nVidia GPUs (hence why very few games actually use GPU PhysX and those that do only use it for optional features) and the CPU version isn't any faster than Bullet. Also, Bullet 3 adds support for GPU physics that should run on anything, so post 1.0, if it turns out that features are added which benefit from GPU physics, we can just change our minimum required Bullet version. A lot of games actually do use Bullet, IIRC about as many as use Havok, which is more than use PhysX.
Post Reply