I am a master student at Hokkaido University, Japan and working on hair rendering.
I have an idea about hair color editing, but not quite sure whether it is valuable to implement and integrate with blender.
The idea is that the user draws a stroke on the hair model with the specified color, and then the color spreads out on the hair model according to some rendering parameters, which is similar to the paper An artist friendly hair shading system, but differs in the user manipulation.
Could anybody give me some suggestions? We could complete this idea together. I would like to take this chance to extend blender's functionality and also as a project for my thesis.
This is my blog http://graphicsprojects.wordpress.com/
where you could know the under-going work of mine.
master candidate in Hokkaido University.
Deffinately! I could use this function myself and so could so many other people. I thought about it myself when I came up with the idea of making a tool for hairdressers that would allow the customer to show exactly the haircut they want on a simple 3d interface (you can have that one if you want, i'll never make it, heh)
I'm no master programmer, but I can see two ways of doing this
The first approach would be as simple as an ability to change hair colour with a vertex group. You could then add a hair colour brush into the brush editing menu that creates the vertex group and you're then free to assign this to whatever colour you wish.
Alternatively it would probably be more efficiant to use a generated invisible texture for the colour values, as hair can already take data from textures in this way.
The problem with this (simple) approach is that you could only colour the entire hair strand as the colour data would be sampled from the root.
The second way I see this possible is to utilise the parent strand weight painting functionality already within strand settings.
So far this is only (as far as I know) used for physics settings, to "glue" the hair in place wherever the weight is 1.
But it's everything you need, a way of mapping a value to different parts of the strand.
In essence, you could change the value to an RGB value (or assign weights from a selection of materials) and replace this in the strand colour.
Sorry I couldn't be any real help as a coder, but i'm sure this will catch somebody's attention soon enough!
Good luck on your thesis!