PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Direct X Unterstützung


morfeus
2003-03-17, 13:07:42
Ich möchte gerne eine Liste mit den verschieden Direct X Versionen
erstellen in denen ersichtlich ist welche Funktionen Unterstützt werden.

z.B.

Dx 5 = ???
Dx 6 = Bump Mapping
Dx 7 = T + L
Dx 8 = Pixel Vertex Shader u.s.w

Wer kann mir weiterhelfen??
oder wo kann ich mich weiterinformieren??

Demirug
2003-03-17, 13:33:06
Ich verschiebe das mal nach Technologie.

Die beste Quelle für die gesuchten Informationen währen natürlich die SDKs der entsprechenden DX Versionen. Aber bei MS selbst bekommt man nur noch die SDKs bis 7.0a. Alles was älter ist dürfte nicht ganz leicht zu beschaffen sein.

Auch das DDK bringt einen da nicht weiter weil man sich auch dort erst ab 7.0 befasst.

Pitchfork
2003-03-17, 15:25:30
Also aus dem Stehgreif kann folgende SDKs bieten:

5.2a (1998)
6.0 (1998)
6.1 (1999)
7.0 (1999)
7.0a (1999)
8.0 (2000)
8.1 (2001)
9.0 (2002)

Ältere müßten eigentlich auch noch hier rumfliegen, aber dazu müßte ich mehr suchen. Ich kann ja bei Zeit schrittweise die Readmes posten.

morfeus
2003-03-17, 15:33:18
Super, immer ein kleiner Schritt weiter.:D

Sir Integral Wingate Hellsing
2003-03-17, 17:10:27
Originally posted by Pitchfork
Also aus dem Stehgreif kann folgende SDKs bieten:

5.2a (1998)
6.0 (1998)
6.1 (1999)
7.0 (1999)
7.0a (1999)
8.0 (2000)
8.1 (2001)
9.0 (2002)

Ältere müßten eigentlich auch noch hier rumfliegen, aber dazu müßte ich mehr suchen. Ich kann ja bei Zeit schrittweise die Readmes posten.

jo, das hört sich gut an!

Demirug
2003-03-17, 18:13:21
So dann schaue wir mal was ich noch so zusammen bekomme:

DX3:

- Erstes DX mit 3d Funktionen.
- Benutzte sogenannte ExecuteBuffer. Die meisten Entwickler haben das Konzept nicht verstanden und deshalb abgelehnt.

DX4: gab es nicht

DX5:
- Die ExecuteBuffer werden durch eine Schnittstelle ersetzt die mehr an OpenGL erinnert um die Entwickler glücklich zu machen

DX6:
- Einführung der Vertexbuffer
- Erstes DX mit einem RefRast
- Automatisches Texturmangment (Die Applikation muss sich nicht mehr selbst darum kümmern wann welche Texture in den Grafikspeicher kopiert wird)
- freie Vertexformate. Bei den bisherigen Versionen gab es nur eine begrenzte Anzahl von fest vorgegebenen Vertexformate.
- Vertexdaten müssen nicht mehr linear am Stück im Speicher liegen. Jede einzelne Komponete kann in einem anderen Speicherbreich sein.
- Multitexturing
- bump-mapping
- W-Buffer
- Stencil Buffer

DX7:
-HT&L
-Environment mapping mit Cubemaps
-skinning als Teil des HT&L

DX8:
- Direct Draw in D3D integration
- Pixel Shader
- Vertex Shader
- Multisample AA
- Point Sprites
- 3d Texturen
- indexed skinning als Teil des HT&L
- HOS (NPatch, RTPatch,...)

DX9:
- viele Detailverbesserungen ;)

Pitchfork
2003-03-17, 20:07:37
DX5.2:

Direct3D Immediate Mode now supports drawing primitives without having to work directly with execute buffers. For more information, see The DrawPrimitive Methods. A set of extensions and helper functions has been implemented for C++ programmers; for more information, see D3D_OVERLOADS.Direct3D Retained Mode now support interpolators that enable you to blend colors, move objects smoothly between positions, morph meshes, and perform many other transformations. Retained Mode also supports progressive meshes that allow you to begin with a coarse mesh and increasingly refine it; this can help you take the level of detail into account and can help with progressive downloads from remote locations. For more information, see the IDirect3DRMInterpolator Interface and the IDirect3DRMProgressiveMesh InterfaceThe Direct3D documentation has been updated for DirectX 5. The overview of Immediate Mode is more comprehensive, there is an Immediate-Mode tutorial, and there is a description of the .X file format.

Pitchfork
2003-03-17, 20:09:56
DX6:


Performance enhancements:

Support for buffers to contain vertex data, called "vertex buffers," acting as staging points for more efficient transformation and rendering of vertices. Vertex buffers can be optimized to make it possible to transform vertex data more efficiently, and transformed vertices in a vertex buffer can be reused (rather than transforming them multiple times). The IDirect3DDevice3 interface introduces the IDirect3DDevice3::DrawPrimitiveVB and IDirect3DDevice3::DrawIndexedPrimitiveVB to render vertices from a vertex buffer.
Applications can increase the performance of Direct3D by setting the DDSCL_FPUSETUP DirectDraw cooperative level. This cooperative level eliminates overhead incurred when Direct3D is forced to check and reset the FPU precision mode for each rendering cycle. For more information, see DirectDraw Cooperative Levels and FPU Precision.
Direct3D now includes a reference driver that, although not intended for shipping applications, produces extremely accurate output for testing and demonstration purposes.
Ease-of-use improvements

Automatically managed texture surfaces. See Automatic Texture Management for details.
More flexible ways to declare vertices in memory. Applications are no longer required to use only predefined vertex types, and can even include per-vertex color components for lit vertices. For more information, see Vertex Formats.
Support for discrete or interleaved arrays of vertex component data. For additional discussion of strided vertices, see Strided Vertex Format.
Support for cutting-edge hardware features:

Direct3D Immediate Mode supports hardware that can perform single-pass multiple texture blending. Direct3D exposes the concepts of texture stages, blending operations, and blending arguments in the new IDirect3DDevice3 interface, through the IDirect3DDevice3::SetTextureStageState method. For more information, see Multiple Texture Blending.
You can use the new texture blending features of Direct3D to perform bump mapping. The bump-mapping model, offered through the multiple texture blending interface, utilizes special bump-map surfaces to perturb the texture coordinates applied to environment maps.
Support for an alternative form of depth buffering that uses eye-space Z in the depth buffer, often called "w-buffering." For more information, see Depth Buffers.
Support for stencil buffers (also known as "stencil planes"). For more information, see Stencil Buffers.

Pitchfork
2003-03-17, 20:13:34
DX6.1:

Im wesentlich DirectMusic eingeführt, also nix D3D spezifisches.

Pitchfork
2003-03-17, 20:16:05
DX7:



Hardware-accelerated transformation and lighting
Direct3D can now take advantage of 3-D accelerators to accelerate transformation and lighting operations in hardware. If compliant hardware is available, the IDirect3D7::EnumDevices method sets the D3DDEVCAPS_HWTRANSFORMANDLIGHT capability flag in the dwDevCaps member of the associated D3DDEVICEDESC7 structure. For more information, see TnLHAL Device.

Environment mapping with cubic environment maps
Direct3D and DirectDraw now support a special type of texture map used in environment mapping, called a cubic environment map. Cubic environment mapping involves the use of a six-sided texture that can contain images to be applied to objects in a scene. Cubic environment maps provide realistic environment mapping in your applications, are easy to use, and even allow you to implement dynamic environment mapping.

API Changes
Direct3D for DirectX 7.0 moves lighting, material, and viewport parameters into the device interface. Therefore, separate objects to handle these parameters are no longer needed, nor are their interfaces. Several methods have been included in the IDirect3DDevice7 interface to manipulate these parameters.
Vertex buffers can now be used with strided vertices, made possible by the addition of the IDirect3DVertexBuffer7::ProcessVerticesStrided method to the new IDirect3DVertexBuffer7 interface.

Geometry Blending
Applications that use the Direct3D geometry pipeline can take advantage of new support for geometry blending. Geometry blending can be used to perform "skinning" effects to increase the realism of segmented objects in a scene, especially characters. For more information, see Geometry Blending.

Device-state blocks
Applications that target the new IDirect3DDevice7 interface can take advantage of its support for programmable sets of state changes, called state blocks. State blocks make it possible for a Direct3D application to record common sequences of device state changes into a construct that has a unique identifier, or block handle. Applications can use the block handle to execute previously recorded state blocks in a single method call. Besides minimizing the calls required to change device states, state blocks enable devices to cache precompiled sets of state changes for optimal execution, often resulting in improved performance. For details, see State Blocks.

Improved texture management
The Direct3D texture manager has been expanded to allow applications to prioritize managed textures. Direct3D uses texture priorities to determine which textures to keep in memory, and which to remove.
Support for Visual Basic applications
Like the other components in DirectX 7.0, Direct3D Immediate Mode now offers its services to Visual Basic applications. This is made possible by a set of classes that marshal data from the Visual Basic application to the DirectX run time. In addition, the documentation provided with this SDK has been expanded to include the Visual Basic developer.

Enhanced software emulation
Direct3D has been optimized to use any special instructions supported by the CPU. Supported instruction sets include the AMD 3D-Now! instruction set on some AMD processors and the MMX instruction set supported by many Intel processors. Where available, Direct3D utilizes the 3D-Now! instruction set to accelerate transformation and lighting operations and the MMX instruction set to accelerate rasterization. Applications that use the Direct3D transformation and lighting pipeline with software devices automatically benefit from this feature.

Pitchfork
2003-03-17, 20:19:03
Complete integration of DirectDraw and Direct3D
Simplifies application initialization and improves data allocation and management performance, which reduces the memory footprint. Also, the integration of the graphics APIs enable parallel vertex input streams for more flexible rendering.

Programmable vertex processing language
Enables you to write custom shaders for morphing and tweening animation, matrix palette skinning, user-defined lighting models, general environment mapping, procedural geometry, or any other developer-defined algorithm.

Programmable pixel processing language
Enables you to write custom hardware shaders for general texture combining expressions, per-pixel lighting (bump mapping), per-pixel environment mapping for photoreal specular effects, or any other developer-defined algorithm.
Multisampling rendering support
Enables full-scene anti-aliasing and multisampling effects, such as motion blur and depth-of-field.

Point sprites
Enables high-performance rendering of particle systems for sparks, explosions, rain, snow, and so on.

3-D volumetric textures
Enables range-attenuation in per-pixel lighting and volumetric atmospheric effects, and can be applied to more intricate geometry.

Higher-order primitive support
Enhances the appearance of 3-D content and facilitates the mapping of content from major 3-D authoring tools.

Higher-level technologies
Includes 3-D content creation tool plug-ins for export to Direct3D of skinned meshes using a variety of Direct3D techniques, multiresolution level-of-detail (LOD) geometry, and higher-order surface data.

Indexed vertex blending
Extends geometry blending support to allow the matrices used for vertex blending to be referred to using a matrix index.

Expansion of the Direct3DX Utility Library
Contains a wealth of new functionality. The Direct3DX utility library is a helper layer that sits on top of Direct3D to simplify common tasks encountered by 3-D graphics developers. Includes a skinning library, support for working with meshes, and functions to assemble vertex and pixel shaders. Note that the functionality supplied by D3D_OVERLOADS, first introduced with Microsoft DirectX® 5.0, has been moved to the Direct3DX utility library.

Pitchfork
2003-03-17, 20:20:33
Expanded pixel shader functionality with new version 1.2, 1.3, and 1.4.

Expanded the functionality of the Direct3DX (D3DX) utility library for meshes, textures, bump mapping, textures, and quaternions.

MeshView. This tool provides an easy way to load, view, and modify meshes, and generally exercise D3DX functionality on progressive meshes. For more information about the tool, see Mesh View Help.

A new screen saver sample is included that is built on the screen saver sample framework. The new framework includes support for multiple monitors.

Added new samples.
Reorganized the documentation into reference and programming guides. Expanded shaders and effects sections.

Pitchfork
2003-03-17, 20:22:43
What's New in DirectX Graphics

--------------------------------------------------------------------------------

This section describes Microsoft® DirectX® graphics features that are new in DirectX 9.0. See what's new in all of DirectX at What's New in DirectX 9.0.

Programming Guide
The programming guide has been reorganized into the following sections to help you find a topic.

Converting to DirectX 9.0 - This page contains hints for converting applications to DirectX 9.0. See Converting to DirectX 9.0.
Getting Started - Fundamental topics for getting started with Microsoft Direct3D®.
Added a new page about DirectX 9.0 style vertex declarations. See Vertex Declaration.

Fixed Function - Covers the functionality of the fixed function pipeline.
Textures section - Added automatic generation of mipmaps. See Automatic Generation of Mipmaps.

Programmable Pipeline - Many new features have been added to the shader models.
Vertex and pixel shaders are no longer referred to with handles; they are objects. There is also a new section detailing the decoupling of vertex shaders and vertex declarations. See Component Object Model (COM) interfaces IDirect3DVertexShader9 and IDirect3DPixelShader9.

Shaders and vertex stream declarations are no longer bound together at creation time. Vertex stream declarations are now expressed as an array of D3DVERTEXELEMENT9 elements. For more information, see Mapping Vertex Declarations and IDirect3DDevice9::SetFVF.

Version 2 vertex shaders (vs_2_0) adds a limited form of flow control (loop...endloop, if...else...endif, and subroutines). Other features include more registers, constant setting methods (IDirect3DDevice9::SetVertexShaderConstantB, IDirect3DDevice9::SetVertexShaderConstantF, and IDirect3DDevice9::SetVertexShaderConstantI), new macro-ops for power, cross product, sign, absolute value, and linear interpolation. See Vertex Shader 2_0.

Version 2 pixel shaders (ps_2_0) decoupled texture data and sampling by creating sampler registers in addition to the texture registers. Increased the instruction count and number of registers. Added float data types. Texture address and arithmetic instructions can now be intermixed. Eliminated all modifiers except negate. New macros and instructions include sincos (sine and cosine), normalization, cross product, power, linear interpolation, projected texture load, and biased level of detail (LOD) texture load. See Pixel Shader 2_0.

Software shaders have been implemented to facilitate shader development without hardware support. The following software versions have been added: vs_2_sw, vs_3_sw, ps_2_sw, ps_3_sw.

Extended shader versions take existing shader versions and extend their functionality if certain caps are set by the hardware. Extended functionality includes features like dynamic flow control, static flow control nesting, gradient instructions, and arbitrary swizzle. For more information, see Vertex Shader 2_0 Extended and Pixel Shader 2_0 Extended.

Version 3 shaders further enhance the functionality of the extended shader versions without requiring caps to be set. Vertex shaders also add new support for vertex texturing, and control over how often vertex shader registers can be set during render calls. For more information, see Vertex Shader 3_0 and Pixel Shader 3_0.

Advanced Topics - Lots of new tools and techniques.
Adaptive tessellation can be applied to high-order primitives including N-patches, rectangle patches, and triangle patches based on the depth value of the control vertex in eye space. See Adaptive Tessellation.
Asynchronous notifications - There are a number of interesting asynchronous queries that could be made on driver status. This new functionality uses new interfaces to add asynchronous query capability. See Asynchronous Notification and IDirect3DQuery9.
Direct3D extensions (D3DX) - Added new functionality to the D3DX library to support new features, things like mesh functions, antialiased line drawing, pixel and vertex shaders, effects, math, and texturing functions. See Other Direct3D Extentions (D3DX).
Displacement mapping - Added support for displacement maps using several single-channel signed formats. See Displacement Mapping.
Gamma correction - Applications can indicate whether a texture is gamma 2.2 corrected (sRGB) or not so that the pipeline can perform gamma-correct blending. See Gamma.
Line drawing - A new interface was added for drawing antialiased lines. See Direct3D Extentions (D3DX) Line Drawing or ID3DXLine.
Multielement textures - This features allows applications to write out multiple elements of a texture simultaneously from a pixel shader. See Multielement Texture.
Multiple render targets - Support for a single render target has been extended to support multiple render targets. See Multiple Render Target.
Multihead - Multihead video cards use a common frame buffer and independent digital-to-analog converters (DACs) to offer more usable multiple-monitor support. See Multihead.
Surface locking behavior - A new locking flag, D3DLOCK_DONOTWAIT, allows an application to gain back CPU cycles if the driver cannot lock the surface immediately. See D3DLOCK.
Scissor test - The pipeline supports a scissor test, implemented with IDirect3DDevice9::SetScissorRect, IDirect3DDevice9::GetScissorRect, and a new render state, D3DRS_SCISSORTESTENABLE.
Tessellation - Tessellator support has been extended to adaptively tessellate and look up per-vertex displacement values from a displacement map. See Tessellation.
Two-sided stencil support - New support is available for adding shadows due to occluding geometry using shadow volumes. See Two-Sided Stencil.
Tutorials, Samples, Tools, and Tips - All the samples and other helpful tips and tools are gathered here. See Tutorials, Samples, Tools, and Tips.
Reference
Many new pages have been added to the reference section including:

Effects - ID3DXEffectCompiler, ID3DXBaseEffect, ID3DXEffect, ID3DXFragmentLinker, and ID3DXInclude. ID3DXSkinMesh was renamed ID3DXSkinInfo.
Effects framework. A new interface, ID3DXEffectCompiler, allows the user to compile an effect from a function or from a vertex shader. The function can be written using the High-Level Shader Language.

High-Level Language Reference - A high-level shader language exists for creating effects from vertex shaders. This gives developers the ability to create effects from a C-like language. For more information, see High-Level Shader Language.
Shader Debugger - An extension to Microsoft Visual Studio® exists to support debugging some types of vertex shaders. For more information, see Shader Debugger.
Other Features
Other new features include the following:

Dirty Regions. IDirect3DDevice9::Present now supports a dirty region by means of the fourth parameter, a pointer to a region.
2-D Support. Added support for a color-converting blit between most types of D3DPOOL_DEFAULT surfaces while using IDirect3DDevice9::StretchRect, and a color fill operation for D3DPOOL_DEFAULT surfaces while using IDirect3DDevice9::ColorFill.
Microsoft Windows® Graphics Device Interface (GDI) Interoperability. Two new methods have been added to get access to device contexts: IDirect3DSurface9::GetDC and IDirect3DSurface9::ReleaseDC.
DrawIndexedPrimitive. IDirect3DDevice9::DrawIndexedPrimitive has been changed to allow batching multiple primitives in the same index buffer without requiring multiple calls to IDirect3DDevice9::SetIndices.
Texgen Mode. The new texgen mode is to support the OpenGL-style sphere map texgen. Requires a new render state: D3DVTXPCAPS_TEXGEN_SPHEREMAP. See D3DVTXPCAPS.
ProcessVertices Behavior Change. This change enables multipass vertex processing and software pre-tessellation shaders. It enables IDirect3DDevice9::ProcessVertices to bypass the clipper and hence not compute the screen coordinates.
Mesh Copy and Update Methods. ID3DXBaseMesh::CloneMesh is used to reformat and change the vertex data layout. For example, use it to to add space for normals, texture coordinates, colors, weights, etc. that were not present before. ID3DXBaseMesh::UpdateSemantics provides a method for updating the vertex declaration with different semantic information, without changing the layout of the vertex buffer. For example, use it to re-label a 3-D texture coordinate as a binormal or tangent, or vice versa.
32-Bit Texture Formats. Two new 32-bit texture formats were added: D3DFMT_A8B8G8R8, D3DFMT_X8B8G8R8. See D3DFORMAT.
Multisampling. A new multisampling control was added to give users control over performance versus quality. See SetDialogBoxMode, SetSampler, GetSamplerState, and D3DSAMPLERSTATE
CreateImageSurface. Removed as a result of adding D3DPOOL_SCRATCH.
Enumeration. IDirect3D9::EnumAdapterModes now takes a D3DFORMAT to support an expanding set of display modes.
Sample Framework. The sample framework now includes a dialog box for supporting user selection of processing type, device type, etc. The sample framework has improved the enumeration of device caps also. See Sample Framework.
Windowed Back Buffers. They can now be of a different format than the display. Added display modes with 10 bits per color channel. Added direct support for multihead adapters.
CopyRects. This has been replaced by IDirect3DDevice9::UpdateSurface.
State Blocks. These are no longer referred to with handles. They are now objects. See IDirect3DStateBlock9.

Endorphine
2003-03-17, 20:42:10
Pitchfork,
du hättest die automatische Smileyerkennung abschalten sollen :D

Manche Passagen sind ungewollt ungemein komisch anzublicken :bäh: ;D Aber bitte so lassen! *g*

Pitchfork
2003-03-17, 20:44:18
Originally posted by Demirug
So dann schaue wir mal was ich noch so zusammen bekomme:

....



War das aus dem Gedächtnis?

StefanV
2003-03-17, 20:48:00
Originally posted by Demirug
So dann schaue wir mal was ich noch so zusammen bekomme:

DX3:

- Erstes DX mit 3d Funktionen.
- Benutzte sogenannte ExecuteBuffer. Die meisten Entwickler haben das Konzept nicht verstanden und deshalb abgelehnt.

DX4: gab es nicht

DX5:
- Die ExecuteBuffer werden durch eine Schnittstelle ersetzt die mehr an OpenGL erinnert um die Entwickler glücklich zu machen

DX6:
- Einführung der Vertexbuffer
- Erstes DX mit einem RefRast
- Automatisches Texturmangment (Die Applikation muss sich nicht mehr selbst darum kümmern wann welche Texture in den Grafikspeicher kopiert wird)
- freie Vertexformate. Bei den bisherigen Versionen gab es nur eine begrenzte Anzahl von fest vorgegebenen Vertexformate.
- Vertexdaten müssen nicht mehr linear am Stück im Speicher liegen. Jede einzelne Komponete kann in einem anderen Speicherbreich sein.
- Multitexturing
- bump-mapping
- W-Buffer
- Stencil Buffer

DX7:
-HT&L
-Environment mapping mit Cubemaps
-skinning als Teil des HT&L

DX8:
- Direct Draw in D3D integration
- Pixel Shader
- Vertex Shader
- Multisample AA
- Point Sprites
- 3d Texturen
- indexed skinning als Teil des HT&L
- HOS (NPatch, RTPatch,...)

DX9:
- viele Detailverbesserungen ;)

Fehlt bei DX6 nicht noch EMBM ? ;)

Endorphine
2003-03-17, 20:49:01
Originally posted by Stefan Payne


Fehlt bei DX6 nicht noch EMBM ? ;) War das nicht ein proprietäres Feature, was nur die G400 konnte?

Demirug
2003-03-17, 20:50:25
Originally posted by Pitchfork


War das aus dem Gedächtnis?

Zum Teil. Der Rest kommt aus unterlagen die ich hier noch rumliegen habe.

StefanV
2003-03-17, 20:54:20
Originally posted by Endorphine
War das nicht ein proprietäres Feature, was nur die G400 konnte?

Nein, ist Teil der DX6 Spezi, wurde allerdings von MGA 'eingeführt'...

Genau wie DH, was heute jede Karte hat ;)

Pitchfork
2003-03-17, 20:54:37
Originally posted by Endorphine
War das nicht ein proprietäres Feature, was nur die G400 konnte? ^

DX6 brachte EMBM (fiel unter Bump Mapping). Konnte die G400, die Kyro, die Radeon, und dann alles ab ps_1_1.

Demirug
2003-03-17, 20:55:19
Stefan Payne: ja fehlt noch

Endorphine: Als DX6 aktuell war konnte es AFAIK nur der G400.

Pitchfork
2003-03-17, 21:16:00
Jetzt habe ich wirklich alles durchsucht, aber die CDs von DX2 und DX3 wollen einfach nicht auftauchen.... Schade.