| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- let plugin = new arm.Plugin();
- let categoryName = "My Nodes";
- let nodeName = "Hello World";
- let nodeType = "HELLO_WORLD";
- // Create new node category
- let categories = arm.NodesMaterial.categories;
- categories.push(categoryName);
- // Create new node
- let nodes = [
- {
- id: 0,
- name: nodeName,
- type: nodeType,
- x: 0,
- y: 0,
- color: 0xffb34f5a,
- inputs: [],
- outputs: [
- {
- id: 0,
- node_id: 0,
- name: "Color",
- type: "RGBA",
- color: 0xffc7c729,
- default_value: [0.8, 0.8, 0.8, 1.0]
- }
- ],
- buttons: []
- }
- ];
- arm.NodesMaterial.list.push(nodes);
- // Node shader
- arm.Material.customNodes.set(nodeType, function() {
- let frag = arm.Material.frag;
- frag.write(`
- float my_out = cos(sin(texCoord.x * 200) + cos(texCoord.y * 200));
- `);
- return `vec3(my_out, my_out, my_out)`;
- });
- // Cleanup
- plugin.delete = function() {
- arm.Material.customNodes.delete(nodeType);
- arm.NodesMaterial.list.splice(arm.NodesMaterial.list.indexOf(nodes), 1);
- categories.splice(categories.indexOf(categoryName), 1);
- };
|