博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
着色器(shader)入门
阅读量:4578 次
发布时间:2019-06-08

本文共 1117 字,大约阅读时间需要 3 分钟。

摘自《DirectX9.0 3D 游戏开发编程基础》Frank D. Luna

1. 顶点着色器和像素着色器是我们自行编写的一些规模较小的定制程序,这些定制程序可取代固定功能流水线中某一功能模块,并可在图形卡的GPU中执行。

2. 在DirectX8.x系列版本中,着色器程序是用底层的汇编语言来编写。DirectX9提供了一种专门用来编写着色器程序的高级着色语言——HLSL。
3. 可以将着色器代码保存为ASCII文本文件,然后使用D3DXCompileShaderFromFile进行编译。
4. 输入和输出结构:对于顶点着色器,以下结构分别定义了该着色器的输入和输出的顶点数据(输入输出顶点的结构)。
    POSITION、COLOR为语义,: POSITION说明position用于描述输入顶点的位置信息。: COLOR说明diffuse用于描述输出顶点的颜色信息。
    从底层观点看,语义语法建立了着色器中的变量与硬件寄存器之间的关系。

1 struct VS_INPUT2 {3     vector position : POSITION;4 };5 struct VS_OUTPUT6 {7     vector position : POSITION;8     vector diffuse  : COLOR;9 };

5. 着色器的入口函数,函数名称可以自定义。

6. 在应用程序中访问着色器中的全局变量。

// 获取常量句柄D3DXHANDLE ID3DXConstantTable::GetConstantByName(    D3DXHANDLE hConstant,    LPCSTR     pName);// 设置常量HRESULT ID3DXConstantTable::SetXXX(    LPDIRECT3DDEVICE9 pDevice,    D3DXHANDLE        hConstant,    XXX               value);

7. 标量类型

bool     布尔值
int        32位有符号整数
half      16位浮点数
float     32位浮点数
double  64位浮点数
8. 向量类型
vector 等价于float4
vector<T, n>
float2、float3、float4
9. 矩阵类型
matrix 等价于float4x4
matrix<T, m, n>
floatmxn   m,n必须介于1-4之间

转载于:https://www.cnblogs.com/zhouyuanchao/archive/2012/06/02/2531475.html

你可能感兴趣的文章
使用charles过滤网络请求
查看>>
C# WinForm实现Windows 7 Aero磨砂玻璃效果
查看>>
Java SpringMVC框架学习(一)入门
查看>>
JAVA 多线程和并发学习笔记(四)
查看>>
redis学习笔记(一)
查看>>
将Form置入splitContainer的panel中
查看>>
两个字符窜,在母窜中查找子窜的位置
查看>>
understanding recursion——loop under control
查看>>
Android之内存泄露
查看>>
前端验证 validform
查看>>
分布式计算
查看>>
《debug unreal engine code》
查看>>
RocketMQ之双Master方式部署以及简单使用
查看>>
现身说法:面对DDoS攻击时该如何防御?
查看>>
C的动态链表建立
查看>>
source insight 不能添加cc文件
查看>>
NYOJ 16 矩形嵌套
查看>>
Leetcode中的SQL题目练习(二)
查看>>
dubbo 集群容错源码
查看>>
Collection接口的子接口——Queue接口
查看>>