游戏人生

不积跬步,无以至千里;不积小流,无以成江海。

导航

2014年12月16日 #

引擎设计跟踪(九.14.2c) 最近一些小的更新

摘要: 最近的一些小的update: 1.normal map VS bump map 2.material LOD 细节更新 3.UV坐标系 阅读全文

posted @ 2014-12-16 12:45 crazii 阅读(656) 评论(0) 推荐(0) 编辑

2014年12月7日 #

引擎设计跟踪(九.14.2b) 骨骼动画基本完成

摘要: 用dual quaternion实现的蒙皮动画和max导出插件 阅读全文

posted @ 2014-12-07 00:48 crazii 阅读(2551) 评论(5) 推荐(0) 编辑

2014年10月15日 #

最近在玩的游戏

摘要: 几年前在学校的时候玩细胞分裂1, 玩了3,4关吧,前段时间steam上打折, 于是买了准备继续填坑, 打了前5关, 趁着国庆放假打通关了, 剧情还可以, 当然从现在的眼光看画面和动作, 觉得非常一般. 但是游戏性还是蛮不错的.另外玩的一个是darksiders(暗黑血统), 这个也是几年前玩了一点开... 阅读全文

posted @ 2014-10-15 17:42 crazii 阅读(231) 评论(0) 推荐(0) 编辑

2014年10月4日 #

引擎设计跟踪(九.14.2a) 导出插件问题修复和 Tangent Space 裂缝修复

摘要: 由于工作很忙, 近半年的业余时间没空搞了, 不过工作马上忙完了, 趁十一有时间修了一些小问题.这次更新跟骨骼动画无关, 修复了一个之前的,关于tangent space裂缝的问题:引擎设计跟踪(九) 3DS MAX 导出插件引擎设计跟踪(九.10) Max插件更新,地形问题备忘这里说明一下修复方法,... 阅读全文

posted @ 2014-10-04 17:20 crazii 阅读(945) 评论(3) 推荐(0) 编辑

2014年8月19日 #

[工作积累] Google/Amazon平台的各种坑

摘要: 所谓坑, 就是文档中没有标明的特别需要处理的细节, 工作中会被无故的卡住各种令人恼火的问题. 包括系统级的bug和没有文档化的限制. 继Android的各种坑后, 现在做Amazon平台, 遇到的坑很多, 这里记录一下备忘: 先汇总下Android Native下的各种问题, 当然有些限制有明确文档 阅读全文

posted @ 2014-08-19 17:00 crazii 阅读(2185) 评论(0) 推荐(0) 编辑

2014年8月14日 #

[工作积累] NDK通过Java获取package name 和version

摘要: ////////////////////////////////////////////////////////////////////////////Java code snippet//get APK's versionCode in AndroidManifest.xmlpublic int ... 阅读全文

posted @ 2014-08-14 18:40 crazii 阅读(3974) 评论(5) 推荐(0) 编辑

2014年7月30日 #

[工作记录] Android OpenSL ES: references & AAC related

摘要: AAC V.S. MP3http://en.wikipedia.org/wiki/Advanced_Audio_Coding#AAC.27s_improvements_over_MP3AAC patent lisense FAQ:http://www.vialicensing.com/licensi... 阅读全文

posted @ 2014-07-30 21:29 crazii 阅读(1143) 评论(0) 推荐(0) 编辑

2014年7月19日 #

[工作记录] Android OpenGL ES: non-square texture - continue

摘要: previous:[工作记录] Android OpenGL ES 2.0: square texture not supported on some devicerecently I found that it is the mipmap of a non-square texture thatc... 阅读全文

posted @ 2014-07-19 21:28 crazii 阅读(344) 评论(0) 推荐(0) 编辑

2014年7月16日 #

工作记录 - OBB的解决方案

摘要: 之前关于OBB的内容: Android上使用native IO 最近工作中的问题笔记 工作记录[续] android OBB 自从用了Java来mount OBB, 再也没有遇到挂载的问题. 但最近在LG Nexus5 和LG G2上测试, 发现某个大约30K文件的文件, 一次性读取出来以后, 处理 阅读全文

posted @ 2014-07-16 19:28 crazii 阅读(2821) 评论(0) 推荐(0) 编辑

2014年6月29日 #

最近在玩的游戏

摘要: 最近在玩战神1 战神2玩了个开头不得不说在玩过的解密类游戏中 战神的战斗打击感是最好的游戏之一后面把战神2暂时放一放去玩波斯王子2 这是之前烂尾的游戏现在补上。幸运的是我在win8.1上可以正常跑波斯2 阅读全文

posted @ 2014-06-29 21:50 crazii 阅读(164) 评论(2) 推荐(0) 编辑

2014年6月27日 #

[工作记录] NDK: AKEYCODE_DEL not notified

摘要: https://code.google.com/p/android/issues/detail?id=42904#makechanges我们游戏的输入系统是自己渲染(通过跨平台渲染接口)的. 首先有predefined的keycode, 然后平台相关的模块把platform keycode map到... 阅读全文

posted @ 2014-06-27 17:11 crazii 阅读(347) 评论(0) 推荐(0) 编辑

2014年6月20日 #

[工作记录] Android OpenGL ES 2.0: square texture not supported on some device

摘要: npot texture: non-power-of-two texture.rectangle texture: non-square (height != wdith)在测试Samsumg Galaxy S4的时候, 发现rectangle texture支持不好, 虽然创建成功, 但是绘制有问... 阅读全文

posted @ 2014-06-20 21:07 crazii 阅读(349) 评论(0) 推荐(0) 编辑

2014年6月9日 #

闲聊: 女神异闻录4

摘要: 最近在玩P4G, 将近一周目. 觉得游戏制作的非常不错. P4G是AVG和回合RPG结合的风格.比较感兴趣的是到了冬季, 所有场景都变成白雪覆盖. 这个要处理的东西其实还是蛮多的: 出了飘雪以外, 还包括任务服装(模型+贴图+2D avatar), 场景所有的模型贴图, 脚步的脚印和声音等. 而且还... 阅读全文

posted @ 2014-06-09 10:52 crazii 阅读(228) 评论(0) 推荐(0) 编辑

2014年6月7日 #

NDK: unable to watch local variables after using GCC4.8

摘要: the problem definitly apears after changing toolchain from gcc 4.6 to gcc 4.8.here's a solution with all details, no extra explanation needed:http://s... 阅读全文

posted @ 2014-06-07 15:27 crazii 阅读(177) 评论(0) 推荐(0) 编辑

2014年5月31日 #

工作记录[续] android OBB

摘要: 前两篇在这里:Android上使用native IO最近工作中的问题笔记最近遇到的问题是,java.io.IOException: FAT FullStackOverflow的结果:http://stackoverflow.com/questions/18906055/what-causes-job... 阅读全文

posted @ 2014-05-31 16:46 crazii 阅读(4850) 评论(4) 推荐(0) 编辑

2014年5月27日 #

NDK: GCC 4.6 crashes

摘要: used version: NDK r9b,arm-linux-androideabi-4.6 GCC, with "-O2 -finline-limit=24".got this error:internal compiler error: segmentation faultI remember... 阅读全文

posted @ 2014-05-27 19:47 crazii 阅读(454) 评论(0) 推荐(0) 编辑

2014年5月25日 #

引擎设计跟踪(九.14.2) 更新记录和骨骼动画导出更新

摘要: 接上一篇笔记, 仔细看了cal3d的代码, 他的骨骼节点判断也有判断controller(node controller type + object type)的,所以之前的做法跟他是一样的.导出插件改用一个DLL封装, 该DLL在导出时加载真正的导出DLL,导出完毕再卸载内部DLL,具体思路见ht... 阅读全文

posted @ 2014-05-25 19:36 crazii 阅读(641) 评论(0) 推荐(0) 编辑

2014年5月17日 #

WARNING: Calls to any function that may require a gradient calculation inside a conditional block may return undefined results

摘要: GLES2.0:Some device will give a warning on compling shaders(yet the compling will succeed), and the rendering result is incorrect with blink & artifac... 阅读全文

posted @ 2014-05-17 21:21 crazii 阅读(1076) 评论(0) 推荐(0) 编辑

2014年5月14日 #

[REFERENCE] Real-Time-Normal-Map-Dxt-Compression

摘要: DXT5N & 3Dc(aka BC5)compression in common code & SIMD:http://mrelusive.com/publications/papers/Real-Time-Normal-Map-Dxt-Compression.pdfOthers:dxt1 rea... 阅读全文

posted @ 2014-05-14 22:24 crazii 阅读(382) 评论(0) 推荐(0) 编辑

2014年5月8日 #

crash - JNI WARNING: input is not valid modified utf-8: illegal continuation byte

摘要: the key point is "Modified UTF-8" is not like "Regular UTF-8", a legal Rgular UTF8 code sequence may be considered illegal against Modified UTF8.One w... 阅读全文

posted @ 2014-05-08 12:51 crazii 阅读(5795) 评论(0) 推荐(0) 编辑

android adb: wireless debug

摘要: http://developer.android.com/tools/help/adb.html#wireless 阅读全文

posted @ 2014-05-08 12:51 crazii 阅读(222) 评论(0) 推荐(0) 编辑

2014年4月30日 #

游戏杂谈

摘要: 既然是游戏人生, 随便写点游戏方面的吧.最近主要在玩的游戏是PSVita的龙之皇冠(Dragon Crown), 听朋友说不错, 所以就试一下. 除了巨乳的噱头以外, 游戏性其实还是蛮不错的. 在很多人追求3D画面,挖掘机能的时候, 龙冠的2D地下城游戏仍然做得很不错. 这款游戏应该是我在Vita里... 阅读全文

posted @ 2014-04-30 13:35 crazii 阅读(319) 评论(2) 推荐(0) 编辑

2014年4月29日 #

引擎设计跟踪(九.14) 更新记录和骨骼动画导出

摘要: 骨骼动画是去年打算写的部分, 但是中间因为工作太忙, 已经拖了一年了. 期间也加了其他东西, 比如对UI做了部分完善.UI对toolbar button添加了drop down 支持,一种是dropdown menu,一种是dropdown property sheet实现这些控件不难, 但是要做抽... 阅读全文

posted @ 2014-04-29 19:15 crazii 阅读(568) 评论(0) 推荐(0) 编辑

2014年4月22日 #

引擎设计跟踪(九.13) 跨平台输入系统的畅想

摘要: 这里不会说输入设备的处理细节, 只YY一下输入跨平台输入系统的设计方式.先说下我们公司的方式, 有Controller接口, 主要针对console. Win32下,内部封装有mouse和keyboard, 但是对外不可见, 而是用mouse和keyboard"模拟"了controller接口.对于... 阅读全文

posted @ 2014-04-22 19:11 crazii 阅读(376) 评论(8) 推荐(0) 编辑

2014年4月21日 #

杂乱工作笔记

摘要: 上周回总部跟同事吃饭的时候,跟一些老外大牛们聊了一些公司用到的各种技术。很多问题当时没有做笔录, 所以趁现在还记得,记录一下。1.动画压缩数据格式:使用quaternion保存旋转,这一点相信很多引擎都这么做了。 格式使用R10G10B10A2来提高精度, 只保存xyz,对于normalized q... 阅读全文

posted @ 2014-04-21 06:38 crazii 阅读(529) 评论(7) 推荐(0) 编辑

引擎设计跟踪(九.12) 图形系统设计

摘要: Blade引擎的shader/FX系统相对来说非常简单,使用XML定义材质:technique、pass,包含renderstates和自定义的semantic 。shader目前用hlsl,受到doxygen的启发,将引擎自定义的部分写在注释部分,这样可以保证hlsl可以不做任何预处理而被正常编译... 阅读全文

posted @ 2014-04-21 06:36 crazii 阅读(783) 评论(13) 推荐(0) 编辑

2014年4月9日 #

最近工作中的问题笔记

摘要: 调试GLES, 发现某平台有各种问题,1.用三星手机测试和iphone测试, 在drawcall以后不调用glDisableVertexAttribArray, 没有问题. 但在某平台下,后续的draw call会花屏.实际问题主要是因为shader会优化掉某些不用的attrib, 这种情况下, 要... 阅读全文

posted @ 2014-04-09 10:34 crazii 阅读(1730) 评论(0) 推荐(0) 编辑

2014年3月14日 #

引擎设计跟踪(九.11) 资源管理设计备忘

摘要: 资源管理器之前经过一次内部重构(但接口不变,所以代价相对比较低). 到目前还算稳定. 所以想把基本思路记录一下, 留着备忘. 因为整个架构的代码太多, 也积累了两三年, 有时候为了修bug, 要花长时间再从头阅读自己以前写的代码, 或许有一个备忘的话会好一点.资源管理器的访问方式, 可以是singl... 阅读全文

posted @ 2014-03-14 21:15 crazii 阅读(503) 评论(14) 推荐(0) 编辑

2014年3月11日 #

引擎设计跟踪(九.10) Max插件更新,地形问题备忘

摘要: 最近没有大的更新. 最近本来要做max的骨骼/动画导出, 看导出插件代码的时候, 突然想起之前tagent space导出的疑问, 于是确认了一下.http://www.cnblogs.com/crazii/archive/2013/04/03/2997601.html同时在网上找到了一个很明显的带有镜像UV的模型, 进行了测试.使用该模型顺便发现了float16 (IEEE 754-2008 16 bit floating point format)即半精度浮点数 (http://en.wikipedia.org/wiki/Half_precision), 我的实现方式的bug: 由于使用了 阅读全文

posted @ 2014-03-11 00:05 crazii 阅读(550) 评论(7) 推荐(0) 编辑

2014年3月1日 #

引擎设计跟踪(九.9) 文件包系统(Game Package System)

摘要: 很早之前,闪现过写文件包系统的想法, 但是觉得还没有到时候. 由于目前工作上在做android ndk开发, 所以业余时间趁热做了android的移植, 因为android ndk提供的mountable obb调试时不太好用,或许因为有坑还没有发现. 所以把Ogre的zip文件系统拿了过来. 因为引擎里已经有了类似Ogre的IStream抽象, 所以做起来比较简单. 把zip文件改成obb后缀上传到手机,就可以测试了. 目前除了GLES没实现,全部代码已经移植完了.移植笔记在这里:http://hi.baidu.com/crazii_chn/item/62705798f8a76bd91b49 阅读全文

posted @ 2014-03-01 17:30 crazii 阅读(500) 评论(5) 推荐(0) 编辑

2014年1月9日 #

[原] Android上使用native IO

摘要: 首先, 官方google play对APK大小有限制: 50M.(https://support.google.com/googleplay/android-developer/answer/113469?hl=en)所以想通过google play发布大数据的应用的话, 得通过扩展包, 一个叫做O... 阅读全文

posted @ 2014-01-09 18:46 crazii 阅读(4028) 评论(0) 推荐(0) 编辑

2013年12月19日 #

[原] GLES在iOS和Android上的不同

摘要: 本来GLES提供了与native platform的接口 EGL,然而iOS没有使用EGL接口, 而是自己搞了一套,叫做EAGL的类似东西, 虽然说大同小异,但是在做跨平台的时候还是很恶心.elgMakeCurrent: 默认的EGL是需要surface和display的, iOS的EAGL实现, ... 阅读全文

posted @ 2013-12-19 12:37 crazii 阅读(7124) 评论(0) 推荐(0) 编辑

2013年12月18日 #

[原] perforce 获取本地最近更新的Changelist

摘要: 获取perforce客户端最后一次sync的changelist, 前提是中间没有任何代码提交:http://stackoverflow.com/questions/47007/determining-the-last-changelist-synced-to-in-perforce试了一下,相对路径没有输出. 绝对路径可以.比如:p4 changes -m1 //depot/game_code/library/...#have>> Change 333 on 2013/11/12 by johndoe@anycom ' comments '只要//depot/ga 阅读全文

posted @ 2013-12-18 13:30 crazii 阅读(2288) 评论(0) 推荐(0) 编辑

[转]GLES 3.0 新特性

摘要: 转自:http://www.ifanr.com/131333OpenGL ES 3.0 带来很多新特性,根据 AnandTech 的解释:支持更多缓冲区对象。在 OpenGL ES 2.0 时中,缓冲区对象的规范有模糊之处。名字一样缓冲区对象,在实际渲染中对表现却有细微的差别。针对这个问题 OpenGL ES 3.0 制定了更详细对格式规范。新版 OpenGl ES 还增加对 Uniform Buffer Object 的支持;新版 GLSL ES 3.0 着色语言,支持 32 位整数和浮点数据类型以及操作。之前版本的着色语言只支持精度更低的,这样虽然能够加快计算的速度,所需的资源也更少,但当 阅读全文

posted @ 2013-12-18 12:04 crazii 阅读(2867) 评论(0) 推荐(0) 编辑

2013年12月17日 #

[原]android不支持命名的semaphore

摘要: 之前sem_open在iOS上, 创建命名的semaphore没有问题 (iOS不支持匿名的semaphore), 但是现在Android平台的sem_open时候报错,返回ENOSYS.命名的semaphore因为有名字,可以在不同进程间访问,幸好我这里不需要进程间共享和通信, 直接使用匿名semaphore也可以. (貌似匿名的semaphore也可以通过mmap实现进程共享和通信.但目前没有需求).使用sem_init 和 sem_destroy代替 sem_open和 sem_close, 问题解决. 阅读全文

posted @ 2013-12-17 14:53 crazii 阅读(1293) 评论(0) 推荐(0) 编辑

2013年12月2日 #

[原]android 链接错误

摘要: 由于没有使用NDK的makefile, 而是把NDK的toolchain集成到现有的build system,所以出现了诡异的错误:unsupported dynamic reloc R_ARM_REL32; recompile with -fPIC.stackoverflow上有个类似问题, 说把... 阅读全文

posted @ 2013-12-02 13:13 crazii 阅读(439) 评论(2) 推荐(0) 编辑

2013年11月2日 #

引擎设计跟踪(九.8) Gizmo helper实现与多国语言

摘要: 最近把gizmo helper的绘制做好了.1.为了复用代码,写了utility来创建sphere, cube, cylinder, plane, ring(line), circle(solid) 这些基本物体, 顺便把天空球的创建代码改用utility函数,以后DS的灯光球和椎体等等也可以复用了.2.本来很简单的以为使用正交投影(orthographic projection)就可以画出大小不变的gizmo.但是却忽略了一个问题: 因为helper的世界变换矩阵跟选中的物体的一样,所以理论上gizmo的轴朝向是跟物体的轴(透视投影后的)朝向一致,位置也和物体(透视)投影后的坐标一致. 但是 阅读全文

posted @ 2013-11-02 19:25 crazii 阅读(739) 评论(0) 推荐(0) 编辑

2013年8月31日 #

[原]游戏引擎与游戏逻辑

摘要: 在坛子里看到讨论,忍不住多说几句.这里整理下.笔者项目和引擎都做过,经验大体相当.业余在做引擎.1.引擎和逻辑该如何选择?如果不写一点逻辑,直接就做引擎的工作,个人感觉不是特别好,除非是在工作前就有大量编码经验积累,有一定设计经验,也就是思路比较清晰的.即便如此,个人还是觉得应该先接触下项目,多了解一般性的需求.或者业余时间跟几个美术和策划组队,让他们来提需求.引擎的用户除了程序员以外,还有大量工具是面向美术和策划的,而且要有完整的data pipeline,同时又要足够灵活,能够支撑各种类型的游戏.如果这个做不好,技术再好也基本没戏了.再或者自己做策划和美术,从策划和美术的角度来提出需求,注 阅读全文

posted @ 2013-08-31 05:48 crazii 阅读(1007) 评论(0) 推荐(0) 编辑

2013年6月15日 #

引擎设计跟踪(九.7) Gizmo helper

摘要: 简单记录一下,本来想找一个max模型,直接用的,可是找了很久没找到。这几天看了Ogitor的AxisGizmo,是手动创建的。所以也打算手动创建mesh。最近工作稍忙,有空了就随便写写。 阅读全文

posted @ 2013-06-15 14:49 crazii 阅读(261) 评论(0) 推荐(0) 编辑

2013年6月1日 #

引擎设计跟踪(九.6) 地形最近更新

摘要: 1.FastDXT前两天没事profiling了一下,发现squish的DXT压缩速度很慢,单块压缩速度是解压的10倍...网上搜了一个用SSEintrinsics优化的DXT压缩库(好像Id soft也在用,或者其员工是原作者),开源的:http://www.evl.uic.edu/cavern/fastdxt/适合实时压缩的.不过没有解压功能,解压仍使用squish.FastDXT确实很快,感觉速度是squish的好几倍,但是不够精确.在某些情况下,会产生错误,比如我的地形混合图,将4个通道压缩到3通道的DXT1,在squish下压缩没有问题,改用FastDXT以后,混合不对,混合边缘有模 阅读全文

posted @ 2013-06-01 21:23 crazii 阅读(682) 评论(0) 推荐(0) 编辑