I made this script that calculates the average curvature on a vertex and then puts the data into vertex colors. If you have any suggestions, comments or bug reports, please send a message.
You can make separate concavity or convexity maps and bake them if you want, or combine them into one.
The addon creates “Curvature” vertex color entry if it doesn’t exist and uses that to save the data. To see and test the vertex colors, it’s good to create a shadeless material with vertex color paint turned on.
Sounds neat. This seems like it could be very useful for quickly baking vertex colours for terrain mesh? If I’m not mistaken about how it’s supposed to function?
It’s more like dirty vertex colors and pointiness rolled into one. You have more options. You can either do a convex or a concave colors, or combine them into one. You can also invert the colors, for example fake AO by inverting concavity colors and using that to multiply the material intensity.
Sure you could use it for a terrain, if peaks and valleys are something you want to use. Sunlight and fluvial data, absolute slope and height are the variables I’ve used. Not so much curvature itself.
edit: I tried it with a map from World Machine and you get something like this after you create a material that multiplies height and the output from the addon (combined convexity and concavity)
At this point the addon is simple, as it only considers the immediate adjacent vertices for the calculations. It can’t ignore small bumps, if the face at that location is a bit differently adjusted.
Added Red/Green style output and dropdown menus for more coherent selection of various options. I consider the addon pretty much feature complete. If any bugs pop out or maybe performance improvements, is the work that’s remaining.
Heheh, I was just about to ask for colour options from black & white, specifically red and green! You beat me to it! prepares a tin-foil hat, just incase
Hello , i have tried this cool addon, but maybe i am doing something wrong?
i can not edit the values. everything is grey, disabled? for sure a little checkboy which is not checked?
@MindEversion: It looks like it writes the curvature vertex colors. To see them, you have to enable vertex color paint in the material->options tab. Or bake the vertex colors into a texture, perhaps.
I have no idea why it’s grayed out. If you get any error messages please do paste them. I’m also using 2.76 and the addon seems to be working fine. Try the addon with a simple, newly created Suzanne monkey head and see if it works out for you.
Personally I’m not using Cycles with the addon but adding a Input->Vertex colors node would seem to work in the render mode.
The addon is now 0.1.2 and comes with many performance improvements. Do report bugs and feature requests here, and private message me so I know when there are new messages to be read.
Normalized by edge length is now the default, I didn’t find it useful to keep the old algorithm as the newer is more accurate.
The addon is now at version 0.1.5. The performance was improved by over 10x, with completely refactoring the inner loop. It’s really quick now to iterate through the options. Any feature requests? Bugs? I’m thinking blur would be a nice option if people need it.
So, I have no clue how to get this add-on working. I mean, it’s there on Space bar menu, it does something and shows add-on’s UI. However, vertex color is 100% black and I don’t get how to make it to show in Object mode
@motorsep: Switch to solid rendering mode, not material. Shift+A -> Mesh -> Add Monkey -> run script “Curvature to vertex colors” -> Go into vertex paint mode. The colors should be now visible. If it only shows black, something is wrong and it’s a bug.
If you have multiple vertex color data, you may have to select “Curvature” Vertex Colors under the Data tab in Properties.
I also posted an example nodes how you could use vertex colors with Cycles above.
Looks like Cycles doesn’t show the vertex colors in material mode. Shows only red to me. So there’s really nothing I can do with that, unless someone knows a node setup that does show vertex colors in material mode. It does work when rendered out, though.
Cool. Really nice work. I did a little exploration with python and curvature a little while ago. I can’t wait to browse your code and see what you came up with as my stuff was very hacky and pretty slow.https://github.com/patmo141/object_k_segmentation
The algorithm is pretty simple, it just compares the vertices on the edges connected to the primary vertex and gets the average rotational difference from dot product. If I remember it right.