Resume

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.
  • Editor of the rendering section 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

Publications

Languages

  • Spanish, English, German and Portuguese.
  • I have the second language diploma of the German ‘Kultus-Minister-Konferenz’ (KMK), although today my German is very rusty.

I can provide references upon request.