摘要:
原则:Peak Performance Percentage 寻找性能瓶颈 工具:CPU Profiler(引擎Profiler、VS Profiler),GPU Profiler(RenderDoc、NSight) 分析步骤: CUP端:Game Thread(物理、网络、脚本、IO)、Rende 阅读全文
摘要:
噪声的发明起初是为了解决“非纯色不规则”纹理占用内存太大的问题。 噪声可以实现“局部细微渐变,全局差别很大”的效果。随机数无法达到这样的效果,但用随机数可以生产白噪声,再用高斯模糊达到类似的效果。在图形学api中,噪声可以看出是一个函数,用于模糊在网格上生成的随机数。 所有“不规则的图案”都可以用噪 阅读全文
摘要:
用Unity自带的Profile排查,卡顿的原因主要在于循环遍历的次数太多。案例: 遍历格子数太多导致卡顿。SLG游戏一张大地图由横竖多块“屏”拼接而成,一“屏”又由一片格子组成,一屏包含的格子往往是成百上千。游戏中有云雾,策划可以通过编辑器刷一片格子,以配置这片云覆盖了哪些格子。在代码逻辑中,当判 阅读全文
摘要:
很久没用C++了,趁着过年跟家鑫碰面,找了一些Piccolo上的看着难懂的C++语法请教他,记录一下。 【文件名及后缀】之前一直都以为C++的所有文件都必须是.h 或者.cpp为后缀,却到看到工程有无后缀和带.为前缀的文件名。 1.其实文件有无后缀,后缀叫什么,前缀叫什么对编译器来说是一样的。 2. 阅读全文
摘要:
最近在做一个MMO+SLG的游戏,记录一下大地图实体管理策略。 用的是最基础的“划格子”方法,考虑原因是SLG游戏的地图基本来说实体分布还是比较均匀的,适合把大地图划成规整的格子,另外上下左右滑屏也适合做“9屏”的实体数据同步方式(据说服务器框架原来做的是MMORPG,莫非划格子也适合MMORPC? 阅读全文
摘要:
捏脸功能,对于玩家来说就是通过控制游戏中提供的操纵杆,改变脸部器官如鼻子、眉毛、下巴、脸蛋的形状。 对于技术来说,就是支持动态改变脸部Mesh Vertex的位置。 改变Vertex位置的方式有两种,一种是直接改变顶点,基于融合变形(Blendshape),另一种是通过改变脸部骨骼来改变顶点,即骨骼 阅读全文
摘要:
网上关于万向锁的解释实在难以理解,摸索一番后有了比较直观的思考,记录如下: 在三维空间中表示旋转有4种方式:欧拉角,轴角旋转,旋转矩阵,四元数。 万向锁,是用欧拉角表示旋转时产生的一种问题,这个问题是可以解决的,只是很麻烦。 首先,欧拉角的旋转遵循一个顺序,比如x-y-z,y-x-z,x-y-x.. 阅读全文
摘要:
卷积的公式为 公式中包含1个f函数,1个g函数,f函数乘g函数再积分,便是卷积操作。 我们可以把f函数当做“生产力”,g函数当做“留存率”。随着时间t的变化,生产的东西越来越多,同时损耗也越来越大,公式里的x代表在某一时刻“积累”下来的存量。 举一个例子(这个例子更适合从事游戏行业的同学,其他例子可 阅读全文
摘要:
【纹理采样】三角面映射到在屏幕上每一个像素,都在纹理上采样一个texel。核心方法:重心坐标。从obj文件可知三角面每个顶点在纹理上的uv值Va/Vb/Vc,三角面上任意点都可以表示成 αVa + βVb + γVc,而α/β/γ正是顶点对面三角形的面积比例(α+β+γ=1)。具体步骤:1.遍历三角 阅读全文
摘要:
Unity是如何进行音频接入的? 组件:Audio Source 流程:音频素材->场景环境->监听->效果器->喇叭 Unity自带的音频功能的缺点? 项目体量大时: 1.大量音频资源配置 2.音频效果预览 3.音频资源加载 需要更精细设计时: 1.互动音乐设计 2.空间音频、声笼声障实现 3.环 阅读全文