Oblivion

File information

Last updated

Original upload

Created by

arafuse

Uploaded by

arafuse

Virus scan

Some manually verified files

Documentation

Readme

View as plain text

shadeMe Enhanced

This is a fork of the original shadeMe plugin which features improved shadow queueing, fixes the problem of disappearing shadows when turning, and adds some additional options and optimizations. You can now get nice dynamic shadows on architecture and landscape with a low shadow count and minimal performance drop.

General configuration
---------------------

The included shadeMe.ini has good performance-friendly defaults, and you should not need to tweak it much except for the shadow counts. You must still ensure the correct settings are present in Oblivion.ini however.

1. In Oblivion.ini, the following options must be set for the plugin to work correctly:

bShadowsOnGrass=0
bActorSelfShadowing=1

2. The plugin itself now limits the total shadow count, and to fix the disappearing shadows issue the shadow count in Oblivion.ini must be set to a very high value above the actual shadow count. Eg.:

iActorShadowCountInt=100
iActorShadowCountExt=100

3. The actual max shadow count is set in shadeMe.ini. The count for LargeObject should be somewhat below TotalObject if you still want to see your own shadow and some other shadows when near many large objects. Eg.:

[Shadows::MaxCount]
LargeObject=7
TotalObject=10

4. Player LOS checks need to be disabled for large objects. It's also a good idea to disable player LOS checks in exteriors for performance reasons, but you can still have them enabled as long as [Shadows::LightLOSCheck] SkipLargeObjects=1 and [Shadows::PlayerLOSCheck] ExcludeLightLOSPaths=1 are set. Eg.:

[Shadows::LightLOSCheck]
SkipLargeObjects=1

[Shadows::LargeObjects]
HigherPriority=1

[Shadows::PlayerLOSCheck]
Exterior=0
ExcludeLightLOSPaths=1


Additional INI options
----------------------

[Shadows::General] BoundRadiusWeight=2.0:
Apply weight to object bound radius when queuing normal objects, so that larger objects can have higher priority (float multiplier)

[Shadows::General] ReduceGrids=1:
Reduce the object search to the 3x3 grid when queueing exterior shadows, can increase performance while limiting distance. (0 or 1)

[Shadows::General] ExteriorDistanceCheck=0:
Optionally disable distance check for exterior shadows and just queue everything up to the near grid, useful with ReduceGrids=1. (0 or 1)

[Shadows::LargeObjects] DistanceWeight=1.0
Apply weight to object distance when queueing large objects, so that nearer large objects can have priority over those that are further away. (float multiplier)

[Shadows::PlayerLOSCheck] ExcludeLightLOSPaths=1
Exclude the same paths for player LOS check as [Shadows::LightLOSCheck] ExcludePaths, useful for larger interior objects that have disappearing shadows when facing away.

Technical info
--------------

The disappearing shadows when turning bug seemed to be caused by the Oblivion engine trying to optimize the scene when the shadow count approached the maximum. Giving the engine enough headroom between the maximum shadow count and the actual number of shadows in the scene seems to be what prevents this condition from occuring.

Remaining issues
----------------

* Shadows add up when they overlap. This can lead to some unrealistically dark spots. If using Oblivion Reloaded (which is highly recommended) you can reduce the shadow intensity somewhat which helps. A value of around 1.500 seems to be ideal. In the future I may implement logic for thinning out clumps of shadows clustered together.

* Shadows on grass do not work properly. This can make bright grass stand out unnaturally in dark spots. As with the above, lowering the shadow intensity can help.

Credits
-------

shadeMe, the original creator of this awesome plugin.