在不使用效果框架的时候,整个渲染管道其实挺简单的,创建资源,输入资源。编译着色器输入着色器,其实着色器本身也是一种数据,只不过这个数据描述的是逻辑。最后调用一下draw方法画一下就OK 了。这里说说着色器的编译和创建,很简单。
HRESULT D3DX11CompileFromFile(
_In_ LPCTSTR pSrcFile, // 文件路径
_In_ const D3D10_SHADER_MACRO *pDefines, // 可选,一个键值对数组,直接设置为NULL
_In_ LPD3D10INCLUDE pInclude, // 可选,这个相当于C++的include命令也是一个数组。
_In_ LPCSTR pFunctionName, // 入口方法的名字
_In_ LPCSTR pProfile, // vs_5_0
_In_ UINT Flags1, // 着色器编译标志。
_In_ UINT Flags2, // 效果编译标志。
_In_ ID3DX11ThreadPump *pPump, // 线程?
_Out_ ID3D10Blob **ppShader, // 编译后的结果
_Out_ ID3D10Blob **ppErrorMsgs, // 编译后的错误信息
_Out_ HRESULT *pHResult
);
CreateVertexShader :

本文介绍了在不使用效果框架的情况下,如何简单地管理DX11渲染管道,重点讲解了着色器的编译和创建过程。通过D3DX11CompileFromFile函数进行着色器编译,并使用CreateVertexShader创建顶点着色器,其他类型的着色器创建类似。
最低0.47元/天 解锁文章
709

被折叠的 条评论
为什么被折叠?



