02 2017 档案

摘要:1.Lambert模型,公式为I=Kd*Il(N*L); 1 Shader "Custom/Lambert_A" { 2 Properties { 3 _Diffuse("Diffuse",Color)=(1,1,1,1) 4 } 5 SubShader { 6 Pass{ 7 Tags { "Li 阅读全文
posted @ 2017-02-27 17:11 露夕逝 编辑
摘要:在Cg中,用uniform修饰符声明一个参数表明它的值是由外部的数据源初始化的,而且在给定这批向量的处理中保持不变。 Uniform inputs,表示一些与三维渲染有关的离散信息数据,这些数据通常由应用程序传入,并通常不会随着图元信息的变化而变化,如材质对光的反射信息、运动矩阵等。Uniform 阅读全文
posted @ 2017-02-27 11:26 露夕逝 编辑
摘要:1.unity内置的摄像机和屏幕参数: 2.unity中一些常用的包含文件: 3.unityCG.cginc中一些常用的结构体: 4.unityCG.cginc中一些常用的帮助函数: 5.从应用阶段传递模型数据给顶点着色器时,unity支持的常用语义: 6.从顶点着色器传递给片元着色器时unity使 阅读全文
posted @ 2017-02-24 11:42 露夕逝 阅读(1582) 评论(0) 推荐(0) 编辑
摘要:Cg 支持 7 种基本的数据类型:1. float, 32 位浮点数据,(6位小数)一个符号位。浮点数据类型被所有的 profile 支持(但是 DirectX8 pixel profiles 在一些操作中降低了浮点数的精度和范围);2. half, 16 位浮点数据(应该是3位小数);3. int 阅读全文
posted @ 2017-02-23 10:26 露夕逝 阅读(524) 评论(0) 推荐(0) 编辑
摘要:- - GUILayout 这个本身就是用于自动布局的。 不用给定位置的,这也是它与GUI的区别所在。通常默认开始的位置是屏幕的左上角。当然你也可以限定开始自动布局的位置。用 GUILayout.BeginArea(); 比如 GUILayout.BeginArea(Rect(100,100,100 阅读全文
posted @ 2017-02-22 14:14 露夕逝 阅读(783) 评论(0) 推荐(0) 编辑
摘要:1.Lambert模型(漫反射) 环境光: Iambdiff = Kd*Ia 其中Ia 表示环境光强度,Kd(0<K<1)为材质对环境光的反射系数,Iambdiff是漫反射体与环境光交互反射的光强。 方向光: Ildiff = Kd * Il * Cos(θ) 其中Il是点光源强度,θ是入射光方向与 阅读全文
posted @ 2017-02-21 14:22 露夕逝 阅读(845) 评论(0) 推荐(0) 编辑
摘要:dot():dot表示的是求向量a、b的点乘,结果是一个标量。dot(a,b)=|a|*|b|*cos<a,b> 阅读全文
posted @ 2017-02-21 11:04 露夕逝 阅读(184) 评论(0) 推荐(0) 编辑
摘要:粗糙的物体表面向各个方向等强度地反射光,这种等同地向各个方向散射的现象称为光的漫反射(diffuse reflection)。产生光的漫反射现象的物体表面称为理想漫反射体,也称为朗伯(Lambert)反射体。 只考虑环境光情况下: 考虑入射光方向情况下:当方向光照射到朗伯反射体上时,漫反射光的光强与 阅读全文
posted @ 2017-02-21 10:28 露夕逝 阅读(5172) 评论(0) 推荐(0) 编辑
摘要:Shader "Custom/BasicShader" { Properties { //属性 } SubShader { //针对显卡A的SubShader Pass { //设置渲染状态和标签 //开始CG代码片段 CGPROGRAM //盖代码片段的编译指令,例如: #pragma vertex vert #pragma fragment frag //CG... 阅读全文
posted @ 2017-02-20 17:36 露夕逝 阅读(134) 评论(0) 推荐(0) 编辑
摘要:1 Shader "Custom/MyShader"{ 2 3 Properties{ 4 5 } 6 SubShader 7 { 8 Pass 9 { 10 CGPROGRAM 11 #pragma vertex vert 12 #pragma fragment frag 13 float4 vert(float4 v:POSITION):SV_POSITION 14 ... 阅读全文
posted @ 2017-02-20 16:38 露夕逝 阅读(530) 评论(0) 推荐(0) 编辑
摘要:_Int ("Int",Int)=2为:变量名("面板显示的名称",数据类型) 对于Int,Float,Range这些数字类型的属性,默认值为单独的数字。对于贴图的属性,默认值为通过一个字符串后跟一个花括号来指定的。 字符串要么为空,要么是内置的纹理名称,如"white","balck","gray 阅读全文
posted @ 2017-02-20 14:58 露夕逝 编辑
摘要:1 Shader "Custom/MyShader"{ 2 3 Properties{ 4 _Int ("Int",Int)=2 5 } 6 7 SubShader{ 8 //显卡a使用的子着色器 9 Tags{"RenderType"="Opaque"} 10 CGPROGRAM 11 #pragma surface surf Lambert 12 struct I... 阅读全文
posted @ 2017-02-20 14:27 露夕逝 编辑
摘要:1.Lambert模型(漫反射) 环境光: Iambdiff = Kd*Ia 其中Ia 表示环境光强度,Kd(0<K<1)为材质对环境光的反射系数,Iambdiff是漫反射体与环境光交互反射的光强。 方向光: Ildiff = Kd * Il * Cos(θ) 其中Il是点光源强度,θ是入射光方向与 阅读全文
posted @ 2017-02-17 14:30 露夕逝 编辑
摘要:Star 自定义编辑器简易教程 an introduction to custom editors 原文地址 http://catlikecoding.com/unity/tutorials/star/ 简介 Introduction 这个教程将让你学会如何创建一个星型控件以及如何制作这个控件的自定 阅读全文
posted @ 2017-02-16 12:06 露夕逝 编辑
摘要:RequireComponent的使用: 当你添加的一个用了RequireComponent组件的脚本,需要的组件将会自动被添加到game object(游戏物体)。这个可以有效的避免组装错误。举个例子一个脚本可能需要刚体总是被添加在相同的game object(游戏物体)上。用RequireCom 阅读全文
posted @ 2017-02-16 10:12 露夕逝 编辑
摘要:首先,光栅化(Rasterize/rasteriztion)。这个词儿Adobe官方翻译成栅格化或者像素化。没错,就是把矢量图形转化成像素点儿的过程。我们屏幕上显示的画面都是由像素组成,而三维物体都是点线面构成的。要让点线面,变成能在屏幕上显示的像素,就需要Rasterize这个过程。就是从矢量的点 阅读全文
posted @ 2017-02-15 13:47 露夕逝 编辑
摘要:Unity版本5.3.2 如下图所示,ToolBar就是Unity顶部的那一横条。这里的所有按钮一般情况下都得我们手动的用鼠标去点击。这篇文章我们说说如果自动操作它们 1.自动点击左边四个按钮 (拖动、坐标、旋转、缩放、矩形) 那么如果我不像自动设置,只是想监听手动点击的事件如何? OK.如下图所示 阅读全文
posted @ 2017-02-14 18:52 露夕逝 编辑
摘要:Hierarchy视图中选择一个游戏对象以后通过右键可以打开一个unity默认菜单,一般情况下都可以满足我们,但是我想真对某些特殊的游戏对象而展开特殊的菜单。如下图所示,比如这样: 代码: OK 欢迎大家在下面给我留言讨论。 如果你想改Project视图的右键菜单,原理也是一样的。 Unity版本5 阅读全文
posted @ 2017-02-14 18:42 露夕逝 编辑
摘要:比如编辑模式下对场景或者特定文件夹有一些操作可以在这个面板里来完成。 代码如下: 识别场景:[CustomEditor(typeof(UnityEditor.SceneAsset))] 识别文件夹和一些unity不支持的文件类型:[CustomEditor(typeof(UnityEditor.De 阅读全文
posted @ 2017-02-14 18:01 露夕逝 编辑
摘要:今天无意间听同事说的一个新方法,可以拓展系统自带组件的Inspector。我试了一下果然有效算是学习了, 在博客里面记录一下,方便以后查阅。 如下图所示,可以在系统摄像机组件上添加一个按钮,这样就可以单独来处理逻辑了。 本文固定链接: http://www.xuanyusong.com/archiv 阅读全文
posted @ 2017-02-14 17:09 露夕逝 编辑
摘要:get set 使用起来很方便,但是编辑时在Inspector视图中问题就来了,因为get/set的属性即使是public了,但是在Inspector视图中依然不显示。。谷歌一下估计就是下面这样的答案。 如下图所示问题又来了,因为在编辑模式下修改Width的值,但是代码中的 set 压根就没执行。 阅读全文
posted @ 2017-02-14 15:48 露夕逝 编辑
摘要:Scene视图是编辑游戏模型的地方,其实它还可以进行编辑。如下图所示,我给Scene视图做了简单的编辑。 Scene视图的拓展是基于对象的,意思就是你必须在Hierarchy视图中选择一个对象才行。Hierarchy视图中选择不同的对象可以有不同的Scene视图。图中我们创建了一个立方体对象,接着给 阅读全文
posted @ 2017-02-14 15:43 露夕逝 编辑
摘要:MenuItem:在标题栏自定义菜单。需要在Editor文件夹内创建脚本,无需挂载。但是注意其下的函数必须为静态函数。 效果: 阅读全文
posted @ 2017-02-14 14:55 露夕逝 编辑
摘要:Unity支持自行创建窗口,也支持自定义窗口布局。在Project视图中创建一个Editor文件夹,在文件夹中在创建一条脚本。 自定义窗口需要让脚本继承EditorWindow在设置MenuItem,此时在Unity导航菜单栏中GameObjec->window就可创建一个自定义窗口。 Editor 阅读全文
posted @ 2017-02-14 14:20 露夕逝 阅读(542) 评论(0) 推荐(0) 编辑
摘要:Unity拥有非常丰富的拓展编辑器接口,如果是在网上下载过别人写的插件,你会发现为什么它的监测面板视图和普通的不一样?其实是他通过代码自己绘制的监测面板,这篇博文MOMO带大家来学习编辑器。如下图所示,这是我通过代码拓展的面板视图。 下一条简单的脚本,绑定挂在摄像机上。 如图所示,在监测面板视图中它 阅读全文
posted @ 2017-02-14 13:54 露夕逝 阅读(268) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示