Cg: a system for programming graphics hardware in a C-like language
ACM SIGGRAPH 2003 Papers
Hardware-determined feature edges
Proceedings of the 3rd international symposium on Non-photorealistic animation and rendering
Real-time painterly rendering for MR applications
Proceedings of the 2nd international conference on Computer graphics and interactive techniques in Australasia and South East Asia
A real-time shadow approach for an augmented reality application using shadow volumes
Proceedings of the ACM symposium on Virtual reality software and technology
Programming graphics processors functionally
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
MPEG-4 based real-time shadows
Proceedings of the 12th annual ACM international conference on Multimedia
TexMol: Interactive Visual Exploration of Large Flexible Multi-Component Molecular Complexes
VIS '04 Proceedings of the conference on Visualization '04
Rendering Planar Cuts Through Quadratic and Cubic Finite Elements
VIS '04 Proceedings of the conference on Visualization '04
Non-photorealistic rendering techniques for motion in computer games
Computers in Entertainment (CIE) - First anniversary issue
Photorealism or/and non-photorealism in augmented reality
VRCAI '04 Proceedings of the 2004 ACM SIGGRAPH international conference on Virtual Reality continuum and its applications in industry
The GPU as a high performance computational resource
Proceedings of the 21st spring conference on Computer graphics
A GPU based saliency map for high-fidelity selective rendering
AFRIGRAPH '06 Proceedings of the 4th international conference on Computer graphics, virtual reality, visualisation and interaction in Africa
Deformable object simulation in virtual environment
Proceedings of the 2006 ACM international conference on Virtual reality continuum and its applications
Discrete-event Execution Alternatives on General Purpose Graphical Processing Units (GPGPUs)
Proceedings of the 20th Workshop on Principles of Advanced and Distributed Simulation
A SWOT analysis of the field of virtual reality rehabilitation and therapy
Presence: Teleoperators and Virtual Environments - Special issue: Virtual rehabilitation
High-Quality and Interactive Animations of 3D Time-Varying Vector Fields
IEEE Transactions on Visualization and Computer Graphics
Web based molecular visualization using procedural shaders in X3D
SIGGRAPH '05 ACM SIGGRAPH 2005 Web program
SIGGRAPH '05 ACM SIGGRAPH 2005 Courses
Mapping computational concepts to GPUs
SIGGRAPH '05 ACM SIGGRAPH 2005 Courses
Real-time spectral scene lighting on a fragment pipeline
SAICSIT '06 Proceedings of the 2006 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countries
GPU-friendly rendering for illumination adjustable images
Image Communication
Interactive volume cutting of medical data
Computers in Biology and Medicine
Proceedings of the 9th international conference on Human computer interaction with mobile devices and services
Data parallel execution challenges and runtime performance of agent simulations on GPUs
Proceedings of the 2008 Spring simulation multiconference
Volume visualization and exploration through flexible transfer function design
Computers and Graphics
Volume visualization and exploration through flexible transfer function design
Computers and Graphics
Efficient Mushroom Cloud Simulation on GPU
Edutainment '08 Proceedings of the 3rd international conference on Technologies for E-Learning and Digital Entertainment
GPU Implementation of a Clustering Based Image Registration
ICIC '08 Proceedings of the 4th international conference on Intelligent Computing: Advanced Intelligent Computing Theories and Applications - with Aspects of Theoretical and Methodological Issues
GPU for Parallel On-Board Hyperspectral Image Processing
International Journal of High Performance Computing Applications
Visualization of Industrial Structures with Implicit GPU Primitives
ISVC '08 Proceedings of the 4th International Symposium on Advances in Visual Computing
Hardware Accelerated Per-Texel Ambient Occlusion Mapping
ISVC '08 Proceedings of the 4th International Symposium on Advances in Visual Computing
GpuCV: A GPU-Accelerated Framework for Image Processing and Computer Vision
ISVC '08 Proceedings of the 4th International Symposium on Advances in Visual Computing, Part II
Using an implicit min/max KD-tree for doing efficient terrain line of sight calculations
Proceedings of the 6th International Conference on Computer Graphics, Virtual Reality, Visualisation and Interaction in Africa
Using GPU-Based Ray Tracing for Real-Time Composition in the Real Scene
PCM '08 Proceedings of the 9th Pacific Rim Conference on Multimedia: Advances in Multimedia Information Processing
ACM SIGGRAPH ASIA 2008 courses
GPU accelerated Monte Carlo simulation of the 2D and 3D Ising model
Journal of Computational Physics
Concurrent number cruncher: a GPU implementation of a general sparse linear solver
International Journal of Parallel, Emergent and Distributed Systems
A Hardware Accelerated Algorithm for Terrain Visualization
UAHCI '09 Proceedings of the 5th International Conference on Universal Access in Human-Computer Interaction. Part III: Applications and Services
Geometry engine architecture with early backface culling hardware
Computers and Graphics
Simulation of shallow-water systems using graphics processing units
Mathematics and Computers in Simulation
Optimized GPU evaluation of arbitrary degree NURBS curves and surfaces
Computer-Aided Design
ACM SIGGRAPH 2009 Courses
Performance evaluation for real-time cartoon rendering using GPU
GVE '07 Proceedings of the IASTED International Conference on Graphics and Visualization in Engineering
Technical Section: Parallel GPU-based data-dependent triangulations
Computers and Graphics
Boneless pose editing and animation
SCIA'07 Proceedings of the 15th Scandinavian conference on Image analysis
A realistic illumination model for stained glass rendering
ICVR'07 Proceedings of the 2nd international conference on Virtual reality
Real-time nonlinear finite element analysis for surgical simulation using graphics processing units
MICCAI'07 Proceedings of the 10th international conference on Medical image computing and computer-assisted intervention - Volume Part I
Accelerating space variant Gaussian filtering on graphics processing unit
EUROCAST'07 Proceedings of the 11th international conference on Computer aided systems theory
On the efficiency of iterative ordered subset reconstruction algorithms for acceleration on GPUs
Computer Methods and Programs in Biomedicine
GPU-accelerated molecular dynamics simulation for study of liquid crystalline flows
Journal of Computational Physics
An instruction-systolic programmable shader architecture for multi-threaded 3D graphics processing
Journal of Parallel and Distributed Computing
Journal of Real-Time Image Processing
A fast, GPU based, dictionary attack to OpenPGP secret keyrings
Journal of Systems and Software
Simulation of one-layer shallow water systems on multicore and CUDA architectures
The Journal of Supercomputing
Unsupervised markovian segmentation on graphics hardware
ICAPR'05 Proceedings of the Third international conference on Pattern Recognition and Image Analysis - Volume Part II
Protect interactive 3d models via vertex shader programming
ICEC'05 Proceedings of the 4th international conference on Entertainment Computing
A simple, efficient method for real-time simulation of smoke shadow
ICAT'06 Proceedings of the 16th international conference on Advances in Artificial Reality and Tele-Existence
Real-Time rendering of watercolor effects for virtual environments
PCM'04 Proceedings of the 5th Pacific Rim conference on Advances in Multimedia Information Processing - Volume Part III
Image-based structural damage assessment with sensor fusion
Proceedings of the 3rd International Conference on Computing for Geospatial Research and Applications
Echocardiography simulator based on computer-simulated heart
JVRC'09 Proceedings of the 15th Joint virtual reality Eurographics conference on Virtual Environments
CUDASA: compute unified device and systems architecture
EG PGV'08 Proceedings of the 8th Eurographics conference on Parallel Graphics and Visualization
Visualization for the Physical Sciences
Computer Graphics Forum
A training oriented driving simulator
ICEC'07 Proceedings of the 6th international conference on Entertainment Computing
Concurrent number cruncher: an efficient sparse linear solver on the GPU
HPCC'07 Proceedings of the Third international conference on High Performance Computing and Communications
A compound OpenMP/MPI program development toolkit for hybrid CPU/GPU clusters
The Journal of Supercomputing
Hi-index | 0.01 |
From the Book:Once upon a time, real-time computer graphics was all about vertices, triangles, and pixels. In fact, it still is. However, the level at which a programmer controls the processing and appearance of these graphics primitives has advanced considerably. Until a few years ago, programmers had to rely on the CPU to process all the transformation and rasterization algorithms needed to produce computer-generated images. Over time, hardware engineers executed these algorithms via specialized, high-performance 3D graphics hardware. Rather than implement the algorithms directly, programmers learned to access the hardware-provided graphics functionality through standard 3D programming interfaces, such as OpenGL (developed by Silicon Graphics SGI) and Direct3D (developed by Microsoft). At first, such costly 3D graphics hardware appeared only in high-priced UNIX workstations and flight simulators. Now, through the miracle of Moore’s Law, the benefits of graphics hardware acceleration have been bestowed on low-cost PCs and game consoles.Although the performance gained by employing dedicated graphics hardware to execute the brute-force tasks of transforming vertices, rasterizing triangles, and updating pixels far exceeded the performance possible just with CPU programming, real-time 3D programmers gave up a considerable measure of control in exchange for this speed. Developers were limited to using a fixed-function palette of graphics operations that the hardware could handle. Sometimes a skilled and dedicated programmer could coax the graphics programming interface and hardware to accomplish something beyond the ordinary, but this was usually hard, time-consuming work.Whilegraphics hardware engineers were advancing the real-time performance of their specialized pixel-pushing hardware, off-line computer graphics software packages such as Pixar’s PhotoRealistic RenderMan were changing the look of movies and television with amazing computer-generated special effects. The pre-recorded nature of movies and most television content makes these media well suited for offline rendering. Computer-generated images for film and video are not rendered in real time but instead carefully constructed frame by frame in hours, days, or weeks using standard general-purpose CPUs. The advantage of using general-purpose CPUs is that rather than settle for hard-wired hardware algorithms, programmers and artists can use the CPU to create any effect they might imagine. What these so-called offline rendering systems lack in relative speed, they make up in rendering quality and realism.The flexibility and generality of offline rendering systems are the key features that have been missing from preceding generations of 3D graphics hardware. In other words, what was lost was programmability.Realizing this limitation, computer graphics architects have designed a new generation of graphics hardware that permits an unprecedented degree of programmability. Now, many of the programmable shading techniques that are employed so successfully in offline rendering can enter the realm of real-time graphics.Developers of offline rendering systems created a type of specialized computer language known as a shading language to express the graphics operations required to make surfaces look the way artists intend. A shading language for programmable graphics hardware provides the same sort of functionality but in the context of real-time graphics hardware. Graphics programmers and artists benefit from such a high-level programming language in much the same way that conventional programmers do from C++ or Java. Using a high-level language for graphics hardware automates the process of translating the programmer’s intent into a form that the graphics hardware can execute.This book is about Cg, the premier language for programmable graphics hardware. NVIDIA developed Cg in close collaboration with Microsoft. Cg is the most portable and productive way for you to unleash the power within programmable graphics hardware. This book is a tutorial to teach you how to write Cg programs.Our Intended AudienceWe tried to write this book in a way that makes it valuable to both novices and advanced readers. If you’re new to the world of programmable graphics, this book should give you a firm foundation on which to build. If you encounter a word or concept that is foreign to you and not sufficiently explained, consult the “Further Reading” section at the end of each chapter. The main audience for this book is 3D game and application programmers, managers of such projects, real-time 3D artists, and computer graphics students—or anyone else interested in learning about the state of the art in real-time rendering. You do not have to be an experienced programmer to learn Cg from this book, though you should be relatively familiar with programming language concepts. If you are familiar with C or one of its derivatives, such as C++ or Java, Cg will be very approachable. Cg programs are relatively short, often less than a page, so even an artist or novice programmer can get the gist of Cg from this tutorial and learn to write interesting Cg programs.Computer graphics programming involves math. Understanding basic algebra and trigonometry will help you appreciate several sections. You should also be familiar with the math behind basic computer graphics vertex transformation and lighting models. You do not need to know OpenGL or Direct3D, but familiarity with either programming interface is very helpful. All of the Cg examples described work with either OpenGL or Direct3D unless otherwise noted. Some examples that require advanced Cg functionality may not work on older graphics processors.The Book’s StructureChapter 1 introduces Cg. Each chapter that follows is a short tutorial that presents specific Cg concepts and techniques. The tutorials build upon each other, so we recommend reading the chapters in order.Chapter 1 lays out the foundations of Cg and real-time programmable graphics hardware.Chapter 2 presents the simplest Cg programs.Chapter 3 explains parameters, textures, and expressions.Chapter 4 shows how to transform vertices.Chapter 5 covers the implementation of lighting models with Cg. Chapter 6 describes how to animate and morph models with Cg vertex programs. Chapter 7 explains environment mapping with Cg.Chapter 8 shows how to implement bump mapping.Chapter 9 discusses a number of advanced topics: fog, cartoon shading, projected spotlights, shadow mapping, and compositing.Chapter 10 explains the set of currently available Cg vertex and fragment profiles, and provides advice for improving the performance of Cg programs.This book gets you started but does not contain everything you will eventually want to know about Cg. This tutorial complements other documentation (such as the Cg Toolkit User’s Manual: A Developer’s Guide to Programmable Graphics) included with the Cg Toolkit. Please consult the user’s manual and other Cg documentation for further information.Trying the ExamplesWe’ve designed the accompanying software framework so that you can get straight to work, even if you don’t know anything about OpenGL, Direct3D, C, or C++. Our goal is to isolate the Cg language and allow you to experiment freely with it. Of course, as you move toward starting a real-world application with Cg, your project will probably require some combination of OpenGL, Direct3D, C, and C++.The accompanying software framework allows you to try out the various Cg examples in the book without worrying about graphics APIs, C, or C++ code. The latest versions of the applications are free to download via the book’s companion Web site. The software on the accompanying CD works only on the Windows platform, but versions for Linux and Macintosh systems are available online. Appendix A explains how to download the latest versions of Cg and the accompanying tutorial application.The tutorial application makes it easy for you to tweak the book’s examples, to see how changing a particular Cg example can immediately affect the rendered 3D result. If you can, have a computer that supports Cg nearby to try out the examples. With our software, you just write Cg programs without worrying about the particulars, such as loading 3D models and textures. When you want to know all the gory details, examine the source code, all of which is freely available for download, so you can see how Cg interfaces with C++ and OpenGL or Direct3D. The Cg Toolkit also comes with several simple examples that you can learn from.The end of each chapter includes suggested exercises that you can work on to explore Cg further. 0321194969P02192003