#pragma once #include "../utils/common.h" #include "InferPipeline.h" #include "View.h" #include "Enhancement.h" class SynthesisPipeline { public: SynthesisPipeline(sptr net, sptr cam, uint nSamples, glm::vec2 depthRange, int encodeDim, int coordChns, float enhanceSigma, float enhanceFe); void run(View &view); GLuint getGlResultTexture(int index); protected: uint _nRays; uint _nSamples; float _enhanceSigma; float _enhanceFe; sptr _cam; sptr _inferPipeline; sptr _enhancement; sptr> _rays; sptr> _colors; std::vector _glResultTextures; GLuint _glResultBuffer; void _genRays(View &view); void _enhance(); void _uploadResultToTextures(); GLuint _createGlResultTexture(glm::uvec2 res); GLuint _createGlResultBuffer(uint elements); };