Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Direct3D
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Direct3D 10== {{See also|Windows Display Driver Model}} [[Windows Vista]] includes a major update to the Direct3D API. Originally called WGF 2.0 (Windows Graphics Foundation 2.0), then DirectX 10 and DirectX Next, '''Direct3D 10'''<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/bb172268(v=vs.85).aspx|title=API Features (Direct3D 10)|publisher=MSDN|access-date=30 September 2014}}</ref> features an updated [[shader model]] 4.0 and optional interruptibility for shader programs.<ref name="gs"/> In this model shaders still consist of fixed stages as in previous versions, but all stages support a nearly unified interface, as well as a unified access paradigm for resources such as textures and shader constants. The language itself has been extended to be more expressive, including integer operations, a greatly increased instruction count, and more C-like language constructs. In addition to the previously available [[vertex shader|vertex]] and [[pixel shader]] stages, the API includes a [[geometry shader]] stage that breaks the old model of one vertex in/one vertex out, to allow geometry to be generated from within a shader, thus allowing for complex geometry to be generated entirely by the graphics hardware. Windows XP and earlier are not supported by DirectX 10.0 and above. Furthermore, Direct3D 10 dropped support for the retained mode API which had been a part of Direct3D since the beginning, making Windows Vista incompatible with 3D games that had used the retained mode API as their [[Rendering (computer graphics)|rendering engine]].<ref>{{cite web |last=Microsoft Support |date=March 17, 2009 |title=Direct3D Retained Mode removed from Windows Vista |url=http://support.microsoft.com/kb/969150 |url-status=unfit |archive-url=https://web.archive.org/web/20130601172521/http://support.microsoft.com:80/kb/969150 |archive-date=June 1, 2013}}</ref> Unlike prior versions of the API, Direct3D 10 no longer uses "capability bits" (or "caps") to indicate which features are supported on a given graphics device. Instead, it defines a minimum standard of hardware capabilities which must be supported for a display system to be "Direct3D 10 compatible". This is a significant departure, with the goal of streamlining application code by removing capability-checking code and special cases based on the presence or absence of specific capabilities. Because Direct3D 10 hardware was comparatively rare after the initial release of [[Windows Vista]] and because of the massive install base of non-Direct3D 10 compatible graphics cards, the first Direct3D 10-compatible games still provide Direct3D 9 render paths. Examples of such titles are games originally written for Direct3D 9 and ported to Direct3D 10 after their release, such as ''[[Company of Heroes]]'', or games originally developed for Direct3D 9 with a Direct3D 10 path retrofitted later during their development, such as ''[[Hellgate: London]]'' or ''[[Crysis]]''. The DirectX 10 SDK became available in February 2007.<ref>{{cite web|url=http://www.microsoft.com/download/en/details.aspx?id=9539|archive-url=https://archive.today/20120903141508/http://www.microsoft.com/download/en/details.aspx?id=9539|url-status=dead|archive-date=2012-09-03|title=DirectX Software Development Kit, February 2007|publisher=Microsoft}}</ref> ===Direct3D 10.0=== '''Direct3D 10.0''' level hardware must support the following features: the ability to process entire primitives in the new geometry-shader stage, the ability to output pipeline-generated vertex data to memory using the stream-output stage, multisampled alpha-to-coverage support, readback of a depth/stencil surface or a multisampled resource once it is no longer bound as a render target, full HLSL integration – all Direct3D 10 shaders are written in HLSL and implemented with the common-shader core, integer and bitwise shader operations, organization of pipeline state into 5 immutable state objects, organization of shader constants into constant buffers, increased number of render targets, textures, and samplers, no shader length limit, new resource types and resource formats,<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/bb205133(v=vs.85).aspx|title=Resource Types (Direct3D 10)|publisher=MSDN|access-date=30 September 2014}}</ref> layered runtime/API layers,<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/bb205068(v=vs.85).aspx|title=API Layers (Direct3D 10)|publisher=MSDN|access-date=30 September 2014}}</ref> option to perform per-primitive material swapping and setup using a geometry shader, increased generalization of resource access using a view, removed legacy hardware capability bits (caps). * Fixed pipelines<ref>{{cite web|url=http://news.com.com/An+inside+look+at+Windows+Vista+-+page+4/2100-1043_3-6051736-4.html?tag=st.num|title=CNet News|access-date=30 September 2014}}</ref> are being done away with in favor of fully programmable pipelines (often referred to as unified pipeline architecture), which can be programmed to emulate the same. * New state object to enable (mostly) the CPU to change states efficiently. * [[Unified shader model]] enhances the programmability of the [[graphics pipeline]]. It adds instructions for integer and bitwise calculations. * The common shader core<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/bb509580(v=vs.85).aspx|title=Common-Shader Core|date=June 30, 2021 |publisher=Microsoft}}</ref> provides a full set of IEEE-compliant 32-bit integer and bitwise operations. These operations enable a new class of algorithms in graphics hardware—examples include compression and packing techniques, FFTs, and bitfield program-flow control. * [[Geometry shaders]],<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ff471423(v=vs.85).aspx|title=Geometry Shader Features|date=August 23, 2019 |publisher=Microsoft}}</ref><ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/bb205146(v=vs.85).aspx#Geometry_Shader_Stage|title=Shader Stages|date=October 11, 2016 |publisher=Microsoft}}</ref> which work on adjacent triangles which form a [[Polygon mesh|mesh]]. * [[Texture mapping|Texture]] arrays enable swapping of textures in GPU without CPU intervention. * [[Predicated rendering]] allows drawing calls to be ignored based on some other conditions. This enables rapid [[hidden-surface determination|occlusion culling]], which prevents objects from being rendered if it is not visible or too far to be visible. * [[Geometry instancing|Instancing 2.0]] support, allowing multiple instances of similar meshes, such as armies, or grass or trees, to be rendered in a single draw call, reducing the processing time needed for multiple similar objects to that of a single one.<ref>{{cite web |url=http://www.tomshardware.com/reviews/direct3d-10,1356-6.html |title=What Direct3D 10 is all about – Additional Improvements |date=2006-11-08|publisher=Tom's Hardware}}</ref> ===Direct3D 10.1=== '''Direct3D 10.1'''<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/bb694530(v=vs.85).aspx|title=Direct3D 10.1 Features|publisher=MSDN|access-date=30 September 2014}}</ref> was announced by Microsoft shortly after the release of Direct3D 10 as a minor update. The specification was finalized with the release of November 2007 DirectX SDK and the runtime was shipped with the [[Windows Vista]] [[Windows Vista Service Pack 1|SP1]], which is available since mid-March 2008. Direct3D 10.1 sets a few more image quality standards for graphics vendors, and gives developers more control over image quality.<ref>{{cite web|url=http://www.extremetech.com/extreme/57370-microsoft-presents-directx-101-details-at-siggraph |title=Microsoft Presents DirectX 10.1 Details at SIGGRAPH|date=2007-08-07|publisher=ExtremeTech}}</ref><ref name=D3D10_1_features>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/bb694530 |title=Direct3D 10.1 Features |date=January 6, 2021 |publisher=MSDN}}</ref> Features include finer control over anti-aliasing (both multisampling and supersampling with per sample shading and application control over sample position) and more flexibilities to some of the existing features (cubemap arrays and independent blending modes). Direct3D 10.1 level hardware must support the following features: Multisampling has been enhanced to generalize coverage based transparency and make multisampling work more effectively with multi-pass rendering, better culling behavior – Zero-area faces are automatically culled; this affects wireframe rendering only, independent blend modes per render target, new sample-frequency pixel shader execution with primitive rasterization, increased pipeline stage bandwidth, both color and depth/stencil MSAA surfaces can now be used with CopyResource as either a source or destination, MultisampleEnable only affects line rasterization (points and triangles are unaffected), and is used to choose a line drawing algorithm. This means that some multisample rasterization from Direct3D 10 are no longer supported, Texture Sampling – sample_c and sample_c_lz instructions are defined to work with both Texture2DArrays and TextureCubeArrays use the Location member (the alpha component) to specify an array index, support for TextureCubeArrays. * Mandatory 32-bit [[floating point]] filtering. * Floating Point Rules – Uses the same IEEE-754 rules for floating-point EXCEPT 32-bit floating point operations have been tightened to produce a result within 0.5 unit-last-place (0.5 ULP) of the infinitely precise result. This applies to addition, subtraction, and multiplication. (accuracy to 0.5 ULP for multiply, 1.0 ULP for reciprocal). * Formats – The precision of float16 blending has increased to 0.5 ULP. Blending is also required for UNORM16/SNORM16/SNORM8 formats. * Format Conversion while copying between certain 32/64/128 bit prestructured, typed resources and compressed representations of the same bit widths. * Mandatory support for 4x MSAA for all render targets except R32G32B32A32 and R32G32B32.<ref name="msdn.microsoft.com">{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ff476499(v=vs.85).aspx|title=ID3D11Device::CheckMultisampleQualityLevels method|publisher=MSDN|access-date=30 September 2014}}</ref> * [[High Level Shader Language|Shader model]] 4.1 Unlike Direct3D 10 which strictly required Direct3D 10-class hardware and driver interfaces, Direct3D 10.1 runtime can run on Direct3D 10.0 hardware using a concept of "[[#Feature levels|feature levels]]",<ref name=D3DFeatureLevels_chuckw/><ref name="D3D10featurelevel">{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/bb694529 |title=D3D10_FEATURE_LEVEL1 enumeration |access-date=2009-11-22 |publisher=MSDN}}</ref><ref name="ReferenceC">{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876.aspx|title=Direct3D feature levels|publisher=MSDN|access-date=30 September 2014}}</ref> but new features are supported exclusively by new hardware which expose feature level 10_1. The only available Direct3D 10.1 hardware as of June 2008 were the [[Radeon R600|Radeon HD 3000 series]] and [[Radeon R700|Radeon HD 4000 series]] from [[ATI (brand)|ATI]]; in 2009, they were joined by [[S3 Chrome#Chrome 400|Chrome 430/440GT]] GPUs from [[S3 Graphics]] and select lower-end models in [[GeForce 200 series]] from [[Nvidia]]. In 2011, [[Intel]] chipsets started supporting Direct3D 10.1 with the introduction of [[Intel HD Graphics]] 2000 (GMA HD).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)