2.5 "Smart" Unwrapping and Projection Painting

I don’t know about the rest of you, but, to me, these 2 functions found in Blender 2.49a are good enough reasons for nearly everyone to switch to Blender for, at least, UV mapping and texturing models. Couple these features with Blender’s myriad of 3D export options and you really can’t lose.

Does anyone know what dependencies are still lacking to enable these two fantastic functions to work in Blender 2.5? Is there a known timeline for inclusion?

Greg Smith

projection painting works in 2.5, smart unwrap wont be hard to port but I might rewrite in C.

But I prefer not have “when will feature ‘X’ be in Blender2.5 threads”, in many cases even the authors are not sure especially when they depend on other parts of blender being rewritten.

@ideasman_42

when you write something for blender in C; how do you merge it with the rest ? is it then you use python wrapper ?

When you write something in C you open an existing C file in blender, edit it, save and commit it to blender.org’s svn.
Smart projections is not that complicated, Id just use the python script as a reference when writing the C one.

Maybe some of your would be interested to know that the box packing function was originally written in python for ‘Smart-Projections’, then ported to C, now SmartProjections and LSCM both use the C version.

With regard to unwrapping is there any chance the ‘project from view’ could be improved when used through the camera, so that the unwrap is identical to the camera plate in scaling.

At the moment it’s not and out of scale in both x & y but not uniformly so I end up having to try and scale at different values to get the unwrap to fit back over the model.

This is for using the unwrap with the ProjectUV Modifier btw for camera projection not projection painting.

Thanks

I did a workaround last time I needed accurate camera mapping… applying sticky coordinates and then converting them to uvs with a script… can’t remember exactly how now and i no longer have the script… but it worked great…

But times have changed: the UVproject modifer will give you a perfect camera projection… just “apply” it if you want to edit further…

edit… no it’s not a perfect projection… ah well.

Here’s the script to convert sticky coords… (from ideasmans cookbook!)


#!BPY

#sticky2uv.py

""" Registration info for Blender menus:
Name: 'Vertex UV to face UV'
Blender: 241
Group: 'Mesh'
Tooltip: 'Copy vertex UV to face UV'
"""
__author__ = "Brandano"
__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
Copies the Vertex UV coordinates (Sticky) to face UV coordinates (TexFace).
Warning: the original face UV's will be overwritten.
"""
import Blender
from Blender import Mesh

if (Blender.Object.GetSelected() != None):
    for me in [ob.getData(mesh=1) for ob in Blender.Object.GetSelected() if ob.getType() == "Mesh"]:
        if me.vertexUV:
            me.faceUV = 1
            for f in me.faces: f.uv = [v.uvco for v in f.verts]
        me.update()

Michael / ideasman/ Brandano, thanks I’ll give that a try I’m currently in need of such a workaround again. :slight_smile:

Here’s hoping the unwrapping can get fixed, has it been that long, since elysiun days that this hasn’t worked right or does the script has multiple uses.