Mais Info
Developer Newsletter: Issue #13
In this issue:
- NVIDIA at GDC Europe
- Iron Developer 2003 at CEDEC
...and much more!

Developer Newsletter: Issue #12
In this issue:
- Cg SIGGRAPH Paper Available
- Sign up for Hands-on Cg Sessions at SIGGRAPH 2003
- NVIDIA Quadro Art Booth at SIGGRAPH 2003
...and much more!

Developer Newsletter: Issue #11
In this issue:
- GeForce FX 5900 Launched at E3
- Mel Tools for CgFX
- GPUs and Cg in Universities
...and much more!

Developer Newsletter: Issue #10
In this issue:
- "The Cg Tutorial" Book Update
- "Advanced GPU Programming Techniques" Call for Participation
- Maya 5 Released with Quadro FX Support
...and much more!

Developer Newsletter: Issue #9
In this issue:
- Cg Compiler Official Release Now Available
- DirectX 9.0 Is Shipping
- Dawn to Dusk Developer Conference
...and much more!

Developer Newsletter: Issue #8
In this issue:
- GeForce FX Launched
- CgFX Viewer Released
- Interview with David Kirk on
...and much more!

Developer Newsletter: Issue #7
In this issue:
- artFutura Conference Talks
- Cg Shader Repository
- Audio SDK Updated
...and much more!

Developer Newsletter: Issue #6
In this issue:
- NV30 Cg Shader Contest
- Iron Developer Conference
- Learning About Cg
...and much more!

Developer Newsletter: Issue #5
In this issue:
- NVIDIA Cg Toolkit Beta 2 Released
- "CineFX" Platform Announced
- Cg Compiler Open-Sourced
...and much more!

Developer Newsletter: Issue #4
In this issue:
- NVIDIA Cg Toolkit 1.0.1 Released
- Cg Shader Workshops at SIGGRAPH 2002
- NVMeshMender Tutorial
...and much more!

Developer Newsletter: Issue #3
In this issue:
- NVIDIA Introduces Cg
- Launched
- NVIDIA-U Registration
...and much more!

Developer Newsletter: Issue #2
In this issue:
- Shadow Mapping Demo from Team nVDemo
- NVMeshmender
- Photoshop Plugin Updates
...and much more!

Developer Newsletter: Issue #1
In this issue:
- Game Developer's Conference Talks Online
- Got Art? Get Quadro! Artwork from Our GDC contest
- The Way It's Meant to be Played
...and much more!

 Developer Newsletter: Issue #16

In This Issue:



Exciting New Developer Tools Coming Soon

We’ve been working hard on some great new developer tools and are looking forward to sharing them with you in the coming weeks. Here’s a sneak preview of what’s coming. 

NVIDIA FX Composer – FX Composer will empower you to create high performance shaders in an integrated development environment with real-time preview and optimization features available only from NVIDIA. Featuring native support for authoring HLSL shaders and packed with practical examples, FX Composer will help you create, debug and optimize your effects more efficiently than ever before. We’re in the final stretch of testing now and expect to release a beta to registered developers later this week. 

NVIDIA Melody – This is the tool that many of you have been requesting for months! Melody 1.0 will allow developers to load a high-poly and low-poly version of the same model and then generate a normal map that makes the low-poly version look like the high-poly version. Melody also supports several visualization modes and will generate a UV coordinate set so you can use your original high-detail texture on your low-poly model too. We’re currently wrapping up some internal testing, and plan to release a beta build on the registered developer site. Look for a more public version 1.0 release on the NVIDIA Developer Web site soon.

Back to top

Developer Forums Now Available to Registered Developers

Registered developers now have a place to discuss issues and ideas with other developers and the NVIDIA Developer Technology team. We are excited to offer this new feature which provides the perfect forum to aid in answering your questions about programming techniques, developer tools, and NVIDIA products. Look for it now on //

Back to top

Tools Survey: Win a Gigapass for GDC 2004

Want to win a Gigapass for GDC 2004 (worth over $1,000, compliments of CMP Media) and help us to serve you better simultaneously? Simply fill out our survey. The survey has only two questions:

  • How have NVIDIA tools helped you in your projects?  
  • When has an NVIDIA tool caused unwanted work or trouble for you?

Back to top

GPU Gems Book Coming Soon

GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time Graphics, published by Addison-Wesley, is a compilation of articles covering practical real-time graphics techniques. It focuses on the programmable graphics pipeline available in today’s graphics processing units (GPUs) and highlights techniques needed by developers creating advanced visual effects.  

For more information, please visit the book's web site. GPU Gems will be available at GDC 2004.

Back to top

NVIDIA Texture Tools Updates

We've recently made a number of updates to our texture tools suite, including new features and bug fixes. Some key new improvements include:

  • New documentation
  • Support for volume (3D) textures
  • 2D preview window
  • Improved normal map DXT compression
  • Added arbitrary size support for non-DXT .dds files
  • Added Visual Studio 6.0 support to DXT library
  • Various dialog improvements and load/save fixes (including profiles for load/save)

Back to top

Fast, Practical, and Robust Shadow Volumes

This paper, combining the efforts of Brown University and NVIDIA Corporation, presents a set of improvements to the popular stencil shadow volume technique. The paper builds on work previously published by Crow, Everitt and Kilgard, and Lengyel.

Back to top

Become a Registered Developer Today

Joining our Registered Developer program is free and gives you access to a number of benefits:

  • Developer Forums
  • Prerelease Tools
  • Prerelease Drivers
  • Bug Reporting
  • Board Store Access

Joining is easy!  Simply fill out one of applications below:

Please note that it may take a few weeks to receive a decision on your application, due to the large number of applicants.

Back to top

GPGPU Feature: Brook

As GPUs become more flexible, a growing number of applications can benefit from their computational power. Each month, we will be highlighting one such project in our GPGPU feature. (GPGPU stands for General Purpose computation on GPUs. Learn more at //  

This month's feature is Brook for GPUs, which is an active research project at the Stanford University Computer Graphics Lab to explore general purpose computing on modern programmable graphics hardware. BrookGPU is a compiler and runtime implementation of the Brook stream programming language which provides an easy, C-like programming environment for today's GPUs. The Beta version of the software is now available for download.

Back to top


China Digital Entertainment Expo and Conference

Developers in China are encouraged to meet NVIDIA's Developer Relations team at the ChinaJoy event, taking place in the Beijing Exhibition Center . Learn about programs, tools and performance optimization techniques during the NVIDIA Sessions starting at 10:30 am on Jan 18th.

Back to top

TechFest 2004 Gaming Technology Workshop in India

Developers in India should not miss the TechFest 2004 - r U GAME - Gaming Technology Workshop at IIT Bombay. In cooperation with Dhruva Interactive, NVIDIA is pleased to provide the graphics programming courses. Gamers should also check out the biggest PC Gaming Competition in India -- with prizes sponsored by NVIDIA.

Back to top

GDC 2004 Coming Soon

GDC 2004 is a fantastic opportunity for developers to immerse themselves in the latest technologies and methodologies needed for creating awesome games. Don't miss this great show!

Evolve. Register now at // and take advantage of early discounts on every GDC pass.

The NVIDIA Developer Technology team will be giving a number of talks at GDC 2004. If there are specific topics you would like us to focus on, please let us know

Back to top


Did You Know? GoForce Product List

Did you know that through our acquisition of MediaQ, NVIDIA now powers some of the world's most popular handheld devices, including the Mitsubishi M341i, Viewsonic V36, MiTAC 8380, Psion Teklogix 7535, HP iPAQ h2210, HP iPAQ h5550, Toshiba e330, Toshiba e335, and NEC Infrontia Pocket i.

Back to top

Tip of the Month

How to (and How NOT to) Reduce Lag

The DirectX API allows graphics drivers to buffer up to three frames in the command queue of the GPU. Such a large buffer enables CPU and GPU to work in parallel even as workload on CPU and GPU varies. If there was no buffer then the GPU would become idle as soon as the CPU reduced its graphics command output (for example, because it was solving physics equations) and conversely the CPU would become idle whenever it wanted to send another graphics command and the GPU was still busy rendering a previously submitted graphics command.

On the other hand, allowing the driver to buffer three frames worth of data also means that lag (the time between a user giving input and seeing its effect on-screen) increases by up to three frames.

Several solutions exist to limit lag, in case lag becomes problematic. Locking the back-buffer is a solution, but it is a particularly bad one, see our tip in Developer Newsletter #7 for why it is inadvisable.

1. For games that mainly interact via a cursor, such as real-time strategy games, it is often sufficient to simply reduce the lag of the cursor. GPUs have specialized hardware-supported cursors that can be updated independent of (that is, more frequently than) the rendered scene. For more details, see the DirectX documentation for the methods:

IDirect3DDevice9::ShowCursor, IDirect3DDevice9::SetCursorPosition, and IDirect3DDevice9::SetCursorProperties.

2. Another solution is to use DirectX event queries: DirectX allows the insertion of tokens, called "events," into the command buffer and then allows to check whether the event has been processed. For example, at start-up time create an event query via

IDirect3DQuery9 *pQuery;

device->CreateQuery(D3DQUERYTYPE_EVENT, &pQuery); 

Then just before calling Present(), insert the event into the command buffer: 


If we wanted to limit the number of frames buffered to at most one, we need to check that the query has been processed at the end of the next frame. If it has not then we spin until it has been processed: 

bool data; 

while (pQuery->GetData(&data, sizeof(data), D3DGETDATA_FLUSH) == S_FALSE);

Because we can track multiple events in parallel and because we can insert and query these events from anywhere in the frame, we can thus finely regulate how many frames get maximally buffered: it is possible to buffer anything from fractional frames (a buffer that is at most half a frame) to 1, 2, or 2.5 frames. The main disadvantage of this technique is that the application is actively spinning while waiting for an event to be processed (see above while loop). Spinning like this can waste precious CPU cycles.

Back to top

Popular Pages and Downloads

The most popular pages and downloads over the past few weeks have been:

  • NVIDIA Texture Tools. A collection of texture manipulation tools for manipulating DDS files, creating normal maps, working with compressed textures, and more.
  • The NVSDK, tools, plug-ins, and more -- all in one convenient package. 
  • Presentations. Presentations from previous developer events.

Back to top

Job Openings

NVIDIA's Developer Technology group is always looking for talented engineers and artists in the US, Japan, and Europe. See // for more general info, or our specific openings for: Lead Artist, Developer Technology Engineer (Japan).

Back to top

Past Newsletter Issues

In case you missed any of our previous newsletter issues, you can find them online at our Developer Newsletter Archive.

Back to top

Send Us Your Comments!

Please let us know how we're doing by sending mail to with the word COMMENTS in the subject line. If you have had any problem downloading software from our site, please let us know as well so that we can help you out. 

Back to top

If you prefer not to receive the NVIDIA Developer Newsletter in the future, please send an e-mail to with the word REMOVE in the subject line.

NVIDIA® Corporation (Nasdaq: NVDA) is the worldwide leader in graphics processors and media communications devices. For more information about NVIDIA please visit our website: