tfc.duke.free.fr
tfc.duke.free.fr
welcome to david henry's homepage!
about this page
this is my personnal homepage. you'll find on this page some of my own programs, generally
opengl demos, sometimes accompanied by an article in french and/or in english (a tutorial, a
file format specification, etc.). all my works are open source, because first, open source
rocks, and then, because their primary purpose are for education and they would be completely
useless if they were closed source.
since not all of the files hosted on my site are reachable from this page, you can
browse my host space. sometimes people remember the name of the site
where they have found something interesting but not the full web address. there is no critical
private files on my site :-)
if you want, you can participate to a little opinion poll about this site:
i found what i was looking for/this site is interesting
hell, what am i doing here?
je ne parle pas anglais
you can contact me by mail at tfc_duke, (at) club-internet, (dot) fr
(french/english).
usb pickitâ„¢ programmer
usb_pickit 1.6 is a pic programmer for use with microchip's pickitâ„¢ 1 flash starter kit. this
little low cost development board allow you to program some 8-bits pic microcontrollers (8 and
14 pins) like 12f675 and 16f684 devices.
this programmer is based on the 1.5 verion by jeff boly, has some improvements and a big code
rewriting. it works on gnu/linux and windows. more informations and
download...
demos and programs
all these programs are open source. some old works haven't been tagged yet with a licence. i
assume they are licensed under the
mit-license, like a majority of
my other works.
my programs are compiled with gcc
under gnu/linux. i try to make them portable, at least buildable under windows with
mingw. not all demos are
distributed with compiled binaries. i try to keep them minimalistic, with less bloat as possible,
so that it's easy to understand the feature they are illustrating (loading a model, an image, etc.)
from time to time, i rework one of them and update it. so none of them is in final version.
programs written in c
simple glut window, (aug. 14, 2007), for opengl.
code base for a glut based application. create an opengl window and handle keyboard
and mouse input, and time.
libraries: opengl, glu, glut.
files:
glutbase.c (7.2 kb).
simple sdl window with opengl, (aug. 14, 2007), for opengl.
code base for an sdl based application. create an opengl window and handle keyboard
and mouse input, and time.
libraries: opengl, glu, sdl.
files:
sdlbase.c (7.3 kb).
simple glx window, (aug. 14, 2007), for opengl.
a simple opengl window created with the glx api. just to see how it's boring not using
a portable framework.
libraries: opengl, glu, x11.
files:
glx.c (9.9 kb).
tga (truevision targa, *.tga) texture loader, (aug. 14, 2007), for opengl.
loads 8, 16, 24 and 32 bits paletted, grayscale and truecolor tga images. rle compression is
supported.reads everything i can export with the gimp.
libraries: opengl, glu, glut.
files:
tga.c (16 kb), load from file;
tga_mem.c (17 kb), load from memory.
detailed article:
français.
dds (directdraw surface, *.dds) texture loader, (aug. 14, 2007), for opengl.
loads compressed dds images. supports only dxt1, dxt3 and dxt5 compression formats.
libraries: opengl, glu, glut.
files:
dds.c (9 kb).
png (portable network graphics, *.png) texture loader, (aug. 14, 2007), for
opengl.
loads paletted, grayscale and truecolor png images. in theory, any type of png image should be
supported.depends on libpng and zlib.
libraries: opengl, glu, glut, libpng, zlib.
files:
png.c (9 kb), load from file;
png_mem.c (11 kb), load from memory.
detailed article:
français.
jpeg (joint photographic experts group, *.jpg) texture loader, (aug. 14, 2007),
for opengl.
loads every jpeg image. depends on libjpeg.
libraries: opengl, glu, glut, libjpeg.
files:
jpeg.c (6.5 kb), load from file;
jpeg_mem.c (9.3 kb), load from memory.
pcx (zsoft pcx, *.pcx) texture loader, (aug. 14, 2007), for opengl.
loads 1, 4, 8 and 24 bits paletted and truecolor pcx images.useful when dealing with old
data such as quake 2's models.
libraries: opengl, glu, glut.
files:
pcx.c (11 kb).
bmp (windows/os2 bitmap, *.bmp) texture loader, (aug. 14, 2007), for opengl.
loads 1, 4, 8, 24 and 32 bits paletted and truecolor bmp images. rle compression is supported.
useless, bmp file format is crap ;-)
libraries: opengl, glu, glut.
files:
bmp.c (15 kb).
obj (alias|wavefront object, *.obj) model loader, (aug. 14, 2007), for opengl.
load obj meshes. mtl files, nurbs and curves are not supported. this is a minimal loader.
i don't remember why i have written it.
libraries: opengl, glu, glut.
files:
obj.c (13 kb).
gl_arb_texture_compression demo (using tga texture loader), (aug. 14, 2007)
this is a demonstration of the gl_arb_texture_compression extension usage.
it shows two textures created from the same source image, one with s3 compression, the other without.
it's really simple. it uses the tga texture loader.
libraries: opengl, glu, glut.
files:
texture_compression.c (19 kb).
reflective environment mapping demo, (jan. 21, 2007)
a cool looking demo of reflective environment mapping.
it can use three rendering modes: standard way through fixed pipeline, through programmable pipeline with arb
vertex and fragment programs, or with glsl shaders (requires opengl 2.0).
it uses the tga loader. includes binaries for linux (x86) and windows.
libraries: opengl, glu, glut, glew.
files:
envmap.zip (1.7 mb).
object outlining demo, (aug. 14, 2007)
this demo illustrates four polygon outlining techniques.
libraries: opengl, glu, glut.
files:
outline.c (11.0 kb).
quake's mdl viewer (*.mdl), (aug. 14, 2007)
a simple mdl model viewer, with lighting, texture mapping and animation.
libraries: opengl, glu, glut.
files:
mdl.c (15 kb),
anorms.h (6.7 kb),
colormap.h (4.3 kb).
mdl file format specifications:
english,
français.
quake 2's md2 viewer (*.mdl), (aug. 14, 2007)
a simple md2 model viewer, with lighting and animation. no texture mapping.
libraries: opengl, glu, glut.
files:
md2.c (16 kb),
anorms.h (6.7 kb).
md2 file format specifications:
english,
français.
detailed article (using c++):
english,
français.
doom 3's md5 viewer (*.md5mesh, *.md5anim), (aug. 14, 2007)
a simple md5 model viewer, with animation support. no texture mapping. no lighting.
less than 1300 lines of code.
libraries: opengl, glu, glut.
files:
md5mesh.c (15 kb),
md5anim.c (13 kb),
md5model.h (3.8 kb).
md5 file format specifications:
english,
français.
doom 3's ultralight md5 viewer (*.md5mesh, *.md5anim), (feb. 1, 2006)
an ultralight version of the md5 model viewer. no animation, no texture mapping. no lighting.
fits in less than 650 lines of code.
libraries: opengl, glu, glut.
files:
md5.c (14 kb).
md5 file format specifications:
english,
français.
programs written in c++
3d math library (vector, matrix, quaternion), (feb. 19, 2006), for opengl.
this is my own 3d math library i use in some of my projects.this package includes a test
program (main.cpp).
libraries: none.
files:
mathlib.zip (22 kb)
texture loaders, (may 19, 2006). some opengl texture class loaders.
supports 2d, rectangle and cube map textures. can load tga, png, jpeg, dds and pcx images
files.this package includes a test program (main.cpp).
libraries: opengl, glu, glew, boost, libjpeg, libpng, zlib.
files:
texture.zip (58 kb)
shader library, (july. 13, 2007). glsl shader classes.
this package includes some shader samples and linux and windows binaries.
libraries: opengl, glew.
files:
shader.zip (515.9 kb)
datamanager, (feb. 25, 2006). this is a template data manager class.
it allows to register some objects in order to prevent duplicates (this is useful for textures,
models, sounds, etc.).
libraries: none.
files:
datamanager.zip (13.4 kb)
glerrors, (jan. 24, 2007). this is a simple opengl error checker function.
it checks if an opengl error has occured and print it to the standard output. nothing
extraordinary but extremely useful for development :-)
libraries: opengl.
files:
glerrors.zip (2 kb)
doom 3's md5 viewer, (jan. 28, 2007). still in development
source code is under mit-license (not all files are license-tagged).
supports bump mapping with glsl and arb vertex and fragment programs. it includes
two models from the doom 3 demo (i'm not sure i can redistribute them...). see the
readme file for how to use it.
libraries: opengl, glu, glew, sdl, sdl_ttf, libjpeg, libpng, zlib, boost.
files:
md5loader-09.tar.bz2 (8.3 mb)
quake 3's md3 viewer (july 13, 2007), loads and displays a player and a weapon.
supports lighting, texture mapping and animation.
includes a sample player model with weapon. see readme for how to use it.
note (1): it uses the posix opendir/readdir functions, which are not
implemented in all compilers under windows (mingw supports them).
note (2): this demo works on little endian architectures only.
libraries: opengl, glu, glut, boost, libjpeg.
files:
md3loader.zip (2.4 mb);
quake 2's md2 viewer (july 13, 2007), loads and displays a player and a weapon.
supports lighting, texture mapping and animation.
includes a sample player model with weapon. see readme for how to use it.
note (1): it uses the posix opendir/readdir functions, which are not
implemented in all compilers under windows (mingw supports them).
note (2): this demo works on little endian architectures only.
libraries: opengl, glu, glut.
files:
md2loader.zip (1.1 mb);
detailed article:
english,
français.
quake 2's md2 viewer + arb bump mapping (old). this is the md2 viewer demo with
simple dot3 bump mapping, using arb extensions (that is to say, the most basic bump mapping
which works with old graphic cards).
includes a sample model with its normal map.
linux package depends on libsdl; windows packages are self-sufficient.
note: this demo works on little endian architectures only.
libraries: opengl, glu, sdl.
files:
linux package (526.8 kb);
winows mingw package (1 mb);
winows msvc++ 6 package (744.7 kb).
detailed article:
english,
français.
quake's mdl viewer (july 13, 2007), for nostalgy.
supports lighting, texture mapping and animation.
includes a sample model with multiple skins.
note: this demo works on little endian architectures only.
libraries: opengl, glu, glut.
files:
mdlloader.zip (523.9 kb);
particle fountain (feb. 9, 2006), a cool looking particle fountain.
it can render particles as quads or as points with gl_arb_point_sprite and
gl_arb_point_parameters extensions.
libraries: opengl, glu, glut, glew.
files:
particlefountain.zip (482.4 kb);
texture manager (png, jpeg, tga, bmp, pcx) (stone age), an antique texture manager.
one day i will completely erase it. *aouch* ugly.
linux package depends on libsdl, libpng, zlib and libjpeg; windows packages are self-sufficient.
libraries: opengl, glu, sdl, libjpeg, libpng, zlib.
files:
linux package (183.8 kb);
winows mingw package (1.1 mb);
winows msvc++ 6 package (975.1 kb).
detailed article:
français.
articles (in english)
opengl/game programming:
a primer to gcc and mingw
quake ii md2 file format (detailed article)— old version;
translation of a revised version (from french)
comming soon when it's
done :-(
quake's mdl file format specifications
quake 2's md2 file format specifications
doom 3's md5 file format specifications
articles (in french)
articles programmation/opengl/jeux vidéos :
développement de jeux vidéo multi-platforme et logiciels libres
une introduction à gcc et mingw
le format md2 (article détaillé)
charger des images tga
charger des images png (avec libpng)
les listes chaînées (en c++)
le singleton (en c++)
calculer le nombre d'images par seconde
specifications du format mdl (quake)
specifications du format md2 (quake 2)
specifications du format md5 (doom 3)
articles programmation sdk d'half-life 1 :
créer un nouveau monstre
l'intelligence artificielle
liste des tasks par défaut
relations npc à npc
faire suivre le joueur à l'aide de la classe ctalkmonster
créer une nouvelle arme (côté serveur)
utiliser les events avec une arme
coder une arme côté client
créer une arme de contact
créer une arme qui tire des projectiles
créer une visée laser
ajouter un zoom à votre arme
guide rapide pour la création d'une arme
les events
changer la couleur du hud
les skill cvars
les items
precompiled win32 libraries
here are some libraries i use in my programs, compiled for windows (under gnu/linux, use the
package system of your distro). although it is present in the table, i no longer supports ms
visual studio 6.0 (too old, too bad).
list of compiled win32 libraries
library
mingw32
ms visual studio 6.0
sdl
sdl 1.2.8
sdl 1.2.8
sdl
sdl 1.2.7
sdl 1.2.7
glut
glut 3.7.6
glut 3.7.6
zlib
zlib 1.2.1
zlib 1.2.1
libpng (need zlib)
libpng 1.2.6
libpng 1.2.6
libjpeg
libjpeg 6b
libjpeg 6b
subliminal message: vi sucks! emacs rocks!
tfc.duke.free.fr Précédent 275 Précédent 274 Précédent 273 Précédent 272 Précédent 271 Précédent 270 Précédent 269 Précédent 268 Précédent 267 Précédent 266 Précédent 265 Précédent 264 Précédent 263 Précédent 262 Précédent 261 Précédent 260 Précédent 259 Précédent 258 Précédent 257 Précédent 256 Précédent 255 Précédent 254 Précédent 253 Précédent 252 Précédent 251 Précédent 250 Précédent 249 Précédent 248 Précédent 247 Précédent 246 Suivant 277 Suivant 278 Suivant 279 Suivant 280 Suivant 281 Suivant 282 Suivant 283 Suivant 284 Suivant 285 Suivant 286 Suivant 287 Suivant 288 Suivant 289 Suivant 290 Suivant 291 Suivant 292 Suivant 293 Suivant 294 Suivant 295 Suivant 296 Suivant 297 Suivant 298 Suivant 299 Suivant 300 Suivant 301 Suivant 302 Suivant 303 Suivant 304 Suivant 305 Suivant 306