游戏人生

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

My Links

Blog Stats

News

2017年9月12日 #

关于地形altas的处理

正文内容加载中...

posted @ 2017-09-12 19:58 crazii 阅读(34) 评论(3) 编辑

2017年8月10日 #

[工作积累] 大型世界的草渲染

摘要: 最近工作在研究如何在大型世界的植被(主要是草)的渲染,主要考虑下面几个问题: 1.半自动化procedual生成,密度分布,画刷2.受环境的的影响(风,角色等)3.LOD和动态加载释放 由于睡觉后突发奇想,想到了一些idea,趁着没有忘记先记下来: 基本思路:billboard+instancing阅读全文

posted @ 2017-08-10 02:24 crazii 阅读(65) 评论(2) 编辑

2017年7月30日 #

引擎设计跟踪 地形LOD的改进

摘要: 虽然地形已经有LOD和形变(geomorphing, 这里简称morphing)来进行LOD的渐变,从而避免bump, 但是如果LOD级别过多,远处的高山就会严重丢失细节,比如变成尖尖的凸起,非常丑陋,这是morphing无法解决的。 解决一种方式是使用强制的固定LOD (fixed LOD),如果阅读全文

posted @ 2017-07-30 20:09 crazii 阅读(60) 评论(0) 编辑

2017年7月29日 #

引擎设计跟踪 ShadowMap 细节和分析

摘要: 之前在工作总汇总了shadowmap的各种问题 [工作积累] shadow map问题汇总 最近有点时间再仔细研究了shadowmap的一些算法。主要修复了LiSPSM(上面链接里后面有更新),实现了TSM和CSM阴影。 总的来说,CSM只是结构上的不同,多了拆分和几个pass,实现起来相对比较简单阅读全文

posted @ 2017-07-29 22:35 crazii 阅读(39) 评论(0) 编辑

2017年7月27日 #

[工作积累] TAA Ghosting 的相关问题

摘要: 因为TAA要使用上一帧的历史结果,那么在相机移动的时候,颜色就会有残留,出现ghosting(残影)。 由于上一帧历史是累积的,是由上一帧的直接渲染结果和上上帧的结果做了合并,所以ghosting并不是一帧就消失,要累积一段时间才会消失。 处理ghosting有很多方法,比如depth based 阅读全文

posted @ 2017-07-27 23:16 crazii 阅读(11) 评论(0) 编辑

2017年7月21日 #

[工作积累] UE4 TAA ReProjection的精度处理

摘要: 先贴一个UE4 TAA的slidehttps://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf 里面细节问题很多,先记录一下目前想到和遇到的问题,便于备忘,后面有空的话再记录。 TAA用到的Vel阅读全文

posted @ 2017-07-21 23:11 crazii 阅读(102) 评论(2) 编辑

2017年7月14日 #

[工作积累] Tricks with UE4 PerInstanceRandom

摘要: 最近在用UE4的Instancing, 发现限制很多。 Unity有instancing的attribute array (uniform/constant buffer),通过InstanceID来访问每个instance的数据,实现每个实例的不同的参数(通常的一种做法)。 然而Unreal没有这阅读全文

posted @ 2017-07-14 22:47 crazii 阅读(87) 评论(0) 编辑

2017年5月27日 #

[工作积累] UE4 并行渲染的同步 - Sync between FParallelCommandListSet & FRHICommandListImmediate calls

摘要: UE4 的渲染分为两个模式1.编辑器是同步绘制的 2.游戏里是FParallelCommandListSet并行派发的。 mesh渲染也分两类,static mesh 使用TStaticMeshDrawList 来绘制, skinned mesh是用DrawingPolicyFactory::Dra阅读全文

posted @ 2017-05-27 23:44 crazii 阅读(73) 评论(0) 编辑

2017年5月9日 #

[工作积累] D3D10+ 中 Pixel Shader 的input semantic和参数顺序

摘要: 由于semantic的使用,我们有理由相信 vertex shader的output 和 pixel shader的input是按照semantic来匹配的,而跟传入顺序无关。印象dx9时代是这样。 虽然习惯上使用共用的sruct (VS_OUTPUT)来保证senamtic修改的同步,便于维护,但阅读全文

posted @ 2017-05-09 19:32 crazii 阅读(19) 评论(0) 编辑

2017年1月14日 #

[原] inline operator delete & DLL boundary

摘要: 很久以前写在百度空间的这篇文章: [百度空间] [原] 全局operator delete重载到DLL 首先,纠正一个词“重载”,operator new/delete是替换(replacement),不是重载。只要任意一个编译单元定义了替换函数,并不需要全局声明,不用包含头文件,就会替换掉全局的默阅读全文

posted @ 2017-01-14 15:21 crazii 阅读(42) 评论(0) 编辑

2016年4月30日 #

[工作积累] shadow map问题汇总

摘要: 1.基本问题和相关 Common Techniques to Improve Shadow Depth Maps: https://msdn.microsoft.com/en-us/library/windows/desktop/ee416324(v=vs.85).aspx Cascaded Sha阅读全文

posted @ 2016-04-30 21:19 crazii 阅读(368) 评论(0) 编辑

引擎设计跟踪(九.14.3.4) mile stone 2 - model和fbx导入的补漏

摘要: 之前milestone2已经做完的工作, 现在趁有时间记下笔记. 1.设计 这里是指兼容3ds max导出/fbx格式转换等等一系列工作的设计. 最开始, Blade的3dsmax导出插件, 全部代码都是写在导出的DLL里面的, 后来考虑到FBX等等其他格式, 现在把模块分成两部分: Model/A阅读全文

posted @ 2016-04-30 10:20 crazii 阅读(145) 评论(0) 编辑

2016年4月3日 #

引擎设计跟踪(九.14.3.3) Deferred shading的一些小细节

摘要: 1.ambient light 之前的shader里面, 方向光会加上ambient 的计算. 但是如果没有方向光, 就没有ambient. 这是把全局方向光改为点光源之后发现的, 因为透明物体的forward shading是正常的, 其他的全是黑的. 解决方法: 如果没有方向光, 就专门画一个单阅读全文

posted @ 2016-04-03 18:45 crazii 阅读(86) 评论(0) 编辑

2016年3月30日 #

引擎设计跟踪(九.14.3.2) Deferred shading的后续实现和优化

摘要: 最近完成了deferred shading和spot light的支持, 并作了一部分优化. 之前forward shading也只支持方向光, 现在也支持了点光源和探照光. 对于forward shading, 可以在渲染每个对象之前, 用对象的包围盒, 查询空间内的光源, 然后填入shader 阅读全文

posted @ 2016-03-30 10:56 crazii 阅读(107) 评论(0) 编辑

2016年2月27日 #

《口袋妖怪 太阳/月亮》正式公布 简体中文确认

摘要: Pokémon(大陆通常意译为<口袋妖怪>, 港译为<寵物小精靈>,台译为<神奇寶貝>)系列作为任天堂平台的的招牌游戏之一, 自诞生20年以来在全球有非常多的玩家. 此前发布的版本内置了8国语言, 但是并没有中文.其实中国玩家也非常多, 所以经常拿"8国语言"来调侃. 该系列从未官方发布过中文版, 阅读全文

posted @ 2016-02-27 13:06 crazii 阅读(178) 评论(0) 编辑

2016年1月29日 #

古墓丽影:崛起 PC版今日发售

摘要: 之前xbox one的独占游戏 古墓丽影: 崛起(Rise of the Tomb Raider™), 今天正式在steam发售了, 之前就可以预购.简单看了一下, 画风跟前代类似, 但是画面更好, 有16x各向异性, 曲面细分, HBAO+, 天气效果等等 最重要的是支持13种语言(文字+全语音!阅读全文

posted @ 2016-01-29 15:09 crazii 阅读(59) 评论(0) 编辑

2016年1月22日 #

枪弹辩驳(弹丸论破)即将登陆PC

摘要: Spike Chunsoft在PSP上的经典推理游戏: 枪弹辩驳1(Danganronpa: Trigger Happy Havoc)即将登陆PC,PC党有福了.不过我在PSVita上已经玩完了两作高清重制, 外传还没有来得及玩. 三代也在制作中了.这是steam的页面:http://store.s...阅读全文

posted @ 2016-01-22 10:13 crazii 阅读(103) 评论(0) 编辑

2016年1月9日 #

引擎设计跟踪(九.14.3.1) deferred shading: Depthstencil as GBuffer depth

摘要: 问题汇总1.Light support for Editor编辑器加入了灯光工具, 可以添加和修改灯光.问题1. light object的用户互交.point light可以把对应的volume (wireframe sphere/cone)画出来用于用户选中, 但是光源太多的时候, 球就有点凌乱...阅读全文

posted @ 2016-01-09 20:46 crazii 阅读(127) 评论(7) 编辑

2015年12月25日 #

引擎设计跟踪(九.14.3) deferred shading 准备

摘要: 目前做的一些准备工作1.depth prepass for forward shading.做depth prepass的原因是为了完善渲染流程, 虽然架构上支持多个pass, 但实际上从来没有测过. 等流程完善的差不多了, 理论上只需要修改xml配置和shader, 不需要修改C++代码就可以实现...阅读全文

posted @ 2015-12-25 17:16 crazii 阅读(152) 评论(0) 编辑

2015年12月20日 #

引擎设计跟踪(九.14.2 final) Inverse Kinematics: CCD 在Blade中的实现

摘要: 因为工作忙, 好久没有记笔记了, 但是有时候发现还得翻以前的笔记去看, 所以还是尽量记下来备忘. 关于IK, 读了一些paper, 觉得之前翻译的那篇, welman的paper (http://graphics.ucsd.edu/courses/cse169_w04/welman.pdf 摘译:h阅读全文

posted @ 2015-12-20 22:39 crazii 阅读(131) 评论(0) 编辑

2015年12月13日 #

引擎设计跟踪(九.14.2j) TableView工具填坑以及多国语言

摘要: Blade的UI都是预定义的接口, 然后由插件来负责实现, 目前只有MFC的插件. 最近加上了TableView的视图, 用于一些文件的查看和编辑, 比如前面在文件包的笔记中提到需写一个package exploerer, 以及多国语言相关的笔记中需要的lang-edit-tool, 目前Blade...阅读全文

posted @ 2015-12-13 19:19 crazii 阅读(67) 评论(0) 编辑

2015年12月5日 #

[摘译] IK: 操纵关节式物体的反向动力学和几何约束

摘要: 原文:INVERSE KINEMATICS AND GEOMETRIC CONSTRAINTS FOR ARTICULATED FIGURE MANIPULATIONhttp://graphics.ucsd.edu/courses/cse169_w04/welman.pdf译者: craziihtt...阅读全文

posted @ 2015-12-05 21:20 crazii 阅读(1104) 评论(0) 编辑

2015年11月4日 #

steam商店正式支持RMB直接结算

摘要: 前两天看到新闻, 想不到这么快:http://tech.sina.com.cn/s/2015-10-26/doc-ifxizwsm2369244.shtml今天登陆steam发现标价已经成了RMB, 比直接美刀结算便宜一点, 可能是针对我国国情吧. 比如特价的盟军敢死队, 最便宜时好像是$4.99,...阅读全文

posted @ 2015-11-04 10:08 crazii 阅读(45) 评论(0) 编辑

2015年10月30日 #

巴黎游戏周: PS4独占游戏《重力少女2》

摘要: http://blog.us.playstation.com/2015/10/27/gravity-rush-2-coming-to-north-america-on-ps4/阅读全文

posted @ 2015-10-30 10:47 crazii 阅读(47) 评论(0) 编辑

2015年10月23日 #

引擎设计跟踪: 为什么Blade可以用Clang编译

摘要: 最近在使用VS2015 Community, 在添加了shared items project, 并把源代码加入shared items, 添加Android工程编译的时候, 发现可以用Clang正常编译(VS2015默认使用自带的Clang编译器来编译安卓).一开始并没有多想, 后来在准备添加Cl...阅读全文

posted @ 2015-10-23 18:31 crazii 阅读(235) 评论(0) 编辑

2015年10月16日 #

[工作积累] NBA 2K16 mobile终于发布了

摘要: 忙了大半年, 终于出来了.iOS:https://itunes.apple.com/us/app/nba-2k16/id984732818?mt=8Android:https://play.google.com/store/apps/details?id=com.t2ksports.nba2k16a...阅读全文

posted @ 2015-10-16 12:30 crazii 阅读(171) 评论(0) 编辑

2015年9月2日 #

[工作积累] Google Play Services

摘要: 注意添加APP_ID1 3 使用对应的AndroidInitialization方法gpg-cpp-sdk/android/include/gpg/android_initialization.h 1 /** 2 * @file gpg/android_initializa...阅读全文

posted @ 2015-09-02 17:49 crazii 阅读(244) 评论(0) 编辑

2015年8月28日 #

[原] RTTI 为什么type_info 有比较操作

摘要: The lifetime of the object returned bytypeidextends to the end of the program.根据C++标准, typeid()返回的type_info对象的生命周期那么长, 那么能不能通过直接比较指针来判断类型一致? 例如std::ma...阅读全文

posted @ 2015-08-28 11:09 crazii 阅读(90) 评论(0) 编辑

2015年8月9日 #

Cross Platform Note: STD C++ Preprocessor directives & pre-defined macros

摘要: ref:http://www.cplusplus.com/doc/tutorial/preprocessor/concolusion:directives:#define #undef#include#if #else #elif #endif #ifdef #ifndef#error ( #war...阅读全文

posted @ 2015-08-09 21:57 crazii 阅读(149) 评论(0) 编辑

2015年7月25日 #

7月21日, 文化部下发通知: 游戏机生产销售全面解禁

摘要: 这次不是自贸区, 希望是来真的吧, 毕竟国内经济不景气, 需要走"邪路"了(笑), 最好的是给游戏分个级, GTA什么的也能上.说实话, 很多玩游戏的老玩家都是30多的大叔, 很多都有孩子了, 年轻时玩游戏被曲解("战网魔"等等), 现在都中年了, 难道还是会被游戏毒害?其实游戏和影视一样, 是一种...阅读全文

posted @ 2015-07-25 01:37 crazii 阅读(68) 评论(0) 编辑

2015年7月23日 #

[工作积累] jboolean is neither JNI_TRUE nor JNI_FALSE

摘要: jboolean result = env->CallBooleanMethod(ShopDataAndroid.IAPBridge_Object, ShopDataAndroid.IAPBridge_getProductList);return (result == JNI_TRUE) ? 0 :...阅读全文

posted @ 2015-07-23 10:46 crazii 阅读(142) 评论(0) 编辑

2015年7月19日 #

最近在玩的游戏

摘要: 赛尔达时之笛和恶魔幸存者OC阅读全文

posted @ 2015-07-19 15:39 crazii 阅读(68) 评论(0) 编辑

2015年7月14日 #

任天堂社长岩田聪去世

摘要: 作为一个游戏玩家, 心情沉重. 聪哥走好!阅读全文

posted @ 2015-07-14 11:45 crazii 阅读(31) 评论(0) 编辑

2015年7月4日 #

[工作积累] JNI native 函数签名

摘要: 对于一个Java 类class MyClass { ... public native boolean nativeMyFunc(long param);}一般来说native对应的声明是这样:JNIEXPORT jboolean JNICALL Java_com_organisatio...阅读全文

posted @ 2015-07-04 19:13 crazii 阅读(101) 评论(0) 编辑

2015年6月25日 #

[工作积累] android 中添加libssl和libcurl

摘要: 1. libsslhttps://github.com/guardianproject/openssl-android然后执行ndk-build2.libcurl源代码组织结构, 下面的makefile要依赖这个结构. 因为curl依赖openssl, 所以需要先编译openssl:src/open...阅读全文

posted @ 2015-06-25 18:37 crazii 阅读(3432) 评论(0) 编辑

2015年6月18日 #

E3: PS4/PC 莎木3 众筹200万美元 9小时内达成

摘要: 这次E3任天堂没有新掌机(传说中的XDS呢.呵呵)和口袋的消息, 被喷得很严重, 索尼的FF7重制版和莎木3是亮点.而莎木3的众筹速度据说创了记录, 玩家的情怀大胜. 笔者看到国内也有赞助几十刀的玩家来着. 据说200万美元对于本次开发来说远远不够, 而这次众筹就是为了测试玩家情怀, 以增加投资商信...阅读全文

posted @ 2015-06-18 11:32 crazii 阅读(47) 评论(2) 编辑

2015年5月18日 #

[原] blade中C++ singleton的实现

摘要: 遵循C++03标准的, 可移植的, 更可控的singleton模板的实现.阅读全文

posted @ 2015-05-18 19:20 crazii 阅读(557) 评论(2) 编辑

[百度空间] [转] 四元数(Quaternions)

摘要: dual quaternion的基础知识阅读全文

posted @ 2015-05-18 19:05 crazii 阅读(85) 评论(0) 编辑

[百度空间] [原]DLL导出实例化的模板类

摘要: 因为模板是在编译的时候根据模板参数实例化的,实例化之后就像一个普通的类(函数),这样才有对应的二进制代码;否则,没有模板参数,那么编译器就不知道怎么生成代码,所以生成的DLL就没有办法导出模板了.但是根据MSDN的描述,可以导出模板类的实例化后的代码(注意:这里不是指实例化模板类的一个对象),比如 ...阅读全文

posted @ 2015-05-18 19:04 crazii 阅读(262) 评论(0) 编辑

[百度空间] [转]DLL地狱及其解决方案

摘要: DLL地狱及其解决方案原作者:Ivan S Zapreev译者:陆其明概要本文将要介绍DLL的向后兼容性问题,也就是著名的“DLL Hell”问题。首先我会列出自己的研究结果,其中包括其它一些研究者的成果。在本文的最后,我还将给出“DLL Hell”问题的一个解决方案。介绍我曾经接受过一个任务,去解...阅读全文

posted @ 2015-05-18 19:03 crazii 阅读(51) 评论(0) 编辑