Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java编译期间预计算纹理_Java_Pre Compilation - Fatal编程技术网

在Java编译期间预计算纹理

在Java编译期间预计算纹理,java,pre-compilation,Java,Pre Compilation,我有一个生成纹理的生成算法。纹理只是一个buffereImage 该纹理基本上映射到Java3D中的对象。现在,由于纹理在程序执行期间不会改变,我想在编译期间预计算纹理,以便在执行期间使用预计算的纹理 如果纹理是在运行时生成的,则会导致程序启动延迟 我的问题是, 是否可以在编译阶段对纹理本身进行预计算?我不这么认为,但您可以编写一个单独的Java程序来计算纹理,并将BuffereImage保存到文件中,供游戏Java程序读取 由您决定节省的时间是否值得存储空间 编辑添加:大多数游戏要么让你在纹理

我有一个生成纹理的生成算法。纹理只是一个
buffereImage

该纹理基本上映射到Java3D中的对象。现在,由于纹理在程序执行期间不会改变,我想在编译期间预计算纹理,以便在执行期间使用预计算的纹理

如果纹理是在运行时生成的,则会导致程序启动延迟

我的问题是,


是否可以在编译阶段对纹理本身进行预计算?

我不这么认为,但您可以编写一个单独的Java程序来计算纹理,并将BuffereImage保存到文件中,供游戏Java程序读取

由您决定节省的时间是否值得存储空间


编辑添加:大多数游戏要么让你在纹理计算过程中坐着看视频,要么告诉你他们正在计算纹理。其他人还记得吗?

您可以运行一次纹理生成软件,将纹理保存到文件中,然后在开始程序时加载相同的纹理。您可以在项目构建过程中执行任何操作,但具体操作方式取决于您首先构建项目的方式
javac
实际上不允许您在编译过程中运行任意代码(除非您计算
apt
),而IDE或
maven
更灵活。@millimoose如果我在字段中添加一个
final
修饰符,会有什么不同吗,也就是说,编译器是否会将该字段识别为常量并对其进行预计算。@极端情况下,我强烈怀疑Java编译器能否预计算非基本常量。(给定或获取
String
s。)如果我在字段中添加一个
final
修饰符,它是否会产生影响,即编译器是否会将该字段识别为常量并对其进行预计算。否。final仅仅意味着该值设置一次,作为定义的一部分或在构造函数中。该值是在执行过程中计算的,而不是在编译过程中计算的。