Realtime Rendering 3rd笔记 8

本文探讨了GPU渲染特效的实现原理,强调了Shader程序在视觉表现中的关键作用。介绍了如何通过Vertex Shader与Pixel Shader配合完成渲染任务,并讨论了特效语言如HLSLFX的作用及其在不同Shader Model中的应用。


3.8 Effects

一个单独的shader程序是不能单独起作用的:一个vs程序将结果提供给一个ps。两个程序都必须被载入才能工作。程序员必须将vs的输出和ps的输入进行匹配。一个特定的渲染特效可能由任意数量的shader在几个pass中执行产生。除了shader自己,状态变量必须被正确的设置来保证shader正确的工作。例如,渲染器的状态包括是否使用和如何使用z-buffer和stencil buffer,一个片段如何影响已经存在的像素值(e.g. replace, add, or blend)。
由于以上的原因,多个组织都开发了特效语言(effects language),例如HLSL FX, CgFX, COLLADA FX。一个特效文件试图将执行某个渲染算法需要的所有相关信息包装起来。一般它会定义一些全局参数,可以被程序赋值。例如,一个单独的effect file可能定义渲染塑料材质需要的vs和ps,它可能暴露一些参数例如塑料颜色和粗糙度,这样渲染每个模型的时候可以改变效果而仅仅使用同一个特效文件。

(下面以一个HLSL FX为例,介绍了一下。。略过)

一个effect file中能存储很多techniques。这些techniques通常是一个相同effect的变体,每种对应于一个不同的shader model(SM2.0,SM3.0等等)。

至此关于GPU本身的讨论结束了。GPU可以做很多其他的事情,GPU的功能可以有很多种使用和组合方式。利用这些能力的相关的理论和算法,将会是本书的中心。在这些适当的基础介绍之后,接下来将注意力集中到对transform和visual appearance的深入理解中,这些是流水线的关键元素。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值