I have been working on this tool for somedays and I have at last got something to show you guys As the title suggests, Virtual Painter is a tool that allows you to paint textures, normal maps, colours and much more. So after creating your models you can simply bring them in unity3d and start painting in realtime. So there is absolutely no need for you to unwrap your models for texturing. Simply bring in your textures in unity3d and start painting !
Features :
Shader Independent
Alpha Blending
Paint Textures
Paint Colours
Paint Normal Maps
Very Fast
Custom Brushes
Brush Opacity which affects everything (Colour, textures, normal maps, etc.)
Saves textures in png format
Paint Unlimited amount of textures, normal maps, etc.
Add Unlimited amount of brushes
Paint in Realtime
The tool also comes with a very handy GUI script which scales the gui elements according to the screen size
Paint Specular Maps
Paint Parallax Maps
Paint Illumination Maps
Paint Detail Maps
More Features to be Added later :
Texture Tiling
Control over size of brush
Option to paint lightmaps
If people are interested, I will upload the tool to the asset store for 20$.
Yes I know !!! People like me who are programmers and don’t know much about asset creation… I think its really gonna help them. How I achieve this is by providing 3 types of base textures of low, medium and high resolutions. If your model is big you can apply the high resolution base texture in order to reduce stretching. Its as simple as that In the near future I am going to add more features like texture scaling which will make things much more intuitive.
That works great so far, my main comment would be it doesn’t paint across UV seams, which I’m sure is a real pain to add? I also couldn’t paint on the seam at the back of the mesh.
What is the chance this could also paint on light maps? I’ve tried to code that in the past and couldn’t find a good way to save them, however I’m more a artist than a programmer.
Thank you The current build cannot paint on UV seams and I am afraid I can’t code it myself But I’ll give it a shot none the less…As for lightmaps, I really did’nt give it much thought But now that you have mentioned it, I’ll see what can be done
EDIT : Could you please be more specific as to what functionalities you would want for a lightmap in this tool ?? By “paint on lightmaps” did you mean painting baked objects in a scene ??
This looks pretty cool, although I am wondering, will it be able to paint over objects which have shared materials (like say, a building that shares materials with another, would they be able to have unique “paints” done to them?) allowing me to paint a couple models I have lying around and am too lazy to UV unwrap! lol
Thanks MD_Reptile What Virtual Painter basically does is that it modifies the base texture objets. So if 2 of your models have the same base texture, then painting on one model simultaneously reflects on the other model.
For your lightmap question, this is what I did… The scene was baked and the shader of the shirt was changed to “LegacyShaders\Lightmapped\Bumped Diffuse”. Now, I applied the near lightmap to the “Lightmap(RGB)” slot. This became the base lightmap on which I would paint textures. This is what I ended up with :
The box on the right bottom corner of the image is the lightmap. The spots on it means that the lightmap is being affected in those areas.
So is this what you were talking about ??
EDIT : I made a mistake with the language of the lightmap toggle. It should be “paint on lightmap” instead of “Paint Lightmap :p”
As a fellow programmer, I am very curious. How is it you handle the unwrapping exactly? I mean, if I export an object from Blender into Unity without it being UV mapped, a texture won’t even display on it.
Well, its simple… I don’t handle the unwrapping !! Unity does !!!
The slender model which I have textured was downloaded from the net with its format being .obj . The download did not come with any textures or anything else. Just a simple slender model. After that I added a white texture as base for the model of size 1024x1024. Now using the setpixels function I started painting on this texture. In order to check whether the applied texture’s uv’s were correct or not, I saved the modified texture as a .png file and then deleted the model from both the project and the hierarchy window. I reimported the model and voila ! the texture got applied automatically with the correct shader and uv’s.
The only problem I am currently facing is that, parts of the model having the same uv’s get textured even if you don’t want them to. Take for example the slender model. Only one half of the model was probably made by the artist and the other half was simply mirrored. I can say this because when I started painting on one part of the model, the uv of the corresponding part got painted. So if I painted one half, then the other half got painted simultaneously.
And this is the reason why I am delaying the release of this tool. Its not exactly a problem because in most cases that would be the desired result but I am still trying to find out a solution for it. In my opinion finding out the coordinates of the uv, on which the mouse wants to paint, in 3d space could be a possible answer.
Tried to paint on a terrain today… It was painting fine but the paint never appeared where I was clicking on the terrain. After quite a lot of frustrating moments I have given up on adding terrain paint as a feature in virtual painter
Wolfstien; by painting on lightmaps I mean just that, being able to paint in extra darker or lighter area’s. It might not be possible with how you have things set up, but I tried a test a while ago and was able to paint on one fine. What I couldn’t do was save it because it’s a exr file, not png. This was just an idea, it might be a lot more work to add this to a already working tool.
oh… i could add it but have you tried saving your modified lightmap as a .png and then in the texture importer, clicking on the “import as lightmap” option ?
I think that should work.