| Brian C. Budge |
|
Cell phone Webpage |
(530) 220-4398 budge@cs.ucdavis.edu http://idav.ucdavis.edu/~bcbudge |
Address |
306 Cambridge Terrace Apt B Davis, CA 95618 |
| Skills |
|
| Education |
Ph. D., Computer Science University of California, Davis Focus:Computer Graphics |
Expected graduation: 2008 GPA: 3.9 Advisor: Ken Joy |
|
B. S., Mathematics University of Utah |
Graduated: 2002 Overall GPA: 3.6 |
| Experience | |
| Student Intern | Summer of 2007 |
| Advanced Micro Devices | Santa Clara, CA |
| I researched the feasibility of applying GPUs to general SQL queries. The thought is enticing because databases tend to be very bandwidth heavy applications, and GPUs provide a large aggregate bandwidth, however, updating the database would need to be dissallowed (due to the fact that databases generally require atomicity), making the match somewhat less desirable. | |
| Student Intern | Summers of 2003, 2004, and 2006 |
| NVIDIA Corporation | Santa Clara, CA |
|
|
| Undergraduate Student Technician | Summers of 2001 and 2002 |
| Los Alamos National Labs | Los Alamos, New Mexico |
| I researched and implemented various flow visualization techniques for use in ocean flow viz. I wrote an ocean visualization program in Direct3D designed to run on a desktop box replacing an OpenGL program that required a 128 processor SGI supercomputer. Job responsibilities included learning the Direct3D API, researching efficient texture streaming implementations, writing vertex and pixel shaders and retaining the replaced program's functionality. | |
| Graphical Database Engineer Intern | May of 1999 to April 2000 |
| Evans and Sutherland | Salt Lake City, Utah |
| I designed and implemented a graphical database tool called 3D SignGen. The program saved artists design time by allowing quick alteration of numerous attributes associated with airfield sign boards. These could be viewed graphically and written to a database. | |
| Honors and Awards | |
| DAAD Scholarship for research in Germany | January 2005 to August 2005 |
| GAANN Fellowship | 2002 to Present |
| Eccles Engineering Scholarship | 2001 to 2002 |
| Novell Scholar for Computer Science | (2) 1999 to 2001 |
| Honors at Entrance, University of Utah | 1997 to 1998 |
| Dean's List | (multiple) |
| Academic Projects | ||
| Shell Maps with Level Sets | Modeling and Rendering |
|
| I played mostly an advising role in this paper, suggesting a couple of the techniques presented, most notably the explicit mapping. The explicit mapping is beneficial from a speed point of view, and behaves similarly to Shell Maps, except that the mappings tend to be smoother. The other main technique in the paper, implicit mapping, is much slower, but ultimately has the nicer mapping: The result is yet another level set, and so smoothing, blending, and merging operations are simple and elegant. | ||
| Shell Maps | Modeling and Rendering |
|
| I created a technique by which space near surfaces could be parameterized. This creates a shell in which 3D texture coordinates can be applied. The technique is bijective, so data can be transformed into or out of the space. The image on the left shows a weave pattern that was created using ray marching in shell space. This paper, called ``Shell Maps'' was published in SIGGRAPH 2005.The image was generated by my photon tracer, which allows arbitrary BRDF calculations, creates physically based images, and can run on large clusters using MPI, or can run multi-threaded on large shared memory machines. | ||
| Geometric Flow Viz | Vector Field Visualization |
|
| Another student and I worked on an idea to use GPUs to perform point advection in 3D. This allows the use of geometric streamlines for volumetric flow visualization. Typically this is desirable due to the occlusion problems inherent in dense texture flow models. This paper was published in EuroVis 2005. | ||
| Multi-dimensional Transfer Functions | Vector Field Visualization |
|
| A related project was implementing multi-dimensional transfer functions (MDTF) in graphics hardware. These MDTFs allow for selective visualization in flow fields, and on GPUs can run at interactive rates. These MDTFs were applied to dense texture flow models, as those where the only flow vis techniques adapted to graphics hardware up to that time. In the EuroVis 2005 paper, we also implemented MDTFs. This paper was published in the proceedings of the 12th Pacific Graphics Conference, 2004. | ||
| Nested Dielectrics | Realistic Rendering |
|
| I worked with another student on a project to allow arbitrary nesting of dielectric objects in ray-based renderers. The technique maintains good surface properties for any nesting of dielectric objects, or nesting of non-dielectric objects within dielectric objects. This image is an example of what can easily be modeled using our method. There is nesting of ice within water within glass, and remains consistent even with a specular straw immersed within the water. Our paper has been published in the Journal of Graphics Tools, Volume 7, No. 2. This image was generated using an older version of my renderer and has appeared on the cover of the journal and the book "Graphics Tools: The JGT Editors' Choice". | ||
| Human Iris Rendering | Modeling and Rendering |
|
| This image is from a paper I worked on with some other students at the University of Utah. The paper explains a method to use an Ocularist's approach to render realistic human irises. We were able to achieve amazing results using an approach similar to those used by ocularists; namely we used the blending of many levels of textures in order to simulate the 3D nature of the human iris. Our paper was published in the IEEE Computer Graphics and Applications, Volume 23, No. 6. | ||
| Miscellaneous | Non-graphics Related Projects |
| In addition to a large base of graphics projects from course work, I have worked on several large projects. As part of a team, I wrote a compiler that compiled a Java-like language down to SPARC assembly and performed optimizations like dead code analysis, static loop unrolling, and constant folding. I have also written several interpreters, including a scheme interpreter with custom high-speed low-fragmentation memory allocation, and mark-and-sweep garbage collection. Additionally, I implemented several features including virtual memory, scheduling, and interprocess communication for a simple OS kernel called Yalnix. | |
| Works in progress | |
| Out-of-core Global Illumination | Rendering |
|
I'm currently working on a system which performs data management for out-of-core, hybrid computation. Out-of-core means that the data required for the computation is too large to fit in system memory, often requiring a large number of slow disk reads to accomplish the task of accessing data. By hybrid I mean that we aren't restricted to CPUs for our computation, but can use CPUs, GPUs, and theoretically Cell processors and custom ASICs. This has been applied to rendering synthetic images via path tracing. Path tracing tends to be expensive, and has difficult access patterns for out-of-core algorithm design, however, with the use of our data management system, and some additional intelligent design choices on the part of the path tracing components, we now have a highly efficient out-of-core path tracer which can utilize the powerful computational resources offered by modern GPUs, as well as multiple multi-core CPUs, and which scales across several cluster nodes. |
|
| Improved Convergence of Caustics | Rendering |
| Caustics tend to be a computational burden when computing realistic images via unbiased means. Several methods have made strides in computational efficiency for diffusive types of materials, however, caustics are generally calculated via a biased method such as photon mapping because of the difference in render speed. We split the integral of the rendering equation, and utilize previous methods for computing the "diffusive component", while applying our new method to computing the "specular component". | |
| Real-time Ray Tracing on GPUs | Rendering |
| I have implemented a real-time ray tracer running on NVIDIA GPUs which achieves over 50 frames/second for small scenes like the Stanford Bunny, while reaching nearly 12 frames/second on a seven million triangle scene, the XYZ_RGB Dragon, also from Stanford's scanning repository. | |
| Better RBSP Trees | Rendering, Algorithm Complexity Reduction |
| We are also working on improving restricted BSP trees, both from a build and a render aspect. Our build shows asymptotic improvement, and in practical terms is hundreds of times faster than previous work. Our render times are also an order of magnitude faster than previous work. | |