Hi Reissgrant, great tool! I was just curious before purchasing; is the vertex color data for editor/display purposes only? We'd like a tool like this for painting shadows on assets on mobile platforms. Generally, vertex color data is much cheaper than large lightmap textures, and the clarity is lost when dealing with big scenes and memory budgets. A tool like this would allow us to go through the level and paint the areas of shadow/radiosity instead of depending on beast or external lightmap textures.

Could you confirm that such a workflow can be accomplished using this? Again it's more along the lines that we would like to set the vertex color to something dark and shadow-like and paint along edges and intersections. I heard you make mention of performance on the devices, but is there anything else you've noticed with how this is handled? Off the top of my head there's no reason for this to run slower than a 1024x1024 lightmap texture when lighting a room, but I'd love to hear your thoughts.

The vertex painter modifies the vertex color outside of the editor as well. So, if you would like to paint the colors black for shadows, they will show up black at runtime (assuming you're using a vertex color shader that will display the actual vertex color). Any other questions please let me know!

I'm interested in Vertex Painter for a project that requires a terrain on iOS 3gs and up. I've used fixed function and shader vertex colors in other engines and desktop hardware in the past but not so much for mobile.

Without a demo I'm not sure what to expect performance wise. When blending three textures on a single terrain mesh, will the terrain mesh get drawn three times in hardware to get the blend result like old 90's desktop tech.

Since my client is paying very little for a freeware game it would be nice to determine whether your vertex painter is suitable or I'm better off cutting up the terrain and making UV's fit.

So any information about the mobile shaders and how they perform would be handy, thanks.

I, too, have the same problem as XRA. I'm on a Mac with the latest OS (Lion 10.7.3) and I have the latest Unity Pro Version 3.5.0f5. Here are two screenshots showing the hair I'm trying to paint but I just get a rectangle dragging underneath the rest of the stuff and no color changes to the vertices boxes.

Don, are you using CTRL to paint? do not click and drag. Only press CTRL and drag, otherwise you will get the rectangle if you try to click and drag.

Click to expand...

Aha! Or so I thought. I was clicking with the mouse instead of JUST holding Control or Command. Unfortunately, it still doesn't work. So I played around with it for a while. No matter what settings and values I used the vertex painter did not visually appear to be affecting the vertices. The only thing I did notice was that the larger radius I used the more time it took for the 'paint' code to execute. This only occurred when holding control or command! So something is definitely processing data trying to sort through all of the vertices to paint, but they are not affecting the point or they are being reset or protected somehow.

To test their being affected I used Unity's cloth painting and was able to use select all and select none, and change values with visual color changes occurring with the boxes representing the vertices. I was also able to, point by point, touch and affect any vertex with their paintbrush tool; ugh, very painful. Here is a snapshot to show the lower section of hair having been painted point by point, the green boxes (green during play, yellow when not playing) are all values that are set to zero. I also tested running the game as seen in the picture below to test if the values were being affected but not correctly displayed by the boxes; again, the only points that move are the one's in blue that were hand touched with Unity's skinned cloth tool.

Thanks for jumping on this problem quickly Grant and I look forward to using this tool very soon!

Attached Files:

I should also note that I am using the latest version of the Vertex Painter, (ver 1.1.3), and this is a fresh project only created a couple of days ago. The menu bar under 'Vertex Painter' only read 'Vertex Painter v.1' so perhaps that is an issue? or a bug?

I also tested using the normal vertex painting and that works great. I also tried using the cloth painter on a default unity skinned character that I added a cloth component to and it does not work (same results as the images above).

I can also send you this project as it is not anything huge. Just let me know where you'd like me to drop it.

I have a skinnedcloth character in the demoscene. It is in : Assets/_vertexPainter/Demoscene/Models/skinnedClothTest.fbx

I just tested this by dragging it in the scene and it worked perfectly.
Try the same by adding a skinned cloth modifier, locking it and painting. Set the "max distance target value" to 0 and try to paint.

Another thing to test would be the sizing of your object. Create a cube primitive in Unity and it should be 1x or 2x the size of your skinned cloth object you are trying to paint. Often if the size of your object is too large or too small, it creates problems for the tool. This can be helped by simply resizing your skinned cloth object using the scale modifier. Size it down to the size of a primitive cube, paint it, then upsize it when you are finished painting.

*EDIT:

I looked at your screenshot, and the play button is activated. Are you trying to paint while in play mode? You should only paint in Editor Mode when not playing the scene.

I have a skinnedcloth character in the demoscene. It is in : Assets/_vertexPainter/Demoscene/Models/skinnedClothTest.fbx

I just tested this by dragging it in the scene and it worked perfectly.
Try the same by adding a skinned cloth modifier, locking it and painting. Set the "max distance target value" to 0 and try to paint.

Another thing to test would be the sizing of your object. Create a cube primitive in Unity and it should be 1x or 2x the size of your skinned cloth object you are trying to paint. Often if the size of your object is too large or too small, it creates problems for the tool. This can be helped by simply resizing your skinned cloth object using the scale modifier. Size it down to the size of a primitive cube, paint it, then upsize it when you are finished painting.

*EDIT:

I looked at your screenshot, and the play button is activated. Are you trying to paint while in play mode? You should only paint in Editor Mode when not playing the scene.

Click to expand...

No dice, yet. I loaded up your 'vertexPainterDemoScene_Finished' which already has the skinned cloth character. When I view the boxes you can see they are multicolored. I tried to lock and paint but nothing would change. I also tried using the tool to clear all of the values to 0 and it still had multicolored boxes! Very odd. Whenever I would attempt to paint I would get 'Array index is out of range' errors. I also dragged in the model fresh and still no luck and even dragging it in fresh it showed multicolored boxes.

I also went back to my scene and put in a primitive cube and it's default size is the size of the head you see in the previous images. So the scale should be ideal for editing.

Note, I normally try painting in Edit mode but in the previous email pics I tried it in Play mode as well.

I have the project up on DropBox and just need an email for you to access it (or I can put it up in Google Docs which requires an email as well). PM me. (By the way, are you testing this on a Mac or PC?)

Attached Files:

This is very strange behavior, and I have no clue what would cause this. I am testing on a PC, though Monday I can test on a Mac if it isn't resolved by then. I'll look forward to receiving your test file.

I have just purchased Vertex Painter but have run into an issue with the shaders. I want my game to run on mobile devices so I select one of the mobile shaders but they just won't display correctly. The first shader seems to work 'mobile_Vertex_Blend_2tex' but the Unlit versions show up almost black. I have all the texture slots filled in.

There looks to be three, 3texture lightmap mobile shaders, 2 of which show up as a wireframe in the viewport and the third shows up really dark, but with some of the colours from the verts showing through.

I've just purchased a professional license only to come across the 3.5 bug (exactly as Don is experiencing above) - is there any workaround?

Otherwise, could you share as much as you know about the existing problems so I might explore a solution?

Click to expand...

@Don alleycatsphinx:
What I do know is that I was getting inconsistent results with the default painter while trying to nail down this problem.
Because of this, I have forwarded a bug report to Unity; but I'm still going to try and figure out a solution.

The problem is with the transform not being calculated correctly. In previous versions, the transform was fine, but in this new version they are doing something different with the skinned transforms, and I'm not sure what yet.

I have just purchased Vertex Painter but have run into an issue with the shaders. I want my game to run on mobile devices so I select one of the mobile shaders but they just won't display correctly. The first shader seems to work 'mobile_Vertex_Blend_2tex' but the Unlit versions show up almost black. I have all the texture slots filled in.

There looks to be three, 3texture lightmap mobile shaders, 2 of which show up as a wireframe in the viewport and the third shows up really dark, but with some of the colours from the verts showing through.

Hope you can help

Click to expand...

Can you please post a screenshot?

If you're using the 3 texture mobile blend (mobileVertexBlend_3tex ), use as follows:

@Don / alleycatsphinx:
This is a screenshot of what I am talking about, this is the default skinned cloth painter in a brand new project with no plugins (without importing the vertex painter), and after applying a skinned cloth modifier.
This is the vertex representation that is shown, which is wrong.

Because of this, the transform cannot be calculated correctly for the vertex painter to paint the cloth weights. As soon as Unity fixes this, I can modify the vertex painter to work with it. I will release a patch when this happens.

Hi, Reissgrant! I just purchase your Vertex painter and have the trouble as Don. I need to paint weights for skinned cloth. Object is locked for painting, I see brush circle, press Ctrl and try painting vertex weights, but nothing happens - vertex color and values not changing. I try to down scale my object - no success. But.. I try paint in your demo scene, on skinnedClothTest2 object and get result - colors and values are changing.
I have Unity v3.4.0f5.
Please, help!

I think it may be down to how I am lighting my scene and my Rendering Path settings. I am not getting good performance on Android, 15 fps, so I changed the Rendering path to Vertex Lit and the Graphics level to OpenGL ES 1.x
I am running into issues getting it working at a speed I am happy with. Any tips?

@korotkevich.md: thanks for the email, let me know if you need any more support.

@Mr Turnip Head: This could be a few things, and I wouldn't recommend testing with the emulator. I test on my old android phone and I get much better performance with that. As far as optimizations, reduce the vertex count, so it is not so dense, and maybe use the two texture blend rather than the three texture blend. The two texture blend is only one draw call while the three texture is a two draw call and that can get expensive. Let me know how that works for you.

I am running my scene on a Motorola Xoom tablet and just can't get the performance I am after unfortunately. When I have the terrain mesh optimised I may try the vertex painting again and see if I can get 30fps. Think for now I am just going to have to go back to the old ways and use single diffuse textures for now.

Hi, the tool looks nice, I might buy it, but I have a few questions about it.

When you paint the vertex colors, where is the info stored ?

Let's say I have 30 cubes in my scene (which are all the same cube prefab), and I paint only one of the cubes, will that paint the other cubes with the same information as well ? If I paint one of the cubes and then update the prefab what happens to the other cubes ? Can I paint the cubes independently even if they come from the same prefab or do I need to have a different prefab for each cube ?

@Don: the 3.5.1 has not fixed the bug
@Patapouffe: If you make a prefab of the vertex colored object, all instances of that prefab will inherit the vertex colors. If you want a unique object you will have to make another prefab.
@liverol: as soon as Unity fixes the skinned cloth transform bug, I will release a fix, if need be.

If I reimport the mesh I am painting will the alpha information be lost? - I assume it would be lost if the topology had changed (added/removed vertices) but if the only change was the positions of some verts would the alpha data still be intact? I'm thinking about if I was fine tuning a landscape, just little adjustment of vert positions here and there.

Yes, this is available right now. If for whatever reason you do not have it, PM me and I will make sure you get the updated package

EDIT: I looked into making it simple with a "reload Mesh" type function, but identifying the mesh associated with it was not a simple task. Unity gives each mesh a unique ID, that changes each time you restart the program. Because of this, I would have to build a database of IDs that constantly change, once on each restart. Or, when you want to "reload" I would have to check all vertex painted meshes and compare it against the selected mesh to see if the vertex counts match (and even this would not work since simply moving vertices can change the vertex count). In the future I may come up with a better solution, or just take the time to do it properly.