First of all it is a great and very promissing tool.
But I have a few points where things could be improved:
-
Pack the application so that it unzips a directory. Like it is now it behaves like a tarbomb and just unzips it’s files into the current directory.
-
It is very unpractical to have to switch between tabs or right-click-option the “Node In & Output vars” and “Node Properties” tabs. Both tabs should be visible all the time. Just make them so one can minimize them like the Shader code output window (which is not important in the design process).
-
I am coming from the Linux world so:
Deleting nodes should be possible with the DEL key.
Switching tabs (if they remain) should be possible with the ALT-1, ALT-2 … ALT-n keys (this is how it is done in many Linux tools and also the Firefox web browser).
-
“Show Variable Types & Names” should be enabled by default, as it will help beginners like me a lot to see where each input and output is.
-
If several connections are made to a single connector it is sometimes impossible to move the end of one connector individually. Both connectors ends will stick together. Also it seems to be impossible to delete connections (right-clicking or anything did not show an option).
-
A warning or error message was displayed on the preview window and afterwards the preview was not refreshed, leaving a white box inside it. Maybe the message should be displayed in the graph window.
-
Copying nodes might be practical in the future.
2 bugs I discovered:
-
I don’t remember what exactly I did, but I think I created a “mix” and a diffuse in the brick demo and messed around with linking diffuse to that mix and also the output of the existing mix to that mix. I changed it around between various inputs and output. Then I grabbed the 2 connectors that where linked onto the same mix input and dragged them to the output of the existing “To vec4” and then the application froze and the console showed an exception that seemed to be stuck in a loop:
...
at sperling.RapidShading.ShaderNode.resolveOutputDataType(ShaderNode.java:122)
at sperling.RapidShading.ShaderProgramInVariable.resolveDataType(ShaderProgramInVariable.java:149)
at sperling.RapidShading.ShaderPrograms.GLSL.DataTypeConverter.resolveOutputDataType(DataTypeConverterFactory.java:242)
at sperling.RapidShading.ShaderProgramOutVariable.resolveDataType(ShaderProgramOutVariable.java:150)
at sperling.RapidShading.ShaderNode.resolveOutputDataType(ShaderNode.java:122)
at sperling.RapidShading.ShaderProgramInVariable.resolveDataType(ShaderProgramInVariable.java:149)
at sperling.RapidShading.ShaderPrograms.GLSL.DataTypeConverter.resolveOutputDataType(DataTypeConverterFactory.java:242)
at sperling.RapidShading.ShaderProgramOutVariable.resolveDataType(ShaderProgramOutVariable.java:150)
...
I can’t seem to reproduce it since I do not remember exactly how I did it and the application seem to prohibit dual connectors on the mix inputs now.
-
When creating new nodes, it always created 3 instead of one.
Anyway great tool that I might use in the near future (my engine has no dedicated renderer yet).
EDIT: oh yea I tested on Linux with an AMD64.