游戏人生

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

导航

随笔分类 -  3D引擎设计

上一页 1 2 3 下一页

架构设计
引擎设计跟踪(九.14.2f) 最近更新: OpenGL ES & tools
摘要:windows到android的移植: 渲染,shader和texture. 阅读全文

posted @ 2015-01-11 00:05 crazii 阅读(1372) 评论(10) 推荐(0)

引擎设计跟踪(九.14.2e) DelayLoaded DLLs (/DELAYLOAD)
摘要:关于DLL的delay load:http://msdn.microsoft.com/en-us/library/151kt790.aspx最近在做GLES的shader compiler, 把现有的HLSL转成GLSL.因为ShaderResource是定义在Graphics Subsystem,... 阅读全文

posted @ 2014-12-31 17:48 crazii 阅读(342) 评论(0) 推荐(0)

引擎设计跟踪(九.14.2d) [翻译] shader的跨平台方案之2014
摘要:Origin:http://aras-p.info/blog/2014/03/28/cross-platform-shaders-in-2014/简译 translation:作者在2012年写过一篇shader跨平台的文章, 开始提到了并有链接.1.手写或者宏替换使用宏定义将HLSL & GLSL... 阅读全文

posted @ 2014-12-29 19:16 crazii 阅读(1681) 评论(0) 推荐(0)

引擎设计跟踪(九.14.2c) 最近一些小的更新
摘要:最近的一些小的update: 1.normal map VS bump map 2.material LOD 细节更新 3.UV坐标系 阅读全文

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

引擎设计跟踪(九.14.2b) 骨骼动画基本完成
摘要:用dual quaternion实现的蒙皮动画和max导出插件 阅读全文

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

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

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

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

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

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

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

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

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

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

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

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

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

引擎设计跟踪(九.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 阅读(577) 评论(7) 推荐(0)

引擎设计跟踪(九.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 阅读(525) 评论(5) 推荐(0)

引擎设计跟踪(九.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 阅读(770) 评论(0) 推荐(0)

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

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

引擎设计跟踪(九.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 阅读(721) 评论(0) 推荐(0)

引擎设计跟踪(九.5) 骨骼蒙皮动画预研
摘要:最近看了骨骼蒙皮的细节,之前只了解大致原理:用场景图类似的级联层次结构,组织骨骼的框架运行时根据骨骼的空间参数(旋转,位移,缩放)计算蒙皮顶点.基本原理使用级联(父子)层次关系的好处就是能够方便反应真实的情况: 手臂运动时,手掌和手指会跟着运动(这个需要没帧在CPU端计算骨骼树上的所有最终变换).骨... 阅读全文

posted @ 2013-05-09 12:33 crazii 阅读(880) 评论(3) 推荐(0)

引擎设计跟踪(九.3) 多视图:基本工具菜单完成
摘要:基本功能在51前已经做好,因为放假出去,所以没来得及更新.底层支持1.多视口功能的底层支持, 添加了2种方案,A) Present到另外一个窗口B) 多SwapchainC)为什么不使用D3D的viewport?感觉那个功能太简单,不满足复杂的需求(除非自己补充功能),感觉swap chain比较满足当前的情况.当然,google了一下发现了等价的OGL(扩展)实现,所以可以封装.第一种方法使用一个桌面(全屏)大小的共享backbuffer,present到不同的窗口, 要计算源矩形区域第二种因为使用D3D的swap chain,相对简单,但是根据d3d sdk每个swapchain都有自己的 阅读全文

posted @ 2013-05-03 01:09 crazii 阅读(381) 评论(0) 推荐(0)

引擎设计跟踪(九.3) 3DS MAX 导出插件 小总结
摘要:最近主要工作:主要在调试材质LOD, 因为材质LOD的框架已经有了,地形里面测试过,但是因为地形里面的贴图都是预载并且处理过的,不需要运行时加载贴图.所以LOD切换后,加载/卸载贴图的部分没有测试,这次借这个机会测试并且完善了材质LOD系统.需要注意的一点是,模型在最初加载的时候,只加载diffuse贴图, 后面的贴图加载,就交给材质LOD系统了.因为导出的是MAX的标准材质,所以diffuse,normal各种类型都是知道的,所以导出这些信息难度不大.另外研究了一下高光贴图,高光贴图有3种: specular level,specular color , specular gloss第一种是 阅读全文

posted @ 2013-04-22 02:31 crazii 阅读(701) 评论(0) 推荐(0)

引擎设计跟踪(九.2) 3DS MAX 导出插件 继续
摘要:先分享一个autodesk的导出教程文档http://images.autodesk.com/adsk/files/3ds_max_game_export_programming_guide.doc记录一下遇到的几个问题:1.导出空间的问题.IGameMesh::GetVertex() 可以选择导出对象空间还是世界空间的坐标.本来以为对象空间是正确的选择.后来发现,"对象空间"是指单个Node的对象空间,所以渲染出来的身体部件散乱分部在原点附近...2.UV坐标的问题. //coordinates IGameConversionManager* cm = GetConver 阅读全文

posted @ 2013-04-18 18:01 crazii 阅读(896) 评论(0) 推荐(0)

上一页 1 2 3 下一页