diff --git a/offline_ray_tracer/include/settings.hpp b/offline_ray_tracer/include/settings.hpp
index ccaf3b7864c38669a2448f1ad352fcb074461eca..23f106e84609576d462542fed65fe28e345e9439 100644
--- a/offline_ray_tracer/include/settings.hpp
+++ b/offline_ray_tracer/include/settings.hpp
@@ -23,7 +23,7 @@ struct settings
{
double time ;
std::array<double, 3> position;
- std::array<double, 3> forward ;
+ std::array<double, 3> center ;
std::array<double, 3> up ;
};
@@ -50,10 +50,10 @@ struct settings
image_size = {root["image_size" ][0].asInt (),
root["image_size" ][1].asInt ()};
- step_size = root["step_size"] .asDouble();
+ step_size = root["step_size" ] .asDouble();
samples = root["samples" ] .asInt ();
ambient_samples = root["ambient_samples"] .asInt ();
- shadows = root["shadows"] .asBool ();
+ shadows = root["shadows" ] .asBool ();
update_rate = root["update_rate" ] .asDouble();
@@ -65,10 +65,10 @@ struct settings
iteratee["position"][0].asDouble(),
iteratee["position"][1].asDouble(),
iteratee["position"][2].asDouble()};
- entry.forward = std::array<double, 3> {
- iteratee["forward" ][0].asDouble(),
- iteratee["forward" ][1].asDouble(),
- iteratee["forward" ][2].asDouble()};
+ entry.center = std::array<double, 3> {
+ iteratee["center" ][0].asDouble(),
+ iteratee["center" ][1].asDouble(),
+ iteratee["center" ][2].asDouble()};
entry.up = std::array<double, 3> {
iteratee["up" ][0].asDouble(),
iteratee["up" ][1].asDouble(),
diff --git a/offline_ray_tracer/source/main.cpp b/offline_ray_tracer/source/main.cpp
index 3f81035fe2368330cd681f7e7bc6d6f5c8b1eeb7..148bf9b64fac58845138a9158202ed453784f112 100644
--- a/offline_ray_tracer/source/main.cpp
+++ b/offline_ray_tracer/source/main.cpp
@@ -52,11 +52,9 @@ std::int32_t main(std::int32_t argc, char** argv)
for (const auto& key_frame : settings.key_frames)
{
auto* camera = renderer->GetActiveCamera();
- camera ->SetPosition (key_frame.position[0] , key_frame.position[1], key_frame.position[2]);
- camera ->SetFocalPoint(key_frame.position[0] + key_frame.forward [0],
- key_frame.position[1] + key_frame.forward [1],
- key_frame.position[2] + key_frame.forward [2]);
- camera ->SetViewUp (key_frame.up [0] , key_frame.up [1], key_frame.up [2]);
+ camera ->SetPosition (key_frame.position.data());
+ camera ->SetFocalPoint(key_frame.center .data());
+ camera ->SetViewUp (key_frame.up .data());
interpolator->AddCamera (key_frame.time, camera);
}
@@ -71,12 +69,13 @@ std::int32_t main(std::int32_t argc, char** argv)
std::cout << "Setting up video writer.\n";
auto window_to_image = vtkSmartPointer<vtkWindowToImageFilter>::New();
auto video_writer = vtkSmartPointer<vtkAVIWriter> ::New();
- window_to_image->SetInput (window);
- video_writer ->SetInputConnection(window_to_image->GetOutputPort());
- video_writer ->SetFileName ("video.avi");
- video_writer ->SetQuality (2);
- video_writer ->SetRate (static_cast<std::int32_t>(1000.0 / settings.update_rate));
- video_writer ->Start ();
+ window_to_image->SetInput (window);
+ window_to_image->ReadFrontBufferOff ();
+ video_writer ->SetInputConnection (window_to_image->GetOutputPort());
+ video_writer ->SetFileName ("video.avi");
+ video_writer ->SetRate (static_cast<std::int32_t>(1000.0 / settings.update_rate));
+ video_writer ->SetQuality (2);
+ video_writer ->Start ();
std::cout << "Starting rendering.\n";
auto current_time = 0.0;
diff --git a/settings.json b/settings.json
index d2b7a0e06617c6f7754e567b294bc70f84dd3b7e..aa91994846d84e16b1cdc52353f28d42c51fa3ba 100644
--- a/settings.json
+++ b/settings.json
@@ -1,26 +1,25 @@
{
"data_file_paths":
[
- { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti", "scalar": "Q"},
- { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti", "scalar": "Q"},
- { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti", "scalar": "Q"}
+ { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti", "scalar": "Q" }
],
"transfer_function": "D:/source/internal/oxyflame_rendering_tools/transfer_function.json",
"time_scale" : 1000.0,
- "loop" : true,
+ "loop" : false,
- "image_size" : [4096, 4096],
- "step_size" : 0.1,
- "samples" : 128,
+ "image_size" : [1920, 1080],
+ "step_size" : 0.05,
+ "samples" : 16,
"ambient_samples" : 0,
"shadows" : true,
"update_rate" : 16.0,
"key_frames" :
[
- { "time": 0.0, "position": [ 0.0, 0.0, 250.0], "forward": [ 0.0, 0.0, -1.0], "up": [0.0, 1.0, 0.0] },
- { "time": 2500.0, "position": [ 250.0, 0.0, 0.0], "forward": [-1.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] },
- { "time": 5000.0, "position": [ 0.0, 0.0, -250.0], "forward": [ 0.0, 0.0, 1.0], "up": [0.0, 1.0, 0.0] },
- { "time": 10000.0, "position": [-250.0, 0.0, 0.0], "forward": [ 1.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] }
+ { "time": 0.0, "position": [ 0.0, 0.0, 200.0], "center": [0.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] },
+ { "time": 4000.0, "position": [ 200.0, 0.0, 0.0], "center": [0.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] },
+ { "time": 8000.0, "position": [ 0.0, 0.0, -200.0], "center": [0.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] },
+ { "time": 12000.0, "position": [-200.0, 0.0, 0.0], "center": [0.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] },
+ { "time": 32000.0, "position": [ 0.0, 0.0, 0.0], "center": [0.0, 0.0, 0.0], "up": [0.0, 1.0, 0.0] }
]
}