• 毕设开发总结3D游戏框架及网络对战游戏的开发(1)


    小序

    毕业设计终于接近尾声了,一个周末都没有继续写代码,正好有一个经验分享,所以把PPT的总结报告转写成一篇blog,希望得到高手们的指点。同时也希望能给还在读书的师弟师妹们一些建议和启发吧。同时,也是对自己这半年来成长的一个总结和记录。希望以后能够在工作岗位上继续努力,继续进步!

    目前先转写前两部分的内容,图比较多而且直观,明后天再继续转写重头戏: 开发流程

    最后,部分有价值的图形技术考虑分别写博来总结一下,主要是对技术的一个总结吧,还有也是希望对还在读书的师弟师妹们一些启发。

    本文目录

    图形特性

    模块划分和文件夹结构

    开发过程

    用到的一些开源库介绍

    图形特性

    图形特性上,本打算做真实感渲染的,可惜资源制作能力太缺乏了,所以最后还是选择了 NPR非真实感渲染。

    不过在图形技术上还是使用了Shadowmap,SSAO,DOF,延迟渲染等现代真实感渲染技术,锻炼了自己的图形开发能力,同时也算是将这些特性很好的和NPR结合在了一起。以下会对每个图形技术配图并附上简单的说明,具体实现可能在以后会抽时间一个一个的记录在博客园上(毕竟毕设完成以后,业余时间就空闲出来了~ 闲下来的时候写写技术实现同时巩固巩固技术~)

    淡彩手绘效果

    下面是几张目前的游戏截图:


    游戏视点1: 180fps @ Nv 9800GT | 1000 x 563 pixels


    特写1

    深度+法线通道的卡通边缘检测

    同时使用深度和法线通道信息来计算边缘贡献,得到高质量的描边结果。这是我们决定的NPR效果中最重要的一个功能。

    SSAO

    提供了downscale,默认是使用halfSSAO,来提升性能。采样方式采用随机球面采样,来取得噪点和平滑的遮蔽阴影。

    后处理贴花

    后处理贴花是制作后期的美术需求。在场景中投射一定数量的贴图,来丰富场景表现。后处理贴花的优势在于不消耗DP,与场景复杂度无关。

    软阴影处理

    同时实现了PCF和Jittering方式的阴影软化,Jittering方式是目前最流行的高性价比阴影软化方案

    TimeOfDay

    以设置时间来改变太阳光的角度,阴影浓度,环境光颜色,实现简单的昼夜效果

    swf 3DGUI

    实现了flash制作GUI层,在游戏中3D呈现出来并提供交互功能,交互代码可以直接编写在as3脚本中,与cpp互调函数通信。

     

    模块划分与文件夹结构

    这里粗略的分析一下目前游戏的模块划分和文件夹结构,具体的细节和设计思路以后可能也会单写blog总结。

    模块的划分总体说来有点过度设计的味道哦,目前发布版可执行文件夹的结构如下:

    Vektrix库及所需插件

    游戏系统模块

    GameSystem模块,游戏系统

    gkBase模块,客户端服务器的公用信息模型

    gkEngine内核模块

    vtxUI模块

    gk工具模块,通用工具集

    gk网络模块,基础通信结构

    gk输入模块,键盘鼠标手柄控制

    gk核心模块,核心渲染模块

    服务器和客户端exe

    其他库:Physx物理库,CrashRpt库,cairo图像处理库



     

     

     

     

     

     

     

     

     

     

     

     

     

    下面是目前的开发文件夹结构:


    Exec:发布文件夹

    游戏数据(地图,关卡)

    Debug程序

    资源文件(材质,模型,贴图,swf)

    Release程序

    INTERMEDIATE:中间文件夹

    Lib:库文件夹

    maxSDK文件夹

    Project:工程源码文件夹

    Solution:解决方案

    ThirdParty:第三方工程

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    待续!

    作者:gameKnife
    出处:http://gameknife.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    《.NET深入体验与实战精要》读书体会
    为什么周易中有64卦?
    16进制与8进制之间的快速转码
    3种夸克有多少组合?
    分辨率宽高和为整千?
    abt DVD
    为什么有20种氨基酸?
    HD与BD次时代之战!
    [转载]Java一些基础问题
    [转载]Java环境变量配置
  • 原文地址:https://www.cnblogs.com/gameknife/p/2025663.html
Copyright © 2020-2023  润新知