Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions addons/material_maker/nodes/sdkite.mmg
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
{
"name": "sdkite",
"node_position": {
"x": 0,
"y": 0
},
"parameters": {
"apex": -0.3,
"base": 0.4,
"width": 0.225
},
"seed_int": 0,
"shader_model": {
"code": "",
"global": [
"float sdKite(vec2 p, float w, float hb, float ht) {",
"\tvec2 v[] = { vec2(-w, 0.0), vec2(0.0, ht), vec2(w, 0.0), vec2(0.0, hb) };",
"\tint l = 4;",
"\tfloat d = dot(p-v[0],p-v[0]);",
"\tfloat s = 1.0;",
"\tint j = l-1;",
"\tfor(int i=0; i<l; i++)",
"\t{",
"\t\tvec2 e = v[j] - v[i];",
"\t\tvec2 w = p - v[i];",
"\t\tvec2 b = w - e*clamp( dot(w,e)/dot(e,e), 0.0, 1.0 );",
"\t\td = min( d, dot(b,b) );",
"\t\tbvec3 c = bvec3(p.y>=v[i].y,p.y<v[j].y,e.x*w.y>e.y*w.x);",
"\t\tif( all(c) || all(not(c)) ) s*=-1.0;",
"\t\tj=i;",
"\t}",
"\treturn s*sqrt(d);",
"}",
""
],
"inputs": [],
"instance": "",
"longdesc": "A kite as a signed distance function",
"name": "sdKite",
"outputs": [
{
"longdesc": "The kite as a signed distance function",
"sdf2d": "sdKite($uv-0.5, $width, min($apex,0.0), max($base,0.0))",
"shortdesc": "Output",
"type": "sdf2d"
}
],
"parameters": [
{
"control": "P1.y",
"default": -0.3,
"label": "Apex",
"longdesc": "Position of the top vertex along the Y axis",
"max": 1.0,
"min": 0.0,
"name": "apex",
"shortdesc": "Apex",
"step": 0.01,
"type": "float"
},
{
"control": "P2.y",
"default": 0.4,
"label": "Base",
"longdesc": "Position of the bottom vertex along the Y axis",
"max": 1.0,
"min": 0.0,
"name": "base",
"shortdesc": "Base",
"step": 0.01,
"type": "float"
},
{
"control": "P3.x",
"default": 0.225,
"label": "Width",
"longdesc": "Width of the kite",
"max": 1.0,
"min": 0.0,
"name": "width",
"shortdesc": "Width",
"step": 0.01,
"type": "float"
}
],
"shortdesc": "sdKite"
},
"type": "shader"
}
Binary file added material_maker/doc/images/node_sdkite_sample.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions material_maker/doc/node_simple_sdf.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ Shapes
node_simple_sdf_shapes_sdstar
node_simple_sdf_shapes_sdpie
node_simple_sdf_shapes_sdarrow
node_simple_sdf_shapes_sdkite

Operators
+++++++++
Expand Down
32 changes: 32 additions & 0 deletions material_maker/doc/node_simple_sdf_shapes_sdkite.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
sdKite node
...........

The **sdKite** node generates a signed distance image for a kite.

.. image:: images/node_simple_sdf_shapes_sdkite.png
:align: center

Inputs
::::::

The **sdKite** node does not accept any input.

Outputs
:::::::

The **sdKite** node generates a signed distance function for a kite.

Parameters
::::::::::

The **sdKite** node accepts the following parameters:

* *Apex* position of the kite along the Y axis
* *Base* position of the kite along the Y axis
* *Width* of the kite

Example images
::::::::::::::

.. image:: images/node_sdkite_sample.png
:align: center
14 changes: 13 additions & 1 deletion material_maker/library/base.json
Original file line number Diff line number Diff line change
Expand Up @@ -7851,7 +7851,19 @@
"icon_data": "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABCtJREFUeJztmk9MI1Ucxz8tHbpt7RJKI4gL8kcpB4MX42GBJlwgniDawEGixsNe1oSLnk00IRoPHoyJHgzZxBA9ctkFPdiEA0gkYSUxoBGyDbiAdgVWScBOn4ducTpMYRjKvOl2PskkM+/Ne/y+X6a/Xzv5gYuLSyXjMXnfc8CrwEtAPeC/tIguThq4B9wG7gCHF9ksCtwCVECU4bEOvGJVfAfwmwNElOL4oJjIYh+BWuAHco8+AH6/n3g8TiwWIxQKnWacNFRVZWdnh9nZWdbX1/XTbwOfmd3rUzQO9vf3i1QqJcoFVVXFxMSECAaD2qfgALhmRvyT5BKHAERfX584OjqSrckSMzMzwuv1ak34xIwBb+UXeDwesbKyIlvHhRgZGdEacE8v1mtgwAv5k66uLmKxmBnTHMvw8LD2shmIaAd8Bmvqj+9ubj5188N/sxcIrbRU+7x4DFJ6S0uLfqgeeJC/MDLgeMznM5rOMX13m9X7D88X5SUSDvh4M/4MXp0LBhqUgnmrf/BqwEdNUDn7RpuIhKrxmP5i+z+WDbjeUcf1jjqryx2DURKsKFwDZAcgG8s5AOAwk819vXAAxcrgWVg24PbSFr9u/W11ecm5GlB4I958ogyehWUDaoKKo8pgbUixtwx2d9TR7ZbB8sc1QHYAsql4AywnwTt3t/jlvnPKYE1Q4fVeG8tg+IqzymBN0OYy2BOroyfmlsGyxzVAdgCyqXgDLCdBp70UrQ0pjPbYWAZD/iquKFUIh7wQCPl99pbB3s4ovZ1Rq8sdQ8XnANcA2QHIpuINsJwEZ37aZuV355TByBPVvNbdZF8ZDFRX4Vec8wAFqqtKVgbV4xNVNZjOEe+MEi+DMmigoWDA6F/4R/5kc3PzEkKyl42NDf3QtvbCyICf8ydLS0ukUqlLCMs+pqamtJfb5BopT+UamsbIoaEhkc1mZbf6WGJ+fl4oiqLtEfrCrHG3NIvE6Oio2N3dla3nXExPT4toNKoVf4Sm7zFPsbT5FPAj0JgfiEQiDA4O0t7eTjgcJpFI0NjYeGJhOp1mcnKSg4MDs2aXlL29PZLJJHNzc/qp94D3z7PXi8AORdpP29raRCaTKXB9dXVVNDU1yW6LNTq+xHxjeAEtwLdGm3o8HrG/v38sfnl5WTQ0NMgWqj8eADdPE2jWlR5gGEiQ+3jQ2trK2toaAIuLiwwMDJBOFyTYh0DG5P6lQiX31K6Ra5X/Gk1LXCn4nkfuJhIJIYQQCwsLIhKJ6J3/Bl072uOAB/iLRyLHx8dFMpkU4XBYL/4rLth54lSeRSN0bGxMBAIBvfjPeYx/YQ5zesL5GIuZtlz4iOLiP5QYl218x0nhWeBdmUHZyZ8Uis8AN6RGZCNPUyj+EBiRGpHNBMm9JxDAP8DLcsORQwx4B3hediAuLqXjP2stcqDv6aOOAAAAAElFTkSuQmCC",
"tree_item": "Miscellaneous/Comment/Line",
"type": "comment_line"
},
{
"display_name": "sdKite",
"icon": "simple_sdf_shapes_sdkite",
"icon_data": "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAEHBJREFUeJydW21wldW1frSihtYvemWktNXCpYXaovdamSKttKKlVkdQ0dpRkNapDJHSKgWq7VVGYK4VEXqxgKX2puFDQeLw2USJSSOE9EYCkkC0CbENieQQEgP5MsnJOc/9sZ9z3zf7XefA3DOzZ87Zz95rr2e/7157rbX3ATCKALzyJIEjBHYS+IqBLyHwEYG/Ehhj4C8QOC0Z9xv4uZb7JeO0ZPr4GOnwkXTy8a+IwxFx8vFRRLTyRwTKCZQSuMPo9BMCtQSqCEwx8NkEmgjUnYX8WAJ3qYw9yyTUSeZsA58iXWqlm4/fIS7l4hYZI/zjmwTeInCYwByj8c0SVE9gnoFPIlBNoIXAwjSE5hIoIRAj0KkSU93cNH0WSma1xvDxedKpXDr6+BxxeksczQm4ksBGAu8TeN4QchWBXVJ2lYEPJ1AsQi8b+GUEXhPeLTJ7VKpV16k2lxn9XxZerLF8fJV02yVdffx5cdsorpEJeEENNmRQIEZgG4FLDTyXQBeBfAKXGPhmAnGR/bnX5hLVVavNZqP/JZLdpbF8/FLpFsvwADaI4wB7Ag1+mMCbBG4wOj9J4DiBMgI3GvizBNoIvEdgnIH/p57wUQITDTxVJqpNt/r4+DiN0aYxffxG6XicttG7QRwPizMIZ0RKCfwPbaP1Qz2ZDwg8aODTNWADgRkG/hMCzQROEng4A/lUeVhtm2kbtRka67jG9vEHpWu1dPfx+8W1lDLiu+is6AKj8b8T2EugkcDTaZ7IIT2RxQZ+E4P1vfQcyKfKUgZ24iYDX6wxD9F+456WznvFwccXiPMuws2WZdQ+TeB1PY1XDPxSAn+hW5MbDPxyAm8T6CfwqoEPYXFxMYuLiwkMMfBX1fdtyfLxDRr7L7Rt0ivS/XVx8fFVdNyxlbZVXUG39xakwdfSWeW/psH/m86g7SPwuQiem5vLZDLJZDLJ3FzLqH1OfeOS5ePDNXandLHwAnFYkQbfSthGaS6BfxCoIHCLgS8gcIrOot5q4L8m0EHgWBr8aXZ3d7Ouro51dXXs7u6mvcRulYwOybTw96WLtYRvEYd/0PYxJhLRyjvoLG0dgVlGp7ulVIxAtoHfR7f+PqbtTD3ApqYmtrW18TGAjwFsa2tjU1MTgQeM9nMkq1GyfTxbuhyTbj4+S1zeo+3ZDvgxikAhgRMEfms0HkO3zbQTeNHAv0ZnmHoJrDTwsaysrGQ8HufKUP1KgPF4nJWVlbTd4pWSeUhj+PiL0qmMdmzyW3EqpBH7hH+spzMcm6yZIpBHZ3jeMLDz6axqgsB2A7+A+fn5JMnt26P49u3bSZL5+fkELjD6b5fsXRrLx9+QbnlpdN8kbuvTTcBSuqiqmMBoQ8ByzfLf0uCr9JQqTHzNmjXs7+9nRUUFv2wo+GWAFRUV7O/v55o1awz5oyW7l/auNVq6tUtXCy8WxwFbMgg8wiDCu8vonM0gwptq4D+n25cbaK/DJ9je3s7GxkZONZ+OK1MBNjY2sr29ncATRpu7NUYbQ55cqExlEDla9ukuBpHjI6n68QwiPGvQWxlEeJal/T6BDzXzvzLwH7C+vp6dnZ1cmIF8qiwE2NnZyfr6egI/MNr8SmN9qLF9fAGDyNHagZ5gEDmOJ1z0FSPwktH488wc4X2RzvDECfzRwK9heXk5E4kE161bF8FHqPj169atYyKRYHl5OYFrDLl/1Jhl0sHHw5Hj5w38JXF+jXA+dRGBYUbD9QwivM8Y+BY6b20PLW8rLy+PJLlnzx4ONojmqfj1gwHu2bOHJJmXZxm1T2vMfung459hEDlGjJ64FtFxx3GG1kOonC3Ce47AJ3TRmxUhLmNfXx+PHj3KbxgkXwDYo/KCgX8D4NGjR9nX10dgmSH/Ro39iXTx8bNFjo+kJmCnAd7HIMKzIq5H6KK1GO0I8KdsbW1lc3MzpxvkHgXYArBJpUV1frvpAJubm9na2krgp8Y4M6RDc5qHOJ1B5Gg5UTuJqLW8QK9HO+0I7iY697ObdiLy26ypqWFPTw+XGKRuBvh3gF0AF6l0qe5mo/0SgD09PaypqSHwbWO8JdLlfdqR41JxKWLUv8gmooHMz+iysMUEBnnYFRLUT9tZGsKSkhImk0lu2hTF/wVgCcB+gOtD9etVV6I2fr9NmzYxmUyypKSEduS4SToVSccwNkhcTotbGBtORIXlq7G1j4YjvKjRTEV4+/bt41UGkTDRoaH6oWkmJlWuArhv374MkeMwZo4cs8Up38AG/Pg3uj2y0pjpbL1Kx2hnZp/5vwjvFoNE+FWfaOATMXBp+PgtQChyfMYYf5J0azce3hBxqhfHtBPwqAS8ZgzwDp3F/aWBPcBYLMa2tjZmG8r/COAJOGM3y8BTZZbanFAfH8+GixxjsRjtyPGX0vEdA3tN3B7NNAHP0e2dvnEbTxdzVxLI8rDrWFVVxXg8zhWG0tcDrET67c4vqe2xUn19fAVc5FhVVUXgOg/Pko6npHMYWyJukS0z/OMPdB6Unzx4mEAPXdp5oEIFBQVpI7wLAebDrW3L4blYxa/PU598yfDxVORYUFBgTOI26eonYOeK2x8G1J+PAZ/zVd8/sBqDAJwHoM+rH4aRI0eio6MDb0yZAv/zXwAmATgIYEEEBZar+J8F6jNJMvzPG1OmoKOjAyNHjgQwzEP7pOsgr74fjttAyt4EdKnqcq9zE4BeY7AmjBq1EVlZWZi1fz8u8tA8AC0AhgMY4WEXAfiqit9vhPq0SIbfb9b+/cjKysKoURulW/gzTLr69ZeLWxf8T+iVmG++Ji4rW621dbuHDWJpaSnj8TifNV7X1XqddxjYQyp+/Q71WW1gz8oGlJaWMuqn3C4dqxnNJKeW9/xMNmAyXdZkr7G2fkfnbOwysOk8c+YMjx07xrEedg3AKoAdAGcbhPwyW22r1DeMjQV47NgxnjlzhraLvks6/s7A9orb5EwTcCFdnNxkPOkv0h0pdRJ4LDLAli1bSNJ0VOYD7Ab4LsDPZiD/WbXpVh8fz83NJUlu2WJFgI9Jt8OMhsi3i1O5OKadANAdHKY7gJwnrILeCSuBb7K+vp6tra2811C+EGAfwGUZJmCZ2hQa2L0AW1tblSjxj7ivlE5dtI/tUwe31iUL3OlVjKULLD4icI/R4S06l9PKuy1jIpFgUVFRBLsH4CmA/wQ43iA4XtgptfXxoqIiJhIJ2qHxcun0loHdIy7vM5pxvpOwMz1L6A4j3jSwKXRrqZ7ABA8bwoqKCvb29prprxw447bZwDYLyzGwhQB7e3tZUVHBqIs+QbqcpH1j5U1xsSLXlwmXVPCJXEZnNE7TsJp05279dOduPjabXV1drK6u5pc87GsAawC2AQPyBNNVV6M24T5fAlhdXc2uri7aV2Rely7W+eV8cdjL6J2HCXTccZJAjtE5lfQ4RGCEh32V7mDxNIGZkb47d+5kMpnk2rXRM7tFAHsB7gV4kcpe1S0ynv7atWuZTCa5c6eVuJkpHT6QTmFshHRPlyzJ0VuD/XQZVuvsfwud8bASpk/TuZylBC72sNvY1NTEWCzGyV6/CwHuCxFOTcg+RN3eyQBjsZiOzW7zxrhYY/fQPld8SbpbO8aD4ryfcGniRrqTVD/Q+Q5dnr2e0f3zArqoq5dWzm316tVMJpPcvXt3BEu98n9X8ZdEquzevZvJZJKrV682SDyrsd9hNNMzWTrXiUMYyxLXRuoY4Hy6Y6cTBJ4yBnqRbn+NBkJuJj+mO2jwI7OreeTIEXZ3d3OOQS5l9NIZxTkAu7u7eeTIEQJXe/h1GvNj2m/uNulsnV8+Ja7bqSM20G0VNQQOEPi612E4nQPRSjtL9CrdmZ3lN8xnT08PDx48yCs9LLXt/RPRbfFKgAcPHmRPTw9tI5yrMa2LF9nStZzRdN/XxbGGoS0+Ba6lMwrWudxczfbfCAz1sHF066mFwLRI38LCQiYSCS43nvIy2I7RcoCJRIKFhYWGLtM01oeMpuuHSsePad8HWCOOA4xz6sv1odmxzv920r1W1h3C5wj00V1n8bG72dLSwoaGBk7wsCEq4boJABsaGtjS0kL7nPFtjWWdBTwvHa0dYyqDt/x6awJA4Dd068Na73fS5ddrGfUbrqB75T6hdUM0JyeHJLl161ZD7sCydetWkmROTo6BL9QY5YxmfydIt+OMercQpxPiOAAL/7iEgYX8hSFkDd3WYq29WXQ5t6OM+g3Xsra2lu3t7ZyZgfxMgO3t7aytrSVwrYePkOx22jdXXpVu1hL+BYOdLnKJ02/8EIM90icymi7aOkn7RGgbnVdmXVpaxHg8zrKyMjMNdjHAsrIyxuNxAouM/msl23o7Z0inw4zeTRjBwNd5yJp468goRwKtbeRJOu+rhFG/YZJmuonRo+sgcbLYmIDFyJTo+L5kNjKaks+SLqdp3w59kem93fsI50sP9oAJms1qRj2wT9GdzLaneVKr9KSiDlAqcVJXVzcgcTIWLuefPtGxWzKtmyGLpMse6RbGbhOHw4zarcFULFNNO4ZeSnfwaF1c/iGdQalm1AH6AoPESfSWmJU4yZzomMMg0fEFD7tOOpygfS12szhYZ5zz1BfldFuLb3SG0Z2pHadxmEDgz3RG508G9gSDxInvNwSJk2kApyFTomMog0SHdXvlT8L+bGCPSvdiRo/xrhXncsIlGD6gneCYRedTFxtEbmCQOLnX6PsmzyVxcm6JDisvcS+DRId/w32odK6nvWMsF+dlhJuNQgLv0r5ImOk1WsxzS5x8y8Ou4IEDB9jb28ve3l4eOHCA0X39Wzy3RId1STvT8r1DXAv1JgAEHqfbYzcaHb7HwJD4x03nmjixHCCXOEmf6NjK/1+iYzwDA/49o+9GcX08VQe6Ozeb6f5dZSmzgum3ktT/AQ4RGOlhY5gpcbJhwwZu2GDdNJ/JINHh3/wcySDRYf2fIEe6WhekZ4vjZobuNKXAaXQGp4DRm1n/Spd8OFvi5PcG9h90SYv9jPoNVslS2x719fHf8+yJjlLpHMauEbcKekFbuFHqDr213h9n4E76fsNEpk+cfIrOUemlvV79slhtSxjd18OJDv+W+2AGbvzjhtylTPPfiPCPcRq4jMB3vYbnMQgorKvry+n2a+ue8IN0MXojgR9nIP9jtWml/aZt1xjWzvJrBoHceR72XXEqoXHjzRf0FJ0BsYzP3QxCSj/HfrbEyUq6Vzd1KXMCgYtUJjC4vNhF+6Z5pkTHWAahvBVCvyJOVsYrEjwM1SwepmW40iQVVH7G9IkT0MXrTXTW/RTdK/mBvvcLs/IN4USHf9EJzJzMmSku2wydRhO2Pz+D7pLhDkaPwK6n20draSdOdtC9ppbfDrqtKUfyG1TeU521bUGyOiXbx6ZKl3fpJTqk+w7Jt6LXRYS7OeUHPCCwjs7LiiQQGKw3a73fJoVO0o4xwuVqRhOefpknWbVp9EwldC279BtxiN5TdrLyCecyWtvXd+i2k72MGo5w4sSyuPPo1nMD0/+H+FzKQsmIpZnM8M7kJzrGSfdSRlPjEOdiwq2bItrrfbFm0MrLpxIn6f6m8oyezCk6I2S1SVfGqM8pybCuxaX+vpMu0bFaultb70xxXsP/BSsqiaLBuFmDAAAAAElFTkSuQmCC",
"parameters": {
"apex": -0.3,
"base": 0.4,
"width": 0.225
},
"tree_item": "Simple/SDF/Shapes/sdKite",
"type": "sdkite"
}
],
"name": "Base library"
}
}
Loading