|  |  | Greeting,
bothering you to inform about (hopefully) final version of img2pov 
converter of PNG heightfields into POVRay 3D-mesh. The program uses 
image tracing algorithm quite different from normal, creating four 
triangle pyramids per pixel, rather than two triangle fold per four 
pixels as most programs do. Program is written in Python and is 
available from:
https://github.com/Dnyarri/img2mesh
In supposedly final 2.8.1.0 version POVRay output is completely 
rewritten to remove all POVRay transforms, hopefully making things to be 
parsed faster. Textures and stuff reorganized and reformatted to improve 
readability.
Also Wavefront OBJ and streolithography STL outputs added. Attached is a 
screencap of Windows Explorer window, showing icon preview of output 
generated from 2x2 pixels checkerboard PNG image (no idea who decided to 
introduce such a previews for potentially huge files but in this case it 
allows me to easily show them side by side without complex presentation).
Internally, img2pov, img2obj and img2stl programs converted into 
self-calling functions, thus allowing both running them as standalone 
and importing into some other program. For Windows users it gives a 
benefit of having single img2mesh GUI with import of all three of the 
above programs into single compressed EXE file, thus reducing the size 
of this all-in-one converter (exe file is available for download from 
"Release" section.
Hopefully this appear of some use :-)
-- 
Ilyich the Toad
https://dnyarri.github.io/
 Post a reply to this message
 Attachments:
 Download 'printscreen2x2.png' (40 KB)
 
 
 Preview of image 'printscreen2x2.png'
  
 |  | 
|  |  | Ok, I was lying when I promised to stop updating img2mesh PNG 
heightfield to 3D mesh conversion utility:
https://github.com/Dnyarri/img2mesh
I realized that, when doing something with heightfields "for fun", that 
is, not trying to convert some actual geometry data but, say, creating 
fake coins or medals, I often repeat one procedure: in Photoshop, apply 
"Curves" to image, save it, convert to mesh, render, say "I need extend 
gradations here and invert this small part" and repeat it again and 
again (including saying).
To reduce time for resaving and number of resaying I implemented 
"Curves" right in exported POVRay file - with img2pov (and, 
correspondingly, img2mesh when POV export option is used) version 
2.8.2.5 z-coordinate of mesh triangles, generated and saved according to 
source PNG pixel brightness, is fed to map function in POVRay when 
rendering. By default exported map is five points linear spline, 
corresponding to straight line describing "identical" transform, i.e. 
input=output. Map description is placed near the beginning of scene file 
and I guess its two-column layout makes it easy to understand - input is 
the first column, output is second column, third column contains unused 
zeroes.
Note, that map does not change actual z coords in mesh, it is applied 
when scene is rendered, so map is non-destructive and may be returned to 
"identical" 0/0 - 1/1 line anytime you want. Note that, as a result, map 
works only in POV file - with STL and OBJ export there is no map, since 
only POVRay allows easy internal recalculation of every facet according 
to user-defined function.
Have fun,
-- 
Ilyich the Toad
https://dnyarri.github.io/
 Post a reply to this message
 |  |