PlaneShift

Support => Technical Help: Problems BEFORE entering the game => Topic started by: LigH on April 20, 2011, 10:56:56 pm

Title: Shader level - what do I miss on lower, how much hurt higher settings?
Post by: LigH on April 20, 2011, 10:56:56 pm
Could you please give an overview over the differences between the "Shader" presets, which graphical details each higher step adds to the previous, and which impact on the framerate one with older graphic hardware has to expect (or which chipsets may not even have hardware support for these effects)?

Of course this is no "bug report". Just a request for suggestions what to set up for which hardware.

From my experience, a GeForce generation 8 has no problems with highest settings, a GeForce generation 6 neither. But a GeForce FX 5200 will need a bit restraint. I may try to compare these in Amdeneir...
__

I was told that there may be a grid similar to this one. Please tell me where I misunderstood it.

Texture maps
Lowest
Low
Medium
High
Highest
Default
X
X
X
X
X
Shadows
-
X
X
X
X
Glow
?
?
?
?
?
Compressed normal
-
?
X
X
X
Normal
-
-
X
X
X
Ambient Occlusion
-
-
-
X
X
Height
-
-
-
X
X
Specular
-
-
-
-
X

I wonder what it would take to make a custom mix of options...
Title: Re: Shader level - what do I miss on lower, how much hurt higher settings?
Post by: Chucki on April 21, 2011, 02:12:02 am
Hey LigH,

Just one point according to your grid:

Most objects don't have specular maps, AO, Heightmaps, etc.

So not alot of difference will be noted at some steps along the grid.
Title: Re: Shader level - what do I miss on lower, how much hurt higher settings?
Post by: LigH on April 21, 2011, 08:46:41 am
That was not exactly the question here.

The impact on rendering speed may be small because there are hardly any occasions, but may also be higher because the shader always needs to consider any. Only a CrystalSpace developer may know that exactly.
Title: Re: Shader level - what do I miss on lower, how much hurt higher settings?
Post by: RlyDontKnow on April 24, 2011, 09:15:20 pm
here's the minimal table (default goes for all texture types that aren't explicitly stated):

Texture maps
Lowest
Low
Medium
High
Highest
Default
X
X
X
X
X
Normal
-
-
X
X
X
Ambient Occlusion
-
-
-
X
X
Height
-
-
-
X
X
Specular
-
-
-
-
X

note however that the types may still be not used if the shader fails to compile if they're used (or - of course - if they aren't available)

I removed shadows from the table as those have their own setting (PlaneShift.Graphics.Shadows) just like meshgens (PlaneShift.Graphics.EnableGrass)

on top of that there are some additional settings that control the loader behaviour related to shading (note that they should only be touched by advanced users that perfectly know what they're doing):
PlaneShift.Loading.ThreadedShaders will detach precaches on initial load to a thread if enabled (note: may speed up starting the game a bit, but can cause issues - disabled by default and doesn't affect ingame performance)
PlaneShift.Loading.ParseShaders will prevent any shaders from being parsed if set to false (default shaders may still be used if requested by the engine - not recommended for use in the client at all)
PlaneShift.Loading.ParseShaderVariables will prevent any textures from being parsed and loaded if disabled - diffuse textures will be replaced by stdtexwhite (some textures may still be auto-loaded by the engine - again not recommended for usage in the client at all)
PlaneShift.Loading.OnlyMeshes will prevent additional objects from being parsed and loaded if enabled (e.g. lights, sequences, triggers, ... - not recommended)
PlaneShift.Loading.OnlyPortals will prevent all non-portal meshes and additional objects from being parsed and loaded if enabled (never use this in the client - really... don't)
PlaneShift.Loading.ForceCuller will force the culler to the specified one instead of the default culler, value is a plugin name or default for CS' default culler (don't try it unless you know what the cullers do and are aware of the consequences)
PlaneShift.Loading.Cache will keep mesh factory data in memory instead of loading it from file each time the factory is loaded (reduces HDD I/O a bit, but may cause issues)