Opengl FAQ and Troubleshooting Guide

Total Page:16

File Type:pdf, Size:1020Kb

Opengl FAQ and Troubleshooting Guide OpenGL FAQ and Troubleshooting Guide Table of Contents OpenGL FAQ and Troubleshooting Guide v1.2001.11.01..............................................................................1 1 About the FAQ...............................................................................................................................................13 2 Getting Started ............................................................................................................................................18 3 GLUT..............................................................................................................................................................33 4 GLU.................................................................................................................................................................37 5 Microsoft Windows Specifics........................................................................................................................40 6 Windows, Buffers, and Rendering Contexts...............................................................................................48 7 Interacting with the Window System, Operating System, and Input Devices........................................49 8 Using Viewing and Camera Transforms, and gluLookAt().......................................................................51 9 Transformations.............................................................................................................................................55 10 Clipping, Culling, and Visibility Testing...................................................................................................64 11 Color..............................................................................................................................................................68 12 The Depth Buffer.........................................................................................................................................70 13 Drawing Lines over Polygons and Using Polygon Offset.........................................................................74 14 Rasterization and Operations on the Framebuffer...................................................................................77 15 Transparency, Translucency, and Blending..............................................................................................82 16 Display Lists and Vertex Arrays................................................................................................................85 17 Using Fonts...................................................................................................................................................88 18 Lights and Shadows.....................................................................................................................................90 19 Curves, Surfaces, and Using Evaluators....................................................................................................95 20 Picking and Using Selection........................................................................................................................96 21 Texture Mapping.........................................................................................................................................99 22 Performance...............................................................................................................................................104 23 Extensions and Versions............................................................................................................................108 i OpenGL FAQ and Troubleshooting Guide Table of Contents 24 Miscellaneous..............................................................................................................................................112 Appendix A Microsoft OpenGL Information..............................................................................................118 Windows Driver Development Kits....................................................................................................118 Preliminary Windows 2000 DDK..........................................................................................118 Windows Driver and Hardware Development....................................................................................118 Fluff articles.........................................................................................................................................118 MSDN Library.....................................................................................................................................119 Platform SDK........................................................................................................................119 OpenGL technical articles......................................................................................................121 Useful other articles................................................................................................................122 Knowledge Base..................................................................................................................................123 Current....................................................................................................................................123 Archive....................................................................................................................................125 Appendix B Source Code Index.....................................................................................................................128 Appendix C History........................................................................................................................................130 ii OpenGL FAQ and Troubleshooting Guide v1.2001.11.01 1 About the FAQ 15 Transparency, Translucency, and Blending 2 Getting Started 16 Display Lists and Vertex Arrays 3 GLUT 17 Using Fonts 4 GLU 18 Lights and Shadows 5 Microsoft Windows Specifics 19 Curves, Surfaces, and Using Evaluators 6 Windows, Buffers, and Rendering Contexts 20 Picking and Using Selection 7 Interacting with the Window System, Operating 21 Texture Mapping System, and Input Devices 8 Using Viewing and Camera Transforms, and 22 Performance gluLookAt() 9 Transformations 23 Extensions and Versions 10 Clipping, Culling, and Visibility Testing 24 Miscellaneous 11 Color Appendix A Microsoft OpenGL Information 12 The Depth Buffer Appendix B Source code index 13 Drawing Lines over Polygons and Using Polygon Appendix C History of OpenGL Offset German Translation: OpenGL häufig gestellte 14 Rasterization and Operations on the Framebuffer fragen Japanese Translation: 1 About the FAQ 1.010 Introduction 1.020 How to contribute, and the contributors 1.030 Download the entire FAQ as a Zip file 1.031 Printing the PDF FAQ 1.040 Change Log 2 Getting Started 2.005 Where can I find 3D graphics info? 2.010 Where can I find examples, tutorials, documentation, and other OpenGL information? 2.020 What OpenGL books are available? 2.030 What OpenGL chat rooms and newsgroups are available? 2.040 What OpenGL implementations come with source code? OpenGL FAQ and Troubleshooting Guide v1.2001.11.01 1 OpenGL FAQ and Troubleshooting Guide 2.050 What compiler can I use? 2.060 What do I need to compile and run OpenGL programs? 2.070 Why am I getting compile, link, and runtime errors? 2.080 How do I initialize my windows, create contexts, etc.? 2.090 How do I create a full−screen window? 2.100 What is the general form of an OpenGL program? 2.110 My window is blank. What should I do? 2.120 My first frame renders correctly, but subsequent frames are incorrect or further away or I just get a blank screen. What's going on? 2.130 What is the AUX library? 2.140 What support for OpenGL does {Open,Net,Free}BSD or Linux provide? 2.150 Where is OpenGL 1.2? 2.160 What are the OpenGL Conformance Tests? 3 GLUT 3.010 What is GLUT? How is it different from OpenGL? 3.015: Where can I get GLUT? 3.020 Should I use GLUT? 3.025 The GLUT source code license is very restrictive. Is there an alternative? 3.027 Why does glutTimerFunc() only execute my callback once? 3.030 I need to set up different tasks for left and right mouse button motion. However, I can only set one glutMotionFunc() callback, which doesn't pass the button as a parameter. 3.040 How does GLUT do…? 3.050 How can I perform animations with GLUT? 3.060 Is it possible to change a window's size *after* it's opened (i.e., after I call glutInitWindowSize(); and glutCreateWindow();)? 3.070 I have a GLUT program that allocates memory at startup. How do I deallocate this memory when the program exits? 3.080 How can I make my GLUT program detect that the user has closed the window? OpenGL FAQ and Troubleshooting Guide v1.2001.11.01 2 OpenGL FAQ and Troubleshooting Guide 3.090 How can I make glutMainLoop() return to my calling program? 3.100 How do I get rid of the console window in a Windows GLUT application? 3.110 My GLUT question isn't answered here. Where can I get more info? 4 GLU 4.010 What is GLU? How is it different from OpenGL? 4.020 How does GLU render sphere, cylinder, and disk primitives? 4.030 How does gluPickMatrix work? 4.040 How do I use GLU tessellation routines? 4.050 Why aren't my tessellation callback routines called? 4.060 How do I use GLU NURBS routines? 4.070 How do I use gluProject and gluUnProject? 5 Microsoft Windows Specifics 5.010 What's a good source for Win32 OpenGL programming information?
Recommended publications
  • Reviving the Development of Openchrome
    Reviving the Development of OpenChrome Kevin Brace OpenChrome Project Maintainer / Developer XDC2017 September 21st, 2017 Outline ● About Me ● My Personal Story Behind OpenChrome ● Background on VIA Chrome Hardware ● The History of OpenChrome Project ● Past Releases ● Observations about Standby Resume ● Developmental Philosophy ● Developmental Challenges ● Strategies for Further Development ● Future Plans 09/21/2017 XDC2017 2 About Me ● EE (Electrical Engineering) background (B.S.E.E.) who specialized in digital design / computer architecture in college (pretty much the only undergraduate student “still” doing this stuff where I attended college) ● Graduated recently ● First time conference presenter ● Very experienced with Xilinx FPGA (Spartan-II through 7 Series FPGA) ● Fluent in Verilog / VHDL design and verification ● Interest / design experience with external communication interfaces (PCI / PCIe) and external memory interfaces (SDRAM / DDR3 SDRAM) ● Developed a simple DMA engine for PCI I/F validation w/Windows WDM (Windows Driver Model) kernel device driver ● Almost all the knowledge I have is self taught (university engineering classes were not very useful) 09/21/2017 XDC2017 3 Motivations Behind My Work ● General difficulty in obtaining meaningful employment in the digital hardware design field (too many students in the field, difficulty obtaining internship, etc.) ● Collects and repairs abandoned computer hardware (It’s like rescuing puppies!) ● Owns 100+ desktop computers and 20+ laptop computers (mostly abandoned old stuff I
    [Show full text]
  • High End Visualization with Scalable Display System
    HIGH END VISUALIZATION WITH SCALABLE DISPLAY SYSTEM Dinesh M. Sarode*, Bose S.K.*, Dhekne P.S.*, Venkata P.P.K.*, Computer Division, Bhabha Atomic Research Centre, Mumbai, India Abstract display, then the large number of pixels shows the picture Today we can have huge datasets resulting from in greater details and interaction with it enables the computer simulations (CFD, physics, chemistry etc) and greater insight in understanding the data. However, the sensor measurements (medical, seismic and satellite). memory constraints, lack of the rendering power and the There is exponential growth in computational display resolution offered by even the most powerful requirements in scientific research. Modern parallel graphics workstation makes the visualization of this computers and Grid are providing the required magnitude difficult or impossible. computational power for the simulation runs. The rich While the cost-performance ratio for the component visualization is essential in interpreting the large, dynamic based on semiconductor technologies doubling in every data generated from these simulation runs. The 18 months or beyond that for graphics accelerator cards, visualization process maps these datasets onto graphical the display resolution is lagging far behind. The representations and then generates the pixel resolutions of the displays have been increasing at an representation. The large number of pixels shows the annual rate of 5% for the last two decades. The ability to picture in greater details and interaction with it enables scale the components: graphics accelerator and display by the greater insight on the part of user in understanding the combining them is the most cost-effective way to meet data more quickly, picking out small anomalies that could the ever-increasing demands for high resolution.
    [Show full text]
  • Troubleshooting Guide Table of Contents -1- General Information
    Troubleshooting Guide This troubleshooting guide will provide you with information about Star Wars®: Episode I Battle for Naboo™. You will find solutions to problems that were encountered while running this program in the Windows 95, 98, 2000 and Millennium Edition (ME) Operating Systems. Table of Contents 1. General Information 2. General Troubleshooting 3. Installation 4. Performance 5. Video Issues 6. Sound Issues 7. CD-ROM Drive Issues 8. Controller Device Issues 9. DirectX Setup 10. How to Contact LucasArts 11. Web Sites -1- General Information DISCLAIMER This troubleshooting guide reflects LucasArts’ best efforts to account for and attempt to solve 6 problems that you may encounter while playing the Battle for Naboo computer video game. LucasArts makes no representation or warranty about the accuracy of the information provided in this troubleshooting guide, what may result or not result from following the suggestions contained in this troubleshooting guide or your success in solving the problems that are causing you to consult this troubleshooting guide. Your decision to follow the suggestions contained in this troubleshooting guide is entirely at your own risk and subject to the specific terms and legal disclaimers stated below and set forth in the Software License and Limited Warranty to which you previously agreed to be bound. This troubleshooting guide also contains reference to third parties and/or third party web sites. The third party web sites are not under the control of LucasArts and LucasArts is not responsible for the contents of any third party web site referenced in this troubleshooting guide or in any other materials provided by LucasArts with the Battle for Naboo computer video game, including without limitation any link contained in a third party web site, or any changes or updates to a third party web site.
    [Show full text]
  • Order Independent Transparency in Opengl 4.X Christoph Kubisch – [email protected] TRANSPARENT EFFECTS
    Order Independent Transparency In OpenGL 4.x Christoph Kubisch – [email protected] TRANSPARENT EFFECTS . Photorealism: – Glass, transmissive materials – Participating media (smoke...) – Simplification of hair rendering . Scientific Visualization – Reveal obscured objects – Show data in layers 2 THE CHALLENGE . Blending Operator is not commutative . Front to Back . Back to Front – Sorting objects not sufficient – Sorting triangles not sufficient . Very costly, also many state changes . Need to sort „fragments“ 3 RENDERING APPROACHES . OpenGL 4.x allows various one- or two-pass variants . Previous high quality approaches – Stochastic Transparency [Enderton et al.] – Depth Peeling [Everitt] 3 peel layers – Caveat: Multiple scene passes model courtesy of PTC required Peak ~84 layers 4 RECORD & SORT 4 2 3 1 . Render Opaque – Depth-buffer rejects occluded layout (early_fragment_tests) in; fragments 1 2 3 . Render Transparent 4 – Record color + depth uvec2(packUnorm4x8 (color), floatBitsToUint (gl_FragCoord.z) ); . Resolve Transparent 1 2 3 4 – Fullscreen sort & blend per pixel 4 2 3 1 5 RESOLVE . Fullscreen pass uvec2 fragments[K]; // encodes color and depth – Not efficient to globally sort all fragments per pixel n = load (fragments); sort (fragments,n); – Sort K nearest correctly via vec4 color = vec4(0); register array for (i < n) { blend (color, fragments[i]); – Blend fullscreen on top of } framebuffer gl_FragColor = color; 6 TAIL HANDLING . Tail Handling: – Discard Fragments > K – Blend below sorted and hope error is not obvious [Salvi et al.] . Many close low alpha values are problematic . May not be frame- coherent (flicker) if blend is not primitive- ordered K = 4 K = 4 K = 16 Tailblend 7 RECORD TECHNIQUES . Unbounded: – Record all fragments that fit in scratch buffer – Find & Sort K closest later + fast record - slow resolve - out of memory issues 8 HOW TO STORE .
    [Show full text]
  • Manual for a Ati Rage Iic Driver Win98.Pdf
    Manual For A Ati Rage Iic Driver Win98 Do a custom install and check the Free drivers for ATI Rage 128 / PRO. rage 128 pro ultra 32 sdr driver, wmew98r1284126292.exe (more), Windows 98. manuals BIOS Ovladaèe chipset Slot Socket information driver info manual driver ati 3d rage pro agp 2x driver 128 32mb ati driver rage ultra ati rage iic Go here. HP Pavilion dv7-3165dx 17.3 Notebook PC - AMD Turion II Ultra Dual-Core ATI RAGE. ATI Catalyst Display Driver (Windows 98/Me) Catalyst 6.2 Drivers and ATI Multimedia acer LCD Monitor X173W asus A181HL Manual • Manual acer A181HV ATI also shipped a TV encoder companion chip for RAGE II, the ImpacTV chip. How to make manual edits: ATI's Linux drivers never did support Wonder, Mach or Rage series cards. mode doesn't work at any bit depth on 4 MiB cards even though Windows 98 SE can manage it at 16 bpp. Although the Rage IIC has some kind of hardware 3D, it's not supported by the Mach64 module of X.Org. Drivers for Discontinued ATI Rage™ Series Products for Windows 98/Windows 98SE/Windows ME Display Driver Rage IIC. Release Notes Download ATI. class="portal)art book d hunter vampire (/url)sony p51 driver windows 98 class="register)child/x27s song (/url)x-10 powerhouse ur19a manual johnny cash ive microsoft access jdbc driver ati technologies 3d rage iic agp win2000 driver. Manual For A Ati Rage Iic Driver Win98 Read/Download driver windows 98. Ati rage 128 driver + Conexant bt878 driver xp Ii ar2td-b3 p le vivo r200 250500mhz 64mb ddr 128-bit hynix, Later, ati developed.
    [Show full text]
  • Linux Hardware Compatibility HOWTO
    Linux Hardware Compatibility HOWTO Steven Pritchard Southern Illinois Linux Users Group [email protected] 3.1.5 Copyright © 2001−2002 by Steven Pritchard Copyright © 1997−1999 by Patrick Reijnen 2002−03−28 This document attempts to list most of the hardware known to be either supported or unsupported under Linux. Linux Hardware Compatibility HOWTO Table of Contents 1. Introduction.....................................................................................................................................................1 1.1. Notes on binary−only drivers...........................................................................................................1 1.2. Notes on commercial drivers............................................................................................................1 1.3. System architectures.........................................................................................................................1 1.4. Related sources of information.........................................................................................................2 1.5. Known problems with this document...............................................................................................2 1.6. New versions of this document.........................................................................................................2 1.7. Feedback and corrections..................................................................................................................3 1.8. Acknowledgments.............................................................................................................................3
    [Show full text]
  • Best Practice for Mobile
    If this doesn’t look familiar, you’re in the wrong conference 1 This section of the course is about the ways that mobile graphics hardware works, and how to work with this hardware to get the best performance. The focus here is on the Vulkan API because the explicit nature exposes the hardware, but the principles apply to other programming models. There are ways of getting better mobile efficiency by reducing what you’re drawing: running at lower frame rate or resolution, only redrawing what and when you need to, etc.; we’ve addressed those in previous years and you can find some content on the course web site, but this time the focus is on high-performance 3D rendering. Those other techniques still apply, but this talk is about how to keep the graphics moving and assuming you’re already doing what you can to reduce your workload. 2 Mobile graphics processing units are usually fundamentally different from classical desktop designs. * Mobile GPUs mostly (but not exclusively) use tiling, desktop GPUs tend to use immediate-mode renderers. * They use system RAM rather than dedicated local memory and a bus connection to the GPU. * They have multiple cores (but not so much hyperthreading), some of which may be optimised for low power rather than performance. * Vulkan and similar APIs make these features more visible to the developer. Here, we’re mostly using Vulkan for examples – but the architectural behaviour applies to other APIs. 3 Let’s start with the tiled renderer. There are many approaches to tiling, even within a company.
    [Show full text]
  • Power Optimizations for Graphics Processors
    POWER OPTIMIZATIONS FOR GRAPHICS PROCESSORS B.V.N.SILPA DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING INDIAN INSTITUTE OF TECHNOLOGY DELHI March 2011 POWER OPTIMAZTIONS FOR GRAPHICS PROCESSORS by B.V.N.SILPA Department of Computer Science and Engineering Submitted in fulfillment of the requirements of the degree of Doctor of Philosophy to the Indian Institute of Technology Delhi March 2011 Certificate This is to certify that the thesis titled Power optimizations for graphics pro- cessors being submitted by B V N Silpa for the award of Doctor of Philosophy in Computer Science & Engg. is a record of bona fide work carried out by her under my guidance and supervision at the Deptartment of Computer Science & Engineer- ing, Indian Institute of Technology Delhi. The work presented in this thesis has not been submitted elsewhere, either in part or full, for the award of any other degree or diploma. Preeti Ranjan Panda Professor Dept. of Computer Science & Engg. Indian Institute of Technology Delhi Acknowledgment It is with immense gratitude that I acknowledge the support and help of my Professor Preeti Ranjan Panda in guiding me through this thesis. I would like to thank Professors M. Balakrishnan, Anshul Kumar, G.S. Visweswaran and Kolin Paul for their valuable feedback, suggestions and help in all respects. I am indebted to my dear friend G Kr- ishnaiah for being my constant support and an impartial critique. I would like to thank Neeraj Goel, Anant Vishnoi and Aryabartta Sahu for their technical and moral support. I would also like to thank the staff of Philips, FPGA, Intel laboratories and IIT Delhi for their help.
    [Show full text]
  • Building a 3D Graphic User Interface in Linux
    Freescale Semiconductor Document Number: AN4045 Application Note Rev. 0, 01/2010 Building a 3D Graphic User Interface in Linux Building Appealing, Eye-Catching, High-End 3D UIs with i.MX31 by Multimedia Application Division Freescale Semiconductor, Inc. Austin, TX To compete in the market, apart from aesthetics, mobile Contents 1. X Window System . 2 devices are expected to provide simplicity, functionality, and 1.1. UI Issues . 2 elegance. Customers prefer attractive mobile devices and 2. Overview of GUI Options for Linux . 3 expect new models to be even more attractive. For embedded 2.1. Graphics Toolkit . 3 devices, a graphic user interface is essential as it enhances 2.2. Open Graphics Library® . 4 3. Clutter Toolkit - Solution for GUIs . 5 the ease of use. Customers expect the following qualities 3.1. Features . 5 when they use a Graphical User Interface (GUI): 3.2. Clutter Overview . 6 3.3. Creating the Scenegraph . 7 • Quick and responsive feedback for user actions that 3.4. Behaviors . 8 clarifies what the device is doing. 3.5. Animation by Frames . 9 • Natural animations. 3.6. Event Handling . 10 4. Conclusion . 10 • Provide cues, whenever appropriate, instead of 5. Revision History . 11 lengthy textual descriptions. • Quick in resolving distractions when the system is loading or processing. • Elegant and beautiful UI design. This application note provides an overview and a guide for creating a complex 3D User Interface (UI) in Linux® for the embedded devices. © Freescale Semiconductor, Inc., 2010. All rights reserved. X Window System 1 X Window System The X Window system (commonly X11 or X) is a computer software system and network protocol that implements X display protocol and provides windowing on bitmap displays.
    [Show full text]
  • RU430HX LPX Motherboard Technical Product Specification
    RU430HX Motherboard Technical Product Specification Order Number 281810-002 May 1996 Revision History Revision Revision History Date -001 Preliminary release of the RU430HX Technical Product Specification. 05/96 -002 Second release of the RU430HX Technical Product Specification. 05/96 This product specification applies only to standard RU430HX LPX motherboards with BIOS identifier 1.00.01.RU. Changes to this specification will be published in the RU430HX Motherboard Specification Update before being incorporated into a revision of this document. Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel’s Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel retains the right to make changes to specifications and product descriptions at any time, without notice. The RU430HX motherboard may contain design defects or errors known as errata. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications before placing your product order. † Third-party brands and names are the property of their respective owners. Copies of documents which have an ordering number and are referenced in this document, or other Intel literature, may be obtained from: Intel Corporation P.O.
    [Show full text]
  • Master-Seminar: Hochleistungsrechner - Aktuelle Trends Und Entwicklungen Aktuelle GPU-Generationen (Nvidia Volta, AMD Vega)
    Master-Seminar: Hochleistungsrechner - Aktuelle Trends und Entwicklungen Aktuelle GPU-Generationen (NVidia Volta, AMD Vega) Stephan Breimair Technische Universitat¨ Munchen¨ 23.01.2017 Abstract 1 Einleitung GPGPU - General Purpose Computation on Graphics Grafikbeschleuniger existieren bereits seit Mitte der Processing Unit, ist eine Entwicklung von Graphical 1980er Jahre, wobei der Begriff GPU“, im Sinne der ” Processing Units (GPUs) und stellt den aktuellen Trend hier beschriebenen Graphical Processing Unit (GPU) bei NVidia und AMD GPUs dar. [1], 1999 von NVidia mit deren Geforce-256-Serie ein- Deshalb wird in dieser Arbeit gezeigt, dass sich GPUs gefuhrt¨ wurde. im Laufe der Zeit sehr stark differenziert haben. Im strengen Sinne sind damit Prozessoren gemeint, die Wahrend¨ auf technischer Seite die Anzahl der Transis- die Berechnung von Grafiken ubernehmen¨ und diese in toren stark zugenommen hat, werden auf der Software- der Regel an ein optisches Ausgabegerat¨ ubergeben.¨ Der Seite mit neueren GPU-Generationen immer neuere und Aufgabenbereich hat sich seit der Einfuhrung¨ von GPUs umfangreichere Programmierschnittstellen unterstutzt.¨ aber deutlich erweitert, denn spatestens¨ seit 2008 mit dem Erscheinen von NVidias GeForce 8“-Serie ist die Damit wandelten sich einfache Grafikbeschleuniger zu ” multifunktionalen GPGPUs. Die neuen Architekturen Programmierung solcher GPUs bei NVidia uber¨ CUDA NVidia Volta und AMD Vega folgen diesem Trend (Compute Unified Device Architecture) moglich.¨ und nutzen beide aktuelle Technologien, wie schnel- Da die Bedeutung von GPUs in den verschiedensten len Speicher, und bieten dadurch beide erhohte¨ An- Anwendungsgebieten, wie zum Beispiel im Automobil- wendungsleistung. Bei der Programmierung fur¨ heu- sektor, zunehmend an Bedeutung gewinnen, untersucht tige GPUs wird in solche fur¨ herkommliche¨ Grafi- diese Arbeit aktuelle GPU-Generationen, gibt aber auch kanwendungen und allgemeine Anwendungen differen- einen Ruckblick,¨ der diese aktuelle Generation mit vor- ziert.
    [Show full text]
  • Ray Tracing on Programmable Graphics Hardware
    Ray Tracing on Programmable Graphics Hardware Timothy J. Purcell Ian Buck William R. Mark ∗ Pat Hanrahan Stanford University † Abstract In this paper, we describe an alternative approach to real-time ray tracing that has the potential to out perform CPU-based algorithms Recently a breakthrough has occurred in graphics hardware: fixed without requiring fundamentally new hardware: using commodity function pipelines have been replaced with programmable vertex programmable graphics hardware to implement ray tracing. Graph- and fragment processors. In the near future, the graphics pipeline ics hardware has recently evolved from a fixed-function graph- is likely to evolve into a general programmable stream processor ics pipeline optimized for rendering texture-mapped triangles to a capable of more than simply feed-forward triangle rendering. graphics pipeline with programmable vertex and fragment stages. In this paper, we evaluate these trends in programmability of In the near-term (next year or two) the graphics processor (GPU) the graphics pipeline and explain how ray tracing can be mapped fragment program stage will likely be generalized to include float- to graphics hardware. Using our simulator, we analyze the per- ing point computation and a complete, orthogonal instruction set. formance of a ray casting implementation on next generation pro- These capabilities are being demanded by programmers using the grammable graphics hardware. In addition, we compare the perfor- current hardware. As we will show, these capabilities are also suf- mance difference between non-branching programmable hardware ficient for us to write a complete ray tracer for this hardware. As using a multipass implementation and an architecture that supports the programmable stages become more general, the hardware can branching.
    [Show full text]