// // Created by arvids on 13.12.22. // #ifndef CG1_TRACER_SUPERRENDERER_H #define CG1_TRACER_SUPERRENDERER_H #include "renderer.h" #include #include class SuperRenderer : public Renderer { public: static void renderThread(const Scene *scene, Camera const *camera, Texture *image, int width, int widthStep, int widthOffset, int height, int heightStep, int heightOffset, std::atomic *k, int const stepSize, int superSamplingFactor); Texture renderImage(const Scene &scene, const Camera &camera, int width, int height) override; void setSuperSamplingFactor(int superSamplingFactor); private: private: int superSamplingFactor; static Color & calcSuperColor(const Scene *scene, const Camera *camera, int width, int height, int superSamplingFactor, const float aspectRatio, int y, int x, Color &fragmentColor); }; #endif //CG1_TRACER_SUPERRENDERER_H