Unity5.0 Shader 极简入门(一)

原创 2017年06月16日 18:09:46

前言

这篇文章比较浅显,适合美术人员初学shader阅读,文章为追求通俗易懂,有意避开严谨的学术字眼。在学成后,需学者忘掉该文章的不严谨,切莫追究。

近期还在编写中,未完待续。


什么是shader

略。网上有很多,不做叙述,不是重点。


小例子理解shader流水线

如果你拿着一块木头到雕刻车间,并把你的设计图纸输入进机器,那么过一会木头雕像就出来了。
如果你拿着“jpg”和“fbx”文件到显卡里,并把你的shader输入进去,那么过一会图像就渲染出来了。
硬件显卡是加工厂,shader是图纸方案,贴图jpg文件是原材料,把原材料和图纸给加工厂,就能造出东西。


小例子理解显卡的绘图过程

风筝由龙骨支撑柔软的布,而能够变成各种千奇百怪的形状。

你需要用竹条制作一个骨架来作支撑。接着你还要有一张绷在骨架上的柔软有弹性的布,然后在这张布上面再描绘点你喜欢的图案。

显卡造三维图像就类似风筝的制作过程
三维模型由若干顶点,连出三角面,接着在面上贴jpg。
你需要用FBX文件告诉显卡骨架长什么样,接着你还要用一张jpg图像蒙在骨架上,并告诉显卡,我想让它漂亮点。

我们看到制作过程是两个步骤
先搭建骨架,接着再画画。
我们给骨架搭建的过程起名 顶点着色阶段
给白布绘画的过程起名 片元着色阶段

那么shader就是制作风筝的方案


看看shader方案怎么写

打开一个标准的shader文件
里面分为四大块

头文件

自述部分,我叫啥,我怎么用。

CPU部分

原材料部分,包含要准备的图片,数值,网格,UV都是存在硬盘里面的数据,要CPU中转给GPU,因为GPU不能直接读硬盘。

GPU部分

具体方案部分,在这里描述了一个非常美妙的三维着色方案。
从CPU那里拿到了什么,先重申一下。
然后先搭建骨架,用顶点算法处理模型网格(顶点着色)
处理完网格,再在上面画图,用像素算法处理上面的贴图花纹(片元着色)

替补方案

如果GPU档次太低了,不支持这套着色方案,那么就用替补方案将就吧。

未完待续

版权声明:本文为博主原创文章,转载需注明作者。

Unity5.0 Shader 极简入门 (四)

很久没写shader笔记了,最近一直在啃,刚刚有点新进度 这次来编写一个拥有两层UV通道的shader,通常第一层UV通道贴漫反射贴图,而第二层UV通道贴灯光贴图。 这里我制作了两种UV方案进行对...
  • leelizc
  • leelizc
  • 2017年09月10日 16:26
  • 382

Unity5.0 Shader 极简入门 (二)

UnityShader的两种编写语法如果想修一张照片 可以用很专业的软件例如“Photoshop”, 当然如果你不会,也可用傻瓜式软件“美图秀秀”,用大神已经做好的特效,简单点一点,照样能修的很棒...
  • leelizc
  • leelizc
  • 2017年06月22日 16:59
  • 249

Unity5.0 Shader 极简入门 (五)

屏幕叠贴图特效 准备文件: 一个名为asd的贴图一张, 一个C#特效脚本, 一个简单的特效shader。 C#代码,挂给摄影机的using UnityEngine; using System...
  • leelizc
  • leelizc
  • 2017年09月13日 16:39
  • 335

MongoDB 极简实践入门

1. 为什么用MongoDB? 传统的计算机应用大多使用关系型数据库来存储数据,比如大家可能熟悉的MySql, Sqlite等等,它的特点是数据以表格(table)的形式储存起来的。数据库由一张张排...
  • hsany330
  • hsany330
  • 2016年07月22日 15:20
  • 1122

Golang极简入门教程(三):并发支持

这篇文章主要介绍了Golang极简入门教程(三):并发支持,本文讲解了goroutine线程、channel 操作符等内容,需要的朋友可以参考下 Golang 运行时(runti...
  • kwame211
  • kwame211
  • 2018年01月14日 12:27
  • 74

人这辈子应该这样活,极简主义生活方式

极简主义生活方式,是对自身的再认识,对自由的再定义。深入分析自己,首先了解什么对自己最重要,然后用有限的时间和精力,专注地追求,从而获得最大幸福。放弃不能带来效用的物品,控制徒增烦恼的精神活动,简单生...
  • asqi1
  • asqi1
  • 2014年11月21日 10:59
  • 2548

超全面指南!从零开始教你打造网页设计中的极简风格

什么是极简设计 极简设计,严格上讲不能算作一种视觉风格,而是一种设计哲学。它在保持了基本的骨架内容的基础上,剔除掉多余的元素、装饰、色彩和纹理,是通过不断思考而进行化繁为简的设计过程。这样做的结果是...
  • vanessary2016
  • vanessary2016
  • 2016年04月06日 16:47
  • 546

git极简教程

简介: Git是一个自由和开源的分布式版本控制系统,设计用于处理从小到大型项目的速度和效率。它的一个非常重要的功能便是协同开发。1.安装git下载地址:https://git-scm.com/down...
  • yasin27878
  • yasin27878
  • 2017年02月28日 17:43
  • 89

《Kotlin极简教程》

下载地址
  • qq_34476727
  • qq_34476727
  • 2017年09月29日 11:11
  • 440

读书笔记6《极简》 Joshua Becker 乔舒亚-贝克尔

越简单,越美好
  • m0_37890694
  • m0_37890694
  • 2017年03月16日 16:58
  • 798
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unity5.0 Shader 极简入门(一)
举报原因:
原因补充:

(最多只允许输入30个字)