Gareth Morgan, Developer in San Francisco, CA, United States
Gareth is available for hire
Hire Gareth

Gareth Morgan

Verified Expert  in Engineering

3D Developer

Location
San Francisco, CA, United States
Toptal Member Since
July 6, 2017

Gareth has nearly two decades of 3D, games, and VR development experience at all levels of the stack and on a number of platforms (including AAA console games). He has been programming 3D, VR, and games engine since the 1990's—from R&D on sophisticated rendering techniques down to low-level driver development.

Portfolio

Imagination Technologies
LLVM, Graphics Processing Unit (GPU), Unity3D, GLSL, C++
Activision
Maya, 3ds Max, HLSL, DirectX, C, C++
Silicon Graphics
Volume Rendering, OpenGL, 3D, C, C++

Experience

Availability

Part-time

Preferred Environment

Ubuntu Linux, Clang, CMake, Visual Studio, Windows

The most amazing...

...project I've worked on was the ray-tracing PowerVR GPUs that I developed at Imagination Technologies—these fundamentally changed the way GPUs work.

Work Experience

Lead Software Design Engineer

2008 - 2016
Imagination Technologies
  • Developed OpenRL—a ray-tracing API based on OpenGL ES. It's a version of OpenGL that incorporates raytracing; it required low-level C++ development on all areas of the stack from the low-level driver upwards; a link to more information is provided in my portfolio.
  • Developed the compiler using LLVM. I gained extensive experience developing shader compilers using the Low-Level Virtual Machine framework, including developing in the LLVM source code itself.
  • Implemented ray-tracing techniques on desktop GPUs. It required in-depth general purpose GPU programming on a variety of APIs including OpenCL, CUDA, and DirectX.
  • Worked with the PowerVR architecture team to produce a set of GLES extensions for ray-tracing.
  • Researched and implemented sophisticated rendering techniques using the PowerVR ray tracing hardware.
  • Integrated ray-tracing into the Unity 3D engine. It required extensive low-level Unity development. The work formed the centerpiece of PowerVR's presentations at GDC in 2014 and 2016; YouTube links can be found in my portfolio.
  • Evangelized PowerVR ray-tracing technology by presenting at GDC in 2014 and 2016, publishing a chapter in GPU Pro 6; a link to more information is provided in my portfolio.
Technologies: LLVM, Graphics Processing Unit (GPU), Unity3D, GLSL, C++

Lead Engine Programmer

2004 - 2008
Activision
  • Worked as an engine programmer for Enemy Territory: Quake Wars for PS3 (released Summer 2008).
  • Led the engine programming on X-Men: The Official Game (released in May 2006).
  • Developed extensively tools using 3DS Max and Maya.
  • Built high-performance game engines in C++ for Xbox 360 games consoles.
  • Created high performance game engines in C++ for PS3 games consoles.
Technologies: Maya, 3ds Max, HLSL, DirectX, C, C++

Technical Consultant

1999 - 2002
Silicon Graphics
  • Developed the Virtual Mummy project with the British Museum. Produced an interactive volume rendering of a 3,000-year-old Egyptian mummy from CAT scan. The project was written in C using OpenGL Volumizer.
  • Worked with CTN and the United Kingdom Department of Trade and Industry to produce the Future Focus immersive 3D application. Based on OpenGL powered by an SGI Onyx visual supercomputer.
  • Taught courses in OpenGL at SGI's UK headquarters.
Technologies: Volume Rendering, OpenGL, 3D, C, C++

Hybrid Raytracing Demo and Presentation: GDC 2014

http://www.gdcvault.com/play/1020688/Practical-Techniques-for-Ray-Tracing
Integrated Imagination's PowerVR ray tracing GPU technology into Unity 3D. The project formed the centerpiece of Imagination's presence at Game Developer Conference 2014 in San Francisco.

Apartment Scene Demo: GDC 2016

https://www.youtube.com/watch?v=uxE2SYDHFtQ
I produced the apartment scene demo for the Game Developer Conference in 2016. I integrated the Unity 3D Linux player so that the project could produce photo-realistic rendering using Imagination's PowerVR ray-tracing GPU.

Enemy Territory: Quake Wars (PS3)

http://www.mobygames.com/game/ps3/enemy-territory-quake-wars
Developed the PS3 version of Enemy Territory: Quake Wars.

X-Men The Official Game

http://www.mobygames.com/game/xbox360/x-men-the-official-game
Acted as the lead engine programmer on X-Men The Official Game.

Reign of Fire (GameCube)

http://www.mobygames.com/game/gamecube/reign-of-fire
Worked as the engine programmer on GameCube version of Reign of Fire.

GPU Pro 6: Hybrid Ray-Tracing on a PowerVR GPU

https://www.crcpress.com/GPU-Pro-6-Advanced-Rendering-Techniques/Engel/p/book/9781482264616
Authored a chapter in GPU Pro 6: Hybrid Ray Tracing on a PowerVR GPU.

GPU Zen: Profiling and Optimizing WebGL Applications Using Google Chrome

Authored a chapter in GPU Zen, 2017, Black Cat Publishing. Titled: "Profiling and Optimizing WebGL Applications Using Google Chrome".

Virtual Mummy Project

http://3d-nurds.blogspot.com/2015/01/virtual-mummies.html
Developed an interactive volume rendering application to visualize CAT scans of an Egyptian mummy.

Imagination Technologies | OpenRL

Developed OpenRL—a ray-tracing API based on OpenGL ES. It's a version of OpenGL that incorporates raytracing; it required low-level C++ development on all areas of the stack from the low-level driver upwards.

Imagination Technologies | Integration of Ray-tracing into a Unity 3D Engine

https://www.youtube.com/watch?v=uxE2SYDHFtQ
Integrated ray-tracing into the Unity 3D engine. It required extensive low-level Unity development. The work formed the centerpiece of PowerVR's presentations at GDC in 2014 (Youtube.com/watch?v=LyH4yBm6Z9g) and 2016 (find more at the link attached).

Imagination Technologies | Evangelization of PowerVR Ray-tracing Technology

I evangelized PowerVR ray-tracing technology by presenting at GDC in 2014 and 2016, publishing a chapter in GPU Pro 6.

Languages

Python, C, C++, GLSL, Go, JavaScript, HLSL, Java, C#

Frameworks

Unity3D, Unity, Unreal Engine, Flask

Libraries/APIs

WebGL, OpenGL ES, OpenGL, DirectX, Android OpenGL, Vulkan

Tools

Microsoft Visual Studio, CMake, Android NDK, 3ds Max, Visual Studio, Maya, Xcode, Make

Paradigms

GPGPU, Data Science

Platforms

Android, NVIDIA CUDA, Windows, Ubuntu Linux

Other

Augmented Reality (AR), OpenCL/GPU, 3D, LLVM, Mixed Reality (MR), Mixed Reality Developer, Virtual Reality (VR), Clang, Graphics Processing Unit (GPU), Volume Rendering, Optimization, Multithreading

Storage

MongoDB

1995 - 1999

Master of Engineering Degree in Computer Science

University of Manchester - Manchester, UK