main.cpp 1.45 KB
Newer Older
TheNumbat's avatar
TheNumbat committed
1
2
3

#include "platform/platform.h"
#include "util/rand.h"
TheNumbat's avatar
TheNumbat committed
4
#include <sf_libs/CLI11.hpp>
TheNumbat's avatar
TheNumbat committed
5

TheNumbat's avatar
TheNumbat committed
6
int main(int argc, char **argv) {
TheNumbat's avatar
TheNumbat committed
7

TheNumbat's avatar
TheNumbat committed
8
    RNG::seed();
TheNumbat's avatar
TheNumbat committed
9

TheNumbat's avatar
TheNumbat committed
10
11
    App::Settings settings;
    CLI::App args{"Scotty3D - 15-462"};
TheNumbat's avatar
TheNumbat committed
12
13

    args.add_option("-s,--scene", settings.scene_file, "Scene file to load");
TheNumbat's avatar
TheNumbat committed
14
15
16
17
18
19
20
21
22
23
24
25
    args.add_option("--env_map", settings.env_map_file, "Override scene environment map");
    args.add_flag("--headless", settings.headless, "Path-trace scene without opening the GUI");
    args.add_option("-o,--output", settings.output_file, "Image file to write (if headless)");
    args.add_flag("--animate", settings.animate, "Output animation frames (if headless)");
    args.add_option("--width", settings.w, "Output image width (if headless)");
    args.add_option("--height", settings.h, "Output image height (if headless)");
    args.add_flag("--use_ar", settings.w_from_ar,
                  "Compute output image width based on camera AR (if headless)");
    args.add_option("--depth", settings.d, "Maximum ray depth (if headless)");
    args.add_option("--samples", settings.s, "Pixel samples (if headless)");
    args.add_option("--exposure", settings.exp, "Output exposure (if headless)");
    args.add_option("--area_samples", settings.ls, "Area light samples (if headless)");
TheNumbat's avatar
TheNumbat committed
26

TheNumbat's avatar
TheNumbat committed
27
    CLI11_PARSE(args, argc, argv);
TheNumbat's avatar
TheNumbat committed
28

TheNumbat's avatar
TheNumbat committed
29
30
31
32
33
34
35
36
    if (!settings.headless) {
        Platform plt;
        App app(settings, &plt);
        plt.loop(app);
    } else {
        App app(settings);
    }
    return 0;
TheNumbat's avatar
TheNumbat committed
37
}