没有合适的资源?快使用搜索试试~ 我知道了~
首页HLSL特效 详细讲解shade
目录: 1: HLSL概述 1 1.什么是HLSL 1 2.VS和PS 2 3.Technique和Pass 3 4.GLSL和HLSL的比较 3 5. Cg和HLSL的比较 3 2:HLSL的变量 3 1.标量型 3 2.向量型 3 3.矩阵型 4 4.对象型 5 5.结构体型 6 6.用户自定义型 6 7.变量类型的转换 6 8.修饰变量的关键字 7 9.变量重组 7 3:HLSL的函数 8 4:HLSL基本语法 9 1.数学表达式 9 2.HLSL的关键字和保留字 9 5:Direct3D中使用HLSL 10 1.简单的示例 10 2.shader版本的查询 10 1:通过外部工具 11 2:通过编写代码(D3DCAPS9 Caps) 11 6:在Direct3D中使用HLSL 12 1.ID3DXEffect对象 12 2. ID3DXEffect对象的创建 12 1.D3DXCreateEffect 12 2. D3DXCreateEffectFromResource 13 3.调用HLSL代码 13
资源详情
资源评论
资源推荐
目录:
1: HLSL 概述......................................................................................................................................1
1.什么是 HLSL...........................................................................................................................1
2.VS 和 PS...................................................................................................................................2
3.Technique 和 Pass.....................................................................................................................3
4.GLSL 和 HLSL 的比较...........................................................................................................3
5. Cg 和 HLSL 的比较................................................................................................................3
2:HLSL 的变量...................................................................................................................................3
1.标量型...................................................................................................................................3
2.向量型...................................................................................................................................4
3.矩阵型...................................................................................................................................4
4.对象型...................................................................................................................................5
5.结构体型...............................................................................................................................6
6.用户自定义型.......................................................................................................................6
7.变量类型的转换...................................................................................................................6
8.修饰变量的关键字...............................................................................................................7
9.变量重组...............................................................................................................................8
3:HLSL 的函数...................................................................................................................................8
4:HLSL 基本语法...............................................................................................................................9
1.数学表达式..............................................................................................................................9
2.HLSL 的关键字和保留字.......................................................................................................9
5:Direct3D 中使用 HLSL.................................................................................................................10
1.简单的示例............................................................................................................................10
2.shader 版本的查询.................................................................................................................10
1:通过外部工具................................................................................................................11
2:通过编写代码(D3DCAPS9 Caps)................................................................................11
6:在 Direct3D 中使用 HLSL............................................................................................................12
1.ID3DXEffect 对象..............................................................................................................12
2. ID3DXEffect 对象的创建....................................................................................................12
1.D3DXCreateEffect.........................................................................................................12
2. D3DXCreateEffectFromResource................................................................................13
3.调用 HLSL 代码............................................................................................................13
1: HLSL 概述
1.什么是 HLSL
,高级着色语言(后面全部使用简称 )是微软公
司随 推出的一门着色器专用的可编程渲染语言。
着色器()就是一组在渲染过程中执行的指令代码。
可编程着色器这个概念是相对于固定管线而言的,或者换个角度可以称固定管线为不可编
程着色器。
语言是实现可编程管线着色程序的编程语言。 语言具备高级语言所应有的特性,
如变量、函数、结构化等。同时, 语言的工作原理也和 这样的高级语言一样,
是将代码编译为“机器代码”之后再运行的。只不过这里的“机器代码”指的不是 汇编
代码,而是显卡专用的一种机器代码。
在目前的大部分显卡中,固定管线在硬件级别已经不存在。
)固定管线基本上已经被可编程管线所取代。
)固定管线能够做的渲染工作,可编程管线肯定能做,但是可编程管线能做的,固定管
线就不一定能做了。
) 语言是实现可编程管线着色程序的编程语言。
是一门高级语言,对比汇编语言有很多优点:
)高级语言语法简单,易学易用,学习门槛较低;
)高级语言代码维护简单,容易模块化和结构化;
)高级语言可以在语言级别进行功能性的升级而不会影响已经写成的代码;
)利用高级语言的 接口来操作代码更简单。
2.VS 和 PS
! 被翻译为“顶点着色器”或“顶点渲染”简写为 !。顶点着色器的功能就是对
进入管线的每一个顶点进行着色处理。
则被翻译为“像素着色器”或“像素渲染”简写为 。像素着色器的功能就是对
进入管线的每一个像素顶点进行着色处理。
就是将 ! 与 进行组合编程与使用的一个代码的合集。并
且在同一时间内只能有一个 ! 和 是活动的。
! 与 成对出现,每一组 ! 与 组成
一个 ""。
一个 #$ 可以由任意多个 "" 组成。
在一个 中可以有多个 $。
VertexShader 和 PixelShader 都有版本问题,版本的不同导致在指令、功能、效率、寄存器
数量等方面,都有一定的差别。
版本 输入寄存器 常量寄存器 临时寄存器 指令数目
vs_1_1 16 >96 12 128
vs_2_0 16 > 256 12 256
vs_2_x 16 >256 12 256
vs_3_0 16 >256 12 >512
vs_4_0 16 16×4096 4096
%64K
ps_1_4 2color / 6 8 6 6tex + 8 arithmetic
ps_2_0 2color / 8 32float / 16int 12-32 32tex + 64 arithmetic
ps_2_x 2color / 8 32float / 16int 12-32 >96
ps_3_0 10 224float/16int 32 >512
ps_4_0 32 16×4096 4096
%64K
3.Technique 和 Pass
使用可渲染流水线渲染一个球体按照下面的步骤:
(1)找到用于渲染该球体的 VertexShader 和 PixelShader;
(2)将参数设置给 VertexShader 和 PixelShader;
(3)绘制该球体。
pass 的工作是完成一次图元绘制,有些效果需要对同一个物体进行多次绘制才能完成,这
就需要用多个 pass 来完成,而这些 pass 共同构成了一个 Technique。
Technique 的工作是对一个物体实现一个效果,如果需要多个物体共同实现一个效果,或是
要一个物体表现出多个效果,就需要有多个 Technique。
4.GLSL 和 HLSL 的比较
GLSL 的意义是指 OpenGL shading 语言(OpenGL Shading Language),它是 2001 年发布
的。
GLSL 和 HLSL 的一个明显的不同在于 HLSL 是微软为 DirectX 设计的,而 GLSL 是针对
OpenGL 设计的。只有微软拥有修改和完善 DirectX 的能力和权力,而 OpenGL 是开放的跨
平台的标准,其变化比较慢,并且保持对老版本的兼容性。
5. Cg 和 HLSL 的比较
Cg 是一个和 HLSL 十分类似的高级 shader 语言。Cg 是由 NVIDIA 设计实现并且提供支持
的标准。
Cg 对比 HLSL 和 GLSL 的一个优点在于 Cg 的语言翻译器既可以生成 DirectX 使用的 vertex
shader 和 pixel shader,也可以生成 OpenGL 使用的 vertex program 和 fragment program(汇
编语言)。
2:HLSL 的变量
1.标量型
支持的标量共有以下 & 种:
)'(( 型:布尔变量类型;
)) 型: 位的浮点数变量类型;
)*( 型: 位的浮点数变量类型;
)(' 型: 位的浮点数变量类型;
&) 型: 位的整型变量类型。
剩余13页未读,继续阅读
whczwonder
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论3