高品质2D游戏解决方案高品质2D游戏解决方案玛尔斯(北京)科技有限公司首席引擎架构师/副总经理谭凯2123大量的图像平移无限循环滚动图片超过2048的纹理集分享内容提纲4地图镜头的移动5神奇的混色3GPU加速的概念GPU加速的概念412未知GPU渲染渲染流程优化批处理渲染解决方案渲染34创意的深度结合5案例详解6大量的图像平移使用场合:弹幕,道具,金币,粒子缺点:不能旋转,缩放,倾斜原理:把位移向量传递到着色器直接进行计算gl_Position=oRMatrix*vec4(aVertexPosition+aVertexGPU,1.0,1.0);7大量的图像平移CPUGPUx+=500CPUGPUx+=5008无限循环滚动图片使用场合:横版背景,俯视背景,流水,激光缺点:移动量不能过大,需要校准原理:通过UV位移实现gl_FragColor=texture2D(texture,vTextureUV)910超过2048的纹理集使用场合:高精度动画,降低独立渲染次数缺点:统一的着色器原理:利用多纹理技术更改采样的纹理IDif(jointListvarying.x==0.0){gl_FragColor=texture2D(texture_0,vTextureUV)*vVertexColor;}elseif(jointListvarying.x==1.0){gl_FragColor=texture2D(texture_1,vTextureUV)*vVertexColor;}11texture2D(texture_0,vTextureUV)12地图镜头的移动使用场合:场景的游戏,大量原始的统一移动缺点:需要对鼠标拾取做特殊坐标处理原理:把变换矩阵传递到单次渲染的着色器中gl_Position=oRMatrix*vec4(aVertexPosition+aVertexGPU,1.0,1.0);13Shader(着色器)14神奇的混色使用场合:灯光,迷雾,高亮,时间系统缺点:需要对鼠标拾取做特殊坐标处理原理:把变换矩阵传递到单次渲染的着色器中gl.blendFunc(src,dst);15透明度混合颜色相加混合16深入了解项目的实现需求,并且利用GPU的编程思维和无限可能的解决方案来供给项目达到真正加速的目的,从而提高项目的品质!17如何寻找解决方案18在电脑前寻求解决方案在生活中寻求解决方案40%75%在电脑前寻求解决方案在生活中寻求解决方案网络,交流,书籍网络,交流,书籍,电影,游戏,洗澡睡觉,地铁,冥想,等等等19带着激情与想法去未知的游戏世界冒险吧,世界在进步,放下浮躁的心,从轮子上下来,享受创造的乐趣。20HTML5游戏开发者社区交流群:326492427游戏开发者社区交流群:32649242721谢谢Thanks