Sintel, the Durian Open Movie Project » Blog Archive » Image Re-Projection


Image Re-Projection

on March 7th, 2010, by ideasman42

Its been a while since we had a development post and while we’re always busy with blender much of it is work in progress.

Most of my time is spent on physics and bug fixes at the moment but seeing as it was my birthday on Friday, I took some time to work on something more fun :D. Enjoy!

– Campbell


  • Image editor can be selected in the user preferences ‘File’ section.
  • Save as PNG rather then TARGA to workaround reported problem with adobe photoshop not saving alpha.
  • Render to an off-screen buffer rather then grabbing the view, removes view text and allows images editing images bigger then the view.
  • Added option to capture high resolution images rather then using the viewport size.

135 Responses to “Image Re-Projection”

  1. Alessandro Says:

    This is amazing! I don’t know if this featurs can replace the uv export for texture mapping, but this is awsome!
    Eccelent work guys

  2. Psychodox Says:

    That is just amazing, !!!! Very powerful tool!

  3. Hessiess Says:


    One of the annoying things about Blender has bean its limited texturing capability, I will have to try this out.

  4. mcreamsurfer Says:

    happy birtdhay!

    the feature looks just awesome. I was already amazed when projection painting was integrated and this is a real great addition to texturing workflow.

  5. Rovanion Says:

    Totally unrelated to the awesomeness of the function itself:
    What application do you use to record these videos?

  6. ToastBusters Says:

    Talk about awesome. Campbell has a birthday and he gives all of us a gift.

  7. invertedNormal (brian) Says:

    working even on your birthday?! you’re a slave driver… to yourself!

    impressive work and thank you =D

  8. Lasse R. Bruntse Says:

    OOuuh! That looks liek the best feature yet! WOW! Is is possible to change which painting application to use? I, for an example use Photoshop and Mypaint.

  9. Dd Says:

    Oh Yeah ! It’s very very useful !

  10. lsscpp Says:

    At first… happy birthday!
    Then… cool cool stuff!
    Only one question: is the image-editing application choos-able? I mean, gimp, photoshop, or whatelse?

  11. BonE Says:

    Sintel with war paint…

  12. JGpuon Says:

    looks great!… in this example, does it export and import the skin of Sintel or only the black strokes? If exports the skin too, does it always export big images to keep the resolution or the size varies depending on the resolution of the original skin texture?

    Congrats Campbell!

  13. MatrixNAN Says:

    Campbell your incredible as always man. Great Work. I think this will be a massive benefit to the artists in the community and to your film.

    I was curious if there would be any of the hard surface brushes they have in ZBrush 3.5 added to Blender for the film production?

    Also incredible work on the procedural rigging system. I was wondering if you implemented procedural animation transfer as that really cuts down on the amount of animation work the artists have to do by re-targeting the same animations from one rig to the other rigs in the production to cut down on having to do say walk cycles for each character?

    Instead, an artist can create one walk cycle and then procedurally re-target it to the other rigs and bam you have that walk cycle for all the other characters. Its pretty cool and its something you can do once you go through all of the trouble you went through for creating procedural rigging tools. 🙂 😉 Keep up the good work. I’m cheering for your guys.

    Nate Nesler

  14. 0knowledge Says:

    Wow, if this is what you call a birthday present, I will make sure to come up with a bunch of feature requests for your Christmas gift 😛

    Happy Birthday!

  15. JoOngle Says:

    WOW indeed…

    …not a small feature, this could indeed change the way we paint textures today!

    Thanks Campbell!

  16. LetterRip Says:

    Happy Bday cambo,


  17. Frank_robernson Says:

    Happy birthday, I think this shows you could use it for making UV maps for the sub-dermal, epidermal and specular, and reflections if you noticed it copied exactly what we do in gimp, but as you say only 2d areas where it saves time with renders ..its awesome.wicked wicked wicked!

  18. kernond Says:

    Wow, this makes it so much fun! I guess I’m going to have to get up to speed with the GIMP after all. 🙂

  19. Matt Says:

    Very nice!

    Don’t know quite how to accomplish this but I think it would be much more useful though if the ‘must paint on a new layer’ was solved. Having to make new layers can be awkward to work with, and very limiting in terms of what you can do – for example if you just want to clean up some seams using clone/smudge/etc tools or using more sophisticated warping tools (like PS’s liquify) it becomes a lot more difficult.

    Not sure how to solve this, disabling the axes/text etc when it makes the screenshot would be a start, as well as making a high res screenshot. Anyone know how zbrush does it?

  20. Rudiger Says:

    Oh, wow. My eyes are currently trying to convince my brain that what they just saw is actually possible!

    You mentioned that the current view angle was stored in the file, does this mean that with certain file formats like the Gimp native format, or can this info be temporarily stored somewhere else instead?

  21. rickyblender Says:

    nice little video for re painting!

    i saw some other little videos too and was wondering
    if there are some tutorial video or not on how to do theses effects
    i like that one for teleporation effect
    very clean and fast too

    keep up the good work and hope to see other special effects in Durian
    happy 2.5

  22. Ed the Tiger Says:

    <3 <3 <3
    Can't wait to use it!

  23. Satish 'iluvblender' Goda Says:

    Just awesome. This is how in BodyPaint 3D, painting on models works. I had seen it just once.. but I think that is it..

    Great work ideasman42 🙂

  24. -nw- Says:

    Amazing feature! This should be very useful when doing camera projection/adding fake depth to images.

  25. D Says:

    That’s one awesome developer. One giant leap for texture painting. 😀
    Sintel’s diffuse map looks gorgeous. 🙂

  26. ralmon Says:

    Incredible! That would be a very useful feature.

  27. Mike Says:

    Happy Birthday – and thanks for the feature!

  28. Jacob Valenta Says:

    WOW! that is great work!

  29. Glenn Melenhorst Says:

    Nice work as usual mate. I have a build and want to know how to associate the workflow with a painting app.
    I can’t work it out. 🙁

    Oh, and happy birthday.

  30. Mr.Nexy Says:

    Fantastic work Campbell , that tool will proof extremely useful 😀

  31. max Says:

    ok, this is a DREAM !!

    awesome work!

  32. Blenderificus Says:

    !!!! Thank you Campbell, and Happy Birthday to you!!!(and us too 😉

  33. DudeFromKansas Says:

    Happy Birthday Campbell. That is an awsome tool you worked up!! It is super amazing. I am asuming that this could also export to any paint program, even photoshop if you wanted to. Is that correct? Sorry I mentioned something closed souce!! don’t stone me. 😉 great work!

  34. Wahooney Says:

    Really cool stuff Campbell. And happy Getting Older Day to you!

  35. 0knowledge Says:

    I wouldn’t worry to much peeps. While right now it seems hardcoded to only work with the gimp, but from looking at the commits it’s obvious that in the future you will be able to set your editor of choice as a user preference.

  36. Kelvin Says:

    Amazing feature!!

    … and yea, Ubuntu!

  37. ideasman42 Says:

    Hi all, glad you seem to find this interesting, ofcourse its yet-to-be seen how it works in production :), will test this week.

    @Lasse R. Bruntse: Image editor can now be selected in the user preferences: build (r27310), on windows and mac it should open with the default application if the preference isn’t set, but I couldn’t test if this worked.

    @Rovanion: recordmydesktop, fullshots must be enabled.

    @JGpuon: it literally takes a screenshot at the resolution your viewing the image at. this has pros and cons, It will always project back into the high resolution texture, so if you want you can just scale the screenshot up before adding your own edits, then these will be high resolution too.
    The active camera can also be used to project renders back in from the “Project Image” button however the workflow for this is a low slower.

    @MatrixNAN: I’m not familiar with the ZBrush flat brushes, I think we’re using the same metarig for all humans so I’d guess actions could be shared between, even if proportions differ, may still need cleaning up after to fit the character.
    Nevertheless animation re-targeting would be great to have, but its not planned short term. Nathan is now maintaining ‘rigify’ so he could better answer this.
    Since we have 2 developers 3-4 animators I think we might solve with grunt work 🙂

    @Matt: Your right about using alpha overlay being problematic. When adding this I was thinking of ways we could paint onto mountain ranges and caves. David and Ben sometimes take 3D renders and do paint-overs to work on composition so I was thinking of an “apply paintover” tool.
    The problem is you end up loosing quality when rendering an image and projecting it back in. the higher resolution the less quality but its a bit like resizing an image a lot makes it become blurry. Could use some tricks to workaround, like only apply the pixels that changed from the original or apply the change in color as a delta to the high resolution colors so as not to overwrite detail when adjusting colors.

    @Rudiger: The view matrix + bounds are stored as metadata in the image datablock (in blender). could try store it in PNG metadata too.

    @Satish ‘iluvblender’ Goda: This is something I heard about but never saw, Id be interested to know how other apps deal with degrading quality from too many re-projections. Perhaps just edit very high resolution projections.

  38. n-pigeon Says:

    Campbell you are the best 😀

  39. BMN Says:


    in the r27310 build we can use photoshop? i can not find the r27310 on graphiccall

  40. pxl666 Says:

    hey guys – amazing thing must say!

    i was wondering if there is possibility to create a tool that allows painter to load multiple reference photos into 2d image editor within blender – uv image editor, and, having opened 3d viewport and uv image editor – painter could set CLONE and clone FROM flat photo in uv editor ONTO 3d model in viewport – just as simple as cloning within 2d app but within blender….this could sped up painting tex from ref images, photos, etc SOOO quickly!!!

    the next thing i was thinking of was something like applying decals easily – drag’n drop png with alpha into blender onto your mesh – u see this png as a plane with flat mapped image with alpha, then u can reposition, scale, rotate and such – having the png-plane always aligned flat to the view- then when having it ready – press the (place/bake/apply) button and BOOM your decal have just been placed right into the texture on your mesh…

    sounds reasonable?

    have a great weekend guys – u do the amazing job!

  41. Beorn Says:

    @MatrixNAN: Regarding retargeting of animations….
    I agree it could be useful for some things, but the truth is I wouldn’t use it. Every character walks differently, and their walk will change depending on the situation. I personally never use walk cycles. Animating a walk is something every animator should know how to do, and is not difficult enough a task to warrant any automation.

    Not that I want to hijack the thread, of course…
    Back to worshiping Campbell the Amazing…

  42. Bernard Says:

    Happy Birthday Campbell! and thank you for the hard work and magic. 🙂

  43. scrim Says:

    Big Impact 🙂

  44. pxl666 Says:

    tried recent build and despite configuring shop as image editor – blender still wont open/export image for painting…what can i be doing wrong?

  45. Quentin.G Says:

    gorgeous feature 😀
    and happy birthday too 😀

  46. Strohhut Says:

    That is a dream becoming true!!!

    I was so jealous when I saw something like that in autodesks programs that were linked to photoshop.

    now you could say, that blender has all the painting tools and filters implemented, that you have in GIMP 😀

    That is awesome

    next thing blender needs, is the possibility to make all layers visible with alpha channel, so you could paint on a new layer and see the underlying layers at the same time

  47. tobin Says:

    As a photoshop user, and someone who dislikes gimp (not because its not like PS) i find it strange to say that i’d rather use this feature with gimp, gimp has a lot of short comings for me personally but the best thing about gimp vs photoshop is startup speed, this feature would be a nag waiting for photoshop to open if it isnt already! that said I’m curious as a mac user will gimp work with this feature as we still have to run gimp through X11, but anyways excellent feature, very functional I can see myself using this alot

  48. francoisgfx Says:

    is this the kind of thing you did with this revision “python api function for rna objects: object.as_pointer()” ?

  49. Flo Says:

    Cool feature. How about making it apply only the difference between the original and modified image?

  50. Vassilios Says:

    Thank you so much!!This is simply Amazing!
    and Happy Birthday!!!!