Living without D3DX
2015-12-15 23:13
1806 查看
General Helpers
The DirectXTool Kit provides a number of helpers that are designed to simplify Direct3D 11 programming in the tradition of the original D3DX library. You can find the library on CodePlex and GitHub.
ID3DX10Sprite | SpriteBatch |
ID3DX10Font | SpriteFont, SpriteBatch |
ID3DX10Mesh | Model, ModelMesh, ModelMeshPart |
D3DXCreateBox D3DXCreateCylinder D3DXCreateSphere D3DXCreateTeapot D3DXCreateTorus | GeometricPrimitive |
D3DX11CreateShaderResourceViewFromFile | CreateXXXTextureFromFile |
D3DX11CreateShaderResourceViewFromResource D3DX11CreateShaderResourceViewFromMemory | CreateXXXTextureFromMemory |
D3DX11CreateTextureFromFile | CreateXXXTextureFromFile |
D3DX11CreateTextureFromResource D3DX11CreateTextureFromMemory | CreateXXXTextureFromMemory |
D3DX11SaveTextureToFile | SaveXXXTextureToFile |
HLSL Functions
The HLSL compiler, shader reflection API, and related functionality has been broken out into it's own D3DCompileDLLfor some time. D3DCompile is in the Windows 8.x SDK and is included with VS 2012 and VS 2013 Preview.
D3DXCompileShaderFromFile D3DX10CompileFromFile D3DX11CompileFromFile | D3DCompileFromFile |
D3DXCompileShader D3D10CompileShader D3DX10CompileFromMemory D3DX11CompileFromMemory | D3DCompile |
D3DXCompileShaderFromResource D3DX10CompileFromResource D3DX11CompileFromResource | No direct equivalent. Can use resource APIs and then D3DCompileabove. |
D3DXPreprocessShader D3DXPreprocessShaderFromFile D3DXPreprocessShaderFromResource D3D10PreprocessShader D3DX10PreprocessShaderFromFile D3DX10PreprocessShaderFromMemory D3DX10PreprocessShaderFromResource D3DX11PreprocessShaderFromFile D3DX11PreprocessShaderFromMemory D3DX11PreprocessShaderFromResource | D3DPreprocess |
D3DXDisassembleShader D3D10DisassembleShader D3DX10DisassembleShader | D3DDisassemble |
D3D10ReflectShader D3DX10ReflectShader | D3DReflect D3D11Reflect |
ID3DXBuffer ID3D10Blob | ID3DBlob |
D3DXCreateBuffer D3D10CreateBlob | D3DCreateBlob |
D3D10GetInputSignatureBlob D3D10GetOutputSignatureBlob D3D10GetInputAndOutputSignatureBlob D3D10GetShaderDebugInfo | D3DGetBlobPart |
Texture Functions
The DirectXTex libraryis primarily intended for texture
processing offline with tools, although it can also be used at runtime for doing texture block compression, mipmap generation, or handling more general image processing needs. DirectXTK is
intended for use at runtime with light-weight helpers and image loaders, but does not provide support for general runtime texture format conversion. You can find both libraries on CodePlex and GitHub.
D3DX11ComputeNormalMap | DirectXTex library, ComputeNormalMap |
D3DX11CreateShaderResourceViewFromFile D3DX11CreateTextureFromFile | DDSTextureLoader: CreateDDSTextureFromFile WICTextureLoader: CreateWICTextureFromFile DirectXTex library (tools), LoadFromXXXFilethen CreateShaderResourceViewor CreateTexture |
D3DX11CreateShaderResourceViewFromMemory D3DX11CreateTextureFromMemory | DDSTextureLoader: CreateDDSTextureFromMemory WICTextureLoader: CreateWICTextureFromMemory DirectXTex library (tools), LoadFromXXXMemorythen CreateShaderResourceViewor CreateTexture |
D3DX11CreateShaderResourceViewFromResource D3DX11CreateTextureFromResource | No direct equivalent, can use Win32 resource functions and then the ‘from memory’ APIs above. |
D3DX11FilterTexture | DirectXTex library, GenerateMipMapsand GenerateMipMaps3D |
D3DX11GetImageInfoFromFile | DirectXTex library, GetMetadataFromXXXFile |
D3DX11GetImageInfoFromMemory | DirectXTex library, GetMetadataFromXXXMemory |
D3DX11GetImageInfoFromResource | No direct equivalent, can use Win32 resource functions and then the ‘from memory’ APIs above. |
D3DX11LoadTextureFromTexture | DirectXTex library, Resize, Convert, Compress, Decompress, and/or CopyRectangle |
D3DX11SaveTextureToFile | ScreenGrab: SaveDDSTextureToFileor SaveWICTextureToFile DirectXTex library, CaptureTexturethen SaveToXXXFile |
D3DX11SaveTextureToMemory | DirectXTex library, CaptureTexturethen SaveToXXXMemory |
Geometry Functions
The DirectXMesh libraryis intended for geometry processing offline with tools, although it can be used at runtime. You can find the library on CodePlex and GitHub.
D3DXCleanMesh | Clean |
D3DXComputeNormals | ComputeNormals |
D3DXComputeTangent D3DXComputeTangentFrame D3DXComputeTangentFrameEx | ComputeTangentFrame |
ID3DX10Mesh::GenerateAdjacencyAndPointReps | GenerateAdjacencyAndPointReps |
ID3DX10Mesh::GenerateGSAdjacency | GenerateGSAdjacency |
ID3DX10Mesh::Optimize | AttributeSort OptimizeFacesEx OptimizeVertices ReorderIB FinalizeIB FinalizeVB |
D3DXOptimizeFaces | OptimizeFaces |
D3DXOptimizeVertices | OptimizeVertices |
D3DXValidMesh | Validate |
Math
The legacy D3DXMath library has been replaced by DirectXMath.The library is in the Windows 8.x SDK and is included with VS 2012 and VS 2013 Preview.
D3DXFLOAT16 | HALF |
D3DXMATRIXA16 | XMMATRIX or XMFLOAT4X4A |
D3DXQUATERNION D3DXPLANE D3DXCOLOR | XMVECTOR is used rather than having unique types, so you will likely need to use an XMFLOAT4 |
D3DXVECTOR2 | XMFLOAT2 |
D3DXVECTOR2_16F | XMHALF2 |
D3DXVECTOR3 | XMFLOAT3 |
D3DXVECTOR4 | XMFLOAT4 (or if you can guarantee the data is 16-byte aligned, XMVECTOR orXMFLOAT4A ) |
D3DXVECTOR4_16F | XMHALF4 |
D3DX_PI | XM_PI |
D3DX_1BYPI | XM_1DIVPI |
D3DXToRadian | XMConvertToRadians |
D3DXToDegree | XMConvertToDegrees |
D3DXBoxBoundProbe | BoundingBox::Intersects(XMVECTOR, XMVECTOR, float&) |
D3DXComputeBoundingBox | BoundingBox::CreateFromPoints |
D3DXComputeBoundingSphere | BoundingSphere::CreateFromPoints |
D3DXSphereBoundProbe | BoundingSphere::Intersects(XMVECTOR, XMVECTOR, float&) |
D3DXIntersectTriFunction | TriangleTests::Intersects |
D3DXFloat32To16Array | XMConvertFloatToHalfStream |
D3DXFloat16To32Array | XMConvertHalfToFloatStream |
D3DXVec2Length | XMVector2Length or XMVector2LengthEst |
D3DXVec2LengthSq | XMVector2LengthSq |
D3DXVec2Dot | XMVector2Dot |
D3DXVec2CCW | XMVector2Cross |
D3DXVec2Add | XMVectorAdd |
D3DXVec2Subtract | XMVectorSubtract |
D3DXVec2Minimize | XMVectorMin |
D3DXVec2Maximize | XMVectorMax |
D3DXVec2Scale | XMVectorScale |
D3DXVec2Lerp | XMVectorLerp or XMVectorLerpV |
D3DXVec2Normalize | XMVector2Normalize or XMVector2NormalizeEst |
D3DXVec2Hermite | XMVectorHermite or XMVectorHermiteV |
D3DXVec2CatmullRom | XMVectorCatmullRom or XMVectorCatmullRomV |
D3DXVec2BaryCentric | XMVectorBaryCentric or XMVectorBaryCentricV |
D3DXVec2Transform | XMVector2Transform |
D3DXVec2TransformCoord | XMVector2TransformCoord |
D3DXVec2TransformNormal | XMVector2TransformNormal |
D3DXVec2TransformArray | XMVector2TransformStream |
D3DXVec2TransformCoordArray | XMVector2TransformCoordStream |
D3DXVec2TransformNormalArray | XMVector2TransformNormalStream |
D3DXVec3Length | XMVector3Length or XMVector3LengthEst |
D3DXVec3LengthSq | XMVector3LengthSq |
D3DXVec3Dot | XMVector3Dot |
D3DXVec3Cross | XMVector3Cross |
D3DXVec3Add | XMVectorAdd |
D3DXVec3Subtract | XMVectorSubtract |
D3DXVec3Minimize | XMVectorMin |
D3DXVec3Maximize | XMVectorMax |
D3DXVec3Scale | XMVectorScale |
D3DXVec3Lerp | XMVectorLerp or XMVectorLerpV |
D3DXVec3Normalize | XMVector3Normalize or XMVector3NormalizeEst |
D3DXVec3Hermite | XMVectorHermite or XMVectorHermiteV |
D3DXVec3CatmullRom | XMVectorCatmullRom or XMVectorCatmullRomV |
D3DXVec3BaryCentric | XMVectorBaryCentric or XMVectorBaryCentricV |
D3DXVec3Transform | XMVector3Transform |
D3DXVec3TransformCoord | XMVector3TransformCoord |
D3DXVec3TransformNormal | XMVector3TransformNormal |
D3DXVec3TransformArray | XMVector3TransformStream |
D3DXVec3TransformCoordArray | XMVector3TransformCoordStream |
D3DXVec3TransformNormalArray | XMVector3TransformNormalStream |
D3DXVec3Project | XMVector3Project |
D3DXVec3Unproject | XMVector3Unproject |
D3DXVec3ProjectArray | XMVector3ProjectStream |
D3DXVec3UnprojectArray | XMVector3UnprojectStream |
D3DXVec4Length | XMVector4Length or XMVector4LengthEst |
D3DXVec4LengthSq | XMVector4LengthSq |
D3DXVec4Dot | XMVector4Dot |
D3DXVec4Add | XMVectorAdd |
D3DXVec4Subtract | XMVectorSubtract |
D3DXVec4Minimize | XMVectorMin |
D3DXVec4Maximize | XMVectorMax |
D3DXVec4Scale | XMVectorScale |
D3DXVec4Lerp | XMVectorLerp or XMVectorLerpV |
D3DXVec4Cross | XMVector4Cross |
D3DXVec4Normalize | XMVector4Normalize or XMVector4NormalizeEst |
D3DXVec4Hermite | XMVectorHermite or XMVectorHermiteV |
D3DXVec4CatmullRom | XMVectorCatmullRom or XMVectorCatmullRomV |
D3DXVec4BaryCentric | XMVectorBaryCentric or XMVectorBaryCentricV |
D3DXVec4Transform | XMVector4Transform |
D3DXVec4TransformArray | XMVector4TransformStream |
D3DXMatrixIdentity | XMMatrixIdentity |
D3DXMatrixDeterminant | XMMatrixDeterminant |
D3DXMatrixDecompose | XMMatrixDecompose |
D3DXMatrixTranspose | XMMatrixTranspose |
D3DXMatrixMultiply | XMMatrixMultiply |
D3DXMatrixMultiplyTranspose | XMMatrixMultiplyTranspose |
D3DXMatrixInverse | XMMatrixInverse |
D3DXMatrixScaling | XMMatrixScaling |
D3DXMatrixTranslation | XMMatrixTranslation |
D3DXMatrixRotationX | XMMatrixRotationX |
D3DXMatrixRotationY | XMMatrixRotationY |
D3DXMatrixRotationZ | XMMatrixRotationZ |
D3DXMatrixRotationAxis | XMMatrixRotationAxis |
D3DXMatrixRotationQuaternion | XMMatrixRotationQuaternion |
D3DXMatrixRotationYawPitchRoll | XMMatrixRotationRollPitchYaw (Note the order of parameters is different: D3DXMath takes yaw, pitch, roll, DirectXMath takes pitch, yaw, roll) |
D3DXMatrixTransformation | XMMatrixTransformation |
D3DXMatrixTransformation2D | XMMatrixTransformation2D |
D3DXMatrixAffineTransformation | XMMatrixAffineTransformation |
D3DXMatrixAffineTransformation2D | XMMatrixAffineTransformation2D |
D3DXMatrixLookAtRH | XMMatrixLookAtRH |
D3DXMatrixLookAtLH | XMMatrixLookAtLH |
D3DXMatrixPerspectiveRH | XMMatrixPerspectiveRH |
D3DXMatrixPerspectiveLH | XMMatrixPerspectiveLH |
D3DXMatrixPerspectiveFovRH | XMMatrixPerspectiveFovRH |
D3DXMatrixPerspectiveFovLH | XMMatrixPerspectiveFovLH |
D3DXMatrixPerspectiveOffCenterRH | XMMatrixPerspectiveOffCenterRH |
D3DXMatrixPerspectiveOffCenterLH | XMMatrixPerspectiveOffCenterLH |
D3DXMatrixOrthoRH | XMMatrixOrthographicRH |
D3DXMatrixOrthoLH | XMMatrixOrthographicLH |
D3DXMatrixOrthoOffCenterRH | XMMatrixOrthographicOffCenterRH |
D3DXMatrixOrthoOffCenterLH | XMMatrixOrthographicOffCenterLH |
D3DXMatrixShadow | XMMatrixShadow |
D3DXMatrixReflect | XMMatrixReflect |
D3DXQuaternionLength | XMQuaternionLength |
D3DXQuaternionLengthSq | XMQuaternionLengthSq |
D3DXQuaternionDot | XMQuaternionDot |
D3DXQuaternionIdentity | XMQuaternionIdentity |
D3DXQuaternionIsIdentity | XMQuaternionIsIdentity |
D3DXQuaternionConjugate | XMQuaternionConjugate |
D3DXQuaternionToAxisAngle | XMQuaternionToAxisAngle |
D3DXQuaternionRotationMatrix | XMQuaternionRotationMatrix |
D3DXQuaternionRotationAxis | XMQuaternionRotationAxis |
D3DXQuaternionRotationYawPitchRoll | XMQuaternionRotationRollPitchYaw (Note the order of parameters is different: D3DXMath takes yaw, pitch, roll, DirectXMath takes pitch, yaw, roll) |
D3DXQuaternionMultiply | XMQuaternionMultiply |
D3DXQuaternionNormalize | XMQuaternionNormalize or XMQuaternionNormalizeEst |
D3DXQuaternionInverse | XMQuaternionInverse |
D3DXQuaternionLn | XMQuaternionLn |
D3DXQuaternionExp | XMQuaternionExp |
D3DXQuaternionSlerp | XMQuaternionSlerp or XMQuaternionSlerpV |
D3DXQuaternionSquad | XMQuaternionSquad or XMQuaternionSquadV |
D3DXQuaternionSquadSetup | XMQuaternionSquadSetup |
D3DXQuaternionBaryCentric | XMQuaternionBaryCentric or XMQuaternionBaryCentricV |
D3DXPlaneDot | XMPlaneDot |
D3DXPlaneDotCoord | XMPlaneDotCoord |
D3DXPlaneDotNormal | XMPlaneDotNormal |
D3DXPlaneScale | XMVectorScale |
D3DXPlaneNormalize | XMPlaneNormalize or XMPlaneNormalizeEst |
D3DXPlaneIntersectLine | XMPlaneIntersectLine |
D3DXPlaneFromPointNormal | XMPlaneFromPointNormal |
D3DXPlaneFromPoints | XMPlaneFromPoints |
D3DXPlaneTransform | XMPlaneTransform |
D3DXPlaneTransformArray | XMPlaneTransformStream |
D3DXColorNegative | XMColorNegative |
D3DXColorAdd | XMVectorAdd |
D3DXColorSubtract | XMVectorSubtract |
D3DXColorScale | XMVectorScale |
D3DXColorModulate | XMColorModulate |
D3DXColorLerp | XMVectorLerp or XMVectorLerpV |
D3DXColorAdjustSaturation | XMColorAdjustSaturation |
D3DXColorAdjustContrast | XMColorAdjustContrast |
D3DXFresnelTerm | XMFresnelTerm |
Spherical Harmonics Math
The SHmath libraryis available as an add-on for DirectXMath.
XMSHEvalDirection | Evaluates the Spherical Harmonic basis functions. Equivalent toD3DXSHEvalDirection function. |
XMSHRotate | Rotates SH vector by a rotation matrix. Equivalent to the D3DXSHRotate function. |
XMSHRotateZ | Rotates the SH vector in the Z axis by an angle. Equivalent to the D3DXSHRotateZfunction. |
XMSHAdd | Adds two SH vectors. Equivalent to the D3DXSHAdd function. |
XMSHScale | Scales a SH vector. Equivalent to the D3DXSHScale function. |
XMSHDot | Computes the dot product of two SH vectors. Equivalent to the D3DXSHDotfunction. |
XMSHMultiply2 XMSHMultiply3 XMSHMultiply4 XMSHMultiply5 XMSHMultiply6 | Computes the product of two functions represented using SH. Equivalent toD3DXSHMultiply2, D3DXSHMultiply3, D3DXSHMultiply4, D3DXSHMultiply5, andD3DXSHMultiply6. |
XMSHEvalDirectionalLight | Evaluates a directional light and returns spectral SH data. Equivalent to theD3DXSHEvalDirectionalLight function. |
XMSHEvalSphericalLight | Evaluates a spherical light and returns spectral SH data. Equivalent to theD3DXEvalSphericalLight function. |
XMSHEvalConeLight | Evaluates a light that is a cone of constant intensity and returns spectral SH data. Equivalent to the D3DXSHEvalConeLight function. |
XMSHEvalHemisphereLight | Evaluates a light that is a linear interpolant between two colors over the sphere. Equivalent to the D3DXSHEvalHemisphereLight function. |
SHProjectCubeMap | Projects a function represented in a cube map into spherical harmonics. Equivalent to the D3DX11SHProjectCubeMap function. |
Effects (FX)
The Effectssystem for Direct3D 11 is primarily provided as a porting aid for older code. The library is available onCodePlex and GitHub.
D3DXCreateEffect D3DXCreateEffectEx D3DXCreateEffectFromResource D3DXCreateEffectFromResourceEx D3D10CompileEffectFromMemory | D3DX11CompileEffectFromMemory |
D3DXCreateEffectFromFile D3DXCreateEffectFromFileEx | D3DX11CompileEffectFromFile |
D3D10CreateEffectFromMemory | D3DX11CreateEffectFromMemory |
D3DXCreateEffectPool D3D10CreateEffectPoolFromMemory | Effects 11 does not support 'effect pools' or D3DCOMPILE_EFFECT_CHILD_EFFECT. Effect groups provide a more efficient solution for common scenarios previously addressed with 'effect pools' |
D3DXDisassembleEffect D3D10DisassembleEffect | D3DDisassemble D3DDisassemble10Effectin D3DCompile |
Performance/Profiling
D3DX9 included the entry-points intercepted by PIX for Windows for performance profiling. This is now handled by the DirectX runtime directly and is monitored by the Visual Studio Graphics Diagnostics tool.D3DPERF_BeginEvent D3DPERF_EndEvent D3DPERF_SetMarker D3DPERF_SetRegion D3DPERF_QueryRepeatFrame D3DPERF_SetOptions D3DPERF_GetStatus | ID3DUserDefinedAnnotation which is supported by the DirectX 11.1 runtime on Windows 8.x and Windows 7 Service Pack 1 + KB2670838 If using DirectX 11.2+, you can use ID3D11DeviceContext2 directly for BeginEventInt, SetMarkerInt, and EndEvent. |
UVAtlas Functions
The UVAtlas libraryis intended for isochart creation offline with tools, although it can be used at runtime. You can find the library on CodePlex and GitHub.
D3DXUVAtlasCreate | UVAtlasCreate |
D3DXUVAtlasPartition | UVAtlasPartition |
D3DXUVAtlasPack | UVAtlasPack |
D3DXComputeIMTFromPerVertexSignal | UVAtlasComputeIMTFromPerVertexSignal |
D3DXComputeIMTFromPerTexelSignal | UVAtlasComputeIMTFromPerTexelSignal |
D3DXComputeIMTFromSignal | UVAtlasComputeIMTFromSignal |
D3DXComputeIMTFromTexture | UVAtlasComputeIMTFromTexture |
Note
Careful readers will note that there are a few omissions from this table.The
ID3DXMatrixStackfrom D3DXMath doesn't have a new version, but it's actually
pretty easy to implement your own. If someone has a burning need for this, please comment below.
The Precomputed Radiance Transfer (PRT) simulator is only available in closed-source form in legacy D3DX9. There are a number of papers that cover
this technology in the literature, and the most generally useful parts of this functionality are the SHmath functions
which are available.
相关文章推荐
- D3D11与D3D9全屏/窗口化切换差异
- eclipse中如何在当前工程中查找一个字符串
- CSS Object Model View整理
- MyEclipse下创建的项目 导入eclipse
- C# lambda递归
- 1050. 螺旋矩阵(25)
- Verilog读取HEX文件初始化ROM
- Java设计模式-创建型模式
- 对面向对象的一点理解
- 判断素数
- Dynamics CRM2015 on-premises直接升级Dynamics CRM2016 on-premises
- Dynamics CRM2015 on-premises直接升级Dynamics CRM2016 on-premises
- Dynamics CRM2015 on-premises直接升级Dynamics CRM2016 on-premises
- Dynamics CRM2015 on-premises直接升级Dynamics CRM2016 on-premises
- ubuntu开关防火墙
- Android
- python version 2.7 required,which was not found in the registry
- mongodb 相关的查找,插入删除等操作
- 1049. 数列的片段和(20)
- java泛型程序设计