State:New|TargetRelease:No Target|icon_bug|database:public|icon_mari|Resolution:Fixed|BugID:547012|
Problem summary
Using _Inverse to invert a LocatorType="Matrix" Node Property on a custom node's GLSL makes Mari ignore $AttributeName if there is only $AttributeName_Inverse in the shader code.
LocatorList Node Property, of the type Matrix, by saving the following text as LocatorListInvertedMatrix.xml into the user Scripts folder:<Node> <DefaultName>Locator List Inverted Matrix</DefaultName> <Cost>0.2</Cost> <CostDescription>Calculations</CostDescription> <ID>LOCATOR_LIST_INVERTED_MATRIX</ID> <Inputs> <Input Name="Position"/> </Inputs> <Attributes> <Attribute Name="Transform" PrettyName="Transform" Group="" Type="LocatorList" LocatorType="Matrix"></Attribute> </Attributes> <Contexts> <Context Type="NodeGraphView"> </Context> <Context Type="GLSL"> <Shader> <Inputs> <Input Name="Position"><Default>vec4(State.Position,1.0)</Default></Input> </Inputs> <Body><![CDATA[ Output.rgb = ($Transform_Inverse * #Position).xyz; Output.a = 1.0; ]]></Body> </Shader> </Context> </Contexts></Node> import mari mari.gl_render.registerCustomProceduralLayerFromXMLFile("Locator List Inverted Matrix", mari.resources.path(mari.resources.USER_SCRIPTS) + "/LocatorListInvertedMatrix.xml") $AttributeName, which in this case is $Transform, must be referenced on its own in the shader, that is without _Inverse. // $TransformWe're sorry to hear that
Please tell us why