Contents
Objective
To obtain a full time position as a computer graphics engineer focused on research and development of tools and technology.
Qualifications
- Strong math skills and solid programming foundation.
- Extensive experience with mesh and image processing algorithms.
- C++, CUDA, C#, Lua. OpenGL and DirectX. Assembly and high level shading languages.
- Windows, Unix and X-Box platforms and development environments.
Experience
Senior Programmer, Thekla, Inc.
December 2009 / Present
Developer Technology Engineer, NVIDIA, Corp.
September 2006 / November 2009
- Worked closely with architects in the design of programming models for next generation hardware.
- Implemented an emulator for the next generation hardware tessellation pipeline.
- Prototyped new algorithms including subdivision surface approximations, triangle interpolation, and geometry images. Wrote performance tests and interacted with architects to improve hardware design and performance.
- Wrote various mesh processing, analysis, and conditioning tools to generate watertight vector displacement maps, and normal maps to use in combination with the tessellation prototypes.
- Developed parallel programing examples in CUDA, provided assistance to third party developers, and organized seminars and trainings.
- Developed a new implementation of the NVIDIA Texture Tools, using new DXT compression algorithms, and CUDA accelerated implementations.
- Implemented OpenGL and Direct3D demos to showcase latest hardware features.
- Supervised the work of interns and new employees.
- Section Editor of the Rendering chapters of GPU Gems 3.
3D Tool Engineer, NVIDIA, Corp.
April 2005 / August 2006
- Maintained the NVIDIA image and mesh processing tools and provided developer support.
- Participated in the design and development of FX Composer 2 using C#, Managed C++ and C++/CLI.
- Wrote various FX Composer 2 plugins, including the OpenGL/Cg and PS3 rendering backends, custom graph nodes, manipulators, undoable commands, and many UI components, as well as some custom draw controls.
- Worked with Sony in the design of Collada, and added serialization of scenes and assets using this format.
Game Programmer, Oddworld Inhabitants, Inc.
November 2004 / March 2005
- Maintained our Maya plugins and improved the robustness of our mesh processing tools.
- Computed ambient occlusion and bent normal maps using a SAH KD-Tree for spatial acceleration and precomputed ray traversals for efficient Montecarlo integration.
- Wrote X-Box shaders for rendering using those maps, optimized the existing shaders and added additional special effects.
- Explored different normal map compression techniques.
- Wrote miscellaneous game code related to the inventory, user interface and weapons.
Graphics Programmer, Relic Entertainment, Inc.
June 2004 / November 2004
- Worked closely with artists in the design of a special effects compositing tool.
- Developed an outstanding FX engine for PC and Xenon and its supporting tools and integrated it on their engine and content pipeline.
- Supervised the work of a specialized user interface programmer.
- Assisted the artists in the migration of the existing assets to the new effect system and wrote tools to facilitate this task.
- Wrote HLSL shaders to accelerate effects animations.
- Supported the artists with problems that arose on our content production pipeline and added new features like compressed textures and support for normal maps.
- Prototyped a b-spline fitting method to reduce the size of the animations.
Graphics Programmer, Nebula Technologies, SA.
2003
- Developed an interactive fire, water and smoke simulator for a firefighters game.
- Wrote miscellaneous code for culling, rendering, shading, game logic, UI and scripting.
Lead/Graphics Programmer, Crytek, GmbH.
2000
- Led a group of three programmers. All the work was done at home, working with colleagues through mail, IRC and ICQ.
- Wrote a full game framework, OpenGL rendering engine and tools for an action/adventure first person shooter.
- Implemented BSP collision detection and response, skeletal animation, subdivision of Bezier surfaces, procedural shaders, flares, environment mapping, and volumetric fog effects.
Other Experience
- I have special interest in digital mesh processing algorithms, that include: mesh cleanup, parametrization, segmentation, optimization, simplification, attribute extraction, and baking algorithms. I’ve developed all those algorithms as part of my mesh processing library.
- More recently I’ve also developed image filtering and compression algorithms.
- I also have experience writing complex shaders, rendering engines, and lighting systems.
- You can find additional information about me, including source code examples and demos on my website: http://castano.ludicon.com
Education
Qualifications
- I have a 5 year degree in Computer Science and Engineering by the University of Sevilla, Spain. (1999-2004)
- I got Honor Degrees in Graph Theory, Computational Geometry, and my final thesis.
Conference Presentations
- Efficient Substitutes for Subdivision Surfaces, Course Organizer, SIGGRAPH 2009
- Next-Generation Hardware Rendering of Displaced Subdivision Surfaces, SIGGRAPH 2008
- Tessellation of Displaced Subdivision Surfaces in Direct3D 11, Gamefest 2008 (audio track)
- FX Composer 2, SIGGRAPH 2006
- 3d Engine Design, SEISS IV, Nov 2003
- Hands on: SDL and OpenGL, SEISS IV, Nov 2003
- Mesh Parametrization using Convex Combination Maps, Discreet Maths Encounters III, Sep 2003
- Mathematics for Computer Graphics, Imaginática II, Apr 2003
- Hands on: OpenGL, Imaginática II, Apr 2003
Publications
- Approximating Subdivision Surfaces with Gregory Patches for Hardware Tessellation, Proc. of SIGGRAPH Asia 2009
- Efficient Substitutes for Subdivision Surfaces, Course Notes, Proc. of SIGGRAPH 2009
- Real-Time Normal Map DXT Compression, J.M.P. van Waveren (id Software, Inc.), Ignacio Castaño (NVIDIA Corp.), February 2008
- Real-Time YCoCg-DXT Compression, J.M.P. van Waveren (id Software, Inc.), Ignacio Castaño (NVIDIA Corp.), September 2007
- GPU Gems 3: Rendering Section. Section Editor, July 2007
High Quality DXT Compression using CUDA, February 2007 - Mesh Parametrization using Convex Combination Maps (spanish paper), Discreet Maths Encounters III, Sep 2003
- Automatic Parameterizations In The Cube. Graphics Programming Methods, Charles River Media, 2003
- Filling Holes Using The Euclidean Distance Map. Graphics Programming Methods, Charles River Media, 2003.
Languages
- Spanish, English, German and some notions of Portuguese.
- I have the second language diploma of the German ‘Kultus-Minister-Konferenz’ (KMK), although today my German is very rusty.
Visa Status
I currently have a H-1B visa that will be valid until March 2010, and I’m in the process of obtaining permanent residency.