I’ve been sitting on this for a long time - over a year now. I pushed it to the back of my brain, but reading about the retopo feature reminded me of it. I think of a lot of bad/impossible-to-implement/useful-to-no-one ideas. So I usually wait a while before proceeding, in order to weed out the bad ones. Well I still like this idea. Maybe it has some merit.
Think of the Gimp or Photoshop interface. Basically you’ve got a bunch of 2D graphics tools and a ready canvas - perfect for creating UV Textures. Now imagine you could load an image and assign it to a material and model, just like normal. AND THEN you could go into a new 3D painting mode - not unlike vertex painting. Your interface would be very Gimp or Photoshop-like, with a full-featured set of tools for creating 2D graphics. But instead of painting on a canvas, you’re painting on your model. When you put a red dot on your model’s nose, Blender finds the point in the external image file corrosponding to your model’s nose and puts a red dot there. This is basically what happens when you render a texture - just backwards. When you decide to, it saves your changes back out to the texture file.
This, to me, seems as though it would be a very useful feature. One of those features that lets you worry less about the technical details of the process, and go straight for the art you want.
Would anyone else find this useful? Is this worth thinking more about?
In 2.43, you do paint right on your model in the 3D view. And since there can be multiple UV Layers, you can paint over. See the wiki on painting; I just updated it. TexPaint now has multiple brushes etc.
M@dcow, did you use a texture with the width and height a power of two (e.g. 512x512, 1024x1024, 2048x2048…), otherwise it will still be slow. But the tools are still very basic compared to Photoshop or Gimp of course.
EDIT: Yeah, always make textures a power of 2. That’s, like, the most basic of basic CG rules. For some odd reason, that’s what cards can handle best, I think it’s something to do with how you count in binary. Or… Something. Actually, in fact, I don’t know why.
I read that Brush rotation is on the way. BTW have any of you experimented with uv projection? Thats very cool, once you apply the modifier, th uv co-ords are applied, and you can then use the image as a standard image texture ect. You can edit the object with the projected image, once its how you want, apply it.
I once did a landscape scene with multiple stencil textures with the stencils painted with the texture painting tool. It was slow going but I did it anyway.
I can’t wait to download 2.43 and use a nice 512x512 or 1024x1024 texture to rapidly place stencil textures or even color and other maps on the object. Like you have a pipe opening in a building you can use a stencil to use it as a map for a grime texture. Or an old building with a thin covering of stucco and use a map with sharp edges to use a brick texture on where you want it exposed.
I see a lot of uses for it, and we should all thank Brecht for redoing the whole system. Surely I’ll be using it a lot more:)
Thanks to whoever did this! Even if it’s hard to do detailed stuff, it makes it easy to lay the “groundwork” and then go back and do details in GIMP. http://madduck.net/~madduck/misc/thankyou/
It still has a little way to go, but Blender is definitely starting to get there. Painting onto a 3D model is nothing new; other apps support it, and there have even been some dedicated ones (Painter 3D) to do that. I’m not sure if it will ever replace Photoshop, but it’s incredibly useful to paint basic outlines on the model, then add details and finer brush strokes in Photoshop or the Gimp.
I can’t tell if you’re joking or not. If you’re not joking:
The reason its faster with powers of two is exactly because of the way you count in binary. The memory banks on a graphics card are addressed or indexed using an integer as a key. That way the processor can issue commands like “give the value at address 362” or “set the value at address 8735 to 64”.
Since computers natively use binary numbers, it makes sense for the size of the address space to exactly match a power of 2. That also makes it easy to mip-map an image. Lets say we wanted to reduce an image to 1/2 its side length or 1/4 of the area. If the side length is a power of 2, this operation can be done quickly and easily without any difficult computations. Its usually handled by specialized hardware on the graphics card as well.
So basically, if you go with a power of two for the side length of an image, it fits more exactly into the graphics memory space, and many operations like mip-mapping and mathematically simplified. In addition, the hardware can make use of special processing pipelines rather than waiting for a generalized processor to abstract the problem into its instruction set.