首页

unity3d绘制出mesh的bounds

SkinnedMeshRenderer render = GetComponentInChildren<SkinnedMeshRenderer>(); if (render != null && render.sharedMesh != null) { /* Vector3[] vertext = render.sharedMesh.v...
  • 阅读全文 |
  • 分类:unity3d |
  • 发表于:04月02日 |
  • 浏览:836 |
  • 评论已关闭 条评论

Unity中的Mathf类

Mathf.Abs绝对值  计算并返回指定参数 f 绝对值。  Mathf.Acos反余弦  static function Acos (f : float) : float  以弧度为单位计算并返回参数 f 中指定的数字的反余弦值。  Mathf.Approximately近似  static function Approximat...
  • 阅读全文 |
  • 分类:unity3d |
  • 发表于:03月05日 |
  • 浏览:637 |
  • 评论已关闭 条评论

unity3D之Vector3.Dot和Vector3.Cross的使用  

  在Unity3D中, Vector3.Dot 表示求两个向量的点积; Vector3.Cross 表示求两个向量的叉积。    点积计算的结果为数值,而叉积计算的结果为向量。两者要注意区别开来。    在几何数学中:    1.点积    点积的...

unity3d中shader基础入门学习  

先看下这个文章: http://www.360doc.com/content/13/0923/15/12282510_316492286.shtml 重要的数据结构: struct SurfaceOutput {     half3 Albedo; //像素的颜色     half3 Normal; //...

unity3d光照贴图lightmap烘焙

什么是烘焙? 简单地说, 就是把物体光照的明暗信息保存到纹理上, 实时绘制时不再进行光照计算, 而是采用预先生成的光照纹理(lightmap)来表示明暗效果. 那么, 这样有什么意义呢? 好处: 由于省去了光照计算, 可以提高绘制速度 对于一些过度复杂的光照(如光线追踪, 辐射度, AO等算法), 实时计算不太现实. 如果预先计算好保存到纹理上, 这样无疑可...

四元数理解之前:复数相乘和旋转的意义  

i,-1的平方根,是一个存在于不同维度的数!一旦把它想通了,我们就可以把复数的旋转与乘法联系起来。 啊哈,这个确实让我很惊讶:角度增加但是不需要用到Sin或Cos!但是我对它是如何作用的有一个直观的理解。现在让我们弥补一下这个缺憾! 最乏味的解释:怎么会这样? 这里有一个经常被提到的用来解释为什么复数相乘就是角度相加的阐述。 首先,把复数写成极坐...

unity3d中DrawCall优化和DrawCallBatch

DrawCall 和 DrawCall Batch unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:引擎首先经过简单的可见性测试,确定摄像机可以看到的物体,然后把这些物体的顶点(包括本地位置、法线、UV等),索引(顶点如何组成三角形),变换(就是物体的位置、旋转、缩放、以及摄像机位置等),相关光源,纹理,渲染方式(由材质/Shader决定)等数据准备好,然...

LRU缓存淘汰算法简介

LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的,是根据页面调入内存后的使用情况进行决策了。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU算法就是将最近最久未使用的页面予以淘汰。 LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来...

OpenGL红宝书入门学习笔记——blend混合(glBlendFunc,glBlendEquation,glBlendFuncSeparate)  

混合 在正常情况下,OpenGL渲染时会把颜色值输入到颜色缓冲区中,深度值输入到深度缓冲区中。如果我们关闭深度测试,那么新的颜色值会简单地覆盖已经存在于颜色缓冲区中的值。当开启深度测试时,颜色段只有在通过深度测试时,才会覆盖已经存在于颜色缓冲区中的值。在这两种情况下,在渲染时颜色值要么完全被废弃,要么就直接覆盖旧的颜色值。现在介绍一种新的方式,混合。 glEnable(GL_BLE...

Windows PowerShell使用方法简介  

一直很羡慕Linux的命令提示符(当然他们叫Shell)。正则表达式,管道,各种神奇的命令,组合起来就能高效完成很多复杂的任务。效率实在是高。流了n年的哈喇子以后,终于有幸用上了Win7,邂逅了cmd的升级版:Windows PowerShell。从此暗爽无比,原来Windows下也有这样的利器呀~ 看看下面的Windows脚本,不到15行有效代码。在Win7下只要右击脚本文件,选择Run ...

渲染管线  

GPU的渲染管线,听起来好像很高深的样子,其实我们可以把它理解为一个流程,就是我们告诉GPU一堆数据,最后得出来一副二维图像,而这些数据就包括了”视点、三维物体、光源、照明模型、纹理”等元素。  在各种图形学的书中,渲染管线主要分为三个阶段:应用程序阶段、几何阶段、光栅阶段。  1,应用程序阶段。  这个阶段相对比较好理解,就比如我们在Unity里开发了一个游戏,其实...

OpenGL编程入门:GLUT简介

GLUT 代表OpenGL Utility Tookit。Mark J.Kilgard 为了使OpenGL应用程序结构能够真正独立于窗口系统构思了GLUT库。感谢GLUT,使我们可以写程序而不必去学关于X windows或者微软自己的窗口系统。Kilgard在X windows上应用这个库,后来Nate Robins把它扩展到微软的窗口系统。感谢他们,他们做的太棒了。 ...

OpenGL编程入门[环境准备]

OpenGL没有SDK,从https://www.opengl.org/resources/libraries/glut/ 上下载glut(the opengl utility toolki)glut是实用工具库,跨平台,这里是API 文档https://www.opengl.org/documentation/specs/glut/spec3/spec3.html 下载的包里解压缩,将...

unity3d shader入门  

Shader和Material 如果是进行3D游戏开发的话,想必您对着两个词不会陌生。Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设置,将这些内容(Shader及输入参数)打包存储在一...

unity3d中update(),lateupdate(),fixedupdate()的区别用法

update跟当前平台的帧数有关,而FixedUpdate是真实时间,所以处理物理逻辑的时候要把代码放在FixedUpdate而不是Update. Update是在每次渲染新的一帧的时候才会调用,也就是说,这个函数的更新频率和设备的性能有关以及被渲染的物体(可以认为是三角形的数量)。在性能好的机器上可能fps 30,差的可能小些。这会导致同一个游戏在不同的机器上效果不一致,有的快有的慢。...

windows下文件编码和读写注意

最近写了一个小工具,主要实现自动搜索指定路径下所有文本文件内容,并替换指定字符串,记录下几个容易犯错误的地方。 1,fread读出来的buffer存放到string里,如果要搜索指定的字符串,比如“中华人民共和国”,首先要确定文件的编码格式是什么?根据文件的编码格式,对目标串进行编码转换后,才能用string.find去进行查找。 而如何判断文件的编码格式呢,windows下文本文件一般有两种字符...

lua字符串分割 string.split实现

function Split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFi...

lua时间函数操作和对比代码,os.date() os.time()

time和date两个函数在Lua中实现所有的时钟查询功能。函数time在没有参数时返回当前时钟的数值。(在许多系统中该数值是当前距离某个特定时间的秒数。)当为函数调用附加一个特殊的时间表时,该函数就是返回距该表描述的时间的数值。这样的时间表有如下的区间: year a full year month ...

unity3d ngui右键菜单经常失效+无法修改坐标值  

NGUI版本3.7.5bug 场景中的控件经常会右键失效,并且无法修改其X坐标轴,修改代码UIPanel623 把那行改成这样就OK if (anchorOffset && (mCam == null || mCam.transform.parent != cachedTransform))

Unity3d中NGUI控件说明(中文) Tweens  

概述 NGUI自带小而精的Tween库。 可以右键widget之后在Tween菜单选择合适的选项来给它增加tween功能。或者通过NGUI菜单增加。或者直接通过名字来挂tween脚本。 新增的tween默认是active的,所以你点击Play后tween会运行。如果不想运行,勾选掉脚本名字那里的复选框。 所有的tween都继承自同样的基类(UITweener)并且有同样的基本功能。Fro...