3D绘图程序设计之shader学习总结(二)

       经过上一篇的3D渲染管线的学习之后,对shader的学习有很大帮助,接下来就正式学习shader,进入GPU图形编程的世界(啊,说得有些夸张,其实就是做些渲染方面的特效以及图像处理方面的效果)。废话不多说,首先先大致介绍下GPU以及shader的版本。


1.GPU及Shader版本简介

GPU简介

       GPU拥有强大的并行计算以及进行四维向量浮点数运算的能力。并行计算也就是数据之间没有依懒性,相互之间都是独立的,比如在进行顶点数据计算时,各数据之间是相互独立的,就可进行并行计算,因此GPU一次能同时处理很多个顶点;而CPU往往处理的数据之间会有依赖,比如要等这些数据处理好之后,才能处理后面的数据。

       早期,GPU只用于固定渲染管线的绘制流程(上一篇正是在介绍固定渲染管线),以及填充画面上各个像素的颜色;而模型顶点数据的处理(包括三角形、多边形的坐标变换)、光照计算等还是由CPU进行处理,这岂不是浪费了GPU那么强大的并行计算能力吗。随着硬件发展之快速,GPU已可支持计算顶点数据以及光照等,并且还能支持可程序化的渲染流程(Programing pipline),也就是shader,以及能对纹理等进行操作。目前PC上大家所熟悉的NVIDIA Geforce系列和ATI Radeon系列的显卡在早期的型号并没有像现在能很好的支持上面的这些功能。

Shader版本简介

       这里以DirectX3D中的shader版本标准来说明。目前的主要版本有4个,最高的版本为Shader Model 4.0。Shader Model 1.0的vertex和pixel shader不支持流程控制,即if-else和循环for-loop,而且也基本上是汇编语言来编写shader。到了Model 2.0,还是不能真正支持流程控制,但对代码长度以及指令数量的支持有了大幅增加,并且可使用HLSL(High Level Shading Language)和CG(C for Graphic)等高级语言来编写shader。等到了Model 3.0,才是正式的支持流程控制。Shader Model 4.0 可以说是一个

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值