Monday, July 21, 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 10:00 AM
User is offline soumya
2602 posts
microsoftblog4u.blogspot.com/
Forum Guru








Additional Improvements 

The main complaint from developers and hardware manufacturers was the amount of reliance on the CPU in previous Direct3D versions. The problem with graphics is that it is a subsystem; both the CPU and graphics processor rely on some of the same components, such as the system main memory. Additionally, the graphics card has to rely on the CPU for coordination and instruction. Also, if complex situational or dynamic geometry is required, the CPU may be required to calculate some effect that alters the object, which can have an impact on performance as well.

With the implementation of better validation and error handling, resource mapping and access, and even an improved shader language, the biggest problem was somewhere else. Blythe stated that the API runtime has changed very little over the past 10 years. Three things were identified that caused additional processing in the driver and the runtime:

  1. Miscommunication over application requirements
  2. Differing processing styles
  3. Mismatches between the API and the hardware

The first and the second were easy to fix: a tighter standard between hardware and software makers clears up the first, while the second is in the hands of the software developers.

Here is a set of images from DX10 content samples used in Microsoft's testing

Here is a set of images from DX10 content samples used in Microsoft's testing

The last is the toughest situation, as Blythe states: "Our analysis failed to show any significant advantage in retaining fine grain changes on the remaining state, so we collected the fine grain state into larger, related, immutable aggregates called state objects. This has the advantage of establishing an unambiguous model for which pieces of state should and should not be independent, and reducing the number of API calls required to substantially reconfigure the pipeline. This model provides a better match for the way we have observed applications using the API."

Operation/Command Cycles Direct3D 9 Direct3D 10
Draw 1470 154
Bind VS Shader 6636 416
Set Constant 3297 916
Set Blend Function 787 530

The table above shows the change between Direct3D 9 and 10 in the number of command cycle counts used in Blythe's analysis. On the Intel Pentium 4 system his team used, the number of draw calls was reduced ten fold. Reduced overhead in the driver means there is more CPU time to do other, more important tasks, as well as less reliance on the CPU to render images. This should free up the CPU for other activities, such as better artificial intelligence (AI) computations, effects physics calculations, or putting more objects into our scenes.

One major improvement comes in the form of something that Microsoft calls Instancing 2.0. Instancing is where multiple objects in the scene are extremely similar and all need to be drawn, lit, textured, and so forth. Under Direct3D 9, each unit in an army could require its own draw call, adding to the software stack and CPU utilization. Under Direct3D 10, all of the units of your army can be done with a single draw call. This will allow future games to instance thousands of units to fill our battlefields and add to the realism in our games.

Here is a screenshot of Supreme Commander (THQ), in which you can see over a hundred high resolution units.

Here is a screenshot of Supreme Commander (THQ), in which you can see over a hundred high resolution units.

 
New Post 3/3/2008 10:07 AM
User is offline soumya
2602 posts
microsoftblog4u.blogspot.com/
Forum Guru








Geometry Shaders And Stream Output 
Modified By soumya  on 3/3/2008 1:34:16 PM)

 

Taken from "The Direct3D 10 System" by David Blythe

Last but not least, we will talk about the newest part of the core: the Geometry Shader (GS). Let's work our way through the logical steps of the rendering process (this could be fixed function or threaded via a fragmented core). The term "pipeline" is only taxonomy; each stage is a part of the process, but it could be happening at the same time another part of the same frame is being worked on somewhere else. However, the first place data goes is the Input Assembler (IA).

As you can see from the diagram above, the IA collects one-dimensional vertex data. Each of the (up to) eight input streams has specific vertex data containing up to 16 structural fields called elements. Each element is a multiple of one to four data items. Looking again at the diagram above, you can see the vertex data input as 16x3x32b (e.g., float32s).

Traditionally, the vertex data is read in sequence from the vertex buffer, but an index buffer can be specified. This provides for additional performance optimizations, as the recompilation of results for the same index can be avoided. Each piece is tagged and worked on separately, and then put together later according to the index address assigned.

The IA can also replicate objects; I referred to this earlier as instancing. At the same time, each primitive data item is "tagged" with a current instance, primitive and vertex ID. Each object now has an index ID that can be accessed in later stages. This means that, for example, one tank in your battle game can become 100, each with its own properties and ID. Here, one draw call can handle hundred objects, where it once took an individual draw call for each.

Taken from "The Direct3D 10 System" by David Blythe

From the VS, data moves to the newest parts of the process, the Geometry Shader and Stream Output (SO). The GS takes all of the vertices (points, lines, and triangles) and can add to them. In fact, the GS can magnify the number of input primitives by producing additional primitives: up to 1024 32-bit values of vertex data. This is the most powerful part of the core, in that the GS can also attach more attributes to the vertex data - or destroy it.

The Geometry Shader is so powerful because it is the only shader that can write to memory, which it does via Stream Output. It copies either one multi-element (up to 16 elements) or up to four single-element output streams to output buffers. This data can be read back into the process by any part of the process, meaning that data could stop coming from the IA and Vertex Shader. Scenes could be sustained entirely by manipulations of output data.

From: "The Direct3D 10 System" by David Blythe

The rest of the process is familiar to us. The data travels a setup stage, where rasterizer and some early Z-culling are accomplished. The Pixel Shaders then take the data and attach the skin to the wire frame. This includes lighting and other techniques to make our games look amazing.


 
New Post 3/3/2008 10:08 AM
User is offline soumya
2602 posts
microsoftblog4u.blogspot.com/
Forum Guru








Final Thoughts 
Modified By soumya  on 3/3/2008 10:08:51 AM)

 

Image from Crysis by Crytek

Image from Crysis by Crytek

There is a lot of information to disseminate when looking at Direct3D 10 and the impact it will have on the future of 3D graphics. I have seen Crysis running on DirectX10 hardware, and all I can say is: "I don't think we're in Kansas anymore, Toto." The future of computer games screams "DirectX 10", and if you do not have a DX10 card in your system going forward, you will be missing out.

The migration from DirectX 9 to DX10 for programmers will be relatively easy, as the HLSL (High Level Shader Language) is widely accepted, and porting DX9 over to DX10 enabled content will be fairly easy. Programs and tools already exist, which will help developers move their content over.

This is one reason why we have not seen major titles hitting the market over the past few months: everyone is waiting for DirectX 10. But you should not wait when the hardware is available. As you can tell from what you have read in this article, and what you have previously heard about DX10, it will represent a massive increase to performance in existing games. It will make you ready for the future... at least until Direct X11 is hatched...


 
New Post 3/3/2008 1:18 PM
User is offline Vishal Gupta
5611 posts
www.AskVG.com
Ultimate Member








Re: What Direct3D 10 Is All About 

Thanks buddy but the images are not coming here.


Microsoft Windows MVP

Tweaking with Vishal

How to Use Smiley Code in Forum?
Promote MeraWindows at Your Blog / Site
Read Forum Guidelines
 
Previous Previous
 
Next Next
  Microsoft Windows Forums  Windows Applica...  DirectX  What Direct3D 10 Is All About