镜面反射与观察视角的联系
系列6中我已经说明了材料表面的平整程度决定了镜面反射的明显与否,现实生活中找不到绝对平的物体表面,所以我们引入一个概念,每一种材料的表面的平整程度为Nshininess, n越大越平整,越小越粗糙,理想状态下n无穷大的时候是绝对的镜面反射,也就是前面引用的文字中所说的你想看到光源,则必须从光线的反射角完全重合去看。
结合上图,也就是说我们的材料表面越平整,系数n趋近于无穷大的时候,想要看到光源,则必须从射线R所在的方向去看。
当材料表面的粗糙程度更大时,即使我们在R附近,也能看...
分类:
其他好文 时间:
2014-09-23 21:10:25
阅读次数:
278
我相信大家都玩过一款叫做《愤怒的小鸟》的游戏,这款游戏之所以能够受到玩家的喜爱,是因为这是一款物理游戏,在游戏中处处充满了物理。我们熟悉的抛物线、引力等物理元素都在这款游戏中得到了体现。那么《愤怒的小鸟》这款游戏使用的正是Unity引擎,所以我们在游戏中看到了各种各种有趣的物理现象。...
分类:
其他好文 时间:
2014-09-23 21:00:16
阅读次数:
522
今天我们来做一个高端大气上档次的东西。我相信大家都玩过一款叫做《愤怒的小鸟》的游戏,这款游戏之所以能够受到玩家的喜爱,是因为这是一款物理游戏,在游戏中处处充满了物理。我们熟悉的抛物线、引力等物理元素都在这款游戏中得到了体现。那么《愤怒的小鸟》这款游戏使用的正是Unity引擎,所以我们在游戏中看...
分类:
其他好文 时间:
2014-09-23 20:53:15
阅读次数:
371
本系列主要参考《Unity Shaders and Effects Cookbook》一书(感谢原书作者),同时会加上一点个人理解或拓展。这里是本书所有的插图。这里是本书所需的代码和资源(当然你也可以从官网下载)。========================================== 分割线 ==========================================...
分类:
其他好文 时间:
2014-09-23 20:14:16
阅读次数:
248
前文中完成最简单的漫反射shader只是单个光源下的漫反射,而往往场景中不仅仅只有一个光源,那么多个光源的情况下我们的物体表面的漫反射强度如何叠加在一起呢?前文打的tag "LightMode"="ForwardBase"又是什么意思呢?
Unity内置的DiffuseShader,也就是我们创建一个Material出来时默认的Shader也是多光源的,所以这篇文章完成的shader与默认的diffuse shader基本效果一致。
首先引入几个概念
渲染路径 Rendering Path
Unity在处...
分类:
其他好文 时间:
2014-09-23 20:11:25
阅读次数:
267
下面我们开始今天的Unity3D游戏开发技能培训。我们学习Unity3D培训目标:让U3D初学者可以更快速的掌握U3D技术,自行制作修改素材,可以独立完成2D、3D小规模游戏及网页游戏开发。今天我们来做一个高端大气上档次的东西。我相信大家都玩过一款叫做《愤怒的小鸟》的游戏,这款游..
分类:
其他好文 时间:
2014-09-23 19:44:46
阅读次数:
369
1、时间:Unity提供了Time类,这个类主要用来获取当前的系统时间。Time.time:从游戏开始后开始计时,表示截止目前共运行的游戏时间。Time.deltaTime:获取Update()方法中完成上一帧所消耗的时间。Time.fixedTime:FixedUpdate()方法中固定消耗的时间...
分类:
其他好文 时间:
2014-09-23 13:53:44
阅读次数:
192
GUILayout布局可以自动排列相关控件,例如:1 void OnGUI()2 {3 GUILayout.Button("这一个GUILayout按钮");4 }效果:可以将控件的大小自动缩放成适应大小,从屏幕左上角开始排列,例如:1 void OnGUI()2 ...
分类:
其他好文 时间:
2014-09-23 01:24:34
阅读次数:
479
1.GUILayout控件1 void OnGUI()2 {3 GUILayout.Button("这是GUILayout按钮");4 }效果:会自动调整控件大小,自动定位在屏幕左上角;2.组视图1 void OnGUI()2 {3 GUI.B...
分类:
其他好文 时间:
2014-09-23 01:13:03
阅读次数:
347
1.创建窗口 1 //声明窗口位置大小 2 private Rect pos = new Rect(10,60,120,50); 3 4 //回调函数 5 void Wincallback(int id) 6 { 7 if(GUI.Button(ne...
分类:
其他好文 时间:
2014-09-23 01:08:13
阅读次数:
404