You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.1 KiB

  1. // Amplify Shader Editor - Visual Shader Editing Tool
  2. // Copyright (c) Amplify Creations, Lda <info@amplify.pt>
  3. namespace AmplifyShaderEditor
  4. {
  5. [System.Serializable]
  6. [NodeAttributes( "Object To World", "Object Transform", "Transforms input to World Space" )]
  7. public sealed class ObjectToWorldTransfNode : ParentTransfNode
  8. {
  9. protected override void CommonInit( int uniqueId )
  10. {
  11. base.CommonInit( uniqueId );
  12. m_matrixName = "unity_ObjectToWorld";
  13. m_matrixHDName = "GetObjectToWorldMatrix()";
  14. m_previewShaderGUID = "a4044ee165813654486d0cecd0de478c";
  15. }
  16. public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
  17. {
  18. string result = base.GenerateShaderForOutput( 0, ref dataCollector, ignoreLocalvar );
  19. if( dataCollector.IsTemplate && dataCollector.TemplateDataCollectorInstance.CurrentSRPType == TemplateSRPType.HD && !string.IsNullOrEmpty( m_matrixHDName ) )
  20. {
  21. dataCollector.AddLocalVariable( UniqueId, string.Format( "{0}.xyz", result ), string.Format( "GetAbsolutePositionWS(({0}).xyz);", result ) );
  22. }
  23. return GetOutputVectorItem( 0, outputId, result );
  24. }
  25. }
  26. }