public void OnProcessShader(Shader shader, ShaderSnippetData snippetData, IList <ShaderCompilerData> compilerDataList) { LookingGlassRenderPipelineAsset lwrpAsset = GraphicsSettings.renderPipelineAsset as LookingGlassRenderPipelineAsset; if (lwrpAsset == null || compilerDataList == null || compilerDataList.Count == 0) { return; } ShaderFeatures features = GetSupportedShaderFeatures(lwrpAsset); int prevVariantCount = compilerDataList.Count; for (int i = 0; i < compilerDataList.Count; ++i) { if (StripUnused(features, shader, snippetData, compilerDataList[i])) { compilerDataList.RemoveAt(i); --i; } } if (lwrpAsset.shaderVariantLogLevel != ShaderVariantLogLevel.Disabled) { m_TotalVariantsInputCount += prevVariantCount; m_TotalVariantsOutputCount += compilerDataList.Count; LogShaderVariants(shader, snippetData, lwrpAsset.shaderVariantLogLevel, prevVariantCount, compilerDataList.Count); } }
public void OnDisable() { m_ShowBGColorAnim.valueChanged.RemoveListener(Repaint); m_ShowOrthoAnim.valueChanged.RemoveListener(Repaint); m_ShowTargetEyeAnim.valueChanged.RemoveListener(Repaint); m_LightweightRenderPipeline = null; }
public new void OnEnable() { m_LightweightRenderPipeline = GraphicsSettings.renderPipelineAsset as LookingGlassRenderPipelineAsset; m_AdditionalCameraData = camera.gameObject.GetComponent <LWRPAdditionalCameraData>(); settings.OnEnable(); init(m_AdditionalCameraData); UpdateAnimationValues(true); }
ShaderFeatures GetSupportedShaderFeatures(LookingGlassRenderPipelineAsset pipelineAsset) { ShaderFeatures shaderFeatures; shaderFeatures = ShaderFeatures.MainLight; if (pipelineAsset.supportsMainLightShadows) { shaderFeatures |= ShaderFeatures.MainLightShadows; } if (pipelineAsset.additionalLightsRenderingMode == LightRenderingMode.PerVertex) { shaderFeatures |= ShaderFeatures.AdditionalLights; shaderFeatures |= ShaderFeatures.VertexLighting; } else if (pipelineAsset.additionalLightsRenderingMode == LightRenderingMode.PerPixel) { shaderFeatures |= ShaderFeatures.AdditionalLights; if (pipelineAsset.supportsAdditionalLightShadows) { shaderFeatures |= ShaderFeatures.AdditionalLightShadows; } } bool anyShadows = pipelineAsset.supportsMainLightShadows || CoreUtils.HasFlag(shaderFeatures, ShaderFeatures.AdditionalLightShadows); if (pipelineAsset.supportsSoftShadows && anyShadows) { shaderFeatures |= ShaderFeatures.SoftShadows; } if (pipelineAsset.supportsMixedLighting) { shaderFeatures |= ShaderFeatures.MixedLighting; } return(shaderFeatures); }
void DrawAdditionalShadowData() { bool hasChanged = false; int selectedUseAdditionalData; if (m_AdditionalLightDataSO == null) { selectedUseAdditionalData = 1; } else { m_AdditionalLightDataSO.Update(); selectedUseAdditionalData = !m_AdditionalLightData.usePipelineSettings ? 0 : 1; } Rect controlRectAdditionalData = EditorGUILayout.GetControlRect(true); if (m_AdditionalLightDataSO != null) { EditorGUI.BeginProperty(controlRectAdditionalData, Styles.shadowBias, m_UseAdditionalDataProp); } EditorGUI.BeginChangeCheck(); selectedUseAdditionalData = EditorGUI.IntPopup(controlRectAdditionalData, Styles.shadowBias, selectedUseAdditionalData, Styles.displayedDefaultOptions, Styles.optionDefaultValues); if (EditorGUI.EndChangeCheck()) { hasChanged = true; } if (m_AdditionalLightDataSO != null) { EditorGUI.EndProperty(); } if (selectedUseAdditionalData != 1 && m_AdditionalLightDataSO != null) { EditorGUI.indentLevel++; EditorGUILayout.Slider(settings.shadowsBias, 0f, 10f, "Depth"); EditorGUILayout.Slider(settings.shadowsNormalBias, 0f, 10f, "Normal"); EditorGUI.indentLevel--; m_AdditionalLightDataSO.ApplyModifiedProperties(); } if (hasChanged) { if (m_AdditionalLightDataSO == null) { lightProperty.gameObject.AddComponent <LWRPAdditionalLightData>(); m_AdditionalLightData = lightProperty.gameObject.GetComponent <LWRPAdditionalLightData>(); LookingGlassRenderPipelineAsset asset = GraphicsSettings.renderPipelineAsset as LookingGlassRenderPipelineAsset; settings.shadowsBias.floatValue = asset.shadowDepthBias; settings.shadowsNormalBias.floatValue = asset.shadowNormalBias; init(m_AdditionalLightData); } m_UseAdditionalDataProp.intValue = selectedUseAdditionalData; m_AdditionalLightDataSO.ApplyModifiedProperties(); } }