Normand BRIÈRE (nbriere@noware.ca )
3384 Lacombe #13 Montréal, Québec H3T-1L8 (514) 342-5971
Web page: http://www.noware.ca
Industrial experience
My Virtual Model, 3D software developer (oct 2008 - jan 2009)
Real-time features development (C#, DirectX)
Mass-spring physics engine for dynamic garment creation
Stable and fast for highly stiff fabrics (stretching, bending, shearing)
Constant-time system integration and AABB collision detection
Automatic discretization from bezier-outlined input pattern
2D display: polyline, textures, transformations
3D display: realistic shading (cloth and skin)
Global lighting heuristic (HLSL)
CAE
Inc, Real-time visual system programmer
(2007 – april 2008)
Various environment effects (VC++, Windows XP)
procedural lightning strike + illumination
vertex-based scene deformation for rain distortion
seam edge removal for billboard/scene intersection
satellite imaging improvements (raster GIS)
performance (no more than one tile update per frame)
display (continuous precision through adaptive LOD bias)
fix of grazing angle artifacts (due to horizon compression)
NVidia port
Automatic (brute-force) texture antialiasing
low-cost simulators had to support 16x to 2x downsampling
fix of major aliasing artifacts (flicking, moiré) of DXT textures
Fourier transform for removing texel-pixel interference frequencies
Per-level mipmap filtering
Volumetric clouds rendering (up to 500 Hz, 3/8 sky coverage)
improvements of impostor-based billboarding framework
various tuning parameters for realism (phase, density, shading, hazing)
performance issue is addressed through exact angular tolerance
two-pass solution for popping artifacts (RGB + alpha)
new tile allocation scheme for dynamic cloud resolution
SOFTIMAGE, Mental Ray Rendering (2006)
Generic particle-based volume shader (C++, Windows XP)
Physically-based rendering of participating media
Density function behavior control (Perlin)
Medium shader parameters
fire: emission and filter
steam: time and radius-varying control
smoke: spherical gradient and self-shadowing
dust: analytic density gradient
Envelop shading for liquids
Automatic particle radius generation
Generic material surface shader
Microfacet-based realistic rendering
Produces a wide variety of materials
plastic, velvet, ice, metal, skin, etc
anisotropic effect for brushed metal, satin, and hair
reflection, transparency and subsurface scattering
Ambient occlusion heuristic, curvature-based shading
Bevel-like normal generation
INTePLAN Inc, CAD Software engineer (2003-2005)
Industrial-strength 3D viewer (PLM) (Java + Java3D, Linux)
Very fast loading and displaying of large scenes (plants, etc.)
Hierarchical views, annonations, auto-zoom features.
Picking, snapping and transformation tools
Body-in-white features (Weld orientation)
Welding cross-section validation for multiple components
Serialized file format + VRML 1 and 2 loaders maintenance
Physical simulation mode
Logarithmic collision detection (translation/rotation speedup)
Analytic body properties computation (volume, mass, inertia)
Cutting tools (2D/3D + solid fill)
Incremental rendering features using JOGL
Global illumination solutions
Constant-time antialiasing
TAARNA Studios Inc, 3D Software developer (1999-2002)
Interactive lighting and shading module (C++, OpenGL, SGI)
Fast updates of light, surface or volume parameters (5 to 10 FPS)
light color, intensity, from/to positions, cone angle
surface color, diffuseness, specular and roughness
fog color and density
Preprocessing supports texture and displacement maps
Spotlight fog shadowing (1 to 2 FPS)
Low resolution and interlace modes for faster rendering
Reprojection for camera changes
Various tools for users (intensity, diffuse, specular, shadow)
Sets the intensity of a pixel using a double-click
Allows click&drag of diffuse or specular highlights
Allows interactive click&drag of shadows
RenderMan shaders (silk, velvet, satin, perl, metal, skin, fur and nylon)
Light version (C++) of these shaders for interactivity
Complete and intuitive GUI
Technical Overview
Programming languages: C/C++/C#, JAVA, LISP, Dylan, Python, PROLOG, PASCAL/MODULA, COBOL, BASIC, Intel/Motorola assemblers
Systems: Windows, Mac OS/X, Linux, SGI, Solaris
Environments: NetBeans, Visual Studio, Xcode, CodeWarrior
Graphics: AWT, Direct3D, OpenGL, Java3D, VRML, PostScript, POVray
Rendering: HLSL, GLSL, ARB vertex/pixel, Mental Ray, Renderman, Cg
UI: SyncFusion, Swing, Motif, Xview Editors: JEdit, vim, Xemacs
Others: J2SE, JNI, CVS/SVN, StarUML, XLM, SQL, IRC, Excel
Academic background
Ph.D. computer graphics (1999), Université de Montréal (4.3 / 4.3)
Camera preprocessing for incremental ray tracing
Light preprocessing for caustic rendering
M.Sc. computer graphics (1994), Université de Sherbrooke (3.8 / 4.0)
Generation of optimal line clipping algorithms
B.Sc. computer science (1989), Université de Sherbrooke (3.86 / 4.0)
Teaching experience (1990-1993)
Teacher, Université de Sherbrooke
PROLOG and C++ (4 months)
Computer graphics (8 months)
Introduction to C language (3 months)
Assistant, Université de Sherbrooke
Computer graphics IFT 428, 528, 538 (2 years)
Calculability and decidability (4 months)
Training periods (1986-1989)
HENTER-JOYCE Inc, 2D Software developer (6 months)
Screen zoom for visually-impaired people (C, Windows NT)
Bitmap smoothing: remove aliased character, icon or edge
Special modes for various character thickness
Exploits screen coherence for faster scrolling
EICON TECHNOLOGY, Programmer (4 months)
EiconScript (PostScript) development and maintenance
Scan-conversion of primitives (tris, quads, trapezoids)
Optimized floating point routines (68000 assembly)
Ramdisk tools (8088 assembly language)
Screen preview of laser printer pages (68000)
Creation of 2D and 3D images (PostScript)
MICRO-TEMPUS, Programmer (8 months)
Software development (8088 and IBM370 assembly languages)
Tempus-Share : a mainframe used as a PC server
Tempus-Link : a VSAM file used as a PC virtual disk
LOTO-QUÉBEC (Vidéoway), Game Programmer (4 months)
Computer game development (6809 assembly language)
BurgerTime (complete)
Styx and PingPong (parts)
Various tools for games: random number and score display
Publications
Papers in refereed conference proceedings:
Normand Brière & Pierre Poulin, Adaptive representation of Specular Light. Graphics Interface 2000 + Computer Graphics Forum, vol. 20, no. 2, june 2001.
Normand Brière & Pierre Poulin, Hierarchical View-Dependent Structures for Interactive Scene Manipulation. Proc. ACM SIGGRAPH '96 (New Orleans, Louisiana). In Computer Graphics Proceedings, Annual Conference Series, 1996, pp. 83-90.
Technical reports:
Ali Jaoua, Normand Brière & Kacem Zéroual, Reliable design programming: a preventive methodology
Normand Brière and Jean-Pierre Dussault, An Optimal Tree for Line Clipping
Course notes:
J.-P. Dussault and Normand Brière, Fondements de l'infographie tridimensionnelle. (~300 pages, TeX)
Introduction au langage C++ (~100 pages, Word)
Scholarships, Awards
FCAR, Université de Montréal
CRSNG, Université de Sherbrooke
FCAR, Université de Sherbrooke (not used)
Prix Digital Equipment of Canada
Médaille Fernand Séguin (BAHUS, 1989)
Personal developments
3D modeling and rendering systems (Swing / Motif / XView, Java / C++, OpenGL / GL / XGL, Mac / Sun / SGI)
Hierarchical modeling, transformations, attribute inheritance
Polygons, planes, spheres, cylinders, cones, superellipsoids, fractals, B-spline surfaces, butterfly, Catmull-Clark, CSG
Automatic bounding volumes generation
Procedural textures, bump maps and hypertextures
Infinite object duplication
Reflective and refractive ray tracing, BSP, Z-buffer renderings
Optical effects: depth field, spherical projection, motion blur, soft shadows and reflection, uniform and non-uniform participating media, caustics
Very-complicated-and-not-user-friendly interface
Animation tools
Graphic-related projects
Analytic hidden-surface removal (Modula, Mac +)
Scene reconstruction from 2D wireframe (C, SunOS)
3D labyrinth walkthrough (C, Mac II)
4D exploration:wireframed/raytraced hypercubes/spheres
Other projects
Grammar-based french editor (Java, OS X)
Billiard with collisions and friction effects (C, SunOS)
Colorful fireworks (C, Mac II)
Chess player (Pascal, IBM370); new good version (C++, Mac OS X)
Various games: Tetris, Styx, PacMan, Asteroid, Golf, Small flight simulator (BASIC and 6809 assembler, TRS80)
Text editor and assembler (6809, TRS80)
Other interests and activities
Chess, Guitar, Camping, Skating, Mysticism
(** version française sur demande)