This is the 2nd time I touched NME. But actually the first time I used NME to build something. Last time I merely exported the shader code from NME and studied the shader code instead.
So I have more feedback this time.
There are many things I like about NME. The InputBlock that can be configured to shown on BJS inspector is probably the feature I like the most. Is there similar out of box support for uniforms in a plain shader? Can I easily configure them to be manipulable on BJS inspector? I still prefer writing shader code instead of wiring the nodes. If this feature is not supported for ShaderMaterial, I am thinking if it is the right way to write the big chunk of shaders as a single CustomBlock and then have some InputBlocks for parameter manipulation purpose?
Following my thoughts above, I looked at CustomBlock more closely. Then I have two questions.
- Why CustomBlock is not listed in the left-side Node Explorer panel in NME? Take this PG from babylon documentation as an example, I would expect myPerlin2D custom block to be listed for reuse. Ctrl C + Ctrl V does create a new myPerlin2D node instance tho.
- CustomBlock API requires shader code to be provided as an array of lines. Can it be a single string?
Some minor suggestions:
It would be helpful to highlight connections when an input/output port is selected. When there are too many wires, it is hard to find which node one is connected to by clicking through the wires.
I don’t find UI for delete node or create a frame. I figured out the keyboard shortcuts by guessing. Maybe there should be a trash icon in the panel of selected node. And maybe an Empty Frame node on the left side panel.
Like I mentioned before, better references to the nodes in the generated shader code by default. float input0, input1, input2, output0, ouput1 is hard to understand. It would be helpful if the nodes in the editor also have names shown as Float 0, Float 1, etc by default.
I guess I can help on some of these features if they are approved.