Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/main.cpp b/main.cpp
- index bec1ef8..dcbd116 100644
- --- a/main.cpp
- +++ b/main.cpp
- @@ -158,10 +158,12 @@ public:
- class LightMaterial : public BaseMaterial {
- public:
- vector<vector<vec3> > &ColorMap;
- + vector<vector<vec3> > &Color2Map;
- vector<vector<int> > &SamplesCount;
- - LightMaterial(vector<vector<vec3> > &CM, vector<vector<int> > &SC, vec3 col ) :ColorMap(CM), SamplesCount(SC), BaseMaterial(col){};
- + LightMaterial(vector<vector<vec3> > &CM, vector<vector<vec3> > &C2M, vector <vector<int> > &SC, vec3 col) :ColorMap(CM), Color2Map(C2M), SamplesCount(SC), B aseMaterial(col){};
- void process(Ray &ray, vec4 pi, vec4 N) {
- ColorMap[ray.getCoords().x][ray.getCoords().y] += ray.getCol() * color;
- + Color2Map[ray.getCoords().x][ray.getCoords().y] += (ray.getCol() * colo r) * (ray.getCol() * color);
- ++SamplesCount[ray.getCoords().x][ray.getCoords().y];
- ray.make_invalid();
- }
- @@ -276,7 +278,9 @@ int main(int argc, char* argv[]) {
- :...skipping...
- diff --git a/main.cpp b/main.cpp
- index bec1ef8..dcbd116 100644
- --- a/main.cpp
- +++ b/main.cpp
- @@ -158,10 +158,12 @@ public:
- class LightMaterial : public BaseMaterial {
- public:
- vector<vector<vec3> > &ColorMap;
- + vector<vector<vec3> > &Color2Map;
- vector<vector<int> > &SamplesCount;
- - LightMaterial(vector<vector<vec3> > &CM, vector<vector<int> > &SC, vec3 col) :ColorMap(CM), SamplesCount(SC), BaseMaterial(col){};
- + LightMaterial(vector<vector<vec3> > &CM, vector<vector<vec3> > &C2M, vector<vector<int> > &SC, vec3 col) :ColorMap(CM), Color2Map(C2M), SamplesCount(SC), BaseMaterial(col){};
- void process(Ray &ray, vec4 pi, vec4 N) {
- ColorMap[ray.getCoords().x][ray.getCoords().y] += ray.getCol() * color;
- + Color2Map[ray.getCoords().x][ray.getCoords().y] += (ray.getCol() * color) * (ray.getCol() * color);
- ++SamplesCount[ray.getCoords().x][ray.getCoords().y];
- ray.make_invalid();
- }
- @@ -276,7 +278,9 @@ int main(int argc, char* argv[]) {
- Config::get().set_config(argc, argv);
- vector<vector<vec3> > ColorMap(Config::get().width, vector<vec3>(Config::get().height, vec3(0)));
- + vector<vector<vec3> > Color2Map(Config::get().width, vector<vec3>(Config::get().height, vec3(0)));
- vector<vector<int> > SamplesCount(Config::get().width, vector<int>(Config::get().height, 0));
- + vector<vector<bool> > pixel_valid(Config::get().width, vector<bool>(Config::get().height, 0));
- float cube_a = 10;
- float pir_a = 4;
- @@ -312,10 +316,10 @@ int main(int argc, char* argv[]) {
- vec4(-cube_a, -cube_a, -cube_a, 1)}, make_unique<DiffuseMaterial>(white)),
- Triangle({vec4(-2, cube_a - 1, 2, 1), vec4(2, cube_a - 1, 2, 1),
- - vec4(2, cube_a - 1, -2, 1)}, make_unique<LightMaterial>(ColorMap, SamplesCount, white)),
- + vec4(2, cube_a - 1, -2, 1)}, make_unique<LightMaterial>(ColorMap, Color2Map, SamplesCount, gray)),
- Triangle({vec4(-2, cube_a - 1, 2, 1), vec4(2, cube_a - 1, -2, 1),
- - vec4(-2, cube_a - 1, -2, 1)}, make_unique<LightMaterial>(ColorMap, SamplesCount, white)),
- + vec4(-2, cube_a - 1, -2, 1)}, make_unique<LightMaterial>(ColorMap, Color2Map, SamplesCount, gray)),
- Triangle({vec4(5 + 0, pir_a, 0, 1), vec4(5 + -pir_a, -1, pir_a, 1),
- vec4(5 + pir_a, -1, pir_a, 1)}, make_unique<TransparentMaterial>(yellow, 1.25)),
- @@ -335,17 +339,17 @@ int main(int argc, char* argv[]) {
- Triangle({vec4(5 + -pir_a, -1, pir_a, 1), vec4(5 + -pir_a, -1, -pir_a, 1),
- vec4(5 + pir_a, -1, -pir_a, 1)}, make_unique<TransparentMaterial>(yellow, 1.25))};
- -
- -
- bitmap_image image(Config::get().width, Config::get().height);
- image.clear();
- -
- :
- diff --git a/main.cpp b/main.cpp
- index bec1ef8..dcbd116 100644
- --- a/main.cpp
- +++ b/main.cpp
- @@ -158,10 +158,12 @@ public:
- class LightMaterial : public BaseMaterial {
- public:
- vector<vector<vec3> > &ColorMap;
- + vector<vector<vec3> > &Color2Map;
- vector<vector<int> > &SamplesCount;
- - LightMaterial(vector<vector<vec3> > &CM, vector<vector<int> > &SC, vec3 col ) :ColorMap(CM), SamplesCount(SC), BaseMaterial(col){};
- + LightMaterial(vector<vector<vec3> > &CM, vector<vector<vec3> > &C2M, vector <vector<int> > &SC, vec3 col) :ColorMap(CM), Color2Map(C2M), SamplesCount(SC), B aseMaterial(col){};
- void process(Ray &ray, vec4 pi, vec4 N) {
- ColorMap[ray.getCoords().x][ray.getCoords().y] += ray.getCol() * color;
- + Color2Map[ray.getCoords().x][ray.getCoords().y] += (ray.getCol() * colo r) * (ray.getCol() * color);
- ++SamplesCount[ray.getCoords().x][ray.getCoords().y];
- ray.make_invalid();
- }
- @@ -276,7 +278,9 @@ int main(int argc, char* argv[]) {
- :
- diff --git a/main.cpp b/main.cpp
- index bec1ef8..dcbd116 100644
- --- a/main.cpp
- +++ b/main.cpp
- @@ -158,10 +158,12 @@ public:
- class LightMaterial : public BaseMaterial {
- public:
- vector<vector<vec3> > &ColorMap;
- + vector<vector<vec3> > &Color2Map;
- vector<vector<int> > &SamplesCount;
- - LightMaterial(vector<vector<vec3> > &CM, vector<vector<int> > &SC, vec3 col) :ColorMap(CM), Sa mplesCount(SC), BaseMaterial(col){};
- + LightMaterial(vector<vector<vec3> > &CM, vector<vector<vec3> > &C2M, vector<vector<int> > &SC, vec3 col) :ColorMap(CM), Color2Map(C2M), SamplesCount(SC), BaseMaterial(col){};
- void process(Ray &ray, vec4 pi, vec4 N) {
- ColorMap[ray.getCoords().x][ray.getCoords().y] += ray.getCol() * color;
- + Color2Map[ray.getCoords().x][ray.getCoords().y] += (ray.getCol() * color) * (ray.getCol() * color);
- ++SamplesCount[ray.getCoords().x][ray.getCoords().y];
- ray.make_invalid();
- }
- @@ -276,7 +278,9 @@ int main(int argc, char* argv[]) {
- Config::get().set_config(argc, argv);
- vector<vector<vec3> > ColorMap(Config::get().width, vector<vec3>(Config::get().height, vec3(0) ));
- :
- diff --git a/main.cpp b/main.cpp
- index bec1ef8..dcbd116 100644
- --- a/main.cpp
- +++ b/main.cpp
- @@ -158,10 +158,12 @@ public:
- class LightMaterial : public BaseMaterial {
- public:
- vector<vector<vec3> > &ColorMap;
- + vector<vector<vec3> > &Color2Map;
- vector<vector<int> > &SamplesCount;
- - LightMaterial(vector<vector<vec3> > &CM, vector<vector<int> > &SC, vec3 col) :ColorMap(CM), SamplesCoun t(SC), BaseMaterial(col){};
- + LightMaterial(vector<vector<vec3> > &CM, vector<vector<vec3> > &C2M, vector<vector<int> > &SC, vec3 col ) :ColorMap(CM), Color2Map(C2M), SamplesCount(SC), BaseMaterial(col){};
- void process(Ray &ray, vec4 pi, vec4 N) {
- ColorMap[ray.getCoords().x][ray.getCoords().y] += ray.getCol() * color;
- + Color2Map[ray.getCoords().x][ray.getCoords().y] += (ray.getCol() * color) * (ray.getCol() * color);
- ++SamplesCount[ray.getCoords().x][ray.getCoords().y];
- ray.make_invalid();
- }
- @@ -276,7 +278,9 @@ int main(int argc, char* argv[]) {
- Config::get().set_config(argc, argv);
- vector<vector<vec3> > ColorMap(Config::get().width, vector<vec3>(Config::get().height, vec3(0)));
- + vector<vector<vec3> > Color2Map(Config::get().width, vector<vec3>(Config::get().height, vec3(0)));
- vector<vector<int> > SamplesCount(Config::get().width, vector<int>(Config::get().height, 0));
- :
- diff --git a/main.cpp b/main.cpp
- index bec1ef8..dcbd116 100644
- --- a/main.cpp
- +++ b/main.cpp
- @@ -158,10 +158,12 @@ public:
- class LightMaterial : public BaseMaterial {
- public:
- vector<vector<vec3> > &ColorMap;
- + vector<vector<vec3> > &Color2Map;
- vector<vector<int> > &SamplesCount;
- - LightMaterial(vector<vector<vec3> > &CM, vector<vector<int> > &SC, vec3 col) :ColorMap(CM), SamplesCoun t(SC), BaseMaterial(col){};
- + LightMaterial(vector<vector<vec3> > &CM, vector<vector<vec3> > &C2M, vector<vector<int> > &SC, vec3 col ) :ColorMap(CM), Color2Map(C2M), SamplesCount(SC), BaseMaterial(col){};
- void process(Ray &ray, vec4 pi, vec4 N) {
- ColorMap[ray.getCoords().x][ray.getCoords().y] += ray.getCol() * color;
- + Color2Map[ray.getCoords().x][ray.getCoords().y] += (ray.getCol() * color) * (ray.getCol() * color);
- ++SamplesCount[ray.getCoords().x][ray.getCoords().y];
- ray.make_invalid();
- }
- @@ -276,7 +278,9 @@ int main(int argc, char* argv[]) {
- Config::get().set_config(argc, argv);
- vector<vector<vec3> > ColorMap(Config::get().width, vector<vec3>(Config::get().height, vec3(0)));
- + vector<vector<vec3> > Color2Map(Config::get().width, vector<vec3>(Config::get().height, vec3(0)));
- vector<vector<int> > SamplesCount(Config::get().width, vector<int>(Config::get().height, 0));
- + vector<vector<bool> > pixel_valid(Config::get().width, vector<bool>(Config::get().height, 0));
- float cube_a = 10;
- float pir_a = 4;
- @@ -312,10 +316,10 @@ int main(int argc, char* argv[]) {
- vec4(-cube_a, -cube_a, -cube_a, 1)}, make_ unique<DiffuseMaterial>(white)),
- Triangle({vec4(-2, cube_a - 1, 2, 1), vec4(2, cube_ a - 1, 2, 1),
- - vec4(2, cube_a - 1, -2, 1)}, make_unique<L ightMaterial>(ColorMap, SamplesCount, white)),
- + vec4(2, cube_a - 1, -2, 1)}, make_unique<L ightMaterial>(ColorMap, Color2Map, SamplesCount, gray)),
- Triangle({vec4(-2, cube_a - 1, 2, 1), vec4(2, cube_ a - 1, -2, 1),
- - vec4(-2, cube_a - 1, -2, 1)}, make_unique< LightMaterial>(ColorMap, SamplesCount, white)),
- + vec4(-2, cube_a - 1, -2, 1)}, make_unique< LightMaterial>(ColorMap, Color2Map, SamplesCount, gray)),
- Triangle({vec4(5 + 0, pir_a, 0, 1), vec4(5 + -pir_a , -1, pir_a, 1),
- vec4(5 + pir_a, -1, pir_a, 1)}, make_uniq :
- diff --git a/main.cpp b/main.cpp
- index bec1ef8..dcbd116 100644
- --- a/main.cpp
- +++ b/main.cpp
- @@ -158,10 +158,12 @@ public:
- class LightMaterial : public BaseMaterial {
- public:
- vector<vector<vec3> > &ColorMap;
- + vector<vector<vec3> > &Color2Map;
- vector<vector<int> > &SamplesCount;
- - LightMaterial(vector<vector<vec3> > &CM, vector<vector<int> > &SC, vec3 col) :ColorMap(CM), SamplesCount(SC), BaseMaterial(col){};
- + LightMaterial(vector<vector<vec3> > &CM, vector<vector<vec3> > &C2M, vector<vector<int> > &SC, vec3 col) :ColorMap(CM), Color2Map(C2M), SamplesCount(SC), BaseMaterial(col){};
- void process(Ray &ray, vec4 pi, vec4 N) {
- ColorMap[ray.getCoords().x][ray.getCoords().y] += ray.getCol() * color;
- + Color2Map[ray.getCoords().x][ray.getCoords().y] += (ray.getCol() * color) * (ray.getCol() * color);
- ++SamplesCount[ray.getCoords().x][ray.getCoords().y];
- ray.make_invalid();
- }
- @@ -276,7 +278,9 @@ int main(int argc, char* argv[]) {
- Config::get().set_config(argc, argv);
- vector<vector<vec3> > ColorMap(Config::get().width, vector<vec3>(Config::get().height, vec3(0)));
- + vector<vector<vec3> > Color2Map(Config::get().width, vector<vec3>(Config::get().height, vec3(0)));
- vector<vector<int> > SamplesCount(Config::get().width, vector<int>(Config::get().height, 0));
- :
- diff --git a/main.cpp b/main.cpp
- index bec1ef8..dcbd116 100644
- --- a/main.cpp
- +++ b/main.cpp
- @@ -158,10 +158,12 @@ public:
- class LightMaterial : public BaseMaterial {
- public:
- vector<vector<vec3> > &ColorMap;
- + vector<vector<vec3> > &Color2Map;
- vector<vector<int> > &SamplesCount;
- - LightMaterial(vector<vector<vec3> > &CM, vector<vector<int> > &SC, vec3 col) :ColorMap(CM), SamplesCount(SC), BaseMaterial(col){};
- + LightMaterial(vector<vector<vec3> > &CM, vector<vector<vec3> > &C2M, vector<vector<int> > &SC, vec3 col) :ColorMap(CM), Color2Map(C2M), SamplesCount(SC), BaseMaterial(col){};
- void process(Ray &ray, vec4 pi, vec4 N) {
- ColorMap[ray.getCoords().x][ray.getCoords().y] += ray.getCol() * color;
- + Color2Map[ray.getCoords().x][ray.getCoords().y] += (ray.getCol() * color) * (ray.getCol() * color);
- ++SamplesCount[ray.getCoords().x][ray.getCoords().y];
- ray.make_invalid();
- }
- @@ -276,7 +278,9 @@ int main(int argc, char* argv[]) {
- Config::get().set_config(argc, argv);
- vector<vector<vec3> > ColorMap(Config::get().width, vector<vec3>(Config::get().height, vec3(0)));
- + vector<vector<vec3> > Color2Map(Config::get().width, vector<vec3>(Config::get().height, vec3(0)));
- vector<vector<int> > SamplesCount(Config::get().width, vector<int>(Config::get().height, 0));
- + vector<vector<bool> > pixel_valid(Config::get().width, vector<bool>(Config::get().height, 0));
- float cube_a = 10;
- float pir_a = 4;
- @@ -312,10 +316,10 @@ int main(int argc, char* argv[]) {
- vec4(-cube_a, -cube_a, -cube_a, 1)}, make_unique<DiffuseMaterial>(white)),
- Triangle({vec4(-2, cube_a - 1, 2, 1), vec4(2, cube_a - 1, 2, 1),
- - vec4(2, cube_a - 1, -2, 1)}, make_unique<LightMaterial>(ColorMap, SamplesCount, white)),
- + vec4(2, cube_a - 1, -2, 1)}, make_unique<LightMaterial>(ColorMap, Color2Map, SamplesCount, gray)),
- Triangle({vec4(-2, cube_a - 1, 2, 1), vec4(2, cube_a - 1, -2, 1),
- - vec4(-2, cube_a - 1, -2, 1)}, make_unique<LightMaterial>(ColorMap, SamplesCount, white)),
- + vec4(-2, cube_a - 1, -2, 1)}, make_unique<LightMaterial>(ColorMap, Color2Map, SamplesCount, gray)),
- Triangle({vec4(5 + 0, pir_a, 0, 1), vec4(5 + -pir_a, -1, pir_a, 1),
- vec4(5 + pir_a, -1, pir_a, 1)}, make_unique<TransparentMaterial>(yellow, 1.25)),
- @@ -335,17 +339,17 @@ int main(int argc, char* argv[]) {
- Triangle({vec4(5 + -pir_a, -1, pir_a, 1), vec4(5 + -pir_a, -1, -pir_a, 1),
- vec4(5 + pir_a, -1, -pir_a, 1)}, make_unique<TransparentMaterial>(yellow, 1.25))};
- -
- -
- bitmap_image image(Config::get().width, Config::get().height);
- image.clear();
- -
- :
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement