摘要: 前提:美术很随意得使用贴图、材质,大量的材质虽然名称不同,但是实际上材质属性是相同的。于是,在导出时,在依次处理材质时,应该将新的材质属性与已经收集到的材质进行对比,如果是相同的,则使用已存在的材质。同时,虽然mesh中的submesh其实是根据MatID来作划分,但是一般情况下,mesh中的submesh的vertex decl通常是完全相同的。那么其实可以将所有相同的vertex decl的submesh合并在同一个geometry(VB)中,submesh使用不同的index buffer来绘制,减少绘制时的VB切换。于是,就有了shared geometry的共用,如果submesh的阅读全文
posted @ 2014-03-22 00:12 千里马肝 阅读(1034) 评论(0) 编辑
摘要: 对于数据压缩,其实就是把浮点的32位精度,改用16位定点数来表达。例如0.0 = 0,1.0 = 32767,-1.0 = -32767这是一种有损压缩,会丢失一些精度,一般情况下是可以接受的。当浮点数是-1至+1的范围,即-32767至+32767。这时问题出现了,如果浮点的范围是几万,那么一些浮点如果是小数位后几位的数值,压缩后会变成0。例如:0.0123,在上述情况下,最终存在unsigned short中其实是0或者1,解压后也是0。发现问题的起因是手上有一个奇葩的模型数据,它的某一组UV竟然有3千万的大小,而其他的UV则是正常范围的几十或者是0-1。压缩后,出现大面积的纹理走样。通过阅读全文
posted @ 2014-03-21 23:43 千里马肝 阅读(432) 评论(0) 编辑
摘要: 1down votefavoriteI'm implementing ominidirectional shadow mapping for point lights. I want to use a linear depth which will be stored in the color textures (cube map). A program will contain two filtering techniques: software pcf (because hardware pcf works only with depth textures) and varianc阅读全文
posted @ 2014-02-25 21:51 千里马肝 阅读(377) 评论(0) 编辑
摘要: Quote:Original post by RobMaddisonI understand that, for aliasing mitigation, it might be beneficial to use linear depth maps as opposed to non-linear depth maps when rendering to a shadowmap floating point texture, but how is that normally achieved? Is it as simple as converting the regular float d阅读全文
posted @ 2014-02-25 18:07 千里马肝 阅读(464) 评论(0) 编辑
摘要: 关于顶点压缩,好处是可以减少带宽,一定程度提高加载速度,可以提高约5-10%的fps,特别是mobile上,简单描述就是:压缩之前(32字节)position float3 12normal float3 12texcoord0 float2 8压缩之后(16字节)position short4 8normal ubyte4 4texcoord0 short2 4压缩的方法,其实就是在bounding box内分65536份,用"-32767.5"到"32767.5"描述。参考文章:“Vertex Decompression using Ve...阅读全文
posted @ 2014-01-07 00:37 千里马肝 阅读(1340) 评论(0) 编辑
摘要: http://makedreamvsogre.blogspot.tw/2014/01/ios-dependenciesogre-source.html可能有人會想問我為什麼要自行編譯IOS Dependencies,主要是因為Ogre提供PreBuild的版本是用C++11編譯,當使用到一些ThirdParty Library沒辦法使用C++11編譯的時候或沒有Source Code的ThirdParty Library,這就很重要了(比方Particle Universe 1.6),在此跟大家分享一下相關心得,希望能達拋磚引玉的效果…安裝hg安裝cmakehg clone http://bi阅读全文
posted @ 2014-01-06 22:25 千里马肝 阅读(1914) 评论(1) 编辑
摘要: 在佛斯特的肚子里,靠近幽门的地方,两只阿米巴原虫快乐地生活着。他们的日子过得很舒服,从来没饿过肚子,而且根本用不着干活:因为他们就是所谓的寄生虫。这两个好朋友相处得很愉快,但时不时也会争论不休,因为他们性格迥异,并且打发时间的方式也完全不同:一只热爱思考,总是想着第二天可能会发生点什么;相反,另一只是个大吃货,一天到晚吃个不停,也很愿意继续这样下去,完全不考虑将来,无忧无虑地享受生活。 有一次,饭点时分,喜欢思考的那只阿米巴虫告诉他的同伴,今天早上自己都思考了些什么: “可能,”他说道,“我们周围的这个世界,这些河流,这些高山,这些深不可测的峡谷,还有这天空,都不是真的像我们所看到的...阅读全文
posted @ 2013-09-22 00:14 千里马肝 阅读(526) 评论(0) 编辑
摘要: 1. H.264是MPEG4的第十部分,是一个标准。对头,国际上两个视频专家组(VCEG和MPEG)合作提出的标准,两个专家组各有各的叫法,所以既叫H.264,也叫AVC。2.x264是一个编码器,他参照的标准是H.264。对头,H.264是需要付费的编码格式,而x264是符合H.264标准的一个开源项目,是免费的,也就是H264的一个简化版,不支持某些高级特性。但x264非常优秀,并不比H264的商业编码器差。3.h264与AVC1都是FourCC (他俩通常在什么情况下使用呢?)FOURCC为AVC1,没有开始码的H.264视频,主要就是用MP4或MKV等封装的文件,也就是你平时在电脑..阅读全文
posted @ 2013-09-14 16:27 千里马肝 阅读(3624) 评论(0) 编辑
摘要: 如果在vc10/11工程的rc文件中有以下任意一行代码:#include #include 那么vc将会给出一对警告:C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string.h(54): warning RC4011: identifier truncated to '_CRT_SECURE_CPP_OVERLOAD_STANDA'C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string.h(76): warning RC4011: id阅读全文
posted @ 2013-09-12 14:32 千里马肝 阅读(983) 评论(0) 编辑
摘要: 调试3dsmax插件,有一个避免每次修改插件代码都需要重启3dsmax的方法,就是将导出的核心代码写在一个独立的DLL中,然后在插件代码需要导出时LoadLibrary这个DLL,导出之后再FreeLibrary。这样的好处是,通过同时开启2个vs,一个是插件,另一个是DLL,当需要修改代码时,只需要重新编译DLL即可,除非有致命错误导致3dsmax崩溃。但是从Visual Studio 2010起,VS会一直lock住相关文件,例如pdb之类的。这样将导致DLL代码在重新编译时,会出现LNK1201错误,从而无法更新DLL的pdb文件。我花了好几个小时,终于找到一个解决办法,为了让后来者不再阅读全文
posted @ 2013-09-05 04:19 千里马肝 阅读(594) 评论(1) 编辑