Unity Shader
蜗与牛
3D转U3D
展开
-
《Unity Shader 入门精要》学习笔记07(二)---凹凸映射
纹理的另一种常见应用就是凹凸映射。主要用两种方法来进行,高度纹理(高度映射)和法线纹理(法线映射)。高度纹理:使用一张高度图来实现凹凸映射,颜色越深位置越凹。优点:直观可见,缺点:计算更复杂。法线纹理:存储的就是表面的法线方向。使用不同空间的法线纹理的优缺点,不再说明,这里直接使用切线空间下的法线纹理。我们需要在计算光照模型中统一各个方向矢量所在的坐标空间,由于法线纹理中存储的是切线空...原创 2019-10-17 16:40:09 · 181 阅读 · 0 评论 -
《Unity Shader 入门精要》学习笔记07(一)---基础纹理
纹理最初的目的就是使用一张图片来控制模型的外观。使用纹理映射技术,我们可以把一张图“粘”在模型表面上,逐纹素的控制模型的颜色。因为我是做3D角色的,所以这些东西不再描述。1.实现单张纹理(这里依然使用BlinnPhong光照模型来计算光照),代码如下:// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'//...原创 2019-10-17 10:32:38 · 138 阅读 · 0 评论 -
《Unity Shader 入门精要》学习笔记06---Unity中的基础光照(二)(高光反射光照模型的实现)
上一节已经讲过了高光反射的计算公式,这节直接写代码实现:1.逐顶点,代码如下:// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'Shader "Unity Shader...原创 2019-10-16 23:05:09 · 151 阅读 · 0 评论 -
《Unity Shader 入门精要》学习笔记06---Unity中的基础光照(一)(漫反射光照模型的实现)
1.标准光照模型标准光照模型的基本概念:只关心直接光照(direct light),也就是那些直接从光源发射出来照射到物体表面后,经过物体表面的一次反射直接进入摄像机的光线。它的基本方法使把光线分成4个部分,每个部分使用一种方法计算贡献度。以下是四个部分:自发光 c emissive 丨高光反射 c specular 丨漫反射 c diffuse 丨环境光 c ambient丨下面列出...原创 2019-10-16 13:43:21 · 209 阅读 · 0 评论 -
《Unity Shader 入门精要》学习笔记01---前言
从去年开始学习程序,学完之后找了一份lua脚本相关的工作。 这个工作把我累死了,996不说,工资也不高,加之年龄偏大,干了半年之后就放弃了。 一起放弃的还有程序员这个职业。 学习的时候动机就只想着赚钱,但是哪个行业都一样,新手都是最底层,也是最不好找工作。 可能我本身就是个不安定的人,工作一段时间就想着去探索新事物,但是新事物却还是浅尝辄止。 3d如此,程序如此,其实还都算...原创 2019-10-03 09:30:51 · 151 阅读 · 0 评论 -
《Unity Shader 入门精要》学习笔记02---渲染流水线
声明:只是自己看书的理解,可能有错的地方或者忽略一些要点,请斟酌取舍。总结了一张图。本章其他的OpenGL与DirectX的区别,请自行查阅。着色语言HLSL,GLSL,Cg也请自行查阅。DrawCall可以简单理解成CPU向GPU发送的消息。降低DrawCall数量可以提高效率,减少消耗。游戏开发中,为了减少DrawCall的开销,有两点需要注意。1.避免使用大量很小的网格,当...原创 2019-10-04 10:35:13 · 180 阅读 · 0 评论 -
《Unity Shader 入门精要》学习笔记03---Unity Shader基础
声明:只是自己看书的理解,可能有错的地方或者忽略一些要点,请斟酌取舍。Shader就是渲染流水线中的某个特定阶段,如顶点着色器阶段,片元着色器阶段。在Unity中,要使用Unity Shader需要先建一个材质,这个材质时Unity Shader的载体。Unity 中的基本Shader模板有4种:1.Standard Surface Shader(包含了标准光照模型的表面着色器模板)2....原创 2019-10-04 15:03:07 · 197 阅读 · 0 评论 -
《Unity Shader 入门精要》学习笔记04---学习Shader所需的数学基础
声明:只是自己看书的理解,可能有错的地方或者忽略一些要点,请斟酌取舍。学习Shader,最常用的就是矢量和矩阵。只是简单的看了一下,头大,所以只是列出个提纲,如果后续编写代码的时候遇到,可以有目的的去查找。1.坐标系(不再多说)2.矢量(主要是点积与叉积)点积(主要作用:求投影,求模,求夹角(判断方向))公式一: a·b = (ax,ay,az)·(bx,by,bz)= axbx + ...原创 2019-10-05 13:41:18 · 159 阅读 · 0 评论 -
《Unity Shader 入门精要》学习笔记05---一个最简单的顶点/片元着色器
1.一个最简单的顶点/片元着色器以下是亲测的代码,Unity版本5.6.3Shader "Unity Shaders Book/Chapter 5/Simple Shader" { //1.最初始的begin //前面是所属分类标签/分类标签/Shader名称 //Properties语义块并不是必须的,可以选择不写,也就是不声明任何材质属性。 ////1.最初始的begin //S...原创 2019-10-07 15:32:56 · 213 阅读 · 0 评论