Friday, July 25, 2008   
  Search  
 
Register  Login  
Forums  
   Get Your Own E-Mail Account @MeraWindows.com Minimize  
New Page 1 New Page 1
Show your cool quotient with @merawindows.com email account
     
  
     Minimize  

Welcome to MeraWindows forums.

Thank you for being at the Microsoft Windows Community Site. You may have to register before posting in forums. It's absolutely free. After registering, you can get all the benefits available to our registered members, you can access our Downloads section, you can participate in contests, etc. You can post in forums in English as well as in Hindi, in fact we encourage you to use Hindi in your posts. If you have any problem with registration or login, please contact us.

     
  
 
  Microsoft Windows Forums  Windows Applica...  DirectX  What Direct3D 10 Is All About
Previous Previous
 
Next Next
New Post 3/3/2008 9:56 AM
User is offline soumya
2608 posts
microsoftblog4u.blogspot.com/
Forum Guru








What Direct3D 10 Is All About 
Modified By soumya  on 3/3/2008 1:28:53 PM)

Digging Into DirectX 10

Time flies when you are having fun, and DirectX 9 has certainly given us plenty of that. We have been playing games on the DirectX 9 application programming interface (API) since December of 2002 - almost four years now. While many use the term "DirectX" when talking about graphics, the DirectX standard is actually a group of APIs for various aspects of the gaming experience, of which graphics is one. Big titles such as Half-Life 2, F.E.A.R., Battlefield 2, and Oblivion use the current version, which is 9.0c.

There are three core areas in DirectX: input devices, audio and video. The table below shows a list of the APIs in the current build.

Input Devices
DirectInput This is an API for input devices including keyboards, mice, joysticks, game pads, and force-feedback enabled devices. Included in this API is the functionality of the Xbox360 controller when used on a PC with Windows XP SP1 or later.
Audio
DirectSound This is the low level hardware API that interfaces between applications and the sound card. Hardware buffers can be manipulated using this API, as well as the volume, pitch and pan of individual sounds.
DirectMusic This is a higher level API that can mix multiple sounds. It can play MIDI as well as maintain the volume levels of multiple sounds and their runtime parameters.
Video
Direct3D This is the API that puts images on your screen. It's a low level interface that allows for the manipulation of 3D objects via hardware accelerators (graphics cards).
DirectDraw While this was important in years past, the current build has taken 2D functionalities and incorporated them into Direct3D.

For the remainder of this article we will be talking about what most people are most interested in: Direct3D. There are a lot of changes coming in DirectX 10. Direct3D 10 adds new features to deal with existing graphical problems, and tools to take on new rendering challenges. It also simplifies the 3D pipeline, which will help move bigger and better game titles out of the developers' studios and onto your PC.

http://www.tomshardware.com/2006/11/08/what_direct3d_10_is_all_about/


 
New Post 3/3/2008 9:57 AM
User is offline soumya
2608 posts
microsoftblog4u.blogspot.com/
Forum Guru








What's Changed? 
Modified By soumya  on 3/3/2008 1:29:42 PM)

What's Changed?

Last month, after a keynote session on DX10 during an Nvidia event, I was able to speak with David Blythe, Software Architect with Microsoft's Graphics Platform Unit on DirectX 10. The topic of his lecture was the vast improvements made to Direct3D 10. Software developers and hardware manufacturers wanted their largest problems addressed, and according to Blythe, Direct3D 10 solves their major complaints and concerns.

Direct3D 10 has five key changes:

  1. Improved programmer expressiveness (Shader Model 4.0 and Geometry Shaders)
  2. Tight hardware specifications
  3. Improved performance (lower command cycle counts per frame)
  4. Unified instruction sets (HLSL 10)
  5. Stream I/O (Geometry Shader can write to memory)

I will take a second to graphically show the Direct3D 10 pipeline of how images are rendered, which will help us see how the new changes come into play.

Taken from "The Direct3D 10 System" by David Blythe

Taken from "The Direct3D 10 System" by David Blythe

The concept of a traditional pipeline was demolished with the advent of ATI's Radeon X1000 series cards and threaded processing. Therefore, saying a card has "N" pixel pipelines is a void concept; it is no longer relevant. Simply scrub it from your mind unless you are talking about older hardware.


 
New Post 3/3/2008 9:58 AM
User is offline soumya
2608 posts
microsoftblog4u.blogspot.com/
Forum Guru








Improved Programmer Expressiveness 
Modified By soumya  on 3/3/2008 1:30:38 PM)

One constraint on content development is getting the artist's intent and creativity onto the screen. Humans have the ability to conjure realistic images in their minds, which contain all of the detail of opening their eyes to the real world. Computer graphics is very different, as the logic in our minds is much more dynamic than that of a computer. The silicon is set in stone and cannot be changed once it leaves the factory - at least until the advent of programmable shaders. However, programmable shaders are only one component of the rendering engine. Constraints are placed on what can and cannot be calculated, as there is limited computational horsepower.

As the needs of programmers has increased, a new standard for hardware implementation and software coding has come up to keep ahead of the demand. The need is there again, and Direct3D has upped the ante on what shaders can do.

Below is a table showing the changes in shader model constraints. Without going too deep, the main concept to pull from the table is that Shader Model 4.0 (SM 4.0) is far more advanced than any previous version. It also takes away the concept of vertex shader or pixel shader only designs. One key step, as listed in Blythe's paper and lecture, is that fixed function shaders will become a thing of the past.

 


 
New Post 3/3/2008 9:58 AM
User is offline soumya
2608 posts
microsoftblog4u.blogspot.com/
Forum Guru








Tighter Hardware Specifications 
Modified By soumya  on 3/3/2008 1:31:34 PM)

There are differences in the way ATI and Nvidia design their hardware. One complaint from software developers has been that there is too much variation in the capabilities of hardware designs, which everyone can see in games that have multiple code paths and thus display different results on different hardware. In particular, if a game detects old hardware, it will run specialized software "channels" of code to accommodate that system.

Console software developers do not need to deal with this, as the constructs for the graphics subsystem are set in stone, but PC game developers don't have this luxury. If they have new ideas and techniques they would like to utilize in their games, they have to build them hoping that people will notice and want to play their games with all of the wonderful features enabled. But we all know that the majority of gamers does not play titles with all of the bells and whistles turned on.

To make matters worse, DirectX 9 left some parts of the standard a bit too open for interpretation, and some parts of the standard were changed before things could be instituted into designs by ATI and Nvidia. This made for some confusion on the part of developers, as there were differing precision standards between the competing hardware makers. Hardware manufacturers have to educate developers on the strengths and capabilities of their hardware, and conflicting standards slows down bringing quality content to the market.

Direct3D 10 addresses the standards for required feature sets, resource limits, arithmetic precision and various storage formats. While everything inside Direct3D 10 hardware will be 32-bit (floating point or integer), there are several storage types. Below is a list of the data storage formats.

 

In the list you will see full single-precision formats, as well as half-precision formats such as unorm and snorm16. float16 has been used for things such as High Dynamic Range (HDR), but has the drawback of utilizing too much storage and bandwidth. Other alternative formats such as 11-11-10 were also created. This is the combination of two float11 and one float10 units (11 on red, 11 on green, and 10 on blue) for 32 bits in conjunction with a shared-exponent format (RGBE). Click here for more information on floating point precision and formats inside the IEEE 754 standard.


 
New Post 3/3/2008 9:59 AM
User is offline soumya
2608 posts
microsoftblog4u.blogspot.com/
Forum Guru








Fixed Functions Or Unified Architecture? 
Modified By soumya  on 3/3/2008 1:32:06 PM)

Another place for open interpretation came into play with the approaches ATI and Nvidia have taken under DirectX 9. Nvidia has stuck to a fixed function design for its architectures, while ATI decided to fragment the traditional pipeline in order to provide greater functionality with the same limited resources.

There is nothing wrong with designing X vertex shaders to Y pixel shaders with Y ROPs (Raster Operation Processors), but as ATI has proven with its current DirectX 9.0c graphics processors, there are performance gains to be made with a dynamic core. Many game developers have shifted their titles to becoming pixel shader dependent with a fragmented design; ATI was able to capitalize on this as it added pixel shader units to new core designs. The layout for Direct3D 10 hardware could follow fixed function shader units, but what would be the advantage?

While Nvidia has not publicly commented on what structure its G80 processor is based upon, ATI has stated it would go with a unified shader core. Unified shaders makes the most sense, as it means shader units can change function on the fly. This means that if a frame has more vertex shader needs or more pixel shading needs, the core can designate more processing units or clusters to accomplish the task that is in most demand.

Below are a few examples of workload needs in a "traditional" processing environment (these are crude to keep it simple).

Example 1: Heavy vertex with light pixel processing needs.

Fixed Functions Or Unified Architecture?

In this example, the Pixel Shader is underutilized; it could be doing more in the frame, but is capped by the Vertex Shader output.

Example 2: Light vertex with heavy pixel processing needs.

Fixed Functions Or Unified Architecture?

In this example, the Pixel Shader is underutilized; it is capped by the Vertex Shader.

Example 3: Light vertex with heavy pixel processing needs.

Fixed Functions Or Unified Architecture?

In this example, the Pixel Shader can render the same amount as in Example 1, but there are 12 more vertex processors that can be utilized. This brings the graphics core to maximum capacity.

Example 4: Light vertex with heavy pixel processing needs.

Fixed Functions Or Unified Architecture?

In this last example, the Vertex Shader workload is the same as in example 2, but there are 6 more pixel processors that can be utilized.

The point to this demonstration is that shaders are merely programs running on floating point processors. With the new standard in Direct3D 10, it does not make sense to design fixed function shader architecture. With intelligent logic and a strong core, we should see significant yields on unified architectures, with the same number of floating point units as we would from fixed function architecture with the same total number of FPUs.


 
Previous Previous
 
Next Next
  Microsoft Windows Forums  Windows Applica...  DirectX  What Direct3D 10 Is All About