Direct3D学习(四):高级着色语言初探

传统的3D绘图编程方式
(1)       将顶点代入顶点缓冲区
(2)       设定变换函数
(3)       设定光源
(4)       设定纹理和材质
(5)       绘制多边形
用的比较多的明暗处理算法在图形学上我们就学过:朗伯算法和高洛德算法。而在3D加速卡中可以硬件实现的的也就是上面的经典算法。但是随着硬件的发展,1999SigGraph大会上游戏程序员一致希望将算法直接写入3D显卡(正确地说是3D加速芯片中),会后便出现了GPUGraphic Processing Unit)编程技术。
以前,像自然光渲染这样的算法,只能呆在纸上,因为运算速度的缓慢决定了它们只能用于离线处理(想想上学期的图形学给的光线追踪程序,差点把我机子跑死)。

现在有了GPU编程技术,每秒可以实现每秒几十帧的画面,使理论上算法得到了应用。

Direct3D的渲染管道

如图是D3D的固定管道。
可编程的渲染管道跟上面的差不多,但我们可以控制的只有两部分:顶点着色器(Vertex Shader)和像素着色器(Pixel Shader),相当于上图中的Vertex ProcessingPixel Processing。这两个部分是渲染流程中最重要的两个部分,其他部分由硬件就可心完成。那么它们是用来干什么的呢?顶点着色器是用来处理顶点的,像素着色器是用来处理像素的(好像是句废话)

HLSL
HLSL 全称High Level Shading Language . MS推出Direct3D 9时的一个重要更新。从名字上可知,HLSL是一种高级语言(High Level),那么必然有与之对应的Low Level Shading Language,这个低级的语言就是ASMShader。它是类似于汇编语言,难以编写和维护,而HLSL则跟我们熟悉的C/C++语言非常类似。大大降低了开发人员学习的成本。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值