version 2.3.0
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
// "VIVE SDK
|
||||
// © 2020 HTC Corporation. All Rights Reserved.
|
||||
//
|
||||
// Unless otherwise required by copyright law and practice,
|
||||
// upon the execution of HTC SDK license agreement,
|
||||
// HTC grants you access to and use of the VIVE SDK(s).
|
||||
// You shall fully comply with all of HTC’s SDK license agreement terms and
|
||||
// conditions signed by you and all SDK and API requirements,
|
||||
// specifications, and documentation provided by HTC to You."
|
||||
|
||||
Shader "VIVE/OpenXR/CompositionLayer/UnderlayAlphaZeroSolid"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_MainTex("Texture", 2D) = "white" {}
|
||||
_ColorScale("Color Scale", Color) = (1,1,1,1)
|
||||
_ColorBias("Color Bias", Color) = (0,0,0,0)
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags {"Queue" = "Transparent" "RenderType" = "Transparent"}
|
||||
LOD 500
|
||||
|
||||
ZWrite On
|
||||
Blend Zero Zero
|
||||
|
||||
Pass
|
||||
{
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#pragma multi_compile_local _ COLOR_SCALE_BIAS_ENABLED
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float2 uv : TEXCOORD0;
|
||||
float4 vertex : SV_POSITION;
|
||||
};
|
||||
|
||||
sampler2D _MainTex;
|
||||
float4 _MainTex_ST;
|
||||
|
||||
fixed4 _ColorScale;
|
||||
fixed4 _ColorBias;
|
||||
|
||||
v2f vert(appdata v)
|
||||
{
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag(v2f i) : SV_Target
|
||||
{
|
||||
fixed4 col = tex2D(_MainTex, i.uv);
|
||||
|
||||
return col;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 33a39a24d09f3cf48ae13735ee2209f6
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -99,6 +99,9 @@ namespace VIVE.OpenXR.CompositionLayer
|
||||
[SerializeField]
|
||||
public bool applyColorScaleBias = false;
|
||||
|
||||
[SerializeField]
|
||||
public bool solidEffect = false;
|
||||
|
||||
[SerializeField]
|
||||
public Color colorScale = Color.white;
|
||||
|
||||
@@ -457,7 +460,7 @@ namespace VIVE.OpenXR.CompositionLayer
|
||||
{
|
||||
if (layerType == LayerType.Underlay)
|
||||
{
|
||||
if (!enabledColorScaleBiasInShader)
|
||||
//if (!enabledColorScaleBiasInShader)
|
||||
{
|
||||
if (generatedUnderlayMeshRenderer != null && generatedUnderlayMeshRenderer.material != null)
|
||||
{
|
||||
@@ -482,6 +485,11 @@ namespace VIVE.OpenXR.CompositionLayer
|
||||
|
||||
UnityToOpenXRConversionHelper.GetOpenXRColor4f(colorScale, ref CompositionLayerParamsColorScaleBias.colorScale);
|
||||
UnityToOpenXRConversionHelper.GetOpenXRColor4f(colorBias, ref CompositionLayerParamsColorScaleBias.colorBias);
|
||||
if (!solidEffect && enabledColorScaleBiasInShader)
|
||||
{
|
||||
CompositionLayerParamsColorScaleBias.colorScale.a = 1.0f;
|
||||
CompositionLayerParamsColorScaleBias.colorBias.a = 0.0f;
|
||||
}
|
||||
|
||||
compositionLayerColorScaleBias.Submit_CompositionLayerColorBias(CompositionLayerParamsColorScaleBias, layerID);
|
||||
}
|
||||
@@ -616,6 +624,11 @@ namespace VIVE.OpenXR.CompositionLayer
|
||||
CompositionLayerParamsQuad.type = XrStructureType.XR_TYPE_COMPOSITION_LAYER_QUAD;
|
||||
CompositionLayerParamsQuad.layerFlags = ViveCompositionLayerHelper.XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT | ViveCompositionLayerHelper.XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT;
|
||||
|
||||
if (!enabledColorScaleBiasInShader)
|
||||
{
|
||||
CompositionLayerParamsQuad.layerFlags |= ViveCompositionLayerHelper.XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT;
|
||||
}
|
||||
|
||||
switch (layerVisibility)
|
||||
{
|
||||
default:
|
||||
@@ -683,6 +696,11 @@ namespace VIVE.OpenXR.CompositionLayer
|
||||
CompositionLayerParamsCylinder.type = XrStructureType.XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR;
|
||||
CompositionLayerParamsCylinder.layerFlags = ViveCompositionLayerHelper.XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT | ViveCompositionLayerHelper.XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT;
|
||||
|
||||
if (!enabledColorScaleBiasInShader)
|
||||
{
|
||||
CompositionLayerParamsCylinder.layerFlags |= ViveCompositionLayerHelper.XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT;
|
||||
}
|
||||
|
||||
if (isHeadLock)
|
||||
{
|
||||
CompositionLayerParamsCylinder.space = compositionLayerFeature.HeadLockSpace;
|
||||
@@ -1419,7 +1437,10 @@ namespace VIVE.OpenXR.CompositionLayer
|
||||
|
||||
generatedUnderlayMeshRenderer = generatedUnderlayMesh.AddComponent<MeshRenderer>();
|
||||
generatedUnderlayMeshFilter = generatedUnderlayMesh.AddComponent<MeshFilter>();
|
||||
generatedUnderlayMeshRenderer.sharedMaterial = new Material(Shader.Find("VIVE/OpenXR/CompositionLayer/UnderlayAlphaZero"));
|
||||
if (solidEffect)
|
||||
generatedUnderlayMeshRenderer.sharedMaterial = new Material(Shader.Find("VIVE/OpenXR/CompositionLayer/UnderlayAlphaZeroSolid"));
|
||||
else
|
||||
generatedUnderlayMeshRenderer.sharedMaterial = new Material(Shader.Find("VIVE/OpenXR/CompositionLayer/UnderlayAlphaZero"));
|
||||
generatedUnderlayMeshRenderer.material.mainTexture = texture;
|
||||
|
||||
//Generate Mesh
|
||||
@@ -1441,7 +1462,10 @@ namespace VIVE.OpenXR.CompositionLayer
|
||||
|
||||
generatedUnderlayMeshRenderer = generatedUnderlayMesh.AddComponent<MeshRenderer>();
|
||||
generatedUnderlayMeshFilter = generatedUnderlayMesh.AddComponent<MeshFilter>();
|
||||
generatedUnderlayMeshRenderer.material = new Material(Shader.Find("VIVE/OpenXR/CompositionLayer/UnderlayAlphaZero"));
|
||||
if (solidEffect)
|
||||
generatedUnderlayMeshRenderer.material = new Material(Shader.Find("VIVE/OpenXR/CompositionLayer/UnderlayAlphaZeroSolid"));
|
||||
else
|
||||
generatedUnderlayMeshRenderer.material = new Material(Shader.Find("VIVE/OpenXR/CompositionLayer/UnderlayAlphaZero"));
|
||||
generatedUnderlayMeshRenderer.material.mainTexture = texture;
|
||||
|
||||
//Generate Mesh
|
||||
|
||||
Reference in New Issue
Block a user