AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

高品质2D游戏解决方案 by 谭凯

发布者 gamer
发布于 1436953066363  浏览 4805 关键词 游戏 
分享到

第1页

高品质2D游戏解决方案
高品质2D游戏解决方案
玛尔斯(北京)科技有限公司首席引擎架构师 / 副总经理
谭凯 

第2页

2
1
2
3
大量的图像平移
无限循环滚动图片
超过2048的纹理集
分享内容提纲
4
地图镜头的移动
5
神奇的混色

第3页

3
GPU加速的概念
GPU加速的概念

第4页

4
1
2
未知GPU渲染
渲染流程优化
批处理渲染
解决方案渲染
3
4
创意的深度结合

第5页

5
案例详解

第6页

6
大量的图像平移
使用场合:弹幕,道具,金币,粒子
缺点:不能旋转,缩放,倾斜
原理:把位移向量传递到着色器直接进行计算

gl_Position =  oRMatrix*vec4(aVertexPosition+aVertexGPU,1.0,1.0);

第7页

7
大量的图像平移
CPU
GPU
x+=500
CPU
GPU
x+=500

第8页

8
无限循环滚动图片
使用场合:横版背景,俯视背景,流水,激光
缺点:移动量不能过大,需要校准
原理:通过UV位移实现

gl_FragColor = texture2D(texture,vTextureUV)

第9页

9

第10页

10
超过2048的纹理集
使用场合:高精度动画,降低独立渲染次数
缺点:统一的着色器
原理:利用多纹理技术更改采样的纹理ID

if(jointListvarying.x==0.0)
{
           gl_FragColor = texture2D(texture_0,vTextureUV)*vVertexColor;
}else if(jointListvarying.x==1.0)
{
            gl_FragColor = texture2D(texture_1,vTextureUV)*vVertexColor;
}

第11页

11
texture2D(texture_0,vTextureUV)

第12页

12
地图镜头的移动
使用场合:场景的游戏,大量原始的统一移动
缺点:需要对鼠标拾取做特殊坐标处理
原理:把变换矩阵传递到单次渲染的着色器中

"gl_Position =  oRMatrix*vec4(aVertexPosition+aVertexGPU,1.0,1.0);

第13页

13
Shader(着色器)

第14页

14
神奇的混色
使用场合:灯光,迷雾,高亮,时间系统
缺点:需要对鼠标拾取做特殊坐标处理
原理:把变换矩阵传递到单次渲染的着色器中

gl.blendFunc(src,dst);

第15页

15
透明度混合
颜色相加混合

第16页

16
      深入了解项目的实现需求,并且利用GPU的编程思维和无限可能的解决方案来供给项目达到真正加速的目的,从而提高项目的品质!

第17页

17
如何寻找解决方案

第18页

18
在电脑前寻求解决方案
在生活中寻求解决方案
在电脑前寻求解决方案
在生活中寻求解决方案
网络,交流,书籍
网络,交流,书籍,电影,游戏,洗澡
睡觉,地铁,冥想,等等等

第19页

19
      带着激情与想法去未知的游戏世界
冒险吧,世界在进步,放下浮躁的心,从轮
子上下来,享受创造的乐趣。

第20页

20
HTML5游戏开发者社区交流群:326492427
     www.Sirius2D.com
     天狼星
     www.Sirius2D.com
     天狼星
HTML5游戏开发者社区交流群:326492427

第21页

21
谢谢
Thanks
支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。