一.简介

在DirectX 11 SDK中,支持三种基础着色器:顶点着色器(Vertex Shader) 像素着色器(Pixel Shader / Fragment Shader) 几何着色器(Geometry Shader)

顶点着色器通过顶点作为输入数据,只要将每个顶点缓存传入GPU就会执行

像素着色器使用一个像素作为输入数据

几何着色器使用基元(Primitive,点/线/面)作为输入

在Direct3D 11中,GPU必须包含一个正确的顶点和像素着色器,而几何着色器是可选的

二.顶点着色器

顶点着色器类似C语言的一个函数,通过顶点作为参数输入这个函数,并且返回编程后的顶点信息.

当程序通过顶点着色器传入顶点缓冲数据时,GPU就会迭代顶点缓冲数据,并为每个顶点执行一次着色器函数

顶点着色器最主要是用于坐标变换

flaot4 VS(float4 Pos : POSITION) : SV_POSITION
{return Pos;
}

三.像素着色器

一个三角形,包含了三个顶点,把三个顶点连载一起称为光栅化

像素着色器通过输入的像素颜色值,通过GPU计算颜色并返回渲染管线

float4 PS(float4 Pos : SV_POSITION) : SV_Target
{return float4(1.0f, 1.0f, 0.0f, 1.0f);
}

四.几何着色器

五.编译着色器

着色器编写的代码(HLSL)保存在一个文本文件中,可以通过Direct3D 11中的D3DX11CompileFronFile()进行编译

// Create the vertex shader
if(FAILED(D3DX11CompileFromFile("Tutorial03.fx", NULL, NULL, "VS", "vs_4_0", D3DCOMPILE_ENABLE_STRICTNESS, NULL, NULL, &pVSBlob, &pErrorBlob, NULL)))return FALSE;// Create the pixel shader
if(FAILED(D3DX11CompileFromFile("Tutorial03.fx", NULL, NULL, "PS", "vs_4_0", D3DCOMPILE_ENABLE_STRICTNESS, NULL, NULL, &pVSBlob, &pErrorBlob, NULL)))return FALSE;

六.绑定着色器

通过VSSetShader()和PSSetShader()两个方法将顶点着色器和像素着色器绑定到管线上

转载于:https://www.cnblogs.com/k5bg/p/11101259.html

DirectX11:着色器相关推荐

  1. DirectX11 With Windows SDK--17 利用几何着色器实现公告板效果

    DirectX11 With Windows SDK--17 利用几何着色器实现公告板效果 原文:DirectX11 With Windows SDK--17 利用几何着色器实现公告板效果 前言 上一 ...

  2. DirectX11 With Windows SDK--27 计算着色器:双调排序

    前言 上一章我们用一个比较简单的例子来尝试使用计算着色器,但是在看这一章内容之前,你还需要了解下面的内容: 章节 26 计算着色器:入门 深入理解与使用缓冲区资源(结构化缓冲区/有类型缓冲区) Vis ...

  3. DirectX11 With Windows SDK--15 几何着色器初探

    DirectX11 With Windows SDK--15 几何着色器初探 原文:DirectX11 With Windows SDK--15 几何着色器初探 前言 从这一部分开始,感觉就像是踏入了 ...

  4. DirectX11 使用几何着色器实现公告板效果

    之前说过,可编程的着色器阶段有三个,依次是顶点着色器.几何着色器.像素着色器.之前说的都是顶点着色器和像素着色器,今天第一次详细介绍几何着色器,几何着色器是一个可选的阶段. 一.使用几何着色器的好处 ...

  5. DirectX11进阶8_计算着色器(入门、流体模拟)

    一.计算着色器:入门 GPU通常被设计为从一个位置或连续的位置读取并处理大量的内存数据(即流操作),而CPU则被设计为专门处理随机内存的访问. 由于顶点数据和像素数据可以分开处理,GPU架构使得它能够 ...

  6. Directx 计算着色器(compute shader)

    原文 :http://www.cnblogs.com/Ninputer/archive/2009/12/11/1622190.html 博者注:计算着色器调试(http://msdn.microsof ...

  7. 计算着色器(Compute Shader)

    图形处理器(Graphics Processing Unit,简称GPU)每秒能够进行数以亿次的计算,目前其已成为一种性能十分惊人的器件.通常,GPU主要用来承担实时图形渲染中的海量数学运算,然而,其 ...

  8. DirectX 11 Tutorial 4 中文翻译版教程: 缓存区、着色器和HLSL

    原英文版地址:http://www.rastertek.com/dx11tut04.html 本教程将介绍如何在Directx11中编写顶点和像素遮影器.它还将介绍如何在Directx11中使用顶点和 ...

  9. DirectX11--HLSL编译着色器的三种方法

    前言 本教程不考虑Effects11(FX11),而是基于原始的HLSL. 目前编译与加载着色器的方法如下: 使用Visual Studio中的HLSL编译器,随项目编译期间一同编译,并生成.cso( ...

最新文章

  1. PHP中session_register函数详解用法
  2. 基于matlab的硅晶体模型,基于Matlab的图像处理技术识别硅太阳电池的缺陷
  3. U-BOOT下使用bootm引导内核方法
  4. 【计算理论】图灵机 ( 多个带子的图灵机 | 计算能力对比 | 证明过程 | 一个带子图灵机 )
  5. Gateway Sentinel 做网关降级/流控,转发header和cookie
  6. 【转】Dynamics版本历史演进及Dynamics 365重要功能介绍
  7. 惠普:存储为未来而设计
  8. 51nod1812树的双直径(换根树DP)
  9. 机器学习读书笔记(一)k-近邻算法
  10. 指标公式c语言源码下载,自用60分钟指标源码
  11. cross-validation:从 holdout validation 到 k-fold validation
  12. Notepad2替换windows自带记事本
  13. linux内核源码阅读之facebook硬盘加速flashcache之二
  14. ESP8266自动下载电路分析
  15. 颜色的前世今生14·RGB拾色器详解
  16. ~是什么意思 在C语言中,~0代表什么
  17. 简单解析一下,实施MES管理系统后有哪些效益
  18. 湘乡秸秆综合利用组合拳完善产业链 国稻种芯现代饲料规划
  19. 让每个生命带着尊严谢幕!淘宝竟有这样一家“临终关怀”网店
  20. 【删库跑路】使用Binlog日志恢复误删的MySQL数据

热门文章

  1. 如何用光盘自动安装win7操作系统
  2. 用Fedora光盘作为源安装软件包
  3. IPhone 视图切换的的2种方法
  4. 启动Nginx提示:the“ssl“ parameter requires ngx_http_ssl_module in
  5. (三)、IText通过pdf模板生成pdf文件(可用做回执单等功能)
  6. 【Developer Log】ProGuard扰码web项目(WAR)
  7. 【软件测试】男生vs女生,谁更加适合?没有你发现不了的bug......
  8. 在线共享音乐吧(Online Share Music Bar)解决方案
  9. 【华人学者风采】汪萌 合肥工业大学
  10. Hbase Schema设计与数据模型操作