- 6
- 0
- 约1.88万字
- 约 16页
- 2017-07-02 发布于湖北
- 举报
Cocos2dx 3.x 图形学渲染系列二十七概要1
Cocos2d-x 3.x 图形学渲染系列二十七
游戏中使用的模型为了防止产品发布后被破解,程序再做模型导出插件时对模型进行了加密处理。针对模型加密的方式非常多,通常的做法是通过已经编写的模型插件方式对其加密,类似AutoDesk提供的FBX模型插件,它的内容是二进制的。在Cocos2d-x引擎中的模型也做了加密处理,它就是c3b模型文件。模型实现过程是通过工具fbx-conv转化FBX模型文件得到的,这说明模型之间是相通的。c3b模型文件也是二进制的,本章给读者解密Cocos2d-x引擎使用的c3b模型文件如何生成二进制加密格式的。
本节真正涉及到模型文件的加密处理,加密的处理方法非常多:一种是对其内容进行二进制加密;还有就是对模型文件开头、中间、结尾等增加二进制标示加密。c3b模型本身是二进制的,然后再在文件开头处进行文件标示加密,加密方式是通过自定义的字符串,在Cocos2d-x引擎中可查看到读取c3b模型文件代码段,截取引擎中加密的代码段如下所示:
[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
// 读取文件标示
char identifier[] = { C, 3, B, \0};
char sig[4];
if (_binaryReader.read(sig, 1, 4) != 4 || memcmp(sig, identifier, 4) != 0)
{
clear();
CCLOG(warning: Invalid identifier: %s, path.c_str());
return false;
}
这段代码作用是加载模型时需要验证的加密标示,现在打开一个c3b模型文件给读者展示就一目了然了。文件内容如下图:
在第一行有三个字母“C3B”,这就是在模型中加的加密代码标示,加密的字符串,是通过工具fbx-conv转化时生成的,下面给读者进行加密模块的代码编写。
下面开始Cocos2d-x引擎加密工具的编写,相对来说这个模块架构比较简单,整个工程代码存放网址是:
代码架构图如下:
可以看到两个窗口中都出现了许多命令行,这些命令行是在一个类里面通过代码设置的,完整代码如下所示:
[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
#ifndef FBXCONVCOMMAND_H
#define FBXCONVCOMMAND_H
//#define ALLOW_INPUT_TYPE
#include Settings.h
#include string
#include log/log.h
namespace fbxconv {
struct FbxConvCommand {
constint argc;
constchar **argv;
int error;
bool help;
Settings *settings;
log::Log *log;
FbxConvCommand(log::Log *log, constintargc, constchar** argv, Settings *settings)
: log(log), argc(argc), argv(argv), settings(settings), error(log::iNoError) {
help = (argc = 1);
settings-flipV = false;
settings-packColors = false;
settings-verbose = false;
settings-maxNodePartBonesCount = 40;
settings-maxVertexBonesCount = 4;
settings-forceMaxVertexBoneCount = true;
settings-maxVertexCount = (115)-1;
settings-maxIndexCount = (115)-1;
settings-outType = FILETYPE_C3B;
settings-inType = FILETYPE_AUTO;
您可能关注的文档
- CloningBrave_New_Word课件.ppt
- cloning reading翻译.ppt
- Clothing Culture in Britain英国服饰文化.ppt
- Clothing style.pptx
- Clothing 服饰的演变概要1.pptx
- cloudstack4.4+xen6.2(整理)概要1.doc
- CloudStack 入门概要1.ppt
- cloze test ppt 完型填空课件概要1.ppt
- Cloudstack 网络架构概要1.pptx
- Cliffs AP英语语言与写作概要1.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 2022届上海市徐汇区高三上学期12月一模英语试卷-Word版含答案.doc VIP
- (完整版)Aitken拖延问卷(API).docx VIP
- MTU软件简易操作培训课件32.pdf VIP
- 2026年春统编版九年级下册语文教学计划及教学进度表.docx VIP
- 学校“最小应急单元”突发事件处置工作指引解读课件.pptx VIP
- 深圳大学《现代通信原理》2021-2022学年第一学期期末试卷.doc VIP
- 人教版八年级数学下册教学工作计划与教学进度表(2026春季学期).docx
- 07CJ03-1:轻钢龙骨石膏板隔墙、吊顶(参考图集).pdf VIP
- 赤壁赋教学实录与课堂案例分析.docx VIP
- 化工工艺培训PPT课件.pptx VIP
原创力文档

文档评论(0)