随笔分类 - Unity
摘要:例子 void Update () { this.transform.Rotate(Vector3.up, Time.deltaTime * 50, Space.World); //绕世界的y轴旋转,1秒钟转50度,Space.World是让它绕世界坐标系的y轴旋转,没写的话会绕它自己坐标系的y轴旋
阅读全文
摘要:全局光照 GI 这里所说的反射就是,一个红色的物体,当太阳照射它的时候,它周围的物体也会变得有点红。 1:Realtime每帧都会计算光照,实时光照是不会反射的,所以它的光影显得单调;2:Baked GI:通过烘培光照贴图的方式获得很好的光照效果,无法实时的改变光照;3: 预先计算全局光照: Pre
阅读全文
摘要:反射探头 1:镜子金属等具有光滑表面的物体都会反射,而游戏中计算实时反射非常消耗CPU的资源, unity5.0新增了一个反射探头的技术,通过采样点,生成反射Cubemap,然后通过特定的着色器从Cubemap中采样,就能显示反射效果了;2: 反射探头的参数: type: 设置反射探头的类型(bak
阅读全文
摘要:Mobile Diffuse Unity自带的一种shader,用的比较多,性能还可以。我们默认创建的unit shader基本和它一致,但是没有参与光照计算,看起来和Mobile Diffuse有区别 1: 漫反射着色器, 最简单的3D着色模式;光照在物体上,漫反射就是原本是什么样的颜色,就显示什
阅读全文
摘要:渲染路径和颜色空间 1:Unity光影效果可以通过设置 渲染路径和颜色空间;2: 渲染路径: 光照到物体表面,物体着色的时候,算上光的颜色的时候有这么几种光照的着色方式,计算着色的方式 forward: 着色时根据对应影响的灯光,每个光源着色一次,多个光源作用时会着色多次; 优点: 快速,硬件要求低
阅读全文
摘要:法线贴图 次时代游戏用的比较多 1:法线贴图是凹凸贴图技术上 的一种应用,有时也称为Dot3(仿立体)凹凸纹理贴图;2: 法线贴图是不增加多边形的情况下,增强模型的细节;3: 法线贴图是高精度模型导出来的一种贴图,作用到低精度jing'd度模型上面,增强低精度模型的细节同时,又能获取很好的性能;4:
阅读全文
摘要:光源 1: 光照的本质:就是光的颜色和物体纹理的颜色的混合;2: 光源类型: 点光源,定向光源,聚光灯, 区域光源; 区域光的范围会在场景中用黄色的光显示出来; z轴是光的方向; 光的强度会随距离衰减; 只能配合烘培GI使用;3: 发光材质 发光材质也算是一种光源,通过给物体添加特殊的着色器,调节其
阅读全文
摘要:水 自己来做水和雾还是有点麻烦的,不过没关系,Unity帮我们做好了很多可以用的。 1.Unity自己实现了水的特效,帮助我们解决游戏中水的问题 2.Unity的水集成在了Environment的环境资源包里面,导入的方法是:Assert >Import >Environent导入 需要正式版才能看
阅读全文
摘要:3D声音 3D立体声和2D声不同的地方是它是会随着距离衰减的,距离越近声音越大,距离越远声音越小。 1: 声音: 背景音乐和音效; 2: 声音文件支持的格式: ogg, mp3, wave, AIFF; ogg比较流行,很多安卓里面的声音使用ogg的格式是为了绕开mp3的版权 ogg和mp3都比较常
阅读全文
摘要:本地存储 在做游戏的时候,经常需要在本机存储一些数据,比如闯关类游戏要记录闯到第几关,做单机的时候要把数据保存到本地,下次启动的时候数据存在,就是把数据保存到磁盘里面或者手机的flash闪存里面。 Unity使用PlayerPrefs类实现本地存储 1: PlayerPrefs类: 游戏开发中需要存
阅读全文
摘要:3D拾取 3D游戏实际上看到的是2D画面,我们在屏幕上点击,想要找到哪个3D物体,我们实际上是在一个2维平面内做3D拾取。 3D拾取实际上是,当玩家点击屏幕的时候,会从显示屏幕的摄像头发射一条射线,射到它所照射的平面上,射线第一次碰撞到的物体就是玩家所选的物体。 1: 游戏中需要用户触摸/点击 操作
阅读全文
摘要:天空盒 是一个盒子,一个正方形的盒子。其实本身也是一种shader,需要材质球做载体。 1: 一个场景是由6幅正方形的纹理图无缝拼接而成, 在视野看来位于真实的视野一样;2: 两种天空盒: 场景天空盒 Window->Lighting->Scene->Skybox,切换摄像机场景不改变; 摄像机天空
阅读全文
摘要:GrabPass截屏 可以用来截屏,截屏后把纹理传给下一个通道使用。 1:使用抓屏通道, GrabPass {} 或 GrabPass { “ 纹理名称”}; 使用GrabPass {}后,可以用_GrabTexture访问截屏的纹理2: 后续的Pass通道使用这个抓屏;3: 编写案例 (1): 创
阅读全文
摘要:混合模式 着色完成后,需要把颜色混合到帧缓冲区里面,涉及到源和目标。 1:在所有计算完成后,决定当前的计算结果输出到帧缓冲区时,如何混合源和目标,通常用来绘制半透明的物体;2: Blend Off 关闭混合3: Blend 源因子,目标因子: 配置并开启混合,产生的颜色和因子相乘,然后两个颜色相加4
阅读全文
摘要:每个shader里面有很多的subshader,如果所以的subshader都不执行的话就,就执行fallback。每个subshader都可以设置一个LOD,整个shader也有一个LOD。 系统就去找第一个LOD小于等于shader的LOD的subshader执行,其他的subshader就不会
阅读全文
摘要:写shader其实就是在两个工位顶点shader工位和着色shader工位插入代码,供GPU使用运行 表面着色器四个函数的入口 1:表面着色器包括4个函数: (1): 顶点变换函数; (2): 表面着色函数; (3): 光照模型; (4): 最终颜色修改函数;2: 表面着色器最终会被编译为一个复杂的
阅读全文
摘要:补充 float4 fixed4 _Time 1: float4是内置向量 (x, y, z, w); float4 a; 访问单独成员a.x, a.y, a.z, a.w;2: fixed4 是内置向量(r, g, b, a); fixed4 c; color.r, color.g, color.
阅读全文
摘要:Cg是类似于C语言的发展起来的图形编程语言,Cgraphics,它的很多表达式if...else...和C语言非常相像,也和C#非常相像。 由于Shader是写给显卡执行的,所以没有输出语句来调试,很多地方调试不了,只能靠Unity编辑器来帮我们报错,写起来一定要小心谨慎。 基本类型表达式1:语法和
阅读全文
摘要:在游戏的开发过程中,程序员不太会自己去写shader,因为写起来很麻烦,而且只有Unity会报错,编译器也没有什么提示。 通常是拿别人的shader改一改,当然,程序员还是要能看懂和会一点shader Unity坐标系转换 1: transform.localToWorldMatrix 局部转世界的
阅读全文
摘要:坐标空间 1:物体空间: 3D物体自己的坐标空间 一般设计时几何体以中心为原点,人物以双脚为原点; 2: 世界空间: 3D物体在场景中的世界坐标, 整个游戏场景的空间; 3: 摄像机空间: 以观察摄像机为原点的坐标系下的坐标空间; 4: 投影成像 3D坐标转换到屏幕空间;
阅读全文
浙公网安备 33010602011771号