当前位置:首页 >问答首页 >游戏程序
精选回答
来自老迟到正鼠标的回答 2023-11-30 03:45:01

Unity有三种shader的编写方式:fixed function shader (固定功能着色器)、 vertex and fragment shader (顶点片段程序着色器) 、surface shader (表面着色器) 。

fixed function shader (固定功能着色器)

最简单的着色器类型,只能使用Unity3D自带的固定语法和提供的方法,适用于任何硬件,使用难度最小;

 vertex and fragment shader (顶点片段程序着色器)

顶点片段着色器,效果最为丰富的着色器类型,使用Cg/HLSL语言规范,着色器由顶点程序和片段程序组成。所有效果都需要自己编写,使用难度相对较大;

surface shader (表面着色器)

同样使用Cg/HLSL语言规范的着色器类型,不过把光照模型提取出来,可以使用Unity3D自带的一些光照模型,也可以自己编写光照模型,着色器同样由顶点程序和片段程序组成,不过本身有默认的程序方法,使用者可以只针对自己关系的效果部分进行编写。由于选择性比较大,所以可以编写出较为丰富的效果,使用难度相对 vertex and fragment shader小。

总结:如果有着丰富的的Cg开发经验的,可以使用 vertex and fragment shader了。fixed function shader虽然简单,但能实现的效果非常有限。而surface shader是Unity3D提供的一种较为折中的方式,同样能实现较丰富的效果,但难度相对小很多。不过surface shader有一个问题,它不支持SubShader内部的多pass,所以某些需要多pass的效果要实现起来会比较困难。

硬件型号:惠普暗影精灵6

系统版本:Windows10  专业版

软件版本:Unity3D 5.0

火星时代教育 影视学院刘老师,为你解答

最新发布

恭喜,您已获得免费试听资格请留下您的手机号,课程顾问将帮您激活课程
获取验证码
免费领千元课程+随课礼包

请留下您的手机号

课程顾问将帮您激活课程并赠送学习礼包

微信扫码在线答疑

扫码领福利1V1在线答疑

点击咨询
添加老师微信,马上领取免费课程资源

1. 打开微信扫一扫,扫描左侧二维码

2. 添加老师微信,马上领取免费课程资源

×

同学您好!

您已成功报名0元试学活动,老师会在第一时间与您取得联系,请保持电话畅通!
确定