- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HLSL学习笔记(一):基础
HYPERLINK /rainstorm/archive/2013/05/04/3057444.htmlHLSL学习笔记(一):基础
前言
五一在家无事,于是学习了一下HLSL,基于XAN4.0的。学习完了也就总结一下,纯粹是新手学习的经验之谈,纰漏之处还望见谅,不喜勿喷。
HLSL是一种使用GPU渲染出图像的技术,不仅可以改变最终呈现的颜色,还可以物体的大小、胖瘦和位置等。例如物体的碎裂效果就可以使用HLSL来渲染得到。
数据类型
数据类型有值类型、向量、矩阵、采样器、和结构体。
1.值类型
bool 布尔变量
half 16为整形
int 32位整形
float 单精度浮点数
double 双精度浮点数
声明方式:float f;
赋值方式:f = 1;
2.向量
声明方式:float4 f;
赋值方式:f = {1,2,3,4};
取值方式:float3 ff = f.rgb;
说明:向可以通过xyzw或者rgba访问向量中的指定字段,x或者r就是代表0号字段。不仅可以单独操作一个字段,还可以对多个字段同时操作,例如3*f.xyz,就是将f中的xyz都乘以个3。
3.矩阵
声明方式:float2x4 f; 先行后列。
赋值方式:f = {1,1,2,2,3,3,4,4};
取值方式:float ff = f[0][0];
说明:如果要对矩阵做乘法运算,请使用mul函数,另外,mul(ff,f)与mul(f,ff)的结果是不一样的。
4.采样器
声明方式:
texture Texture; //纹理变量 sampler TextureSampler = sampler_state //纹理采样器 { Texture = Texture; //纹理采样器使用的纹理对象 MinFilter = Linear; //缩小图形使用线性滤波 MagFilter = Linear; //放大图形使用线性滤波 MipFilter = Linear; //Mipmap使用线性滤波 AddressU = Wrap; //U方向上的纹理寻址模式采用Wrap方式 AddressV = Wrap; //V方向上的纹理寻址模式采用Wrap方式 };
赋值方式:在C#中对Texture赋值,effect.Parameters[Texture].SetValue(Game.Content.LoadTexture2D(*));
取值方式:tex2D(TextureSampler, TEXCOORD0);
说明:MinFilter、MagFilter、MipFilter、AddressU、AddressV是可选项,如果不写将会使用默认值,也就是上面赋予的值。
5.结构体
声明方式:
struct VertexShaderInput { float4 Position : POSITION; float2 TextureCoordinates : TEXCOORD0; float3 Normal: NORMAL; };
VertexShaderInput input;
此处与C#语法有些区别,直接这么写,不需要再写个new什么的。
赋值方式:与C#语法一致。
取值方式:与C#语法一致。
说明:其它的地方都好理解,关键是每个字段后面还有个“小尾巴”,这是什么玩意啊?这个我也不太清楚,自己想当然感觉吧,应该就是显存里面有一些特殊的空间,它们有着自己名字,比如TEXCOORD0什么的,就像C#中的Dictionary。
所以TextureCoordinates这行的意思是 创建一个float2类型的向量,它的名字是TextureCoordinates,值存储在TEXCOORD0这个内存空间。
Position的意思对所有POSITION(POSITION0-POSITION9,貌似是这样。)内存空间的引用。
这也就说明了入口函数的参数为什么可以千变万化,其实只是换了个名字,数据该在哪永远都在哪。
语法
语法什么的,与C#相差不大,不过还是有点区别的,至于区别的地方,我所知道的上面都写出来了。
函数列表
本表来自网络,我对说明做了些修改。
Name
Syntax
Description
abs
abs(x)
返回x的绝对值。对x的每个元素都会独立计算一次。Absolute value (per component).
acos
acos(x)
您可能关注的文档
- 8-体外诊断试剂注册申报资料要求--潘静.ppt
- 8.1二战后资本主义世界经济体系的形成(人民版)3.ppt
- 9.海洋腐蚀特征与电化学研究方法.ppt
- 9、药品生产企业资料申报常见问题.ppt
- 9.三袋麦子课堂实录(定稿).doc
- 6-工业4.0及互联网 背景下的中国智能制造思考--孙汉明.ppt
- ABAQUS常用技巧归纳(图文并茂).doc
- ABB断路器 Tmax_bas参数.ppt
- ARM应用实例.ppt
- B2B网站分析——28商机网&78创业网.ppt
- 实施指南(2025)《JB_T 12842-2016空调系统用辐射换热器》.pptx
- 实施指南(2025)《JB_T 12843 - 2016 离心式制冷剂压缩机解读》.pptx
- 实施指南(2025)《JB_T 12851-2016柴油机喷油泵 等压出油阀偶件》.pptx
- 实施指南(2025)《HJ 804-2016土壤 8种有效态元素的测定 二乙烯三胺五乙酸浸提-电感耦合等离子体发射光谱法》.pptx
- 实施指南(2025)《HJ600-2011水质梯恩梯、黑索今、地恩梯的测定气相色谱法》.pptx
- 实施指南(2025)《JB_T 6118 - 2016 沉降过滤离心机解析》.pptx
- 实施指南(2025)《HJ 811-2016水质 总硒的测定 3,3'-二氨基联苯胺分光光度法》.pptx
- 实施指南(2025)《HJ 814-2016水和土壤样品中钚的放射化学分析方法》.pptx
- 实施指南(2025)《HJ19-2011环境影响评价技术导则生态影响》.pptx
- 实施指南(2025)《HJ605-2011 土壤挥发性有机物检测标准解读》.pptx
最近下载
- 小猪佩奇第一季1-51集的重点词组讲解PeppaPig(学习笔记).pdf VIP
- 警营文化活动实施方案.docx VIP
- 2024-2025学年初中地理七年级上册(2024)中图版(2024)教学设计合集.docx
- 2026国药集团校园招聘笔试备考题库及答案解析.docx VIP
- 部编版二年级《语文园地三》ppt课件.pptx VIP
- 高端大气公司简介企业宣传PPT模板.pptx VIP
- 小学信息技术学科“无生上课”试讲备课要领-一文在手-面试无忧.pdf VIP
- 小学信息技术学科“无生上课”试讲备课要领-一文在手-面试无忧.pdf VIP
- 项目供电工程投标方案.docx VIP
- 气体分子碰壁数及其应用.ppt
文档评论(0)