Skip to content

[7.x.x] Merge 7.x.x/hd/staging [Skip CI] #492

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 75 commits into from
May 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
ac93e17
[7.x.x Backport] Fixed a weird behavior in the scalable settings draw…
anisunity Apr 3, 2020
f4f74f1
Fixed an usage of a a compute buffer not bound (1229964) (#28)
sebastienlagarde Apr 7, 2020
5ddc5f7
Removed wrongly serialized fields in StaticLightingSky (#6441)
JulienIgnace-Unity Apr 3, 2020
5faae4d
Fix issues in the post process system with RenderTexture being invali…
sebastienlagarde Apr 7, 2020
3531a57
Update PostProcessSystem.cs
sebastienlagarde Apr 7, 2020
84b722d
Fixed an issue where changing the default volume profile from anothe…
JulienIgnace-Unity Apr 3, 2020
0cd0299
Hdrp/docs/glossary f number (#6523)
JordanL8 Apr 2, 2020
accff86
Clamp probes compression factor to 0 (#19)
FrancescoC-unity Apr 7, 2020
b754f52
path validation when creating new volume profile (#36)
sebastienlagarde Apr 7, 2020
aaf7bf5
Merge branch '7.x.x/release' into 7.x.x/hd/staging
sebastienlagarde Apr 8, 2020
bc7cc75
[Backport 7.x.x] Fix various leaks in HDRP (#120)
JulienIgnace-Unity Apr 15, 2020
359afb4
[7.x.x backport] Follow references when deleting unloading unused ass…
FrancescoC-unity Apr 15, 2020
9993a1c
[7.x.x Backport] Fixed an issue with the specularFGD term being used …
anisunity Apr 16, 2020
4f857b0
Merge branch '7.x.x/release' into 7.x.x/hd/staging
sebastienlagarde Apr 16, 2020
f4c7b7f
d Fix MSAA resolve when there is no motion vectors #1
adrien-de-tocqueville Apr 14, 2020
8cb689f
Fix issues causing planar probes to be broken with multiple cameras i…
FrancescoC-unity Apr 15, 2020
7d010f4
Pospow and SG triplanar fix #40
slunity Apr 8, 2020
4410bd1
Hdrp/fix/custom pass msaa rendering info #42
alelievr Apr 9, 2020
67e7c73
Added disocclusion and ghosting to the glossary (#75)
JordanL8 Apr 9, 2020
6e624d2
Update the scripting API for FrameSettings, FrameSettingsOverrideMask…
RSlysz Apr 16, 2020
bf34a59
fix switch shader compilation (#111)
sebastienlagarde Apr 14, 2020
417b5d1
Update SceneViewDrawMode.cs (#118)
sebastienlagarde Apr 14, 2020
dd03aa3
Fix culling of reflection probes that change position #121
pmavridis Apr 15, 2020
5111f69
Fix null reference when processing light probe #131
pmavridis Apr 15, 2020
61886f3
Fix black screen in XR when HDRP package is present but not used #137
fabien-unity Apr 15, 2020
9d9eb87
Fix default volume profile collapse #138
alelievr Apr 16, 2020
8c0e270
Fix for white flash happening when changing lighting condition (like …
sebastienlagarde Apr 16, 2020
5b4fce1
Added baked GI rp support caveat and made setting shadow filter quali…
JordanL8 Apr 16, 2020
ffc58cd
Update AxF-Shader.md (#152)
JordanL8 Apr 16, 2020
4f787c2
Bind missing buffer #159
victor-unity Apr 16, 2020
2b1b282
Merge branch '7.x.x/release' into 7.x.x/hd/staging
sebastienlagarde Apr 16, 2020
891160d
Merge branch '7.x.x/release' into 7.x.x/hd/staging
sebastienlagarde Apr 16, 2020
f3218d6
[Backport 7.x.x] Diffusion Profile and Material references in HDRP ma…
JulienIgnace-Unity Apr 20, 2020
976cd19
Catch and handle NRefactory parser exceptions #6392
sebastienlagarde Apr 24, 2020
ea70f9b
Merge branch '7.x.x/release' into 7.x.x/hd/staging
sebastienlagarde Apr 24, 2020
56ace1e
[7.x.x backport] Fix quality settings UI and shadow mask UI #122 (#123)
sebastienlagarde Apr 27, 2020
4f14500
Fixed the indirect diffuse texture not being ignored when it should (…
anisunity Apr 27, 2020
f1d45cf
[7.x.x Backport] Fix pre/post pass sg properties #82 (#85)
alelievr May 5, 2020
2f7ebef
Fixed a performance issue with stochastic ray traced area shadows. (#…
anisunity May 5, 2020
774383d
[Backport 7.x.x] Updated raytracing async compute warning. (#304)
JulienIgnace-Unity May 6, 2020
f5d67f1
[Backport 7.x.x] Fixed a null ref exception in static sky when the de…
JulienIgnace-Unity May 6, 2020
1731ded
[Backport 7.x.x] Fixed an error about procedural sky being logged by …
JulienIgnace-Unity May 6, 2020
6876810
[Backport 7.x.x] Fix flickering lighting in the scene and game view w…
JulienIgnace-Unity May 6, 2020
722d7b1
[7.x.x Backport] Fix issue with ambient probe not being correct with …
FrancescoC-unity May 6, 2020
c4bbd9f
[Backport 7.x.x] Fixed some gcalloc in the debug window (#464)
JulienIgnace-Unity May 14, 2020
b2117a4
[Backport 7.x.x] Hdrp/small ui update (#466)
JulienIgnace-Unity May 14, 2020
3903550
[Backport 7.x.x] PBR Sky renderer now shares its internal precomputat…
JulienIgnace-Unity May 14, 2020
762012c
[Backport 7.x.x] New tooltip for camera background and fixed exposure…
JulienIgnace-Unity May 14, 2020
eec0506
[Backport 7.x.x] Fixed asset preview being rendered white because of …
JulienIgnace-Unity May 14, 2020
5e4d82e
Merge branch '7.x.x/release' into 7.x.x/hd/staging
sebastienlagarde May 14, 2020
03dbd4d
Changed UI name, tooltip, and doc for maximum decals on screen (#232)
JordanL8 Apr 23, 2020
aac437e
Update Custom-Post-Process.md (#233)
JordanL8 Apr 24, 2020
fb68069
Update HDRP-Features.md (#235)
JordanL8 Apr 24, 2020
3216fdb
Hdrp/reflection probe scale perf #252
fredericv-unity3d May 7, 2020
122f942
HD: Switch to 1920x1080 default standalone resolution (#279)
aras-p Apr 27, 2020
f77e94a
Makes sure quaternion is normalized and valid before converting to ma…
eturquin May 14, 2020
2905dd0
Fix cookie srgb #297
alelievr May 6, 2020
e0c3e74
Updated forward and deferred rendering definitions (#350)
JordanL8 May 4, 2020
3795b34
Update Light-Component.md (#357)
JordanL8 May 14, 2020
a3dae38
Hd/add layer modification on generated emissive mesh for area light #364
RSlysz May 11, 2020
139c8c0
Update Look-Dev-Environment-Library.md (#365)
JordanL8 May 14, 2020
5fefa89
Update Volumetric-Lighting.md (#402)
JordanL8 May 11, 2020
e0ec69e
Hd/fix nullref while removing decal component #416
RSlysz May 12, 2020
2cb76f9
Fix issue with Uber Post process shader when alpha is enabled #422
FrancescoC-unity May 12, 2020
e457eba
Fix the bug (#430)
skhiat May 13, 2020
4a5c68b
Fix issue causing not all baked reflection probes to be deleted #441
FrancescoC-unity May 14, 2020
9f59d1d
Updated Decal Projector doc (#477)
JordanL8 May 14, 2020
51a5ed3
Look Dev docs refactor 2 #484
JordanL8 May 14, 2020
6529107
[7.x.x Backport] Fix issue with corrupted values with Layer Lit when …
FrancescoC-unity May 14, 2020
e69b21e
Fix Motion Vectors written by transparent when rendering with MSAA #315
FrancescoC-unity May 6, 2020
6abeb5c
Fix issue with the resolve of motion vectors (#421)
FrancescoC-unity May 13, 2020
a740363
Merge branch '7.x.x/hd/staging' of https://github.com/Unity-Technolog…
sebastienlagarde May 14, 2020
6e5663e
Merge branch '7.x.x/release' into 7.x.x/hd/staging
sebastienlagarde May 14, 2020
54e5fce
fix issue with ShowPrePassAndPostPass
sebastienlagarde May 12, 2020
a5b8bac
fix compilation issue in rendergraph
sebastienlagarde May 15, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor.Rendering;
using UnityEngine.TestTools;
using NUnit.Framework;
using System.Text.RegularExpressions;
using System.Globalization;
using System.Threading;
using Unity.PerformanceTesting;
using UnityEditor.Rendering.HighDefinition;
using UnityEngine.Rendering;
using UnityEngine.Rendering.HighDefinition;
using static PerformanceTestUtils;
using static PerformanceMetricNames;

public class HDReflectionSystemTests : EditorPerformanceTests
{
[Version("1"), Test, Performance]
public void HDProbeSystemRegister()
{
using (ListPool<HDProbe>.Get(out var probes))
{
// Create a lot of probe
for (var i = 0; i < 10000; ++i)
{
var gameObject = new GameObject(i.ToString("0000"));
// Deactivate the GameObject to avoid OnEnable calls (which register the probe)
gameObject.SetActive(false);
gameObject.AddComponent<ReflectionProbe>();
var probe = gameObject.AddComponent<HDAdditionalReflectionData>();
probe.enabled = false;
probes.Add(probe);
}

// Measure registration
Measure.Method(() =>
{
foreach (var probe in probes)
HDProbeSystem.RegisterProbe(probe);
}).Run();

// Unregister
foreach (var probe in probes)
HDProbeSystem.UnregisterProbe(probe);

// Delete the probes
foreach (var probe in probes)
Object.DestroyImmediate(probe.gameObject);
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,6 @@ To add, remove, or duplicate environments, use the toolbar at the bottom of the

## Importing an HDRI Texture

To import an HDRI Texture into the Unity Editor, load an **.hdr** or **.exr** file into your Unity Project like you would any other image. In the Texture Importer Inspector window, set **Texture Type** to **Default**, set **Texture Shape** to **Cube**, and set **Convolution Type** to **Specular (Glossy Reflection)**.
To import an HDRI Texture into the Unity Editor, load an **.hdr** or **.exr** file into your Unity Project like you would any other image. In the Texture Importer Inspector window, set **Texture Type** to **Default**, set **Texture Shape** to **Cube**, and set **Convolution Type** to **None**.

When you want to test an HDRI Texture Asset or a skybox cube map Material, drag and drop it into the Look Dev view.
142 changes: 142 additions & 0 deletions com.unity.render-pipelines.core/Documentation~/Look-Dev.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# Look Dev

Look Dev is an image-based lighting tool that contains a viewer for you to check and compare Assets to ensure they work well in various lighting conditions. Look Dev uses the Scriptable Render Pipeline, so it can display the Asset in the same way as it looks in your Scene. You can load Assets into Look Dev either as Prefabs or from the Hierarchy window.

Look Dev is only available in Edit mode. The Look Dev window closes when you enter Play mode.

### Asset validation

Asset validation confirms whether Assets are authored correctly and behave as expected in different lighting environments.

You must use an HDRI (high dynamic range image) to validate your Assets in Look Dev. An HDRI contains real-world lighting with incredibly high detail. As such, it offers perfect lighting that is difficult to create by hand. By using such an accurate lighting environment to test an Asset, you can determine whether the Asset itself or your Project's lighting is reducing the visual quality of your Scene.

You can load two different Assets into Look Dev at the same time and compare them in two viewports. For example, an Art Director can check that a new Asset matches the art direction guidelines of a reference Asset.

## Using Look Dev

To open Look Dev in the Unity Editor, select **Window > Render Pipeline > Look Dev**. The first time you use Look Dev, you must either create a new [Environment Library](Look-Dev-Environment-Library.html) or load one. For information on how to create an Environment Library, see the [Environment Library documentation](Look-Dev-Environment-Library.html).

### Viewports

By default, there is only one viewport in Look Dev, but you can choose from a selection of split-screen views (see the [Multi-view section](#MultiView)).

### Controls

Navigation with the Look Dev Camera works in a similar way to the [Scene view Camera](https://docs.unity3d.com/Manual/SceneViewNavigation.html):

- **Rotate around pivot:** Left click and drag (this is similar to the Scene view except that you need to press the Alt key for the Scene view Camera).
- **Pan camera:** Middle click and drag.
- **Zoom:** Alt + right click and drag.
- **Forward/backward:** Mouse wheel.
- **First Person mode:** Right click + W, A,S, and D.

### Loading Assets into Look Dev

Look Dev lets you view:

**Prefabs** - To load a Prefab into Look Dev, drag it from the Project window into the Look Dev viewport.

**GameObjects** - To load a copy of a Hierarchy GameObject, drag the GameObject from the Hierarchy into the Look Dev viewport.



## Viewport modes

Use the toolbar in the top-left of the window to change which viewing mode Look Dev uses.

### Single viewport

![](Images/LookDev1.png)

By default, Look Dev displays a single viewport which contains the Prefab or GameObject you are working with. If you are in another viewing mode, you can click either the number **1** or number **2** button to go back to single view. Each button corresponds to a viewport in Look Dev. Select button **1** to use viewport 1, and button 2 to use viewport **2**.

<a name="MultiView"></a>

### Multi-viewport

![](Images/LookDev2.png)

Use multiple viewports to compare different environments and settings for the same Asset. You can arrange viewports:

- Vertically side-by-side. Use this mode to compare two different lighting conditions on the same Asset to check that the Asset behaves correctly.
- Horizontally side-by-side. Use this mode to compare two different lighting conditions for horizontal objects, like an environment Asset, to check that the Asset behaves correctly.
- Split-screen. Use this mode investigate texture problems using a debug Shader mode (for example, use one screen to view Normal or Albedo shading, and the other for environment-lit mode).
- Side-by-side and split-screen: Use this mode to compare two different versions of the same Asset using the same lighting conditions to see which changes improve the Asset’s quality.

All three of these modes are useful to compare two different versions of the same Asset using the same lighting conditions to see which changes improve the Asset’s quality.

To load a different Prefab or Hierarchy GameObject into each split-screen view, drag and drop the Asset into the viewport that you want to view it in.

When using multiple viewports, it only makes sense to compare different Prefabs or GameObjects when you want to look at two versions of the same Asset. Comparing completely different Assets doesn’t give you a good idea of the difference in lighting or visual effect.

##### Vertical or horizontal side-by-side

Vertical and horizontal side-by-side viewports show an identical view of your Asset.

![](Images/LookDev3.png)

##### Split-screen

In a split-screen view, there is a red/blue manipulation Gizmo that separates the two viewports. For information on how to use this Gizmo, see [Using the manipulation Gizmo](#ManipulationGizmo).

![](Images/LookDev4.png)

#### Multi-viewport Camera

By default, Look Dev synchronizes the camera movement for both views. To decouple the Cameras from one another, and manipulate them independently, click the **Synchronized Cameras** button in-between the two numbered Camera buttons.

![](Images/LookDev5.png)

To align the cameras with each other, or reset them, click on the drop-down arrow next to the viewport **2** icon:

![](Images/LookDev6.png)

<a name="ManipulationGizmo"></a>

### Using the manipulation Gizmo

The manipulation Gizmo represents the separation plane between the two viewports. It has different behavior in split-screen mode, but you use it in the same way for both side-by-side or split-screen modes.

#### Moving the separator

To move the separator, click and drag the straight line of the Gizmo to the location you want.

![](Images/LookDev7.png)

#### Changing the orientation and length

To change the orientation and length of the manipulator Gizmo, click and drag the circle at either end of the manipulator. Changing the length of the Gizmo lets you set the orientation and [blending](#Blending) values more precisely.

![](Images/LookDev8.png))

#### Changing the split in increments

To change the split in increments, click and hold the circle on the end of the manipulation Gizmo, then hold Shift as you move the mouse. This snaps the manipulation Gizmo to set angles in increments of 22.5°, which is useful for a perfectly horizontal, vertical or diagonal angle.

<a name="Blending"></a>

#### Blending

The central white circle on the separator allows you to blend between the two views. Left click on it and drag along the red line to blend the left-hand view with the right-hand view. Drag along the blue line to blend the right-hand view with the left-hand view (as shown in the image below).

The white circle automatically snaps back into the center when you drag it back. This helps you get back to the default blending value quickly.

![](Images/LookDev9.png)

### HDRI environments in Look Dev

Lighting in Look Dev uses an HDRI. The Look Dev view allows you to manipulate and easily switch between HDRIs to simulate different environments for the Asset you are working on.

Look Dev uses the [Environment Library](Look-Dev-Environment-Library.html) Asset to store a list of environments, which are HDRIs with extra properties that you can use to further refine the environment. For information on how to create, edit, and assign Environment Libraries, see the [Environment Library documentation](Look-Dev-Environment-Library.html#Creation).

## Implementing Look Dev for your custom Scriptable Render Pipeline

In order to use Look Dev in your custom Scriptable Render Pipeline, you must implement the **UnityEngine.Rendering.LookDev.IDataProvider** interface.

| **Function** | **Description** |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| **void FirstInitScene(StageRuntimeInterface stage)** | Look Dev calls this function after it initializes the Scene with a Light and Camera. It uses this function to add and configure extra components according to the needs of your Scriptable Render Pipeline. |
| **void UpdateSky(Camera camera, Sky sky, StageRuntimeInterface stage)** | Look Dev uses this function to update the environment when you change something in Look Dev. You can handle the sky in various ways, so add code that corresponds to your Scriptable Render Pipeline. |
| **IEnumerable****<string>** **supportedDebugModes { get; }** | Use this function to specify the list of supported debug modes. You do not need to add **None** because Look Dev handles that automatically. |
| **void UpdateDebugMode(int debugIndex)** | Use this function to update the debug mode based on what the user selects. The **debugIndex** matches the list in **supportedDebugModes**. If the user selects **None**, then the **debugIndex** is **-1**; |
| **void GetShadowMask(ref RenderTexture output, StageRuntimeInterface stage)** | This function computes a shadow map. The given **StageRuntimeInterface** contains access to the Camera and a Light simulating the sun. |
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
* [SRP Core](index)
* Camera components
* [Free Camera](Free-Camera)
* [Camera Switcher](Camera-Switcher)
* [Camera Switcher](Camera-Switcher)
* [Look Dev](Look-Dev)
* [Environment Library](Look-Dev-Environment-Library)
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,12 @@ protected T Cast<T>(object o)
where T : class
{
var casted = o as T;
string typeName = o == null ? "null" : o.GetType().ToString();

if (casted == null)
{
string typeName = o == null ? "null" : o.GetType().ToString();
throw new InvalidOperationException("Can't cast " + typeName + " to " + typeof(T));
}

return casted;
}
Expand Down
24 changes: 24 additions & 0 deletions com.unity.render-pipelines.high-definition/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Added Light decomposition lighting debugging modes and support in AOV
- Added exposure compensation to Fixed exposure mode
- Added an info box to warn about depth test artifacts when rendering object twice in custom passes with MSAA.
- Added Layer parameter on Area Light to modify Layer of generated Emissive Mesh

### Fixed
- Fixed an issue where a dynamic sky changing any frame may not update the ambient probe.
Expand Down Expand Up @@ -60,6 +61,28 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Fixed issue when toggling anything in HDRP asset that will produce an error (case 1238155)
- Diffusion Profile and Material references in HDRP materials are now correctly exported to unity packages. Note that the diffusion profile or the material references need to be edited once before this can work properly.
- Fixed SceneView Draw Modes not being properly updated after opening new scene view panels or changing the editor layout.
- Fixed shadowmask UI now correctly showing shadowmask disable
- Fixed the indirect diffuse texture not being ignored when it should (ray tracing disabled).
- Fixed depth prepass and postpass being disabled after changing the shader in the material UI.
- Fixed a performance issue with stochastic ray traced area shadows.
- Made more explicit the warning about raytracing and asynchronous compute. Also fixed the condition in which it appears.
- Fixed a null ref exception in static sky when the default volume profile is invalid.
- Fixed an error about procedural sky being logged by mistake.
- Fixed flickering of the game/scene view when lookdev is running.
- Fixed some GCAlloc in the debug window.
- Removed logic in the UI to disable parameters for contact shadows and fog volume components as it was going against the concept of the volume system.
- Fixed over consumption of GPU memory by the Physically Based Sky.
- Put more information in Camera background type tooltip and fixed inconsistent exposure behavior when changing bg type.
- Fixed an issue where asset preview could be rendered white because of static lighting sky.
- Fixed an issue where static lighting was not updated when removing the static lighting sky profile.
- Fixed issue with reflection probes in realtime time mode with OnEnable baking having wrong lighting with sky set to dynamic (case 1238047).
- Fixed an invalid rotation in Planar Reflection Probe editor display, that was causing an error message (case 1182022)
- Fixed cookie texture not updated when changing an import settings (srgb for example).
- Fix error when removing DecalProjector from component contextual menu (case 1243960)
- Fixed issue with post process when running in RGBA16 and an object with additive blending is in the scene.
- Fixed issue that caused not all baked reflection to be deleted upon clicking "Clear Baked Data" in the lighting menu (case 1136080)
- Fix issue with corrupted values with Layer Lit when using multiply mode for vertex color
- Fixed transparent motion vectors not working when in MSAA.

### Changed
- Rejecting history for ray traced reflections based on a threshold evaluated on the neighborhood of the sampled history.
Expand All @@ -70,6 +93,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Rejecting history for ray traced reflections based on a threshold evaluated on the neighborhood of the sampled history.
- Renamed "Environment" to "Reflection Probes" in tile/cluster debug menu.
- Debug exposure in debug menu have been replace to debug exposure compensation in EV100 space and is always visible.
- Improved performance of reflection probe management when using a lot of probes.

## [7.3.0] - 2020-03-11

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,12 @@ public class NewSky : SkySettings
}
return hash;
}

public override int GetHashCode(Camera camera)
{
// Implement if your sky depends on the camera settings (like position for instance)
return GetHashCode();
}
}

```
Expand Down Expand Up @@ -159,6 +165,10 @@ class NewSkyRenderer : SkyRenderer
}

```
### Important note:
If your sky renderer has to manage heavy data (like precomputed textures or similar things) then particular care has to be taken. Indeed, one instance of the renderer will exist per camera so by default if this data is a member of the renderer, it willl also be duplicated in memory.
Since each sky renderer can have very different needs, the responsbility to share this kind of data is the renderer's and need to be implemented by the user.

<a name="RenderingShader"></a>

## Sky rendering Shader
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ Now there are the **Setup**, **Render**, and **Cleanup** functions. These are he

### GrayScale Shader

HDRP gives you total control over the vertex and fragment Shader so you can edit both of them to suit your needs. Note that there are a number of utility functions in [Common.hlsl](https://github.com/Unity-Technologies/ScriptableRenderPipeline/blob/master/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl) and [Color.hlsl](https://github.com/Unity-Technologies/ScriptableRenderPipeline/blob/master/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl) that the Shader includes by default. This means that you have access to these utility functions in your effect. For example, the GrayScale Shader uses the Luminance() function to convert a linear RGB value to its luminance equivalent.
HDRP gives you total control over the vertex and fragment Shader so you can edit both of them to suit your needs. Note that there are a number of utility functions in [Common.hlsl](https://github.com/Unity-Technologies/Graphics/blob/master/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl) and [Color.hlsl](https://github.com/Unity-Technologies/Graphics/blob/master/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl) that the Shader includes by default. This means that you have access to these utility functions in your effect. For example, the GrayScale Shader uses the Luminance() function to convert a linear RGB value to its luminance equivalent.
```
Shader "Hidden/Shader/GrayScale"

Expand Down
Loading