我已经编写了自己的3D游戏引擎并开始编写游戏。我正在使用使用TurboSquid Royalty Free License
的OBJ模型基本上,它说我可以使用他们的OBJ文件,但必须实现一些避免用户从我的程序中提取OBJ文件的东西。 我编写了一个转换器,它从OBJ文件中提取信息并创建几个浮点/整数数组[顶点,顶点坐标,法线,切线......,索引]
稍后将使用这些阵列来创建VAO / VBO。所以我的想法是创建一个名为OBJModelData
的Java类,它包含这些数组。 OBJModelData
实施Serializable
。我的尝试是将类保存到文件中并使用它们而不是OBJ文件,以便用户无法查看和使用内容。
我的尝试看起来像这样:
public void writeToFile(String file){
File f = new File(OBJLoader.RES_LOC+ file +".dat");
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));
out.writeObject(this);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
这会生成一个名为modelName.dat
的文件,如下所示:
显然必须完成逆向工程才能重新创建我的数组。我只是不喜欢它写的方式。例如,已序列化的类写在第一行。如果某人以某种方式通过对其进行逆向工程来管理获取我的引擎的源文件,那么他可以轻松地读取该文件。
我的方法是否保存足以避免重新创建obj文件,我是否仍然可以使用此方法来满足许可条件,还是通常使用其他任何方式(例如在其他游戏/引擎中)?
答案 0 :(得分:0)
您的报价结尾说:“没有逆向工程”,因此您不需要进行逆向工程。你只需要从OBJ“翻译”到你创作的另一种格式,就像你一样。