119 lines
1.9 KiB
Plaintext
119 lines
1.9 KiB
Plaintext
{
|
|
"name": "sdf3d_capsule",
|
|
"node_position": {
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"parameters": {
|
|
"axis": 1,
|
|
"l": 0.3,
|
|
"profile": {
|
|
"points": [
|
|
{
|
|
"ls": 0,
|
|
"rs": 0,
|
|
"x": 0,
|
|
"y": 1
|
|
},
|
|
{
|
|
"ls": 0,
|
|
"rs": 0,
|
|
"x": 1,
|
|
"y": 1
|
|
}
|
|
],
|
|
"type": "Curve"
|
|
},
|
|
"r": 0.2
|
|
},
|
|
"shader_model": {
|
|
"code": "vec3 $(name_uv)_p = $uv;\n$(name_uv)_p.$axis -= clamp($(name_uv)_p.$axis, -$l, $l);\n",
|
|
"global": "",
|
|
"inputs": [
|
|
|
|
],
|
|
"instance": "",
|
|
"longdesc": "Generates a capsule as a signed distance functioni",
|
|
"name": "Capsule",
|
|
"outputs": [
|
|
{
|
|
"longdesc": "Shows the capsule",
|
|
"sdf3d": "length($(name_uv)_p)-$r*$profile(clamp(0.5+0.5*($uv).$axis/$l, 0.0, 1.0))",
|
|
"shortdesc": "Output",
|
|
"type": "sdf3d"
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"default": 1,
|
|
"label": "Axis",
|
|
"longdesc": "The axis of the capsule",
|
|
"name": "axis",
|
|
"shortdesc": "Axis",
|
|
"type": "enum",
|
|
"values": [
|
|
{
|
|
"name": "X",
|
|
"value": "x"
|
|
},
|
|
{
|
|
"name": "Y",
|
|
"value": "y"
|
|
},
|
|
{
|
|
"name": "Z",
|
|
"value": "z"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"control": "Rect1.y",
|
|
"default": 0.25,
|
|
"label": "Length",
|
|
"longdesc": "The length of the capsule",
|
|
"max": 1,
|
|
"min": 0,
|
|
"name": "l",
|
|
"shortdesc": "Length",
|
|
"step": 0.01,
|
|
"type": "float"
|
|
},
|
|
{
|
|
"control": "Rect1.x",
|
|
"default": 0.2,
|
|
"label": "Radius",
|
|
"longdesc": "The radius of the capsule",
|
|
"max": 1,
|
|
"min": 0,
|
|
"name": "r",
|
|
"shortdesc": "Radius",
|
|
"step": 0.01,
|
|
"type": "float"
|
|
},
|
|
{
|
|
"default": {
|
|
"points": [
|
|
{
|
|
"ls": 0,
|
|
"rs": 0,
|
|
"x": 0,
|
|
"y": 1
|
|
},
|
|
{
|
|
"ls": 0,
|
|
"rs": 0,
|
|
"x": 1,
|
|
"y": 1
|
|
}
|
|
],
|
|
"type": "Curve"
|
|
},
|
|
"label": "Profile",
|
|
"name": "profile",
|
|
"type": "curve"
|
|
}
|
|
],
|
|
"shortdesc": "capsule"
|
|
},
|
|
"type": "shader"
|
|
} |