自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 收藏
  • 关注

原创 我写的书:Unity Shader编程

我自己写的书,免费分享。

2015-04-23 09:59:43 3224 3

原创 UnrealEngine4(虚幻4)这次来真格的了

作为一个行内非常知名、而且的确牛逼(licence费用曾经高达传说中的千万RMB)的引擎。近日宣布开源并且免费供游戏开发者使用,对盈利的游戏,按照5%的毛利来分成即可。关键之处在于,对于教学、影视、建筑等也就是非游戏产品,虚幻4并不收取任何费用。 这下unity的licence费用就显的贵了! 那么unity的另外一个杀手锏“跨平台”呢?按照官方的公布,目前为止,u

2015-03-06 09:58:09 5481

原创 Unity shader教程-第六课:Ramp Texture

Ramp Texture在Valve公司的军团要塞2后开始成为一种控制漫反射的方法。 Ramp Texture是类似下图的一张贴图: 在一般的Blinn/Phong模型中,我们对漫反射的系数是基于入射光和击中的点的法线的角度。在这种情况下,系数的计算代码大致如下:float DiffuseCoeff(in float3 pos, in flo

2015-03-03 17:09:55 12376

原创 Unity shader教程-第五课:自定义光照模型之Half Lambert模型

Half Lambert光照模型是Valve公司在制作”半条命“游戏时发明的,用来给在比较暗的区域显示物体。总体来说,该光照模型提高了物体表面的漫反射光。下图是Valve的示例,左手边是Lambert模型,右手边是Half Lambert模型。使用我们原来的基础的shader,我们把LightingBasicDiffuse()方法改成如下:i

2015-03-02 11:07:00 4066

原创 Unity shader教程-第四课:自定义光照模型(方程)

Unity的自定义光照模型的使用。Unity默认的光照模型非常有限,在现实的使用中各种不同的材质和环境需要各种各样的光照模型,本篇介绍怎么在Unity shader中使用自定义的光照模型。

2015-02-02 13:09:12 4066

原创 Unity shader教程-第三课:实践!同一个shader,多个material。

一步一步教你写的unity surface shader教程系列。

2015-01-29 13:04:46 6279

原创 Unity shader教程-第二课:Shader的框架和Properties详细介绍

详细介绍Unity的Surface shader的Properties部分,案例形式讲解,步步到位。

2015-01-27 17:19:18 6852

原创 Unity shader教程-第一课:写shader和应用shader的流程

这是我们Unity shader(着色器)教程的第一课,在这节课中,你会学到怎么样来用程序来编写一个在Unity中能使用的着色器:漫反射着色器。这节课的内容主要让我们熟悉创建shader和应用shader的流程。准备工作:安装Unity版本4.6以上创建一个新的工程菜单GameObject | 3D Object | Plane创建出一个平面,作为我们的地面菜单GameOb

2015-01-25 19:55:46 7416 1

原创 Unity的Cover flow的实现包(2个)

苹果的mac机上预览图片,有一个所谓的cover flow的效果,这里是2个相关的实现。

2014-05-28 13:34:54 4351

原创 Unity应用怎么暂停(Pause)

很多时候,应用程序或者是游戏需要用上暂停功能,unity提供了不少便捷的方式,列在下面:1、在editor中,按下pause按钮即可暂停2、如果在代码中控制,可以通过设置Time.timeScale = 0来实现暂停。3、如果你通过Time.timeScale = 0设置了暂停,但是你在某些地方还需要有动画之类的,那么可以在实现动画的地方用上Time.realtimeSince

2014-05-27 13:21:32 16748

原创 Unity的Coroutine

对于Coroutine,编译器需要产生一些代码,在每次的大循环中,Unity的Update()返回后,保证是yield后的代码被正确调用,这样就形成了我们看到的一个function能分段执行的机制。

2014-05-27 10:16:00 3392

原创 解决fbxsdk链接出现的unresolved external symbol KFbxSurfaceMaterial::ClassId

早期的话

2014-05-12 17:20:57 2973 1

原创 保存网格(mesh)到磁盘上

Unity提供了很方便的工具来保存mesh之类的,下面的代码挂在GameObject上后,按下F键能把mesh(该GameObject必须有mesh组件)保存到磁盘的Assets目录下。在磁盘上是.asset的文件,在project中看到的是一个mesh符号的文件。代码完全是示意作用,没有做严格测试。

2014-04-18 13:15:22 7536 2

原创 不使用引擎,如何开发游戏

一个游戏,还有物理引擎、AI引擎等很重要的几个引擎。而所谓的引擎,很大的程度上,是一个”专注于某个功能的模块“。软件中有很多的模块,为什么只有渲染、物理等才被成为引擎,跟汽车的引擎一样,因为这个模块可能比较核心,在所有的组件中功能更有决定性,所以才被叫做引擎。有人可能会说,现在的游戏,决定性的是游戏的内容、逻辑,那为什么没有逻辑引擎这个说法。这个的关键之处在于,逻辑不能成为一个很通用的模块。所以,才没有逻辑引擎这个说法。

2014-04-15 16:35:49 3478

原创 抓githum的源代码

因为抓Cafu engine的代码,需要用到git,Cafu官网上给的命令是git clone https://bitbucket.org/cafu/cafu.git Cafu命令行工具不大会,于是先后安装1、msysgithttp://code.google.com/p/msysgit/2、tortoisegit 和 简体中文包http:/

2014-04-11 18:37:47 2754

原创 Unity利用双相机巧做水印功能

两个相机,都用正交,第一个depth比第二个小,第一个负责非水印图的渲染,第二个负责渲染水印。两个相机都渲染到同一个RenderTarget上。这样渲染出来的RenderTarget就是带水印的图。

2014-04-09 18:18:38 5208

原创 多场景下天空盒、雾、环境光的设置

项目中,因分工关系,美术的场景和程序的场景分开。美术的场景中主要负责整体的场景的布置,程序的场景注重交互、UI等。因为存在多个美术场景之间的跳转,而且在不同的美术场景里用了不同的天空盒,发现unity内部管理不是很清楚,所以采用了自己的方式。

2014-04-06 18:50:55 5372

原创 unity3d缩短splash screen的时间

在unity3d中,splash screen的显示时间是由加载第一个场景(Build Setting中的0号)里面的资源的速度决定的,因此,如果要缩短splash screen的时间,我们能做的就是在0号场景中尽可能的少用资源。可以借鉴的方式如下1、在0号场景中放置一个empty game object;2、在该game object上挂一个脚本,这个脚本里有代码做 applicat

2014-04-04 09:35:14 6830

原创 webplayer中截屏

因为webplayer的限制,在webplayer上运行unity程序的时候,截屏并不像本地运行程序那样。基本思路是:1、通过相应的接口把屏幕像素读取到内存,并且encode成png格式;2、通过wwwform类把png格式的流由服务器接收,并且存在服务器上,做成链接,然用户下载;unity官方相关的代码例子:// Grab a screen shot

2014-04-03 14:14:43 2940

原创 Unity中使用ios的plugin出现EntryPointNotFoundException错误

今天一朋友用unity,有功能需要写ios插件,遇上了不少问题,记录于此,希望能帮到同样问题的人。问题一:XCode编译出.a后,使用Unity编译出XCode工程,工程里没有.a文件解决方案:Unity对.a的放置目录有限制,需要把.a放置在Plugins/ios目录下(该目录自己新建)问题二:XCode模拟器出现EntryPointNotFoundException

2014-03-20 18:26:53 7868

原创 Unity的Resources.Load()在load同样的资源内存消耗是怎样的?

3D引擎内部为什么对资源使用共享指针的一个说明:资源是共享的,每个资源都有一个引用值,当有一个指针引用到它,这个指针就加一。反之,减去一。当引用值是0的时候,引擎就可以释放这个资源占用的内存。对于Unity来说,资源的引用值归0后,需要用Resources.UnloadUnusedAssets()来促使引擎释放所有引用值为0的资源。

2014-03-20 14:45:43 5873

原创 wxFormBuilder怎么制作继承于wxWindow的窗口,便于集成在frame中

以前都是拿合作者制作好的UI框架,偶尔这次需要亲自操刀。事情是这样:用wxWidgets做一个窗口框架,左边是个可浮动的树列表窗口,右边需要一个自定义的窗口,作为框架的客户绘制区域。用wxFormBuilder,拖出一个frame,然后里面拖一个树形列表窗,这两步很简单,而且正如自己想要。结果最后的客户绘制窗口却找不到适合的控件来拖动。差点想直接用代码得了,无意中想起wxFormBuilder的自

2014-02-20 21:22:30 4350 2

原创 XCode中互相包含引起的"property with 'retain(or strong)' attribute must be of object type"错误与解决

虽然说XCode的#import比#include的好处是解决多重包含的问题,但是今天还是遇到了互相包含头文件中产生property with 'retain(or strong)' attribute must be of object type”这个错误。解决方式很简单:在相关的头文件中加入@class "xxxx"

2013-12-24 10:53:43 7823

原创 XCode开发遇到的“Could not inspect the application package”解决方案

今日在加入资源到XCode工程的时候,直接加了个文件夹名字为"Resources"的,结果在烧录到ipad上的时候,遇到题目中的提示,因此,不能烧录成功。猜想可能是Resources这个词内部使用到,于是尝试着把文件夹改名为"MyResources",改动后XCode丢失了连接,因此需要重新导入一下。然后重新烧录(Clean一遍),发现还是老问题。于是再按中Op

2013-12-10 13:13:23 10986 3

原创 Unity Point light(点光源)的个数问题

Unity 多个点光源时,前面的点光源失效

2013-12-02 16:53:29 8489

原创 ipad忘记密码后重置的步骤

密码忘记了,查找网络发现简单的步骤很少有人写的很清楚,这里是相关的步骤1. 关闭IPad 2. 把USB线连上电脑,另外一头连ipad暂时不连 3. 按下Home键,并且在保持按下状态的同时把USB线的另外一头连上iPad 4. 保持Home键在按下状态,直到看到iPad的“连接到iTunes”的画面 5. 松开Home键 6. 开启iTunes

2013-08-27 18:53:13 11799 2

原创 Unity4.1.4f1在win7上monodevelop失效

好久没有用win7,因此原来的一台电脑上还是4.0的版本,今天升级到4.1.4f1,unity进入正常,但是monodevelop却打不开。在开启的时候,一个空白的mono窗口上叠加了两个空白的小窗口,其他一点提示都没有。想当然的认为是本机的.net framework有问题,重装后问题依旧。最后还是上官网查了一下,原来这个版本配置是有bug,更行一个文件就可以。更新的文件链接:

2013-08-24 16:43:44 2741

原创 让NGUI支持超链接(Hyperlink,彩色、可点击)

最近为了让NGUI支持这个功能,对NGUI内部做了一番加强,在不改变其设计思路的情况下,利用其原有的基础,加入了超链接功能,涉及的改动地方较多,无法一一叙述。文后会放出下载地址,有改动的代码,需要的可以用到自己的项目中。改动后的功能1、支持自定义消息。这个信息会在用户点击超链接后通过消息发送出来,用于应用代码判断超链接的性质、功能等。2、沿用Label本身的颜色代码,也

2013-06-19 20:04:58 6862

原创 NGUI制作显示tooltip需要注意的地方

NGUI中有代码UITooltip是用来做tooltip用的。这里不展示怎么样用这个东西,因为NGUI的Example中有例子,我们来看一下其中的原理,同时也说一下几个在使用中容易发生问题的地方。内部原理:1,UICamera的FixedUpdate()每帧运行的最后,会查看在当前鼠标下是否有带collider的控件,有的话就会给该控件发OnTooltip(

2013-06-10 10:20:53 5995 2

原创 Unity利用NGUI实现自定义鼠标

Unity4.0开始支持hardware鼠标,只要在setting中配置一下相关选项就可以。同时,官方文档上也说明了,hardware鼠标跟software鼠标的某个差别在于,hardware每个不同的平台会用不同的格式,大小也是限死的。所以,software鼠标就还具备很大的价值。方法一:1、在某个UIRoot(2D)的panel下面,利用NGUI的菜单创建出一个sprite,把

2013-06-06 21:25:02 2592

转载 C# 特性(Attribute)详细介绍

原文链接:http://www.cnblogs.com/luckboy/archive/2009/07/18/1526083.html以下为正文:1、什么是Atrribute 首先,我们肯定Attribute是一个类,下面是msdn文档对它的描述:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,

2013-03-23 17:44:01 1076

转载 如何从 Visual C++ UNIX 格式保存文件

原文地址:http://support.microsoft.com/kb/268901。以下为转载文字:可以使用以下步骤来创建 Win32 控制台项目,将转换为行终止向"LF"包含"CR/LF"的文件:使用 Win32 控制台应用程序应用程序向导来创建名为DOS2UNIX的新的空项目从文件菜单上,单击新建,然后单击文件选项卡。选择C/c + + 源文件并命名

2013-03-20 16:10:00 2169

原创 unity3d,卸载,清除原先的licence

出于各种原因,我们有可能会遇上需要卸载unity3d,重新安装一个不同版本的licence。这个时候,新unity3d会在重新安装后出现无法激活的现象。下面是相关的步骤,能解决这个问题:1,卸载unity2,删除这个文件夹WinXP/Vista: C:/Documents and Settings/All Users/Application Data/Pace Anti

2013-03-18 19:28:43 13684

原创 Panda3d,使用MSVC debug

这一篇基于文章Panda3d,MSVC下编译第一个窗口应用。在第一个应用上,如果我们在main.cpp上下断点,然后按下F5启用debug的话,断点会被禁用,也就没有办法进行调试,因为整个工程的配置是按照Panda3d官网的要求,用了Release的开发模式(按照官网说法,Debug模式能编译过,但是运行的时候会因为不知名的原因crash)。以下是我配置的方式,用来激活断点:1、重

2013-02-05 14:01:28 1745

原创 Panda3d,MSVC下编译第一个窗口应用

官网上第一个窗口代码是这样的,#include "pandaFramework.h"#include "pandaSystem.h"int main(int argc, char *argv[]) { //open a new window framework PandaFramework framework; framework.open_framework(argc

2013-02-02 17:19:50 2385

原创 Panda3d编译

在官网上,先有这么一段Note that in the past, it was very difficult to build Panda3D. Things have improved. It is now fairly straightforward to download and compile panda. In particular, this is a sensibl

2013-02-01 19:21:49 2674 1

原创 STB image library的使用

这是一个c程序库(网站:http://nothings.org/),很小巧。可以配置成从IO或者从内存读取。而且在作者网站上下载的时候,实际上只是拷贝一大段c代码。支持的文件格式: JPEG baseline (no JPEG progressive) PNG 8-bit-per-channel only TGA (not sure wh

2012-12-10 12:04:12 3526

原创 DirectX10输出内容到wxWidgets窗口

int Engine::Init(wxWindow* handle, bool windowed){ m_WindowHandle = handle; wxRect rc = handle->GetClientRect(); int width = rc.width; int height = rc.height; //Set up DX swapchain DXGI_SWA

2012-11-25 19:30:46 2089 1

原创 Shader警告X3578

Shader警告X3578:warning X3578: Output value 'VS' is not completely initialized。 这个警告是因为Vertex Shader,这里的名字是“VS”,有一个output的变量(顶点着色器的输出结构,自定义)被赋值了,但是没有所有的部分被赋值。举例:struct OUTPUT{

2012-11-18 18:08:29 2242

原创 PIX停住,不出结果窗口的解决

用PIXdebug程序的时候,正常是关闭被debug的窗口后,会跳出分析数据窗口,然后有时候会有hang住的现象,就是PIX似乎没有感觉到窗口已经退出,因此并不弹出相应的结果。这个时候,如果是看到左下角的信息是“waiting for profile xxx to exit“那么容易办的事情就是进入进程列表,应该能看到几个刚才运行的程序,把他们强制关闭就可以让PIX弹出结果。原因是这些窗口的确没有

2012-11-14 17:08:23 1322

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除