Originally, I concatenated strings in order to generated the clustered light list generation kernel name. But @chman pointed out this would be bad for the GC, since this code runs every frame.
So instead, I pre-generate the kernel names, and index into a 2D array to select the correct kernel string. Heck, it may even look nicer this way.
InitializeFrameSettings properly enables/disables MSAA path depending on the QualitySettings.antiAliasing value
We should probably display this in the AdditionalCameraData in the future.
Changed clustered kernel string generation
LightLoop settings disables FPTL with MSAA
Disable SSS HTILE allocation if SSS is diabled (fails with MSAA)
I want to make the config more dynamic, then...I can start re-adding passes!
Temp MSAA RTs cannot have UAVs generated (enableRandomWrite)
The depth textures need bindMS = true, otherwise, CopyTexture and related ops fail
Now, the light list gen needs to be fixed, and then we can start making progress!
- Added ScreenPositionSlotControlView and its style element (USS).
- Moved ScreenSpaceType enum definition to ScreenSpaceType.cs and added
ScreenSpaceTypeExtensions that provides extension methods for the enum.
- Updated the existing implementation to work with
ScreenPositionSlotControlView.
- Added the fuzziness slot to ReplaceColorNode and ColorMaskNode. It works like
the fuzziness parameter in Photoshop that gives softer edges to the mask.
- Changed the output format of ColorMaskNode from Vector3 to Vector1. It only
outputs single channel masks.
- Added the opacity slot to BlendNode. It's useful when one tries using
BlendNode like layers in Photoshop.
There was an issue that the selection list was not cleared on deletion of nodes.
This caused several problems when invoking node-editing actions right after
deletion.
e.g. Delete a random node and then open the right click menu without selecting
anything. This causes InvalidOperationException in BuildContextualMenu.
This small fix changes the behavior to clear the selection list in the end of
the deletion function.
ResizeSideHandles resize function are split into three cases, and the
resize handle is recording which corner it is closest to when the mouse
is preseed. This is to figure out which direction the window should
resize in when maintaining aspect ratio.
- Fixed an issue causing InvalidOperationException when opening the right-click
menu without having a selected node. Now it shows "Open Documentation" menu
item only when a single node is selected.
- Changed not to show the separator when the menu item is hidden.