Unity笔记 Graphics( 光 shader camera mesh )

来源:互联网 发布:邮箱都有哪些域名 编辑:程序博客网 时间:2024/04/19 01:22

官方教程图像部分:
http://unity3d.com/learn/tutorials/topics/graphics

第一部分:光
1 光
分成2类:动态光(dynamic)和烘培光(baked)
4种光组件:point、directional、spot、area (只能使用bake方式)
除了这4种外,ambient light(理解成顶点色)和emissive materials(baked方式)也影响光照效果。
cookie:投影纹理,point使用cubemap,其它光线方式使用2d纹理。baked 方式只能用spot light来使用cookie。
shadow:每种光选项不太一样
halo flare:都可以去掉默认的效果,另添加自定组件。flare在摄像机中有个flare layer的开关。
dynamic light 中 render mode:vertex 和per pixel lighting(normal mapping,cookies,real time shadows要用这个render mode实现)

2 光 unity5
realtime global illumination(GI),可以处理direct和indirect的光。
physically-based rendering(PBR)借助standard shader可以实现,模拟很多不同外观的材质。
建立一个新场景,会有一个默认skybox(有个动态太阳),ambient light可以选择skybox、1color、3colors。
任何物体或多或少有反光,即使ambient light是黑色的。默认来源是skybox,当然也可以自己选择cubemap。
Bake可以渲染到贴图提高运行效率。编辑时有个选项可以选择continuous baking这样可以看的动态变化。
调整例子里的顶光的强度和方向可以观察direct和indirect光线变化。
emissive贴图光源,可以借助standard shader来指定强度和颜色。
probes:light probes 和 reflection probes
color space:linear效果好,也可以选择gamma
Ambient light+Reflections+light sources+materials created with standard shader+ PBR+GI = realistic scenes!

3 光 又用文字形式说了一遍
4 天空盒 介绍了一下天空盒
可以理解成自己在cubemap的里面,渲染时也是最先渲染的(实现可以看看shader代码)。
unity里有很多现成的Assets > Import Package > Skyboxes
当然你也可以自己建立Assets > Create > Cubemap

第二部分 渲染
1 standard shader
可以建立各种材质效果。default是metallic 也可以选择specular。
4 rendering mode:
opaque(或称为solid 不透明的物体) cutout(贴图的alpha会镂空) fade (整体受到alpha影响,包括reflectivity的部分)transparent ( 透明,diffuse的alpha来控制 )
在shader build的时候没有用到特性都会被抛弃,所以只设置自己用到的就好。
调整shader来模拟真实场景中的材质,用specular colour举例子metal有很亮的反光,其它则没有。
从legacy diffuse shader升级成standard shader,不会有什么变化。
第一贴图:
metallic standard shader:
albedo基础纹理,可以用颜色来选择。
metallic不用贴图也可以。alpha可以指定部分smoothness、red可以指定metalness
specular standard shader:
metallic就变成specular了,同时去掉所有贴图最大specular值就会变成金属。
normalmap和heightmap,指定贴图、调整强度。
occlusion处理需要隐藏处理,如凹进去的部分
emission自发光,例如显示器的光
detail mask控制 第二贴图显示
第二贴图:
细节。

2 材质
shader和属性,贴图的容器。
改变了gameobject使用中material属性,所有的material都会改变,相当引用。

3 贴图
一张图片。导入工具中可以选择texture type(其中advanced有所有选项)。
有很多可选的处理:如通过灰度生成alpha、最大尺寸等。

4 细节贴图
导入中选择Fadeout Mip Maps,同时设置Fade Range。

5 Frame Debugger
DrawCall就是cpu发给gpu绘制内容来像素化。
调试窗口有2个slider可以看绘制的中间步骤。
选择不同的render path(在player setting)会有不同的渲染顺序。
slider下面可以选择rendertarget,也可以分channel来看。

第三部分
1 摄像机
摄像机基本概念:
远近平面,clear flag,fov什么的。
多个摄像机:
culling mask可以控制摄像机渲染的东西,比如UI单独使用一个摄像机,minimap也可以,不用渲染到纹理。
使用多个camera,clear flag设置成depth only,使用depth排序。

2 image effects
介绍了几种effects,景深,hdr等。

第四部分
1 mesh
这里写图片描述

2 mesh render and mesh filters
渲染模型需要这2个组件。如果是蒙皮的mesh,会是skined mesh render组件。
mesh filter存储mesh数据,提供给mesh render来渲染。
materials提供多个element给mesh不同部分使用。

0 0