Author Topic: Shader level - what do I miss on lower, how much hurt higher settings?  (Read 1530 times)

LigH

  • Forum Legend
  • *
  • Posts: 7096
    • View Profile
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...
« Last Edit: April 20, 2011, 11:24:21 pm by LigH »

Gag Harmond
Knight and Ambassador
The Royal House of Purrty

Chucki

  • Hydlaa Resident
  • *
  • Posts: 67
    • View Profile
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.

LigH

  • Forum Legend
  • *
  • Posts: 7096
    • View Profile
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.

Gag Harmond
Knight and Ambassador
The Royal House of Purrty

RlyDontKnow

  • Associate Developer
  • Hydlaa Citizen
  • *
  • Posts: 403
    • View Profile
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)