@@ -9,13 +9,8 @@ namespace UnityEditor.Rendering.Toon
99 internal sealed class BuiltInUTS2toIntegratedConverter : RenderPipelineConverterContainer
1010 {
1111 internal UTS3GUI . CullingMode m_cullingMode ;
12- internal int _autoRenderQueue = 1 ;
1312
14- internal UTS3GUI . UTS_TransparentMode _Transparent_Setting ;
15- internal int _StencilNo_Setting ;
1613
17- const string kLegacyShaderFileName = "LegacyToon" ;
18- const string kShaderFileNameExtention = ".shader" ;
1914
2015
2116 public override string name => "Unity-chan Toon Shader 2" ;
@@ -24,8 +19,7 @@ internal sealed class BuiltInUTS2toIntegratedConverter : RenderPipelineConverter
2419
2520 public override void SetupConverter ( ) {
2621
27- // bool isUts2Installed = CheckUTS2isInstalled();
28- // bool isUts2SupportedVersion = CheckUTS2VersionError();
22+
2923
3024 int materialCount = 0 ;
3125
@@ -369,22 +363,29 @@ void ConvertBuiltInUTS2Materials( string[] guids)
369363 {
370364 foreach ( var guid in m_ConvertingMaterialGuids )
371365 {
372- int renderQueue = ( int ) UnityEngine . Rendering . RenderQueue . Geometry ;
366+
373367 string path = AssetDatabase . GUIDToAssetPath ( guid ) ;
374368 Material material = AssetDatabase . LoadAssetAtPath < Material > ( path ) ;
375- material . shader = Shader . Find ( kIntegratedUTS3Name ) ;
376- var shaderGUID = m_Material2GUID_Dictionary [ material ] ;
377- var UTS2GUID = m_GuidToUTSID_Dictionary [ shaderGUID ] ;
378- renderQueue = material . renderQueue ;
379- // _Transparent_Setting = (UTS3GUI.UTS_TransparentMode)UTS3GUI.MaterialGetInt( material, UTS3GUI.ShaderPropTransparentEnabled);
380- _Transparent_Setting = UTS3GUI . UTS_TransparentMode . Off ;
381- if ( UTS2GUID . m_ShaderName . Contains ( "Trans" ) || UTS2GUID . m_ShaderName . Contains ( "trans" ) )
369+
370+ if ( material . name == "ShadingGradeMap" )
382371 {
383- _Transparent_Setting = UTS3GUI . UTS_TransparentMode . On ;
372+ Debug . Log ( "ShadingGradeMap" ) ;
384373 }
385- _StencilNo_Setting = UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropStencilNo ) ;
386- _autoRenderQueue = UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropAutoRenderQueue ) ;
387374
375+ material . shader = Shader . Find ( kIntegratedUTS3Name ) ;
376+ var shaderGUID = m_Material2GUID_Dictionary [ material ] ;
377+ var UTS2Info = m_GuidToUTSID_Dictionary [ shaderGUID ] as UTS2INFO ;
378+
379+ UTS3GUI . UTS_TransparentMode transparencyEnabled = ( UTS2Info . m_renderQueue == RenderQueue . Transparent ) ? UTS3GUI . UTS_TransparentMode . On : UTS3GUI . UTS_TransparentMode . Off ;
380+
381+
382+
383+
384+ int stencilNo_Setting = UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropStencilNo ) ;
385+
386+ var renderType = UTS2Info . m_renderType ;
387+ var renderQueue = UTS2Info . m_renderQueue ;
388+ material . SetOverrideTag ( UTS2INFO . RENDERTYPE , renderType ) ;
388389 UTS3GUI . UTS_Mode technique = ( UTS3GUI . UTS_Mode ) UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropUtsTechniqe ) ;
389390
390391 switch ( technique )
@@ -396,29 +397,35 @@ void ConvertBuiltInUTS2Materials( string[] guids)
396397 material . EnableKeyword ( UTS3GUI . ShaderDefineSHADINGGRADEMAP ) ;
397398 break ;
398399 }
399- if ( _Transparent_Setting == UTS3GUI . UTS_TransparentMode . On )
400+
401+
402+
403+ if ( transparencyEnabled == UTS3GUI . UTS_TransparentMode . On )
400404 {
401405 UTS3GUI . MaterialSetInt ( material , UTS3GUI . ShaderPropTransparentEnabled , 1 ) ;
402- }
403- if ( _Transparent_Setting != UTS3GUI . UTS_TransparentMode . On )
404- {
405- UTS3GUI . SetupOutline ( material ) ;
406+ UTS3GUI . SetupOverDrawTransparentObject ( material ) ;
406407 }
407408 else
408409 {
409- UTS3GUI . SetupOverDrawTransparentObject ( material ) ;
410+ UTS3GUI . SetupOutline ( material ) ;
410411 }
411412 SetCullingMode ( material ) ;
412- SetAutoRenderQueue ( material ) ;
413- SetTranparent ( material ) ;
413+
414+ SetAutoRenderQueue ( material , 1 ) ;
415+
416+ SetTranparent ( material , transparencyEnabled ) ;
414417
415418 BasicLookdevs ( material ) ;
416- SetGameRecommendation ( material ) ;
417- ApplyClippingMode ( material ) ;
418- ApplyStencilMode ( material ) ;
419+ // Should be kept as it is.
420+ // SetGameRecommendation(material);
421+ var clippingMode = UTS2Info . clippingMode ;
422+ ApplyClippingMode ( material , clippingMode ) ;
423+ ApplyStencilMode ( material , UTS2Info . m_stencilMode ) ;
419424 ApplyAngelRing ( material ) ;
420425 ApplyMatCapMode ( material ) ;
421- ApplyQueueAndRenderType ( technique , renderQueue , material ) ;
426+
427+
428+ ApplyQueueAndRenderType ( material , technique , renderQueue , transparencyEnabled ) ;
422429
423430
424431 }
@@ -462,19 +469,19 @@ void SetCullingMode(Material material)
462469
463470 }
464471 }
465- void SetAutoRenderQueue ( Material material )
472+ void SetAutoRenderQueue ( Material material , int autoRenderQueue )
466473 {
467- UTS3GUI . MaterialSetInt ( material , UTS3GUI . ShaderPropAutoRenderQueue , _autoRenderQueue ) ;
474+ UTS3GUI . MaterialSetInt ( material , UTS3GUI . ShaderPropAutoRenderQueue , autoRenderQueue ) ;
468475 // material.renderQueue
469476 }
470477
471- void SetTranparent ( Material material )
478+ void SetTranparent ( Material material , UTS3GUI . UTS_TransparentMode transperentSetting )
472479 {
473480 const string _ZWriteMode = "_ZWriteMode" ;
474481 const string _ZOverDrawMode = "_ZOverDrawMode" ;
475482
476483
477- if ( _Transparent_Setting == UTS3GUI . UTS_TransparentMode . On )
484+ if ( transperentSetting == UTS3GUI . UTS_TransparentMode . On )
478485 {
479486 if ( UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropUtsTechniqe ) == ( int ) UTS3GUI . UTS_Mode . ThreeColorToon )
480487 {
@@ -532,87 +539,40 @@ private bool IsShadingGrademap(Material material)
532539 return UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropUtsTechniqe ) == ( int ) UTS3GUI . UTS_Mode . ShadingGradeMap ;
533540 }
534541
535- void ApplyQueueAndRenderType ( UTS3GUI . UTS_Mode technique , int renderQueue , Material material )
542+ void ApplyQueueAndRenderType ( Material material , UTS3GUI . UTS_Mode technique , RenderQueue renderQueue , UTS3GUI . UTS_TransparentMode transperentSetting )
536543 {
537- var stencilMode = ( UTS3GUI . UTS_StencilMode ) UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropStencilMode ) ;
538- if ( _autoRenderQueue == 1 )
539- {
540- material . renderQueue = ( int ) UnityEngine . Rendering . RenderQueue . Geometry ;
541- }
544+
542545
543- const string OPAQUE = "Opaque" ;
544- const string TRANSPARENTCUTOUT = "TransparentCutOut" ;
545- const string TRANSPARENT = "Transparent" ;
546- const string RENDERTYPE = "RenderType" ;
547- const string IGNOREPROJECTION = "IgnoreProjection" ;
548- const string DO_IGNOREPROJECTION = "True" ;
549- const string DONT_IGNOREPROJECTION = "False" ;
550- var renderType = OPAQUE ;
551- var ignoreProjection = DONT_IGNOREPROJECTION ;
552-
553- if ( _Transparent_Setting == UTS3GUI . UTS_TransparentMode . On )
554- {
555- renderType = TRANSPARENT ;
556- ignoreProjection = DO_IGNOREPROJECTION ;
557- }
558- else
559- {
560- switch ( technique )
561- {
562- case UTS3GUI . UTS_Mode . ThreeColorToon :
563- {
564- UTS3GUI . UTS_ClippingMode clippingMode = ( UTS3GUI . UTS_ClippingMode ) UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropClippingMode ) ;
565- if ( clippingMode == UTS3GUI . UTS_ClippingMode . Off )
566- {
567546
568- }
569- else
570- {
571- renderType = TRANSPARENTCUTOUT ;
572547
573- }
548+ var ignoreProjection = UTS2INFO . DONT_IGNOREPROJECTION ;
574549
575- break ;
576- }
577- case UTS3GUI . UTS_Mode . ShadingGradeMap :
578- {
579- UTS3GUI . UTS_TransClippingMode transClippingMode = ( UTS3GUI . UTS_TransClippingMode ) UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropClippingMode ) ;
580- if ( transClippingMode == UTS3GUI . UTS_TransClippingMode . Off )
581- {
582- }
583- else
584- {
585- renderType = TRANSPARENTCUTOUT ;
586-
587- }
588-
589- break ;
590- }
591- }
550+ if ( transperentSetting == UTS3GUI . UTS_TransparentMode . On )
551+ {
592552
553+ ignoreProjection = UTS2INFO . DO_IGNOREPROJECTION ;
593554 }
594- if ( _autoRenderQueue == 1 )
555+ else
595556 {
596- if ( _Transparent_Setting == UTS3GUI . UTS_TransparentMode . On )
597- {
598- material . renderQueue = ( int ) UnityEngine . Rendering . RenderQueue . Transparent ;
599- }
600- else if ( stencilMode == UTS3GUI . UTS_StencilMode . StencilMask )
601- {
602- material . renderQueue = ( int ) UnityEngine . Rendering . RenderQueue . AlphaTest - 1 ;
603- }
604- else if ( stencilMode == UTS3GUI . UTS_StencilMode . StencilOut )
605- {
606- material . renderQueue = ( int ) UnityEngine . Rendering . RenderQueue . AlphaTest ;
607- }
557+
608558 }
609- else
559+ // material.SetOverrideTag(UTS2INFO.IGNOREPROJECTION, ignoreProjection);
560+ switch ( renderQueue )
610561 {
611- material . renderQueue = renderQueue ;
562+ case RenderQueue . None :
563+ material . renderQueue = ( int ) UnityEngine . Rendering . RenderQueue . Geometry ;
564+ break ;
565+ case RenderQueue . AlphaTest :
566+ material . renderQueue = ( int ) UnityEngine . Rendering . RenderQueue . AlphaTest ;
567+ break ;
568+ case RenderQueue . AlphaTestMinus1 :
569+ material . renderQueue = ( int ) UnityEngine . Rendering . RenderQueue . AlphaTest - 1 ;
570+ break ;
571+ case RenderQueue . Transparent :
572+ material . renderQueue = ( int ) UnityEngine . Rendering . RenderQueue . Transparent ;
573+ break ;
612574 }
613575
614- material . SetOverrideTag ( RENDERTYPE , renderType ) ;
615- material . SetOverrideTag ( IGNOREPROJECTION , ignoreProjection ) ;
616576 }
617577 void ApplyMatCapMode ( Material material )
618578 {
@@ -645,9 +605,10 @@ void ApplyAngelRing(Material material)
645605 }
646606 }
647607
648- void ApplyStencilMode ( Material material )
608+ void ApplyStencilMode ( Material material , UTS3GUI . UTS_StencilMode mode )
649609 {
650- UTS3GUI . UTS_StencilMode mode = ( UTS3GUI . UTS_StencilMode ) ( UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropStencilMode ) ) ;
610+ UTS3GUI . MaterialSetInt ( material , UTS3GUI . ShaderPropStencilMode , ( int ) mode ) ;
611+
651612 switch ( mode )
652613 {
653614 case UTS3GUI . UTS_StencilMode . Off :
@@ -674,7 +635,7 @@ void ApplyStencilMode(Material material)
674635
675636
676637 }
677- void ApplyClippingMode ( Material material )
638+ void ApplyClippingMode ( Material material , int clippingMode )
678639 {
679640
680641 if ( ! IsShadingGrademap ( material ) )
@@ -684,7 +645,7 @@ void ApplyClippingMode(Material material)
684645 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_TRANSCLIPPING_OFF ) ;
685646 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_TRANSCLIPPING_ON ) ;
686647
687- switch ( UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropClippingMode ) )
648+ switch ( clippingMode )
688649 {
689650 case 0 :
690651 material . EnableKeyword ( UTS3GUI . ShaderDefineIS_CLIPPING_OFF ) ;
@@ -700,13 +661,16 @@ void ApplyClippingMode(Material material)
700661 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_OUTLINE_CLIPPING_NO ) ;
701662 material . EnableKeyword ( UTS3GUI . ShaderDefineIS_OUTLINE_CLIPPING_YES ) ;
702663 break ;
703- default :
664+ case 2 :
704665 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_CLIPPING_OFF ) ;
705666 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_CLIPPING_MODE ) ;
706667 material . EnableKeyword ( UTS3GUI . ShaderDefineIS_CLIPPING_TRANSMODE ) ;
707668 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_OUTLINE_CLIPPING_NO ) ;
708669 material . EnableKeyword ( UTS3GUI . ShaderDefineIS_OUTLINE_CLIPPING_YES ) ;
709670 break ;
671+ default :
672+ Debug . Assert ( false ) ;
673+ break ;
710674 }
711675 }
712676 else
@@ -716,25 +680,27 @@ void ApplyClippingMode(Material material)
716680 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_CLIPPING_OFF ) ;
717681 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_CLIPPING_MODE ) ;
718682 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_CLIPPING_TRANSMODE ) ;
719- switch ( UTS3GUI . MaterialGetInt ( material , UTS3GUI . ShaderPropClippingMode ) )
683+ switch ( clippingMode )
720684 {
721685 case 0 :
722686 material . EnableKeyword ( UTS3GUI . ShaderDefineIS_TRANSCLIPPING_OFF ) ;
723687 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_TRANSCLIPPING_ON ) ;
724688 break ;
725- default :
689+ case 1 :
726690 material . DisableKeyword ( UTS3GUI . ShaderDefineIS_TRANSCLIPPING_OFF ) ;
727691 material . EnableKeyword ( UTS3GUI . ShaderDefineIS_TRANSCLIPPING_ON ) ;
728692 break ;
693+ default :
694+ Debug . Assert ( false ) ;
695+ break ;
729696
730697 }
731698
732699 }
733-
700+ UTS3GUI . MaterialSetInt ( material , UTS3GUI . ShaderPropClippingMode , clippingMode ) ;
734701 }
735702
736- const string srpDefaultColorMask = "_SPRDefaultUnlitColorMask" ;
737- const string srpDefaultCullMode = "_SRPDefaultUnlitColMode" ;
703+
738704
739705
740706
0 commit comments