===========================================================================
BSL v7.1 Changelog
===========================================================================
Go to bottom part of this file to see the latest changes.
This changelog includes development versions which are available in
shaderLABS only.
Some fixes or tweaks may not be mentioned.
I added developer comment for no reason, have fun reading this :)
===========================================================================
08 June '18
-v7.1 development started.
    I never learned to stop copy-pasting codes from older versions.
    With this version, I'm aiming for 30 fps in 900p with NVIDIA GT940MX,
    which is barely a success since it can reach target fps, sometimes.
-Full color customization added.
	Customizability and versatility is what i wanted from my shader.
	With all these color settings anyone can make BSL looks better (or
	worse), and there's much less complain about colors doesn't match
	their taste.
-Base lighting added, forward method.
    As soon as Chocapic13's v7 is out, I'm just amazed by how well it
    runs. I thought because it uses forward lighting method, which is done
    in gbuffers pass and basically this is the reason I make v7.1.
-Sky added.
	This time the sky is calculated in gbuffers, which allows vanilla stars
	and few part of resource pack's skybox to appear. The only downside is
	that the sun position in gbuffers_sky is delayed by 1 frame so I need
	custom sun position uniform to fix it.(thank you Builderb0y)
-Desaturation added.
	Desaturating things and tinting is pretty much a thing in Gen 7 console
	era which gives realistic/cinematic feel. I only use this at night,
	when raining, or inside dark areas. It contrasts well with the well
	saturated daytime.
-Fixed texture overlays. e.g. Conquest RP
    This one is kind of a huge problem for dual deferred and deferred-
    forward hybrid rendering since it uses custom alpha blending.
    Internal alpha blending fixes it flawlessly(?).
-Sky reflection added forward method.
    Reflections are usually done after completing the lighting and alpha
    blending in composite and composite1. This time it's done in gbuffers
    pass which allows any non-frontmost surface to have reflections too.
    i.e. water creates reflection behind stained glass.
-and several other stuffs.
===========================================================================
09 June '18
-Cloud added.
    It's the same with v7.0.
-Ambient occlusion added.
    This time it's only possible to use my own AO method which uses
    depth buffer only. SSAO from most shaders (including v6.2 below) also
    uses normals buffer which is unavailable in v7.1 since normals are used
    immediately and not stored in framebuffers (exception for RP Support).
-Fog
    One thing I learned from SEUS is to have the fog starts right from the
    player's position which doesn't create fog ring (the part where the fog
	starts building).
-Shader options added
-Fixed spider and enderman eye from using blocklight color.
	Spider and enderman eye have some amount of blocklight and the
	blocklight color is applied by default. I added a new gbuffers pass
	which only applies 4x brightness.
-Fixed armor glint.
-Underwater fog
	The downside of forward lighting method is it makes underwater fog very
	difficult to apply behind translucents.
===========================================================================
10 June '18
-Screen space reflection added.
	I thought it will be difficult, it turns out that it's not. The major
	problem of water shader is gone! This effect also subtly applied to
	some translucent blocks.
-Light shafts added.
	This time I only provide volumetric light, screen space godrays are
	gone because it's FOV friendly and  there's enough framerate to use
	volumetric light by default.
-Stars added.
	Vanilla stars are dimmed for no reason. That's why I added brighter
	shader stars.
-Lens flare and auto exposure added.
	Both effects now use values stored from temporal framebuffers which
	allows smoother transition with a fairly cheap cost.
-Weather is now affected by torchlight.
	This isn't a brand new feature everywhere, really. Some other shaders
	did it earlier than me. But, it's still a very welcome addition.
===========================================================================
11 June '18
-Tweaked fog.
	Fog shouldn't straight go yellow (or whatever the light color is) near
	the player so fast. I applied normal fog color when near and light
	color when far away. (thank you Uncharted 4 SIGGRAPH talk)
-DOF and motion blur added.
	Kind of a must have post processing effect in shaders (although it's
	fine to have it disabled by default)
-Modifiable water.
	Color customization is not enough :p . Who knows if someone can make
	a good use from it.
-Afternoon light and ambient color option.
	Just in case someone wants their afternoon looks different from their
	morning.
===========================================================================
17 June '18
-Screen space reflection now uses .
	I just learned a trick from Chocapic13 which allows him to reflect
	translucents, which is using previous frame's image (it's impossible
	to create translucent reflections immediately). The only downside is
	some part of the reflection is delayed.
===========================================================================
21 June '18
-Ultra profile added, others rescaled.
	With v7.1, I wanted to make sure that low looks good enough, higher
	profiles have minimal changes, and ultra have acceptable performance.
	(go watch 2kliksphilip's Ultra Settings Suck)
===========================================================================
27 June '18
-Nether and End shader added.
	v7.1's End is very different compared to v7.0 since shadows are added
	in the end now. It also allows me to add light shafts in the End to
	make it feel more atmospheric.
===========================================================================	
28 June '18
-Lava uses blocklight color for tinting.
	Just in case someone wants green or blue (etc.) lava.
-Changed color grading values from 0.00-1.00 to 0-255
	This makes the option more consistent and easier color referencing.
===========================================================================
01 July '18
-Black outline added.
	Black outline in shaders are kind of rare nowdays, but I still have it.
	This time i use the minimum depth from all samples to give a proper
	fade effect.
===========================================================================
03 July '18
-Resource Pack Support added (overworld only).
	I'm using less framebuffers in v7.1 and ended up having the rest used
	for RP Support (specular map, normals, and raw albedo.). Due to the
	more demanding framebuffers, you'll get framerate drops with this
	option enabled even when you're not using any specular / normal packs.
	RP Support is getting a new feature which is parallax self-shadowing,
	which allows surfaces with parallax texture to get extra details.
	I also applied RP support at hand to give a bit more consistent feel.
===========================================================================
04 July '18
-RP Support added in other dimensions.
-Lava fix
	Emissive blocks have glitchy blocklight value, so it needs to be
	hardcoded (unfortunately I'm doing this for lava only so far).
===========================================================================
06 July '18
-Particles receive shadows now.
	The normals in particles are bugged somehow, so I need to remove the
	diffuse to allow it to receive shadows. However, 3D particle mods won't
	receive diffuse lighting. (extra code added so it's possible to enable
	it manually.)
===========================================================================
07 July '18
-Buffer optimization.
	Changing the main framebuffer from RGBA16F to R11F_G11F_B10F gives a
	nice fps boost. Any other shader devs should try it! (Bart Wronski's
	Small Float Formats is interesting to read.)
-Bumpy edge and lightmap banding added.
===========================================================================
13 July '18
-Guesswork NaN (not a number) fix.
	Somehow modded blocks does division by zero which creates NaN. Fixed
	it by clamping those values.
-Skybox tweaks.
	Turns out that some resource pack's (e.g. Dokucraft) skybox works a bit
	different so my shader needs to adapt to it. Skybox should also fade
	properly during weather transition.
===========================================================================
23 July '18
-Bloom option added.
	Back then I wanted everyone to enjoy bloom since that's how BSL should
	be experienced. Suddenly i noticed how annoying it is to hold sea
	lantern at night with all the bloom.
-Added another bloom tile.
	In other words, increased maximum bloom size.
===========================================================================
28 July '18
-Fixed end skybox.
-Tweaked end color.
	My laptop's color is inaccurate(?). With the power of my old but color
	accurate(?) PC, i decided to make the end more purple.
===========================================================================
30 July '18
-Smoother light shaft weighting.
	Due to the growing sampling length, light shafts can make panel-y feel.
	I tweaked the weights to make it feel smoother.
-Waving flowers renamed to waving plants.
	It includes dead bush and saplings.
===========================================================================
02 August '18
-Increased water alpha
	Due to the lack of refraction (which is another difficult thing in
	forward lighting), it's a bit difficult to recognize water so I
	increased the alpha so it's a bit easier to recognize.
-Removed sky reflection when underwater.
===========================================================================
07 August '18
-Motion blur and DOF are done in seperate passes.
	This allows for both effects to be enabled without any hacky tricks.
===========================================================================
08 August '18
-Round sun and moon added.
-Improved motion blur.
	Dithering is now applied to the sampling offset, allowing much smoother
	blur while using the same sample count.
===========================================================================
11 August '18
-Guesswork auto exposure fix
	Another NaN from mods issue. Fixed by clamping the main framebuffer.
===========================================================================
14 August '18
-Fixed weather covered by fog.
	Weather is rendered before deferred shaders (where some effects
	including fog are done), so it gets covered by fog. I increased the
	weather's intensity based on the fog value.
===========================================================================
16 August '18
-Cloud lighting added.
	It's an experimental feature, so it's not enabled by default in all
	profiles. Cloud lighting is kind of difficult to do (for me) and it's
	full of hacky calculations.
===========================================================================
02 September '18
-AO scales on FOV
	When using FOV scaling, the effect's size feels "same" in different
	FOVs.
-Tweaked screen space reflection
	I lowered the accuracy of the reflection to allow it to fill some gaps.
===========================================================================
08 September '18
-Improved metallic reflection.
	I changed the metallic reflection tint from the main image to raw
	albedo to give more believable results.
===========================================================================
15 September '18
-Fixed block damage.
	I usually don't play survival, so i don't really check the block damage
	(the texture which appears when breaking blocks). I added another
	gbuffers pass which applies increased brightness to fix this problem.
-Previous frame reflection option.
	When disabled, reflection uses current framebufer which removes
	translucent reflections, but it gives compatibility to Optifine's
	screenshot size feature.
-More RP Support options.
	I'm adding more options just in case someone don't want some features.
===========================================================================
17 September '18
-Vanilla clouds use shader lighting now.
	Vanilla cloud lighting doesn't match with shader's day/night
	transition.
===========================================================================
18 September '18
-Nether fog range adjusts automatically
	This is the only case where the fog distance really should adjust
	automatically to render distance.
===========================================================================
23 September '18
-AO radius and light shafts quality option added.
	These settings allows me to provide higher quality effects for those
	with better GPUs, and makes Ultra profile feels more like how Ultra
	profile should've been.
===========================================================================
27 September '18
-Tweaked underwater fog.
	Underwater was done in deferred, allowing solid blocks to have the fog
	behind translucents. However, this allows it to leak outside water.
	By moving it to composite, solid blocks doesn't have the fog behind
	translucents, but the fog doesn't leak anymore.
-Per biome weather color
	Optifine's custom uniform (specifically biome) is rarely used, and it
	gives some really interesting results.
===========================================================================
04 October '18
-Fixed false occlusion.
	AO can create false occlusions in some places. This is fixed by
	tweaking the distance check a bit.
===========================================================================
06 October '18
-Weather optimization.
	I didn't realize that the weather fog is expensive. It turns out that
	the fix doesn't use alpha check which creates a lot of wasted textures,
	and fps.
-This changelog.
	I decided to add this changelog since most people who only have the
	public releases are wondering what are the changes.
===========================================================================
09 October '18
-Improved Antialiasing.
	Previous versions use FXAA 4x, which is similar to Optifine's
	implementation. The older version have limited step length which makes
	near horizontal / vertical line still have a bit of aliased feel, and
	it's just bad with tiny details (i.e. New default oak leaves).
	Now it's replaced with FXAA 3.11 which works well on near horizontal /
	vertical lines and works better on tiny details.
===========================================================================
13 October '18
-Added per biome weather option
===========================================================================
14 October '18
-Fixed shadow bias on gbuffers_terrain.
	Some shadows from thin objects (e.g. rails) should cast shadows on
	high shadow map resolution.
-Fixed sky making NaN.
===========================================================================
17 October '18
-Tweaked AO.
===========================================================================
18 October '18
-Sky brightness option.
-Antialiasing should work on lower render quality now.
===========================================================================
20 October '18
-1.13.1 block mapping added.
	With 1.13's flattening, Optifine removes the original block mapping for
	shaders to prevent several issues. I added my own block.properties file
	to remap all the block, and it worked pretty well. Few Aquatic stuffs
	are mapped too. Pre 1.13 is still compatible, but it loses emissive
	recolor on hand due to the lack of hand item mapping.
-Increased underwater light shaft tint amount.
-Doubled underwater fog range when deep under water.
-Allowed texture2DLod for some GPUs.
===========================================================================
21 October '18
-Improved clouds when raining.
-Hand emissive recolor is now split.
===========================================================================
22 October '18
-Lower part of tall plants shouldn't wave anymore.
-Fixed antialiasing on some GPUs.
-Slight reformatting in shader options.
-Tonemap settings added.
-Merged basic color adjustment with color grading.
===========================================================================
24 October '18
-Black outline have sharp corners instead of round corners now.
===========================================================================
26 October '18
-Previous frame refleciton renamed to Reflect translucent and disabled by
 default now.
-AO on translucents only applied on the opaque parts.
===========================================================================
27 October '18
-Subtle underwater distortion added.
===========================================================================
01 November '18
-Changed AO radius setting to AO quality.
===========================================================================
02 November '18
-Light shaft culling.
	You should get a bit more performance when there's nothing above you
	and you're looking against the light source.
===========================================================================
10 November '18
-Fixed reflect translucent affecting light shaft.
-Beacon beam is now tinted by blocklight color.
-Increased AO sample count for increased quality.
===========================================================================
11 November '18
-Fixed end hand issue.
===========================================================================
12 November '18
-Temporal Antialiasing added.
	I used to dislike TAA due to how rough everything is when some pixels
	are recently shown. But, I actually like it now due to how it resolves
	temporal aliasing and reduces dithering on some effects. Playdead's
	Inside GDC talk allowed me to understand how TAA works. 
===========================================================================
13 November '18
-Upgraded AO
	Toy Story 3 SIGGRAPH introduced me paired sample, where two samples
	are sampled in the opposite direction at a time. This allows me to
	greatly reduce the amount of anti-halo.
===========================================================================
18 November '18
-Lilypad use waves like water now.
-Renamed Strength in color settings to Intensity.
	The internal name remains the same so older config file may work.
-Seperated tonemap curve to upper curve and lower curve.
	These options are tonemap based contrast, where 1.5 lower curve and
	0.5 upper curve gives high contrast while 0.5 lower curve and 1.5
	upper curve gives low contrast.
-Removed brightness and contrast settings.
-Saturation is done in gamma space.
===========================================================================
25 November '18
-Metals should look more metallic in lower smoothness.
===========================================================================
06 December '18
-Improved black outline.
	Paired sample is also used for this effect, reduces missing outlines.
	Changed offset shape from circle to square. This effect should be
	compatible with DOF too.
-Fixed high resolution shadows with TAA
===========================================================================
08 December '18
-Fixed hand shadows.
-Cloud is 40% taller.
-Rescaled cloud height option.
-Added cloud brightness and speed, and water speed.
===========================================================================
09 December '18
-Medium profile have better shadow quality instead of more effects.
	This ensures that the ugly shadows on foliages gone sooner. It also
	gives a bit of profile consistency where lower profiles don't have
	fancy effects while higher profiles do.
===========================================================================
14 December '18
-Disabling bright emmisive now also affects level 15 light sources.
===========================================================================
16 December '18
-Removed AO and light shaft quality.
	Since TAA can smooth out these effects, the quality settings become
	redundant.
===========================================================================
23 December '18
-Added vibrance.
	Vibrance is similar to saturation, but affects saturated color less.
-Fixed RP skybox goes black when raining.
===========================================================================
24 December '18
-Increased black outline sample count.
	This will make sure that all pixels in 5x5 neighborhood is affected.
-Removed motion blur on hand with black outline.
===========================================================================
26 December '18
-Fixed TAA not working in 1.7.10.
===========================================================================
11 January '19
-Moved White World to Visual menu.
-Added max desaturation factor option.
	This option determines the maximum amount of desaturation applied.
	Set to high to get similar result with older versions.
===========================================================================
19 January '19
-DOF is done in single composite.
	This allows better compatibility with bloom.
===========================================================================
27 January '19
-AO is applied on hand now.
===========================================================================
30 January '19
-Fixed motion blur removing water and cloud in older Minecraft versions.
===========================================================================
13 February '19
-Reduced base bloom amount by 20%
===========================================================================
19 February '19
-Fixed normals on block entities.
===========================================================================
1 March '19
-Halved film grain amount.
===========================================================================
2 March '19
-Specular reflection is now allowed in entities.
-Increased cloud render distance.
-Added AO and light shaft strength.
-Removed cloud lighting.
===========================================================================
4 March '19
-Color intensity is squared now.
	This change increases highest contrast ratio possible, from 80:1 to
	6400:1.
-Tweaked bloom compression.
-Water with high intensity can glow now.
===========================================================================
8 March '19
-Simplified ambient lighting.
	Ambient lighting now only get brighter instead of blends to white while
	the player is in dark areas.
===========================================================================
9 March '19
-Tweaked blocklight lightmap to match vanilla lightmap.
	This change makes blocklight more visible in lower light levels,
	however vanilla lightmap artifacts will be more noticeable.
===========================================================================
23 March '19
-Tweaked auto exposure.
	Lower exposure receives much less additional exposure while higher
	exposure still receives a nice amount of exposure reduction.
===========================================================================
27 March '19
-Tweaked fog calculation.
	Fog is now calculated with exponential function instead of linear.
	This gives the fog a smoother look at the edges and reduces nearby
	fog. This change slightly reduces "blue filter", making AO more
	visible.
-Added world curvature.
	Yes I actually miss this option, it's just ported from the older
	version of the pack. Enchanted items should work properly too now.
===========================================================================
28 March '19
-Removed beacon beam shadow.
===========================================================================
30 March '19
-Minimum light now uses Brightness slider from Video Settings.
-Fixed lava fog not rendering at sky.
===========================================================================
31 March '19
-Added dirty lens.
-Reduced base bloom amount by 20%, again.
	Combined with previous reduction, it's reduced by 36%.
-Adjusted shadow bias to reduce distant near-player artifact.