Add Scene and Method switcher to Assignment2.

This commit is contained in:
hal8174 2024-05-15 15:29:43 +02:00
parent 1948277dbd
commit b00c67bf3d
2 changed files with 35 additions and 2 deletions

View file

@ -9,9 +9,28 @@ public:
private:
Vec3fa renderPixel(float x, float y, const ISPCCamera& camera, RayStats& stats, RandomSampler& sampler) override;
Vec3fa renderPixelOrig(float x, float y, const ISPCCamera& camera, RayStats& stats, RandomSampler& sampler);
Vec3fa renderPixelHomogeneous(float x, float y, const ISPCCamera& camera, RayStats& stats, RandomSampler& sampler);
void drawGUI() override {
ImGui::Checkbox("Bounding Box", &boundingBox);
const char* items[] = {"Original", "Homogeneous"};
ImGui::Combo("Version", &selected, items, 2);
const char* scenes[] = {"Gnome", "Horse", "Heterogenous"};
int oldscene = scene;
ImGui::Combo("Scenes", &scene, scenes, 3);
if (scene != oldscene) {
Data_Destructor(&data);
Data_Constructor(&data, 1, 8);
if (scene == 0)
gnomeScene();
if (scene == 1)
horseScene();
if (scene == 2)
heterogenousScene();
}
}
void initScene() override;
@ -24,6 +43,7 @@ private:
void heterogenousScene();
float colorLight[3] = {1.0f, 1.0f, 1.0f};
bool boundingBox = true;
int selected = 0;
int scene = 0;
};