The files this W³ page points to were last updated by Francisco Morán Burgos on 2000-08-18 -- so they're rather old... If you're interested in getting more recent versions of them, send mail to fmb@gti.ssr.upm.es . |
---|
My hierarchical 3D mesh coder based on subdivision surfaces runs on both [wonderful] UNIX and [ghastly] Win32 (MS-Windows95/98/NT) platforms. It needs, however, that the GLUT (OpenGL Utility Toolkit) library be installed in your system. The GLUT will use, in turn, the GL and GLU libraries from OpenGL, which can be your system's native ones, or the public ones from Mesa (the Mesa 3D Graphics Library).
Download the precompiled version of my software that suits the «HW» (HardWare), «OS» (Operating System) and graphics capabilities of your system by choosing one of the links below.
HW | OS | OpenGL | File |
SGI | IRIX 6.2+ | native | subdiv.IRIX.tar.gz |
HP | HP-UX 10.20+ | Mesa | subdiv.HP-UX.tar.gz |
PC | Linux 2.2+ | native | subdiv.Linux.tar.gz |
MS-Windows98/NT | native | subdiv.Win32_OpenGL.tar.gz | |
MS-Windows95 | native | ||
Mesa | subdiv.Win32_Mesa.tar.gz |
Notes regarding...
IRIX: Your system not only has the OpenGL libraries installed, but is also GLX-capable and probably has some kind of hardware acceleration for 3D graphics. You only need to worry about the GLUT, whose shared object, libglut.so, you must (compile and) install under /usr/local/etc/OpenGL/Mesa/lib (or any other directory listed in your LD_LIBRARY_PATH environment variable).
HP-UX: Your system probably doesn't have any native OpenGL libraries installed, so you'll have to (compile and) install both the Mesa (lib{GL,GLU}.sl) and the GLUT (libglut.sl) shared libraries under /usr/local/etc/OpenGL/Mesa/lib (or any other directory listed in your SHLIB_PATH environment variable).
Linux: If you installed the Mesa package (supposing your Linux is Red Hat's or a similar one), you don't have to do anything. All the shared libraries you need are already installed under /usr/X11R6/lib.
MS-Windows98/NT: you don't have to worry about the OpenGL DLLs, since you have Microsoft's [here's where you have to worry...] implementation of GL and GLU in C:\WINDOWS\SYSTEM[32]\{OPENGL,GLU}32.DLL respectively. All you have to do is to (compile and) install the GLUT DLL in that same directory.
MS-Windows95 [poor you!]: You'll have to (compile and) install in C:\WINDOWS\SYSTEM both the OpenGL and GLUT DLLs.
Let's suppose, from now on, your choice was subdiv.IRIX.tar.gz.
Unzip it with
gzcat subdiv.IRIX.tar.gz | tar xvf -
to have the following directories and files created under the current
directory:
File | Contents |
subdiv/index.html | This W³ page. |
subdiv/Makefile | The UNIX Makefile (not in Win32 versions). |
subdiv/subdiv2.5D.h | The function library public header. |
subdiv/subdiv2.5D_priv.h | The function library private header. |
subdiv/subdiv2.5D_gfx.c subdiv/subdiv2.5D_io.c subdiv/subdiv2.5D_lists.c subdiv/subdiv2.5D_math.c subdiv/subdiv2.5D_txitxa.c |
The function library modules source code. |
subdiv/libsubdiv2.5D.IRIX.a | The function library binary code (not in Win32 versions). |
subdiv/subdiv2.5D.c | The main program source code. |
subdiv/subdiv2.5D.IRIX | The main program binary code (subdiv.exe in Win32 versions). |
subdiv/models/tetrahedron subdiv/models/tetrahedron.dtb |
Three 3D models and their associated details files (to get the unit sphere as the final surface). |
subdiv/models/octahedron subdiv/models/octahedron.dtb |
|
subdiv/models/icosahedron subdiv/models/icosahedron.dtb |
|
subdiv/models/corner subdiv/models/queen.q subdiv/models/triceratops.q subdiv/models/flag29.tec subdiv/models/ADLOGO.wrl subdiv/models/BANANA.wrl subdiv/models/MARTINI.wrl subdiv/models/SCISSORS.wrl |
More 3D models (with no associated details files). |
Change to directory subdiv and run the program, which will give its
usage if invoked without arguments. For instance, run it with
subdiv2.5D.IRIX data
where data is one of the files containing 3D models that you've just
downloaded. Then move around and control the subdivision process according to
the instructions that the program will also print out in the window it's
invoked in (the Win32 versions are what MS-DevStudio calls «MS-DOS console
applications», so subdiv.exe must be run from an MS-DOS window).
Optionally, try:
subdiv2.5D.IRIX -t epsilon data
(0 < epsilon < 1) to watch the subdivider work adaptively
(based on surface curvature);
subdiv2.5D.IRIX -p[b] data
to have it progressively decode a target mesh (in that case it'll need a
file called data.dt[b] to read the details to be added to the
vertices progressively introduced by the subdivision process);
subdiv2.5D.IRIX -P[b] data
to have it encode the target mesh described in data.tgt (or the
unit sphere if data.tgt does not exist) and produce a details
file called data.dt[b].
Questions? Maybe my MPEG99/M4488 proposal (144 KB gzip'ed MS-Word97 [sorry for that...] file) or the paper on "Hierarchical 3D model coding with subdivision surfaces" (37 KB gzip'ed PostScript file) I presented at the IWSNHC3DI'99 (International Workshop on Synthetic/Natural Hybrid Coding and 3D Imaging, Santorini, Greece, September 1999) will help you understand what I'm after.
More questions? Comments? Suggestions? Then please, pliiizzz, send mail to fmb@gti.ssr.upm.es.