Shader就是在GPU上运行的程序叫做着色器程序(一般的程序在CPU上执行指令)。
Unity Shader使用的是NVIDIA公司的Cg标准语言,可以处理顶点着色、像素着色任务。Unity中的游戏对象只要是可视的,就一定会调用shader渲染,最简单的shader就是diffuse类型,就是你给对象涂个什么颜色,这个对象在白光下就是什么颜色。
一般来讲游戏中的 材质=shader+贴图和其它数据,要想表现特殊的材质,比如镜面反射、水面、塑料等,就需要编程shader(Unity中有一些默认的shader)。
最近也在学习shader,几篇博客供题主入门。
1、首先来两篇最最基础文章对shader有大体的认识。这两篇文章会分析shader中的一行行代码,讲解语法和作用并加以扩展。读完后就基本了解了shader中的属性、tags、lod、光照模型等是怎么回事。
猫都能学会的unity3d shader入门指南(一)
猫都能学会的unity3d shader入门指南(二)
2、然后可以看《unity shader and effect cookbook》,或者它的中文版《unity着色器和屏幕特效开发秘笈》。这本书会展示shader中的各个方面,如漫反射着色、纹理贴图、镜面反射等等。
可能由于这本书方方面面都有涉及,有时会忽略一些比较关键的细节,而这恰恰使初学者困惑。有一位博主记录下了根据这本书学习的笔记,题主可以直接看博客来学习:
【unity shaders】概述及diffuse shading介绍
3、在第2步的过程中,你可能需要查阅shader中各个概念函数的更详细的情况,这时你会需要unity官方手册以及cg教程:
unity - manual: shaders
unity - manual: shader reference
the cg tutorial
4、学习shader的时候,你不仅想知道怎么用,可能还想了解它背后的机制,那这篇文章你肯定不能错过:
【unity shaders】初探surface shader背后的机制
5、这些都熟练了,对shader也都比较熟悉了。你可以尝试去创造属于自己的shader,也可以去shadertoy beta寻求灵感,感受shader的鬼斧神工。
Photoshop|
Dreamweaver|
SVG|
WebGL|
Visual Studio|
PowerDesigner|
Eclipse|
Git|
Apache Ant|
Atom|
Composer|
CodeSmith|
Flex|
Gradle|
Maven|
Sublime Text3|
SVN|
Tableau|
Vim|
Chrome开发者工具|
OpenGL|
Unity|
Direct3D|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....