RLVa RFC setsphere
Revision as of 23:29, 8 January 2021 by Kitty Barnett (talk | contribs)
Contents
@setmode_distextend
The 'distextend' modifier specifies how the areas on both sides of the sphere should act.
Value | Description |
---|---|
0 | The effect is only applied to pixels that lay within min and max distance. Pixels outside this range render as normal. |
1 | The effect extends outward so that pixels that are farther than max distance will have effect strength 'valuemax' (Default) |
2 | The effect extends inward so that pixels that are closer than min distance will have effect strength 'valuemin' |
3 | The effect extends both in- and outward |
If the above wasn't clear hopefully the following 4 pictures will make it clearer. Pure black pixels signify areas that are unaffected by the effect; any shade of gray signifies an area where the effect strength is between 0 (=black / not at all) and 1 (=white / full). (If you have any Photoshop experience think of the images as a blending mask)
Please note that not all modes may support all 4 options (see their corresponding documentation for more details)
Mode: Blur (2)
Command | Value(s) | Description |
---|---|---|
setsphere_mode | 2 | Switches @setsphere to 'variable kernel blur' mode |
setsphere_param | <kernel size>/0/0/0 | The first number specifies the kernel size for the Gaussian blur (needs to be set in combination with valuemin/valuemax) |
setsphere_distmin | <distance> | Sets the distance (in m) at which the effect should start |
setsphere_distmax | <distance> | Sets the distance (in m) at which the effect should end |
setsphere_distextend | 0, 1, 2 or 3 | See documentation above |
setsphere_valuemin | <float> | Sets the strength of the effect at distmin (useful range values depend on kernel size param) |
setsphere_valuemax | <float> | Sets the strength of the effect at distmax (useful range values depend on kernel size param) |
Notes
- The kernel size determines how many neighbouring pixels are sampled. A higher kernel size will result in a more blurred out end result (dependent on the sigma value in min/max value)
- Avoid using large value for kernel since this will likely be clamped in the future once the impact on FPS can be determined
Example
- Clear all modifiers and switch @setsphere to 'variable blur' mode
@clear,setsphere=n,setsphere_mode:2=force
- Set the kernel size to 15 and sigma value to 5
@setsphere_param:15/0/0/0=force,setsphere_valuemax:5=force
- Enforce the effect only when >=2m away (only objects >2m will look blurry)
@setsphere_distmin:2=force
Mode: Chromatic Aberration
Command | Value(s) | Description |
---|---|---|
setsphere_mode | 3 | Switches @setsphere to 'chromatic aberration' mode |
setsphere_param | <horiz red shift>/<vert red shift>/<horiz blue shift>/<vert blue shift> | The first 2 numbers specify the offset of the red component; the last 2 the offset of the green component |
setsphere_distmin | <distance> | Sets the distance (in m) at which the effect should start |
setsphere_distmax | <distance> | Sets the distance (in m) at which the effect should end |
setsphere_distextend | 0, 1, 2 or 3 | See documentation above |
setsphere_valuemin | 0.0-1.0 | Sets the strength of the effect at distmin |
setsphere_valuemax | 0.0-1.0 | Sets the strength of the effect at distmax |
Notes
- If both values (valuemin and valuemax) and both distances (distmin and distmax) are different then - much like the blending mode - the offsets for the colour components of each pixel will gradually increase (or decrease) depending on the distance
Example
- Clear all modifiers and switch @setsphere to 'ca' mode
@clear,setsphere=n,setsphere_mode:3=force
- Shift the red channel to the left by 8 pixels and blue to the right by 8 pixels
@setsphere_param:8/0/-8/0=force
- Increase the color shifts but blend back with the original colour at 50% (animate the change across 5 seconds)
@setsphere_tween:5=force,setsphere_param:0/-25/0/25=force,setsphere_valuemax:0.5=force,setsphere_tween=force
- Enforce the effect only when >=10m away (only objects >10m away appear affected)
@setsphere_distmin:10=force
Mode: Pixelate
Command | Value(s) | Description |
---|---|---|
setsphere_mode | 4 | Switches @setsphere to pixelate mode |
setsphere_param | <width>/<height>/0/0 | Specifies the pixelate block size (in pixels) - last 2 params are unused by this mode |
setsphere_distmin | <distance> | Sets the distance (in m) at which the effect should start |
setsphere_distmax | <distance> | Sets the distance (in m) at which the effect should end |
setsphere_distextend | 1 or 0 | Specify 1 (default) to extend the effect past the maximum distance or 0 to end it |
setsphere_valuemin | - | Unused |
setsphere_valuemax | - | Unused |
Notes
- don't use @setsphere_distextend:1=force with a min/max distance value in this mode; just setting distmin will suffice (see examples)
Example
- Clear all modifiers and switch @setsphere to 'pixelate' mode
@clear,setsphere=n,setsphere_mode:4=force
- Set the block size to 10x10 (everything is pixelated)
@setsphere_param:10/10/0/0=force
- Enforce the effect only when >=10m away (only objects >10m away appear pixelated)
@setsphere_distmin:10=force
- Tween to a block size of 25x25 in 15 seconds (and then reset the tween duration for following commands)
@setsphere_tween:15=force,setsphere_param:25/25/0/0=force,setsphere_tween=force