Texture tools

Published July 17, 2018
Advertisement

After attempting to texture some models recently, using projection painting in 3d paint, the new healing brush is proving fantastic at healing up those edges between projections, but I must admit I get very frustrated trying to find suitable reference images. Part of the problem I have decided is that I'd often like to be able to have larger, more homogeneous areas of texture to clone from.

Given that I have a reasonable healing implementation working, it struck me I should be able to have some algorithms for doing this little job for me, to provide better source material for painting. I thought about putting this ability directly into 3d paint, however, it seemed to make more sense to do a separate small utility app for this kind of thing, which might be useful to more people.

So, eager to not make the major mistake I made with 3d paint, that of under-engineering the initial program, I decided to make a positive effort and spend a few days building a solid backbone to the texturing program, so it will be easy to maintain and add to in the future.

Instead of making a photoshop like affair, this will be a very focused app, and at the moment I'm thinking in terms of a node based editor with some input textures, and methods, producing intermediate and final textures for export. I'm planning for you to be able to move the nodes in the UI, assign inputs and outputs and parameters.

Although the UI is not yet operational, the framework is getting there and I've implemented a first test method. I decided one useful first pass before other methods would be to equalize the colours across an image. Here is an example I have run it on a skin photo, left is before, right is after. Bland and boring on the right, but that is what I am going for, it should be easier to clone etc. The way the method works is it first finds the average colour in the entire image, then gaussian blurs the image. For each pixel it then finds the difference between the blurred colour and the average colour, then adds this difference (with a multiplier) to the original pixel colour.

skin.jpg.800afb97b10295e826296e4bd4ef9ebe.jpg

This has the effect of reducing local colour contrast, or increasing colour contrast depending on the sign of the multiplier.

Anyway, obviously loads more methods to come, maybe some using variations of the healing technique from Georgiev's paper. All colours are converts to floats, and can be converted to linear, and HSL or LAB colour spaces.

Previous Entry Project Management
Next Entry Node Editor
4 likes 5 comments

Comments

Rutin

Nice healing brush! :) 

July 17, 2018 06:33 PM
lawnjelly
Just now, Rutin said:

Nice healing brush! :) 

Oh that's just colour manipulation, I haven't even got to the healing! It is awesome and should help with auto tiling the image, as well as blending different layers.

July 17, 2018 06:36 PM
Rutin

Yea, I use such tools all the time. :) When I create procedural textures for ground it's great when using in 3D but for 2D I have to bridge the four sides and use healing brush for blending so it will look seamless when tiling. 

Looking forward to your next update.

July 17, 2018 06:38 PM
JoeJ

I liked this paper: https://hal.inria.fr/hal-01824773/file/HPN2018.pdf

Did only look the images so i do not understand it :), but maybe the histogram idea is useful here too...

July 17, 2018 06:50 PM
lawnjelly
2 minutes ago, JoeJ said:

I liked this paper: https://hal.inria.fr/hal-01824773/file/HPN2018.pdf

Did only look the images so i do not understand it :), but maybe the histogram idea is useful here too...

Oo good catch, I'll have a look at that tomorrow! :)

July 17, 2018 06:53 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement