I'm trying to create a polygonal art background, based on an image texture, like this penguin picture at this link: http://www.polygenapp.com/ That image was generated using this method, How can I do something like it using cycles. Note, I already have a mesh, I just want to texture it.

Ideally I prefer OSL, but anything that is one or two click to update will fly.

The method works by finding the color at the center of the face. I believe the is better then averaging vertexes in many instances.

Note: It would mean a lot if I didn't have to apply any modifiers on the mesh in order for this to work, just heads up.

Here is a practice file with modifiers:

This is not a duplicate of this: Is there a smart way to apply a better transition between colours while maintaining one solid colour per face?, That is not applicable to any textures, just gradients.

  • $\begingroup$ so do you have the mesh , or you want everything to get generated from a texture image $\endgroup$ – Chebhou Apr 26 '15 at 13:28
  • $\begingroup$ I've got a mesh, how would OSL generate one $\endgroup$ – GiantCowFilms Apr 26 '15 at 13:30
  • $\begingroup$ not osl , python $\endgroup$ – Chebhou Apr 26 '15 at 13:33
  • $\begingroup$ @Chebhou OSL might be able to, which would be really cool $\endgroup$ – GiantCowFilms Apr 26 '15 at 13:36
  • $\begingroup$ I've got close result using the previous answer but I think even with osl you'll have to edit the mesh to match the color transition $\endgroup$ – Chebhou Apr 26 '15 at 13:53

Here is one way to do this :

  • duplicate the final mesh (modifiers applied )
  • UV unwrap the new object using this method :

    • select all face
    • hit Ctrl+E and select Edges Split
    • resize all faces to Zero with Individual origins as a pivot
    • U and select Project from View Bounds

enter image description here

  • copy this map to the original object, using CtrlL>Transfer UV map

After that all points on the same face will have the same UV coordinates meaning they will have the same color in render.
You can adjust the UVmap for more precise output.

For the workflow of setting up a good mesh :

  • Add the Image as a background in the view
  • Add a plane (or simply import the same image as plane to skip setting up materials)
  • Delete the face (in Edit mode Select All and X and select Only Faces)
  • Start doing a loose tracing of the image by adding vertices in Edit mode (Ctrl+LMB, don't worry about crossing edges!)

enter image description here

  • Delete all edges (Select All and X and select Only Edges&Faces)
  • For this step you need the Delaunay/voronoi Addon it will create a triangulated mesh from the points

enter image description here

  • The rest is described in the first part above

And here is a sweet penguin render :

enter image description here

  • $\begingroup$ Not quite as elegant as I was hoping for, but still usable, and quite ingenious $\endgroup$ – GiantCowFilms Apr 26 '15 at 16:01
  • $\begingroup$ Very nice solution! $\endgroup$ – Denis Apr 26 '15 at 16:02
  • $\begingroup$ @Chebhou How to you copy the UVmap? $\endgroup$ – GiantCowFilms Apr 26 '15 at 16:25
  • 2
    $\begingroup$ @GiantCowFilms Ctrl+L and transfer UV Maps, you need to create a new UV Map and make it active first, then you can transfer from active object $\endgroup$ – Denis Apr 26 '15 at 16:34
  • 1
    $\begingroup$ @Chebhou Thanks so much for this trick! Didn't know such cool UV transfer to Polygon color :D $\endgroup$ – Blender Sushi Guy Aug 25 '16 at 0:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.