diff --git a/addons/material_maker/nodes/sdline2.mmg b/addons/material_maker/nodes/sdline2.mmg new file mode 100644 index 00000000..23da98c6 --- /dev/null +++ b/addons/material_maker/nodes/sdline2.mmg @@ -0,0 +1,105 @@ +{ + "name": "sdline2", + "node_position": { + "x": 0, + "y": 0 + }, + "parameters": { + "ax": -0.3, + "ay": -0.3, + "bx": 0.3, + "by": 0.3, + "r": 0.1 + }, + "seed": 0, + "seed_locked": false, + "shader_model": { + "code": "vec2 $(name_uv)_sdl = sdLine($uv, vec2($ax+0.5, $ay+0.5), vec2($bx+0.5, $by+0.5));", + "global": "vec2 sdLine(vec2 p, vec2 a, vec2 b) {\n vec2 pa = p-a, ba = b-a;\n float h = clamp(dot(pa,ba)/dot(ba,ba), 0.0, 1.0);\n return vec2(length(pa-ba*h), h);\n}\n", + "inputs": [ + { + "default": "1.0", + "label": "", + "longdesc": "A profile for the shape, generated (for example) by a Tonality node.", + "name": "profile", + "shortdesc": "Profile", + "type": "f" + } + ], + "instance": "", + "longdesc": "A line or a capsule shape described as a signed distance function", + "name": "sdLine", + "outputs": [ + { + "longdesc": "The shape as signed distance function", + "sdf2d": "$(name_uv)_sdl.x-$r*$profile(vec2($(name_uv)_sdl.y, 0.5))", + "shortdesc": "Output", + "type": "sdf2d" + } + ], + "parameters": [ + { + "control": "P1.x", + "default": 0, + "label": "A X", + "longdesc": "The position on the X axis of the first point of the line", + "max": 1, + "min": -1, + "name": "ax", + "shortdesc": "A.x", + "step": 0.01, + "type": "float" + }, + { + "control": "P1.y", + "default": 0, + "label": "A Y", + "longdesc": "The position on the Y axis of the first point of the line", + "max": 1, + "min": -1, + "name": "ay", + "shortdesc": "A.y", + "step": 0.01, + "type": "float" + }, + { + "control": "P2.x", + "default": 1, + "label": "B X", + "longdesc": "The position on the X axis of the second point of the line", + "max": 1, + "min": -1, + "name": "bx", + "shortdesc": "B.x", + "step": 0.01, + "type": "float" + }, + { + "control": "P2.y", + "default": 1, + "label": "B Y", + "longdesc": "The position on the Y axis of the second point of the line", + "max": 1, + "min": -1, + "name": "by", + "shortdesc": "B.y", + "step": 0.01, + "type": "float" + }, + { + "control": "Radius1.r", + "default": 0, + "label": "Width", + "longdesc": "The width of the capsule shape around the line", + "max": 1, + "min": 0, + "name": "r", + "shortdesc": "Width", + "step": 0.01, + "type": "float" + } + ], + "shortdesc": "sdLine" + }, + "type": "shader" +} \ No newline at end of file diff --git a/material_maker/doc/images/node_simple_sdf_shapes_sdline.png b/material_maker/doc/images/node_simple_sdf_shapes_sdline.png index d483c953..f82a8569 100644 Binary files a/material_maker/doc/images/node_simple_sdf_shapes_sdline.png and b/material_maker/doc/images/node_simple_sdf_shapes_sdline.png differ diff --git a/material_maker/library/base.json b/material_maker/library/base.json index 90dec11a..2504813f 100644 --- a/material_maker/library/base.json +++ b/material_maker/library/base.json @@ -245,17 +245,19 @@ "type": "sdbox" }, { - "icon": "simple_sdf_shapes_sdline", - "icon_data": "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABWpJREFUeJzl212IXdUVwPFfcm37IiKKJTQBrVibaVXaKCZN/EKtCCYNtj7EpA8+GCWIxiK1ImgHAsGKSlKDD4JIicE2JCoRShsaYwZsScgH0dQ2rYqaNIwxVWIcP4PLh7VneufMuVrf5p6zYcM9a6/99d97r3PuOWtNYXrwHxPTfFyPC/FNnIDjJU/B1zAVH+A1bMGjeL2mrSW4EydjHe6u0VmKG9HB7/Bwjc4yXFv6fAIbanRuwsV4B+vxQqV8Khbje3hLh2OD4xVm4AH8Aj/A+/gbNpZOn8Sz+CveLAP+Tun0SnwdOyqdvoRjON//gG6p6OyWYH9Y8jdq2tmJE3EeBuRivFzR2YXTMBNnln4PdJUH9mEavj0mKfmSYFswEuwPfhMMxHidurww2BgcCQ4Ha3roLQn2Bm8EK3voLA22BzuDW3voLAs2B88E1/XQuSlYG6wO5tWUTw1+Hh0MJplL8GChuw134HEc8eVpv9xuH+NczJO7YlNFb/LthAJgBtaUBp/FDXjly+c9IW0vncySEM4y2SEUAA/garnyN+C9msnNwk/xE1yEb+EQPqzo7cfBMsF+gGB+cLCc+bk1Z2VOsD44FHwSHC95JNgXrOhxBhcELwbvBY9NWpvQ4deDae3XyjPfnRZhlVzJI3KHbMZefIKzcWlZyb8Yvxv+pU92wr8jc9Xazwn+GXwUrKspFywO9pQdsSk4tR93wtHIW1hVcX2Z2LoeDY3mi4JdfQzBSHBvRWFW5Jl/tcfKNwmCo6Xj7sJbIg3ehh6TndYgCP4bXFMpWFEm8tCESQ4PD8fQ0FAwsyEQvBP5KNstvKdM4pGKfFoMDQ1FRDQJwrHg5opwUaRt2FpTYWbTIIwEqyrCUyIfct6NvNU1GsLbwfM1FVZEPgPsKZNpLITtwVsx0Q4Ini6D39VkCCuD96P+YejUMugmQ3BGsDvyZcbyFkKgKB2O/EdYdxSaDGHsYk3kU+GLZRBtgTDu4rHSaasgVAWtg1BXoVUQqv8EWwdhb7QcwhvRbghWRrshEO2GMHbRVgjjLloJoSpoHYS6Cq2CsLRHhdZA2B4th7Az2g3BrdFuCES7IYxdtBXCuItWQqgKWgehbvBNhnA0Kn6My3oMvokQFka++j8cXW+ENke7ICyP/Ai0O/KjkGeifRA2Rn4OXBnyA2GTITxdU74w8oPw2BuhpkLYE/mJv86Z8/lI14AxQRMhLI508tgX6fTRXbYq0jlknLCJELaWiS6qyG+OdA+aUKHfIVRd+B4p9e+pyBdGOojVDqw/IQwPD9eUP1TqVu3ANZEuguks2AAI03rIN0Q6fd5SkS+JfCq0NpoDoZoHIt19D0W6/3aX3RvFCK6O5kJYV3TX15RtDI5GiRo7U/rRnyb96rvTy9L/fkD6458o/fO70w7pxz/q0z9F+vl3py0yHuBCGR9wTMYLdKdNMq5gXtE5KOMORtOHMl7h+zJKrVc7A1iNn8mQvl+VtrrLb8eIDgcGs5F+gzATP8JVMtxnNq6Q8Yd3lPqvyZiwP1X6+CUux3OjMUMH9B+EP5S+puOcAmC2jGL5FH+WK1+d/Fzchc9wn66wuX6DAFvxe/y91B8N8LwfvzV+28NJ8mich6dkmOAE4zAvJq9hrHPh+3/zScGTkf8CtwUzAtFh6mDqjKbJuhPmyjPfkfGJXyXNlSt/Ff4hj0D202HJYMbSTnYIM3ABLpNn/WMZo/hFaUAavLvKGHeV30NjGh0WDWYg8WSH8Ed8VMYzW1r++TLk73QJ6KzSxrW4Td7qLpcG7yksn9Buh3MGM4q6HyDskNb9OE7BdzEHP8aCMvEFMg76DIzgOdwnDV41Ina6zwHHRhRw5E0j2wAAAABJRU5ErkJggg==", - "name": "sdline", + "icon_data": "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABR5JREFUeJzlm0GIFEcUhr/gQQ+bkFwCkUUhF4MQ2DWsECFuEPUU9CJrEBQkBMMeo+tF2HhbCOhpmQyRuSxKAnMRjUHMZmQu4160jYJ4igmmYURXdFtwF3v6z+HVrD01PYnJye4uKJh+9aq66quaV93V7wEoO08KrgoWBbFgRfBE8FDwSPAsJb8nmBNsH9DWLsENQSQ4K1iXobNPcF1wX3BqQDuHBC3X1rEBOl8ILgsuCg4M0Dns+jurNcBJetI2oAp8CWwE/gB+AmrAd8D3wA/AFeAOsAwMAx8Du4H3gF96m+R3l7e49jcBPwNxSucO8NjpbHVtXvHa+Q14AYwAo8CbQMvTCYC1wIfAZuAN4LancxN4G/gAeskcFNx1MxsIjgqGBlBM5zHBGcEDwbLgvGB9TlZCz+D/FDwXnBNseIWB+3m/Axe7mw/nAAIItrmZfy6Y/R8D91fDtTxBQHDJdfjcPwxsr2BGtVpN1WpVMCUYGaD7UZ4gTMoseqDsZT+hZrOpKIokSUmSSJI6nY7CMFStVhswwNxAuCozXEczKk2p3W4rjmMFQaBKpaLjoGlQvV5XGIZKkkStVkswmlcIi4Jb6rf2E2q321paWtJp0FBGg+OgRqMhSVpYWMgrhFi2hfUqNptNxXGs0wNtguWNoPn5+RxDYEVwxFPYqyiKFARB5swXCwJPBDu8whlJUqVS6av4OWisUBB4KH87q9VqSpJExzMG/xR0C7SzMBB4JHt4eSmsVquSpGlPecwN/kWxIDwT7PGEU+p0OqrX630VdhYPQiw44QlHFIahwjDUeEaDBYOwIrjQV6FrBxqNhjYWG8I9wV/y7QAMq9VqSZLm5+eLDGFOgx6GYFQLCwsFh8B2p/xA9j5fNggg+Fb2QhSo/69QdAirF+fdTa+5TpQFwuqP9e5mpYOQvhguIwRfuXQQdmUolwrCDZUcQqRyQ+Csyg2BdSo3BFC5Iaz+KC2E9EUpIfjKpYOwL0O5VBCuq9wQuK9yQ+CUyg0BVG4IqxdlhdBzUUoIfoUyQOhx4etvtPgQzqfLDmUoFxXCmOzof1n2KQBhHwfKBGG/7CPQfTnf5hsqH4Qzri9zwj4QFheCufD5ln9M9kH4njBBMSE0Gg0lSeKcOX2dCzLXgFVB8SCMw6qjR79b7wnXhx5h8SDU63V1Oh2Zb3O6bI/MPaivUr4h+C580yBJzsHbtwOPsgDkF8JTzJUvXXYcBtiBEZmLoDkL5h7CWMbgAVUqFUkSzHhlO2ROolxWUSD4eQgUBIGiKJLFO6TLj8jtAhdVVAinQXEcq9lsZpR3H4Y4oLxCaDQamX6MQ27wS0tLarfbgglPZ0gWIrAoTJA/CK1WS0mSKAxD1et1TWMGr1KpKAgCxXHsBu9vf8iCQ5ZlwSKrwrxBGFatVlMYhup0OpJehvNEUeSWvT/zyMKCAtkzwGQaQB4hINvOplStVt1WN6N+g5fO51ybl7oyX+F1hpDlwvdf8qwsNPCuLFQwE8DrDCFQtjPnv+UNbuafy4JDD6bLDw+o9DpBWC87xlqWHWac0authiGZwetGs971B6818PVJCyS+SW+6jQUeb8YCkddigcnp1MICmEexgOYXWIBzOl3BAqG3YoHRj7FA6W6KsUDqTVhg9RZeBlt3UwT8CLzl+vMJ8BnwKfA+8I4re9eV7wa+Ar4BJlz5r8Ax4JLXP2ZlJyN5WAnIjrHmZIcZK25mn8lebB7KHm+78kXZVjc5cJX8DXx9ZYatkJ/hAAAAAElFTkSuQmCC", + "name": "sdline2", "parameters": { "ax": -0.3, "ay": -0.3, "bx": 0.3, - "by": 0.3 + "by": 0.3, + "r": 0.1 }, + "seed": 0, + "seed_locked": false, "tree_item": "Simple/SDF/Shapes/sdLine", - "type": "sdline" + "type": "sdline2" }, { "icon": "simple_sdf_shapes_sdrhombus",