1,284 research outputs found

    An OpenGL backend for Halide

    Get PDF
    Thesis (M. Eng.)--Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2013.Cataloged from PDF version of thesis.Includes bibliographical references (pages 37).High performance image processing requires not only an efficient underlying algorithm but also an implementation tailored to maximally exploit the available hardware resources. In practice, this requires low-level optimization, platform-specific instructions, and, when available, the use of special purpose hardware such as GPU. Halide is a domain-specific programming language targeted at image processing applications. Its programming model decouples an algorithm from the details of its execution, vastly simplifying development and optimization. We present an OpenGL backend for the Halide compiler, which enables Halide programs to run GPU computation on devices that support the OpenGL API. In particular, this paves the way for GPU computation on mobile devices using OpenGL ES. In doing so, we demonstrate how a general image processing framework can be built upon functionality designed for 3D graphics applications.by Nicholas J. Chornay.M.Eng

    Mobile graphics: SIGGRAPH Asia 2017 course

    Get PDF
    Peer ReviewedPostprint (published version

    Flow simulation with locally-refined LBM

    Full text link
    We simulate 3D fluid flow by a locally-refined lattice Boltzmann method (LBM) on graphics hardware. A low resolution LBM simulation running on a coarse grid models global flow behavior of the entire domain with low consumption of computational resources. For regions of interest where small visual details are desired, LBM simulations are performed on fine grids, which are separate grids superposed on the coarse one. The flow properties on boundaries of the fine grids are determined by the global simulation on the coarse grid. Thus, the locally refined fine-grid simulations follow the global fluid behavior, and model the desired small-scale and turbulent flow motion with their denser numerical discretization. A fine grid can be initiated and terminated at any time while the global simulation is running. It can also move inside the domain with a moving object to capture small-scale vortices caused by the object. Besides the performance improvement due to the adaptive simulation, the locally-refined LBM is suitable for acceleration on contemporary graphics hardware (GPU), since it involves only local and linear computations. Therefore, our approach achieves fast and adaptive 3D flow simulation for computer games and other interactive applications

    Analysis of the Path Tracing rendering method on CPU and GPU

    Get PDF
    Fa molts anys que es realitza recerca al camp de la renderització realista. Tenim diversos mètodes capaços d'aconseguir imatges amb un gran grau de realisme, com pot ser Ray Tracing, Path Tracing, Photon Mapping o Metropolis Light Transport. A excepció del Ray Tracing, la resta de mètodes tracten de resoldre l'Equació de Renderitzat mitjançant aproximacions (és impossible calcular-la íntegrament, ja que necessitaríem temps i potència de càlcul infinita). Gràcies a poder aproximar aquesta equació es poden aconseguir efectes de forma natural, sense necessitat d'un postprocessat, com motion blur, depth of field, càustiques, etc. El mètode que implementarem i estudiarem és el Path Tracing. Realitzarem diverses versions d'aquest mètode amb les quals podrem explorar quina arquitectura (GPU o CPU) ens ofereix una major avantatge pel que fa al rendiment per al nostre algoritme. Per això comptarem amb diverses màquines, una amb un hardware d'última generació, una amb un hardware més econòmic i una última màquina pensada per un entorn professional. És molt usual que les aplicacions que implementen aquest mètode s'utilitzen d'estructures de dades que permeten millorar de forma molt notable el rendiment d'aquesta. Per aquesta raó, implementarem una Bounding Volume Hierarchy, un estructura de tipus arbre, per a la representació de l'escena i així augmentar el rendiment. Estudiarem com recorre-la de dues formes diferents, una recursiva molt més natural en aquest tipus d'estructures i un altre iterativa, per veure com afecta al rendiment de l'aplicació en la GPU. És ben sabut que les funcions recursives no són gens òptimes a la GPU. Per últim, implementarem un seguit de filtres d'eliminació de soroll. El mètode de Path Tracing produeix imatges molt sorolloses si s'utilitzen poques mostres per píxel, per això l'ús de filtres d'eliminació de soroll és molt comú. Això ens permetrà trobar un equilibri entre el nombre de mostres per píxel i la necessitat d'un postfiltratge de la imatge resultant.The field of realistic rendering has been investigated for many years. We have different methods capable of creating images with a high degree of realism, such as Ray Tracing, Path Tracing, Photon Mapping or Metropolis Light Transport. Except for Ray Tracing, the rest of the cited methods try to solve the Rendering Equation by approximations (it is impossible to calculate it completely because we would need time and infinite computing power). Thanks to being able to approximate this equation, effects can be achieved naturally, without needing any post-processing, such as motion blur, depth of field, caustics, etc. The method that we will implement and study is Path Tracing. We will make several versions of this method with which we will explore which architecture (GPU or CPU) gives us a greater advantage in terms of performance for our algorithm. For this, we will have different machines, one with the last generation hardware, one with cheaper hardware and the last machine with hardware thought for a professional environment. It is very usual that the applications that implement this method are assisted by accelerating structures that allow improving in a very notable way the performance of this one. For this same reason, we will implement a Bounding Volume Hierarchy, a tree-type structure, to represent our scene and thus increase performance. We will study how to go through it in two different ways, one recursive much more natural in this type of structure and another iterative, to see how it affects the performance of the application on the GPU. It's well known that the GPU is not optimal for recursive functions. Finally, we'll implement a set of denoising filters. Path tracing produces very noisy images when using a few samples per pixel, so the use of denoising filters is very common. This will also help us find a balance between the number of samples per pixel and the need for post-filtering of the output image

    Realistic Virtual Cuts

    Get PDF
    • …
    corecore