View Full Version : Lfs Dx9
scoobyrbac
21st June 2008, 17:10
How long would it take for LFS to switch to DX9?
james12s
21st June 2008, 17:15
ide say quite a while if ever because from what has been said before it would need alot of changes to the base programming.
AndroidXP
21st June 2008, 17:18
Isn't DX9 basically DX8 + more/improved features? I have no experience in 3D programming, but I doubt the "switch" would take long at all. Implementing features that use the capabilities of DX9 would take a good amount of time, if that's what you're asking. However, we aren't even nearly using all DX8 features either, so...
Trekkerfahrer
21st June 2008, 17:21
graphics are not important ;)
it lasts when i can see where the track and where the wall is ;)
Jakg
21st June 2008, 18:30
No idea - but it's not making LFS DX9 that's the issue (DX9 is just an API), it's making LFS USE the extra feautres to make it look better that's the problem.
Almadiel
21st June 2008, 18:38
The important differences between Dx8 and 9 are the pixel and vertex shader formats (and some stuff with color formats). Dx9 makes it easier to implement more complex effects, so the answer is that how long it takes depends on what they would choose to add. If they wanted to add a full HDR rendering pipeline (which would sure be nice), or dynamic time of day/weather effects, it would probably take a while.
But, there are few effects you can do in Dx9 that you can't do in 8, just with poorer performance. Consider that in general LFS looks about as good as rFactor (though newer rFactor mods have much more detailed models), with almost the same types of effects, and runs faster despite using an older version of DirectX.
It should also be noted that a lot of very nice effects can be added with nearly zero changes to the code. Normal and parallax mapping would basically only require new art, and would make shading and reflections look a lot smoother (check out netKar to see what I mean). Dynamic self shadowing could be added trivially (you actually have to add code to _prevent_ self shadowing), though may need better blurring to look nice. These things can be done easily in Dx8 as well.
LFSn00b
21st June 2008, 18:40
zing http://www.lfsforum.net/showthread.php?p=780301#post780301
Luke.S
21st June 2008, 18:45
Screw DX9 we need DX10
Almadiel
21st June 2008, 18:53
Btw, that bloom filter plugin is not HDR, and its horribly inefficient. All it does is filter the image after it has been rendered, like what you might do in photoshop. They could add something like that to the ingame shaders pretty easily and have it run much much much much faster. That said, bloom filters suck without HDR lighting data and tone mapping.
Jakg
21st June 2008, 19:05
Screw DX9 we need DX10I'm sure the entire LFS userbase would love to be confined to Vista and DX10 cards only...
Electrik Kar
21st June 2008, 19:15
That all over post-processed bloom isn't ideal in the least as a solution to more realistic graphics. Some things do look nice with bloom, ie- the sun... that's where the bloom effect is ideal. Other things look really bizarre and unnatural.
As Almadiel points out, you could maybe use normal mapping to bump up some of the detail on the cars without needing to resort to higher poly models. I'm hoping the new interiors come with normal/spec maps as well- that's fairly standard these days.
JJ72
21st June 2008, 19:18
LFS will look a lot better with better modelling and more attention to detail. these things add up. proper shadow for a start.
direct X effects....maybe some bump mapping and better defined material qualities, don't think we ever need to go to bloom HDR watereffects and all that.
geeman1
22nd June 2008, 16:03
Screw DX9 we need DX10
Skipping DX9 would be a good idea if DX10 wasn't only available on Vista.
wien
22nd June 2008, 16:18
But, there are few effects you can do in Dx9 that you can't do in 8, just with poorer performance.While true in some cases, once you start doing normal and parallax mapping like you alluded to (perhaps even with some shadow mapping on top) you quickly run headlong into the instruction limits in DX8 shader programs. You could always multipass of course, but I dont' think that's realistic considering the CPU hit LFS already takes from rendering (though that too of course could stand to be improved).
I agree that LFS wouldn't need DX9 to get a marked improvement in graphics quality though. There's a lot of room for improvement within the existing system.
scoobyrbac
22nd June 2008, 16:25
See they need to figure out how to get the strain off the CPU and get it evened out between the CPU and the graphics card so they both can do the work.
wien
22nd June 2008, 16:44
Well, some of that work happened in Y22.
LFS basically draws a lot of geometry vertex for vertex and (I assume) takes little care to group objects with similar state (shaders if any, textures, blending etc.) together before drawing. On older CPUs and GPUs that made sense since the GPUs got fed anyway and the CPU overhead of batching like that was too high, but these days the GPUs are orders of magnitude faster while CPUs mostly aren't. The CPUs can't keep the GPUs fed this way any more. The result is a maxed out CPU and a GPU mostly idling.
Changing this is no small feat though since it requires rather drastic changes to the design of the renderer. Switching to using vertex buffers instead of drawing vertex for vertex is simple(ish), and helps free up some CPU load (this happened at least partly in Y22). But the big gains are found in state grouping. Instead of for example drawing cars and their component pieces one after the other, LFS should instead draw (for example) all car bodies, then all wind screens, then all wheels, then all tires etc. This minimises the changes in state the GPU has to do, enabling it to scream through geometry at full tilt.
This can all be done within the D3D8 API though, and could potentially free up a lot of both CPU and GPU horsepower which could then be used on fancy shaders and other goodies.
Sir moi 407
22nd June 2008, 17:16
For the CPU problem I think that a really good optimisation would be to make LFS able to use 2-4 cores :thumb:
Don't know how hard it is but it would go really faster :)
wien
22nd June 2008, 17:20
Heh, if only things were that simple. :) Your plan lacks detail on the "make LFS able to use 2-4 cores" step. Doing that just isn't trivial. Especially when the main CPU bottleneck is talking to the graphics API (which can't really be parallelised).
mcintyrej
22nd June 2008, 17:48
Its not a ticky box situation where they can click "Enable DX9" and POW it looks better. I suspect they'd have to recode pretty much all of the graphics engines and some of the physics engines too.
The game already looks good how it is, lets just concentrate on getting rid of bugs first.
@Sir_Moi_407 - That is the same as I described for DX9. They'd have to recode the whole physics engine to optimize it for multiple cores.
imadude10
22nd June 2008, 18:26
I'm all for upgrading to DX9 it sounds awesome. Another thing to throw out there, slightly off topic,support for Physics cards. Fully deformable parts, frames etc. It would be nice even though I'm just dreaming. :shrug: Perhaps this will come after a more complex collision and damage system.
CLRS530
22nd June 2008, 18:48
My last status is that Scawen plan to switch to dx9 (or then dx10 who knows) in development progress of s3 because of big graphic changes for rain and those effects.
I am to lazy to search for the post he made ;)
the_angry_angel
22nd June 2008, 20:14
I'm all for upgrading to DX9 it sounds awesome. Another thing to throw out there, slightly off topic,support for Physics cards. Fully deformable parts, frames etc. It would be nice even though I'm just dreaming. :shrug: Perhaps this will come after a more complex collision and damage system.Unlikely. Physics cards demand that you use their libraries, which LFS is not using. Porting across to these libraries seems exceptionally unlikely.
Almadiel
22nd June 2008, 23:12
Remember that Doom 3 was a Directx 8 game. Sure it had a Dx9 mode, but the only visual difference as far as I recall was a glass/heat distortion effect.
wien
22nd June 2008, 23:39
Doom 3 used OpenGL with a few different rendering paths depending on what hardware it was running on. It ran on "D3D8 class hardware", but it wasn't D3D.
Almadiel
23rd June 2008, 00:57
You are right. But the shader instruction limits were the same either way. To be more specific, the Doom 3 engine was built around the Geforce 3 line of graphics cards as a target. And as you say they added additonal optimization paths up to the Geforce 5 with its special shadow volume culling functions. But with some small exceptions, the effects and lighting model were identical for all code paths.
Jakg
23rd June 2008, 06:24
FTR Scawen said Multi-threading would take about a month to do.
scoobyrbac
23rd June 2008, 14:05
I know they said that they wanted to keep this as a 3 man team, but eventually they are going to have to add more people to the team to get the ball rolling faster.
wien
23rd June 2008, 14:52
Letting the ball keep rolling slow is always an option. As long as they sell enough licenses to keep themselves with food and beer, they don't "need" to do anything.
FTR Scawen said Multi-threading would take about a month to do.True, but that was about a split down between renderer and physics and I don't think even that would be enough to remove the CPU bottleneck of LFS.
Say rendering takes about half the CPU time currently (very optimistic, it's probably closer to 2/3 in graphics heavy conditions), that means we would get a doubling in framerate in the best case. From the back of a full grid at full settings that would mean you still wouldn't get a smooth 60FPS on anything but the fastest processors available. LFS just doesn't have a level of detail that should require a CPU load like that, meaning "going multi-threaded" isn't really enough (though it would help a great deal of course).
Spils
24th June 2008, 11:08
FTR Scawen said Multi-threading would take about a month to do.
Then i vote he sets a month aside after the next big patch release this year. And works soley on multi-threading.. Almost everyone now has a dual core at least..
After all you can get 2gig of ram a dual core and a mobo to fit it on for £100
no excuses really :thumb:
Dajmin
24th June 2008, 11:13
Dx10 doesn't add enough to make it worth the bother.
Dx9 on the other hand would add not only pixel shading (which would improve the texture quality to give a 3D appearance) but would also add support for fully sourced realtime lighting. That way things like shadows would be created dynamically by the engine rather than anyone having to program where the shadow would be cast like it does now. And of course that would lend itself to changing time of day really well.
But it's a big job to take advantage of the new features, so we probably won't see it for a while.
wien
24th June 2008, 14:17
You can do all that in D3D8. Shaders, dynamic lighting, everything. The only problem is that the shader instruction limit in D3D8 (or specifically Shader Model 1.4) prevents how advanced you can make all that stuff. It won't look quite as good as it could because you have to simplify a lot of the math involved.
Dajmin
24th June 2008, 16:21
You can do very basic versions of it in 8, but as you said it's pretty basic.
My experience of Dx8 lighting hasn't been great. I guess it's because the old shaders are a lot more rigid than the Dx9 versions. Racing games has always been the most noticable, so you get lighting, but it's all like single-direction. I can't think of how to explain it any better, since it's been a long time since I saw any Dx8 lighting effects :)
Probably not worth rewriting a chunk of the engine for such a small change.
Electrik Kar
24th June 2008, 16:34
I was playing Team Fortress 2 in DX8 and then in DX9 a few days ago. The lighting in DX9 was so much better, softer shadows, deeper contrast. DX8 version seemed to have about half of the shader effects as the DX9 version as well. It didn't look bad, but when I found the DX9 button I was very impressed.
Perhaps when Scawen updates his computer he'll become inspired to work on the graphics side of things. From memory he's running a relatively old gfx card right now on a fairly old system. The last thing he'd want is to bog his own FPS down with fancy graphics.
(if anyone's looking for a suitable pressy for Scawen's B'day/Xmas, then you know what to get him :) )
Krane
24th June 2008, 21:09
FTR Scawen said Multi-threading would take about a month to do.
Also:
Hello Racers! The LFS development team has come up with a plan for Release 1.
....
Our new plan for Release 1 is to release it in 4 downloadable stages, we will charge a price for these - each one at 25% of the total price of Release 1.
.....
The next three 25% releases will contain in the region of 4 cars and 3 tracks each and will come out at intervals of 2 or 3 months.By those estimates we should be playing LFS S24 today :D
Breizh
25th June 2008, 00:26
Let's hope Scawen keeps the shaders in check rather than exagerate them like in 90% of recent games.
flymike91
25th June 2008, 01:51
Lets hope that he doesn't alienate half of the lfs population by making the graphics too much for most PCs.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.