精华内容
下载资源
问答
  • direct3d

    2020-07-26 18:08:21
    directx 包含显示,声音,输入,网络 显示部分包含DirectDraw及Direct3D DirectX11包含在Win7中,Windows10带的是DirectX12 但是DirectX12带的运行时兼容DirectX9

    directx 包含显示,声音,输入,网络

    显示部分包含DirectDraw及Direct3D

    DirectX11包含在Win7中,Windows10带的是DirectX12

    但是DirectX12带的运行时兼容DirectX9

     

    展开全文
  • Direct3D

    2007-09-29 09:00:51
    想学Direct3D的人看看
  • Direct3D基础——Direct3D概述

    千次阅读 2018-11-14 22:32:00
    Direct3D是一套底层图形API,借助该API我们可以利用硬件加速功能来实现3D场景的绘制,Direct3D可以视为应用程序和底层设备的交互。下图展示了Direct3D和硬件之间的交互关系: 图中Direct3D部分是一套已经定义好的...

    概述

    Direct3D是一套底层图形API,借助该API我们可以利用硬件加速功能来实现3D场景的绘制,Direct3D可以视为应用程序和底层设备的交互。下图展示了Direct3D和硬件之间的交互关系:

    图中Direct3D部分是一套已经定义好的,由Direct3D提供给应用程序和开发人员的接口函数,这些接口代表了当前Direct3D支持的所有功能。

    注意:有些功能Direct3D支持,但是硬件设备却未必支持。

    在上述的图中,Direct3D和硬件设备之间有一个环节:HAL(硬件抽象层),因为市面上的图形卡的种类太多了,Direct3D无法直接和硬件设备进行交互,例如:同样的一个清屏操作,不同的图形卡之间的操作可能大不一样。所以Direct3D就需要设备的制造商来实现一个HAL。

    HAL是一个指示设备完成某些操作的设备相关的代码集,简单地说:HAL是代码集

    基于HAL,Direct3D就可以不必关心底层硬件,其规范的指定便可以独立于硬件设备。

    总结:设备制造商将自己硬件所支持的所支持的全部功能,都是实现到HAL里面。那些Direct3D支持但是设备不支持的功能就无法在HAL中实现。也就是说:调用一个没有在HAL中实现的Direct3D函数,就会调用失败(除非他是一种顶点处理运算,并且用户已经指定了软件顶点运算处理方式,这点暂时我也不太明白,有时间请教大神之后,再来补充吧)。

    所以当你使用仅仅为少数的硬件实现的Direct3D功能的时候,务必要验证自己的硬件是否支持该功能。

    REF设备

    有时候Direct3D提供的而某些功能,本地的硬件不支持,但是还需要去使用这些功能,为了满足这些功能,Direct3D提供参考光栅设备,也就是REF设备,它能以软件的运行方式完全支持Direct3D API,借助REF设备您可以使用当前硬件不支持的功能,并对这些功能进行测试。

    注意:REF设备仅仅应用于开发阶段,它与DirectX SDK绑定在一起,无法发布给最终的用户,此外,REF设备的速度十分的缓慢,在测试以外的场合十分不适用。

    D3DDEVTYPE

    在代码程序中,HAL设备用值D3DDEVTYPE_HAL来指定,该值是D3DDEVTYPR枚举类型的成员之一。类似的:REF设备用值D3DDEVTYPR_REF来指定,该值也是D3DDEVTYPE,枚举成员之一。

    这些设备非常重要,因为我们在创建设备的时候,需要指定使用哪一种设备类型。

    COM(组件对象模型)

    COM(组件对象模型)是一项使得DirectX独立于编程语言并具备向下兼容特性的技术,我们常称COM对象为接口,可将其视为一个C++的类来使用。

    关于COM组件,我们应该铭记以下:

    1、我们仅仅需要知道的是:如何通过某个特定的函数或者COM接口的方法来获取指向一COM接口的指针。

    2、创建COM接口时,不可以使用C++的关键字new。

    3、使用完一个接口,应该调用接口相应的Release方法,而不是C++的关键字delete

    4、所有的COM接口都继承自IUnknown,该接口提供了Release方法,使COM对象能够对其掌控的内存进行管理。

    5、COM接口都有一个前缀“I”

    下面是:DirectX9.03D库的下载地址:链接:https://pan.baidu.com/s/1028NylXtE6T3Y7MSVEs2GQ 密码:rp5x

    展开全文
  • Direct3d12-Engine:帮助学习Direct 3D 12的游戏引擎
  • Direct3D11Demos 试用D3D11功能的地方。
  • Direct3D Architecture (Direct3D 9) This topic provides two high-level views of the architecture of Direct3D: Direct3D Graphics Pipeline - A view of the internal processing architecture of

    Direct3D Architecture (Direct3D 9)

    This topic provides two high-level views of the architecture of Direct3D:

    Direct3D Graphics Pipeline

    The graphics pipeline provides the horsepower to efficiently process and render Direct3D scenes to a display, taking advantage of available hardware. The following diagram shows the building blocks of the pipeline:

    Diagram of the Direct3D graphics pipeline

    Pipeline Component Description Related Topics
    Vertex Data Untransformed model vertices are stored in vertex memory buffers. Vertex Buffers (Direct3D 9),IDirect3DVertexBuffer9
    Primitive Data Geometric primitives, including points, lines, triangles, and polygons, are referenced in the vertex data with index buffers. Index Buffers (Direct3D 9),IDirect3DIndexBuffer9,PrimitivesHigher-Order Primitives (Direct3D 9)
    Tessellation The tesselator unit converts higher-order primitives, displacement maps, and mesh patches to vertex locations and stores those locations in vertex buffers. Tessellation (Direct3D 9)
    Vertex Processing Direct3D transformations are applied to vertices stored in the vertex buffer. Vertex Pipeline (Direct3D 9)
    Geometry Processing Clipping, back face culling, attribute evaluation, and rasterization are applied to the transformed vertices. Pixel Pipeline (Direct3D 9)
    Textured Surface Texture coordinates for Direct3D surfaces are supplied to Direct3D through the IDirect3DTexture9 interface. Direct3D Textures (Direct3D 9),IDirect3DTexture9
    Texture Sampler Texture level-of-detail filtering is applied to input texture values. Direct3D Textures (Direct3D 9)
    Pixel Processing Pixel shader operations use geometry data to modify input vertex and texture data, yielding output pixel color values. Pixel Pipeline (Direct3D 9)
    Pixel Rendering Final rendering processes modify pixel color values with alpha, depth, or stencil testing, or by applying alpha blending or fog. All resulting pixel values are presented to the output display. Pixel Pipeline (Direct3D 9)

     

    Direct3D System Integration

    The following diagram shows the relationships between a Window application, Direct3D,GDI, and the hardware:

    Diagram of the relationship between Direct3D and other system components

    Direct3D exposes a device-independent interface to an application. Direct3D applications can exist alongsideGDI applications, and both have access to the computer's graphics hardware through the device driver for the graphics card. UnlikeGDI, Direct3D can take advantage of hardware features by creating a hal device.

    A hal device provides hardware acceleration to graphics pipeline functions, based upon the feature set supported by the graphics card. Direct3D methods are provided to retrieve device display capabilities at run time. (See GetDeviceCaps andGetDeviceCaps.) If a capability is not provided by the hardware, the hal does not report it as a hardware capability.

    For more information about hal and reference devices supported by Direct3D, see Device Types (Direct3D 9).


    Pipeline Stages (Direct3D 10)

    The Direct3D 10 programmable pipeline is designed for generating graphics for realtime gaming applications. The following diagram shows the data flow from input to output through each of the programmable stages.

    Diagram of the data flow in the Direct3D 10 programmable pipeline

    All of the stages can be configured using the API. Stages featuring common shader cores (the rounded rectangular blocks) are programmable using the HLSL programming language. As you will see, this makes the pipeline extremely flexible and adaptable. The purpose of each of the stages is listed below.

    • Input-Assembler Stage - The input-assembler stage is responsible for supplying data (triangles, lines and points) to the pipeline.
    • Vertex-Shader Stage - The vertex-shader stage processes vertices, typically performing operations such as transformations, skinning, and lighting. A vertex shader always takes a single input vertex and produces a single output vertex.
    • Geometry-Shader Stage - The geometry-shader stage processes entire primitives. Its input is a full primitive (which is three vertices for a triangle, two vertices for a line, or a single vertex for a point). In addition, each primitive can also include the vertex data for any edge-adjacent primitives. This could include at most an additional three vertices for a triangle or an additional two vertices for a line. The Geometry Shader also supports limited geometry amplification and de-amplification. Given an input primitive, the Geometry Shader can discard the primitive, or emit one or more new primitives.
    • Stream-Output Stage - The stream-output stage is designed for streaming primitive data from the pipeline to memory on its way to the rasterizer. Data can be streamed out and/or passed into the rasterizer. Data streamed out to memory can be recirculated back into the pipeline as input data or read-back from the CPU.
    • Rasterizer Stage - The rasterizer is responsible for clipping primitives, preparing primitives for the pixel shader and determining how to invoke pixel shaders.
    • Pixel-Shader Stage - The pixel-shader stage receives interpolated data for a primitive and generates per-pixel data such as color.
    • Output-Merger Stage - The output-merger stage is responsible for combining various types of output data (pixel shader values, depth and stencil information) with the contents of the render target and depth/stencil buffers to generate the final pipeline result.

    Related topics

    Programming Guide for Direct3D 10

    Graphics Pipeline(Direct3D 11)

    The Direct3D 11 programmable pipeline is designed for generating graphics for realtime gaming applications. This section describes the Direct3D 11 programmable pipeline. The following diagram shows the data flow from input to output through each of the programmable stages.

    Diagram of the data flow in the Direct3D 11 programmable pipeline

    The graphics pipeline for Microsoft Direct3D 11 supports the same stages as the Direct3D 10 graphics pipeline, with additional stages to support advanced features.

    You can use the Direct3D 11API to configure all of the stages. Stages that feature common shader cores (the rounded rectangular blocks) are programmable by using the HLSL programming language. As you will see, this makes the pipeline extremely flexible and adaptable. The following list specifies the purpose of each of the stages.

    • Input-Assembler Stage - The input-assembler stage supplies data (triangles, lines and points) to the pipeline.
    • Vertex-Shader Stage - The vertex-shader stage processes vertices, typically performing operations such as transformations, skinning, and lighting. A vertex shader always takes a single input vertex and produces a single output vertex.
    • Geometry-Shader Stage - The geometry-shader stage processes entire primitives. Its input is a full primitive (which is three vertices for a triangle, two vertices for a line, or a single vertex for a point). In addition, each primitive can also include the vertex data for any edge-adjacent primitives. This could include at most an additional three vertices for a triangle or an additional two vertices for a line. The geometry shader also supports limited geometry amplification and de-amplification. Given an input primitive, the geometry shader can discard the primitive, or emit one or more new primitives.
    • Stream-Output Stage - The stream-output stage streams primitive data from the pipeline to memory on its way to the rasterizer. Data can be streamed out and/or passed into the rasterizer. Data streamed out to memory can be recirculated back into the pipeline as input data or read-back from the CPU.
    • Rasterizer Stage - The rasterizer clips primitives, prepares primitives for the pixel shader, and determines how to invoke pixel shaders.
    • Pixel-Shader Stage - The pixel-shader stage receives interpolated data for a primitive and generates per-pixel data such as color.
    • Output-Merger Stage - The output-merger stage combines various types of output data (pixel shader values, depth and stencil information) with the contents of the render target and depth/stencil buffers to generate the final pipeline result.
    • Hull-shader, tessellator, and domain-shader stages, which comprise the tessellation stages - The tessellation stages convert higher-order surfaces to triangles for rendering within the Direct3D 11 pipeline.

    The Direct3D 11 programmable pipeline is also designed for providing high-speed computing tasks. A compute shaderexpands Direct3D 11 beyond graphics to support general purpose GPU computing.

    Related topics

    Programming Guide for Direct3D 11


    展开全文
  • 本文只是对官方文档做出简单的翻译原文地址:Using Direct3D 11 feature data to supplement Direct3D feature levels 了解如何检查设备对可选功能的支持,包括在Windows的最新版本中添加的功能。 Direct3D ...

    本文只是对官方文档做出简单的翻译 原文地址:Using Direct3D 11 feature data to supplement Direct3D feature levels

    了解如何检查设备对可选功能的支持,包括在Windows的最新版本中添加的功能。

    Direct3D feature levels 指示定义良好的GPU功能集,这些功能大致对应于不同世代的图形硬件。这极大地简化了检查硬件功能的任务,并且还为各种不同的设备提供了一致的体验。

    为了解决不同硬件实现之间的某些差异(包括旧版硬件,移动硬件和现代硬件),某些功能被认为是可选的。可以通过调用ID3D11Device::CheckFeatureSupport 并提供相关的D3D11_FEATURE_DATA_ 结构来确定对这些功能的支持。本主题描述了Direct3D 11的各种可选功能,其中一些功能如何协同工作以及如何避免检查每个可选功能。

     

    如何检查可选功能支持

    调用ID3D11Device::CheckFeatureSupport,提供表示您要使用的可选功能的结构。如果该方法返回S_OK,则意味着您使用的是Direct3D运行时的版本,该版本支持可选功能。如果返回E_INVALIDARG,则表示您使用的是Direct3D 11运行时的版本,而不是添加可选功能之前的版本-这表示该可选功能不可用,以及同一版本的Direct3D 11或其他引入的其他可选功能也不可用

     

    我可以最小化功能支持检查所需的工作吗?

    除了具有正确的Direct3D 11运行时(通常与Windows版本关联)之外,图形驱动程序还必须足够新以支持可选功能。如果硬件能够支持WDDM规范,则需要支持其可选功能。因此,当图形驱动程序支持在特定版本的Windows中添加的可选功能之一时,通常意味着图形驱动程序支持在该版本的Windows中添加的其他功能。例如,如果设备驱动程序支持功能级别9上的阴影,则您知道该设备驱动程序至少为WDDM 1.2。

    注意如果Microsoft Direct3D设备支持feature level 11.1,则SAD4ShaderInstructions 和 ExtendedDoublesShaderInstructions会自动支持 D3D11_FEATURE_DATA_D3D11_OPTIONS指示的所有可选功能。

    运行时始终将以下成员分组设置相同。也就是说,分组中的所有值一起为TRUE 或 FALSE

    • 丢弃APISeenByDriver和FlagsForUpdateAndCopySeenByDriver
    • ClearView,CopyWithOverlap,ConstantBufferPartialUpdate,ConstantBufferOffsetting和MapNoOverwriteOnDynamicConstantBuffer
    • MapNoOverwriteOnDynamicBufferSRV和MultisampleRTVWithForcedSampleCountOne

    feature level 11.2选项D3D11_FEATURE_D3D11_OPTIONS1):此字段指示的可选功能是独立的,必须单独检查。

    Windows RT 8.1和Windows Phone 8.1设备上的功能支持

    Windows RT平板设备可以支持各种功能级别和可选功能,经过优化以降低功耗,并使用集成的图形而不是独立的GPU。用于ARM设备的Windows应用商店应用必须支持feature level  9.1。适用于Windows RT的DirectX应用程序应利用可选功能,这些功能可在可用时节省电源和周期(例如,简单的实例化)。

    Windows Phone 8移动设备支持具有特定可选功能的feature level  9.3。请参阅Direct3D feature level 9_3 for Windows Phone 8

     

    Direct3D 11的可选功能是什么?

    本文的其余部分描述了Direct3D 11.2中可用的可选功能。按添加的时间顺序排列功能,以便您了解Direct3D 11的不同版本中的功能。

    功能级别10的可选计算着色器支持

    以下功能始终可用于feature level  10的设备:

    D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS: 如果为TRUE,则设备支持计算着色器。这包括对原始和结构化缓冲区的支持。

    feature level  10_0或10_1设备支持此功能时,不能保证该设备支持计算着色器4.1。如果 ID3D11Device::CreateComputeShader 引发计算着色器4.1程序异常,则应用应准备好使用计算着色器4.0。

    功能级别9的可选功能

    从Windows 8开始,为feature level  9添加了以下功能:

    D3D11_FEATURE_DATA_D3D9_OPTIONS表示支持非2次幂纹理的环绕纹理寻址。如果支持此功能,则可以将D3D11_TEXTURE_ADDRESS_MODE_WRAP与此类纹理一起使用。

    D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT表示支持着色器模型4.0功能级别9_x着色器中的比较采样器。它用于像素着色器中的深度测试,从而支持常见技术,例如阴影贴图和模板。

    从Windows 8.1开始为feature level  9的设备添加了以下功能:

    D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT表示支持可能在DirectX 9级硬件上可用的简单实例化功能。 简单实例化意味着用于定义输入布局的 D3D11_INPUT_ELEMENT_DESC结构的所有InstanceDataStepRate成员必须等于1。支持功能级别9.3或更高版本的设备已经包含了对实例化的完全支持。

     

    着色器程序的可选浮点精度支持

    D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT启用最小精度时,此结构中的字段指示浮点数的长度;如果仅支持完整的32位浮点精度,则为0。

    对于feature level 9的设备,顶点着色器的最低精度可能不同于像素着色器。顶点着色器的精度在AllOtherShaderStagesMinPrecision字段中指示。

    D3D11_FEATURE_DATA_DOUBLESfeature level 11的设备可以在shader model 5.0程序中支持双精度计算。在着色器中支持双精度计算意味着可以在计算着色器程序中将浮点数转换为双精度,从而提供了每次着色器遍次中更高精度计算的好处。在将双精度数字写入输出缓冲区之前,必须将其转换回浮点数。注意,不一定支持双精度除法。

     

    Direct3D 11.2的附加功能

    Direct3D 11.2添加了Direct3D 11设备可以支持的四个新的可选功能。这些功能位于D3D11_FEATURE_DATA_D3D11_OPTIONS1 结构中:

    TiledResourcesTier:指示对切片资源的支持,并指示支持的层级别。

    MinMaxFiltering:表示支持D3D11_FILTER_MINIMUM_ *和D3D11_FILTER_MAXIMUM_ *过滤选项,这些选项将过滤结果与最小值(或最大值)进行比较。请参阅 D3D11_FILTER.

    ClearViewAlsoSupportsDepthOnlyFormats:表示支持清除深度缓冲区资源视图。

    MapOnDefaultBuffers:表示支持映射使用D3D11_USAGE_DEFAULT标志创建的渲染目标缓冲区。

     

    基于图块的渲染

    D3D11_FEATURE_DATA_ARCHITECTURE_INFO:  指示图形设备是否批处理渲染命令,并默认执行基于图块的渲染。这可以用作图形引擎优化的提示。

     

    开发和调试的可选功能

    D3D11_FEATURE_DATA_D3D11_OPTIONS :: DiscardAPIsSeenByDriver:您可以在开发过程中监视此成员,以排除硬件驱动程序上的旧驱动程序,否则,DiscardView 和 DiscardResource可能会有所帮助。

    D3D11_FEATURE_DATA_MARKER_SUPPORT:  如果硬件和驱动程序支持GPU配置文件的数据标记,则支持此功能。

    展开全文
  • Beginning Direct3D Game Programming Direct3D技术内幕
  • 本编程指南包含有关如何使用Direct3D 12可编程管道创建自定义图形引擎的信息。 Direct3D 12标头和库是Windows 10 SDK的一部分。使用Direct3D 12无需单独下载或安装。 在这个部分 话题 描述 Direct3D 12编程...
  • 本文只是对官方文档做出简单的翻译原文地址:Direct3D 11 on Downlevel Hardware Direct3D 11 on Downlevel Hardware 本节讨论如何设计Direct3D 11以支持从DirectX 9到DirectX 11的新硬件和现有硬件。 此图显示...
  • direct3d渲染

    2018-04-13 20:49:39
    Set up a Direct3D application and perform real-time 3D rendering with C# and SharpDX Learn techniques for debugging your Direct3D application Render a 3D environment with lights, shapes, and ...
  • Direct3D(1st) Direct3D入门

    2018-12-13 12:38:32
    Direct3D是一个低级API,用于使用渲染管道绘制基元或使用计算着色器执行并行操作。 什么是Direct3DDirect3D是一个低级API,可用于每帧绘制三角形,线条或点,或在GPU上启动高度并行操作。 Direct3D: 在连贯的...
  • direct3d 12

    2018-07-14 21:48:30
    direct3D 12的api,离线的,可以从msdn上下载,不过方便离线使用
  • 您可以使用Microsoft Direct3D 11图形为游戏和科学和桌面应用程序创建3D图形。 本节包含有关使用Direct3D 11图形进行编程的信息。 有关更多信息,请参阅Direct3D 11功能。 . . 支持的运行环境 Windows / C +...
  • Pipeline Stages(DX11)...The Direct3D 11 programmable pipeline is designed for generating graphics for realtime gaming applications. This section describes the Direct3D 11 programmable pipeline. The f
  • direct3D动画,用Direct3D写得一个3D动画。一个学习Direct3D的好例子
  • direct3D代码

    2015-12-26 22:13:33
    direct3D制作雪花场景cpp源代码
  • Direct3D游戏 Direct3D游戏开发 Direct3D游戏开发 Direct3D游戏开发
  • Direct3D sample code

    2017-10-06 09:53:54
    Direct3D sample code,使用vs2012级以上编译运行,方便学习Direct3D游戏编程
  • 本文只是对官方文档做出简单的翻译 原文地址:Introduction to a Device in Direct3D 11 Introduction to a Device in Direct3D 11 Direct3D 11对象模型将资源创建和渲染功能分为设备和一个或多个上下文。 这种分离...
  • Direct3D Quake-开源

    2021-04-27 20:05:24
    Quake 1到Direct 3D的端口。 这是本机端口,不使用任何包装程序或类似方法。 使用了Direct 3D 9.0c,并且所有代码都是从头开始编写的,旨在尽可能多地复制GLQuake的功能。
  • Direct3D示例

    2012-10-18 09:37:41
    Direct3D示例
  • direct3D入门

    2012-02-10 13:48:14
    direct3D入门
  • Direct3D 12简介

    2021-04-12 16:20:26
    Direct3D 12简介 DirectX 12是Microsoft最新的DirectX API版本。 Direct3D随DirectX 12一起提供,Direct3D 12是DirectX API集合中的图形API(其他API包括DirectSound,DirectInput,DirectDraw等)。 Direct3D 12...
  • Direct3D编程

    2013-11-10 17:18:30
    介绍direct3D编程的数学基础及初步概念
  • Direct3D 加速停用

    2016-01-29 03:31:11
    Direct3D 加速停用程序
  • Direct3d地形

    2014-05-31 11:46:50
    Direct3D实现3维地形 有详细的注释 并能够实现自由漫游

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,138
精华内容 3,255
关键字:

direct3d