DirectX 11
DirectX 11的基础知识,基本API,渲染流程,代码示例
xhh-cy
我是一个活泼,好奇,爱交流的程序猿
展开
-
图形渲染技术-目标变换
鼠标拖动目标进行平移和八方向缩放原创 2022-10-29 22:58:07 · 546 阅读 · 0 评论 -
DirectX11-鼠标拾取
DirectX 11 中鼠标拾取的方法和几个注意点原创 2022-09-21 21:52:15 · 301 阅读 · 0 评论 -
DirectX11-硬件多实例渲染
多实例渲染的简要步骤原创 2022-08-20 19:48:24 · 534 阅读 · 0 评论 -
DirectX11-流输出阶段
流输出阶段我们通过渲染管线的流输出阶段让GPU将几何着色器输出的顶点集合写入到指定的顶点缓冲区,如下图所示。1.用来接收流输出的顶点集合的顶点缓冲区描述符需要指定D3D11_BIND_STREAM_OUTPUT绑定标记。比如 // 设置顶点缓冲区描述 D3D11_BUFFER_DESC vbd; ZeroMemory(&vbd, sizeof(vbd)); vbd.Usage = D3D11_USAGE_DEFAULT; // 这里需要允许流输出阶段通过GPU写入 vbd.ByteW原创 2022-05-13 14:30:13 · 406 阅读 · 0 评论 -
DirectX 11共享纹理加锁
共享纹理使用场景:当硬解码的纹理跨两个device对象(对应一张显卡)传递,比如解码是device1,渲染是device2,此时需要通过共享纹理将解码得到的纹理先拷贝到共享纹理上,然后获取纹理句柄,将该句柄传递给渲染的device2,渲染的device2打开该句柄就可以得到一个纹理进行采样渲染了。具体步骤如下:1.获取解码的纹理。ID3D11VideoDecoderOutputView* srcSurface = (ID3D11VideoDecoderOutputView*)(uintptr_t)f原创 2022-04-28 20:09:56 · 2735 阅读 · 3 评论 -
DirectX-BasicEffect
BasicEffect 的主要功能1.管理/修改常量缓冲区的内容,并应用(Apply)变更 :BasicEffect::Impl(变换矩阵,纹理资源,常量参数)2.编译HLSL着色器而不是fx文件 (InitAll:CreateVertexShader)3.管理/使用四种渲染状态4.切换渲染模式(涉及到渲染管线各种资源的绑定、切换)5.仅更新修改的变量所对应的常量缓冲区块整个过程,BasicEffect 是一个单例,接口的调用需要传入设备上下文。外部调用就需要关心常量缓冲区 着色器 渲染状态原创 2022-02-22 16:29:00 · 127 阅读 · 0 评论 -
DirectX 3D中的混合
D3D中的混合指的是目标像素(后台缓冲)与源像素(光栅化像素)混合(blend)输出的过程。一、影响最终的混合后输出结果的因素有个:混合因子,混合方法。1)混合因子混合因子共有15个。注意:有些混合因子以_COLOR结尾,有的以_ALPHA结尾。其中以_COLOR结尾的混合因子不能用于APPHA混合方程混合因子分为源混合因子,目标混合因子。区别在于,前者指定的是源像素的比例,后者指定的是目标像素的比例。2)混合方法混合方法有5中,一般常用的就是加、减、乘。3)混合因子与混合方法的常用组合原创 2021-12-16 09:29:44 · 2443 阅读 · 0 评论 -
DirectX 3D 绘制纹理
绘制纹理基于上一节绘制简单矩形的流程,绘制纹理只需要修改和补充以下几点1.着色器加入纹理、纹理坐标信息和采样器//头文件Cube.hlsliTexture2D g_Tex : register(t0);SamplerState g_SamLinear : register(s0);struct VertexIn{ float3 posL : POSITION; float2 tex : TEXCOORD;};struct VertexOut{ float4 posH原创 2021-09-22 21:41:02 · 361 阅读 · 0 评论 -
DirectX 3D 简单渲染流程
阅读了 龙书网页版前六章,通过渲染一个三角形,总结渲染的最简步骤。创建窗口。创建设备和上下文。创建交换链和渲染视图。创建顶点着色器。创建并绑定输入布局。创建片段着色器。创建顶点、索引、常量缓冲区,并填充和绑定。设置图元拓扑(图元类型)。将着色器和常量缓冲区绑定到渲染管线。清空渲染视图。绘制呈现转到步骤10....原创 2021-09-17 11:04:10 · 1724 阅读 · 0 评论