diff --git a/offline_ray_tracer/source/main.cpp b/offline_ray_tracer/source/main.cpp index d719c2188e34f4e600c7c5121193a59aa27daf2d..6f1f881e4fff320c1b25a6385019b475ab77b633 100644 --- a/offline_ray_tracer/source/main.cpp +++ b/offline_ray_tracer/source/main.cpp @@ -37,14 +37,11 @@ std::int32_t main(std::int32_t argc, char** argv) window ->AddRenderer (renderer); window ->SetOffScreenRendering (true); window ->SetSize (settings.image_size[0], settings.image_size[1]); - //window->SetMultiSamples (settings.samples); window ->SetPolygonSmoothing (true); renderer->SetPass (ospray_pass); renderer->SetUseShadows (true); renderer->SetAutomaticLightCreation (true); vtkOSPRayRendererNode::SetSamplesPerPixel(settings.samples, renderer); - //vtkOSPRayRendererNode::SetAmbientSamples(4, renderer); - //vtkOSPRayRendererNode::SetRendererType ("pathtracer", renderer); std::cout << "Setting up camera interpolator.\n"; auto interpolator = vtkSmartPointer<vtkCameraInterpolator>::New(); @@ -61,12 +58,12 @@ std::int32_t main(std::int32_t argc, char** argv) } std::cout << "Setting up geometry and volume.\n"; - auto pd_reader = vtkSmartPointer<vtkXMLPolyDataReader> (); - auto pd_mapper = vtkSmartPointer<vtkPolyDataMapper> (); - auto pd_actor = vtkSmartPointer<vtkActor> (); - auto ug_reader = vtkSmartPointer<vtkXMLImageDataReader>(); - auto ug_mapper = vtkSmartPointer<vtkOSPRayVolumeMapper>(); - auto ug_volume = vtkSmartPointer<vtkVolume> (); + auto geometry_reader = vtkSmartPointer<vtkXMLPolyDataReader> (); + auto geometry_mapper = vtkSmartPointer<vtkPolyDataMapper> (); + auto actor = vtkSmartPointer<vtkActor> (); + auto volume_reader = vtkSmartPointer<vtkXMLImageDataReader>(); + auto volume_mapper = vtkSmartPointer<vtkOSPRayVolumeMapper>(); + auto volume = vtkSmartPointer<vtkVolume> (); std::cout << "Setting up video writer.\n"; auto window_to_image = vtkSmartPointer<vtkWindowToImageFilter>::New(); @@ -92,51 +89,51 @@ std::int32_t main(std::int32_t argc, char** argv) { std::cout << "Clearing previous slice.\n"; - renderer ->RemoveActor (pd_actor ); - pd_actor ->SetMapper (nullptr ); - pd_mapper->RemoveInputConnection(0, pd_reader->GetOutputPort()); + renderer ->RemoveActor (actor ); + actor ->SetMapper (nullptr ); + geometry_mapper->RemoveInputConnection(0, geometry_reader->GetOutputPort()); - renderer ->RemoveVolume (ug_volume); - ug_volume->SetMapper (nullptr ); - ug_mapper->RemoveInputConnection(0, ug_reader->GetOutputPort()); + renderer ->RemoveVolume (volume); + volume->SetMapper (nullptr ); + volume_mapper->RemoveInputConnection(0, volume_reader->GetOutputPort()); - pd_reader = nullptr; - pd_mapper = nullptr; - pd_actor = nullptr; + geometry_reader = nullptr; + geometry_mapper = nullptr; + actor = nullptr; - ug_reader = nullptr; - ug_mapper = nullptr; - ug_volume = nullptr; + volume_reader = nullptr; + volume_mapper = nullptr; + volume = nullptr; } - pd_reader = vtkSmartPointer<vtkXMLPolyDataReader> ::New(); - pd_mapper = vtkSmartPointer<vtkPolyDataMapper> ::New(); - pd_actor = vtkSmartPointer<vtkActor> ::New(); + geometry_reader = vtkSmartPointer<vtkXMLPolyDataReader> ::New(); + geometry_mapper = vtkSmartPointer<vtkPolyDataMapper> ::New(); + actor = vtkSmartPointer<vtkActor> ::New(); - ug_reader = vtkSmartPointer<vtkXMLImageDataReader>::New(); - ug_mapper = vtkSmartPointer<vtkOSPRayVolumeMapper>::New(); - ug_volume = vtkSmartPointer<vtkVolume> ::New(); + volume_reader = vtkSmartPointer<vtkXMLImageDataReader>::New(); + volume_mapper = vtkSmartPointer<vtkOSPRayVolumeMapper>::New(); + volume = vtkSmartPointer<vtkVolume> ::New(); std::cout << "Loading next slice: " << slice << ".\n"; - pd_reader->SetFileName (settings.data_filepaths[slice].geometry.c_str()); - pd_mapper->SetInputConnection (pd_reader->GetOutputPort()); - pd_actor ->SetMapper (pd_mapper); - pd_actor ->GetProperty()->SetInterpolation (VTK_PBR); - renderer ->AddActor (pd_actor ); + geometry_reader->SetFileName (settings.data_filepaths[slice].geometry.c_str()); + geometry_mapper->SetInputConnection (geometry_reader->GetOutputPort()); + actor ->SetMapper (geometry_mapper); + actor ->GetProperty()->SetInterpolation (VTK_PBR); + renderer ->AddActor (actor ); - ug_reader->SetFileName (settings.data_filepaths[slice].volume .c_str()); - ug_reader->SetInputArrayToProcess (0, 0, 0, vtkDataObject::FIELD_ASSOCIATION_POINTS, "Q"); - ug_reader->Update (); - ug_reader->GetOutput ()->GetPointData()->SetActiveScalars("Q"); - ug_mapper->SetInputData (ug_reader->GetOutput()); - ug_mapper->SetInputArrayToProcess (0, 0, 0, vtkDataObject::FIELD_ASSOCIATION_POINTS, "Q"); - ug_volume->SetMapper (ug_mapper); - ug_volume->GetProperty()->SetScalarOpacity (tf.opacity_function); - ug_volume->GetProperty()->SetColor (tf.color_function); - ug_volume->GetProperty()->SetScalarOpacityUnitDistance(0.00001); - ug_volume->GetProperty()->SetInterpolationType (VTK_LINEAR_INTERPOLATION); - ug_volume->GetProperty()->ShadeOff (); - renderer ->AddVolume (ug_volume); + volume_reader->SetFileName (settings.data_filepaths[slice].volume .c_str()); + volume_reader->SetInputArrayToProcess (0, 0, 0, vtkDataObject::FIELD_ASSOCIATION_POINTS, "Q"); + volume_reader->Update (); + volume_reader->GetOutput ()->GetPointData()->SetActiveScalars("Q"); + volume_mapper->SetInputData (volume_reader->GetOutput()); + volume_mapper->SetInputArrayToProcess (0, 0, 0, vtkDataObject::FIELD_ASSOCIATION_POINTS, "Q"); + volume->SetMapper (volume_mapper); + volume->GetProperty()->SetScalarOpacity (tf.opacity_function); + volume->GetProperty()->SetColor (tf.color_function); + volume->GetProperty()->SetScalarOpacityUnitDistance(0.00001); + volume->GetProperty()->SetInterpolationType (VTK_LINEAR_INTERPOLATION); + volume->GetProperty()->ShadeOn (); + renderer ->AddVolume (volume); last_slice = slice; } diff --git a/settings.json b/settings.json index b5b027b4487978ce7115acac502f2e0bae418b61..820374ba4d14aa2f75bfc94796c873e4c2a4b614 100644 --- a/settings.json +++ b/settings.json @@ -1,9 +1,9 @@ { "data_filepaths": [ - { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/QOUT_0013200.vti" }, - { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/QOUT_0013200.vti" }, - { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/QOUT_0013200.vti" } + { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti" }, + { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti" }, + { "geometry": "D:/data/grids/AIA/Oxyflame/GEOM_0013200.vtp", "volume": "D:/data/grids/AIA/Oxyflame/1024/QOUT_0013200.vti" } ], "transfer_function": "D:/source/internal/oxyflame_rendering_tools/transfer_function.json", "time_scale" : 1000.0, diff --git a/transfer_function.json b/transfer_function.json index b0ea4589740ae83704aa0e977c0724fc935be9f7..3f96d6b4cb2d7579ec27c2bb71bd01f79d141388 100644 --- a/transfer_function.json +++ b/transfer_function.json @@ -1,7 +1,7 @@ [ { - "ColorSpace" : "Diverging", - "Name" : "Oxy 98", + "ColorSpace" : "Lab", + "Name" : "Oxy Red White", "Points" : [ 0.0, @@ -12,9 +12,13 @@ 0.0, 0.5, 0.0, - 0.050000000000000003, + 0.01, + 0.0062500000931322575, + 0.5, 0.0, 0.5, + 0.10000000149011612, + 0.5, 0.0, 1.0, 1.0, @@ -24,13 +28,73 @@ "RGBPoints" : [ 0.0, - 0.70588200000000001, - 0.0156863, - 0.14902000000000001, + 0.403922, + 0.0, + 0.050979999999999998, + 0.062744999999999995, + 0.52596699999999996, + 0.029527000000000001, + 0.066727999999999996, + 0.12548999999999999, + 0.64764299999999997, + 0.058962000000000001, + 0.082475999999999994, + 0.1882355, + 0.722445, + 0.076677999999999996, + 0.098224000000000006, + 0.2509805, + 0.79718599999999995, + 0.095194000000000001, + 0.114187, + 0.31372549999999999, + 0.86805100000000002, + 0.16409099999999999, + 0.14371400000000001, + 0.37647049999999999, + 0.937809, + 0.233541, + 0.173933, + 0.43921549999999998, + 0.96143000000000001, + 0.32605899999999999, + 0.232987, + 0.50196078499999996, + 0.984375, + 0.41814699999999999, + 0.292657, + 0.56470600000000004, + 0.986344, + 0.49688599999999999, + 0.371396, + 0.62745099999999998, + 0.98823499999999997, + 0.57570200000000005, + 0.45067299999999999, + 0.69019600000000003, + 0.98823499999999997, + 0.65640900000000002, + 0.54319099999999998, + 0.75294100000000008, + 0.98841999999999997, + 0.73674700000000004, + 0.63589399999999996, + 0.81568649999999998, + 0.99235700000000004, + 0.809581, + 0.73234900000000003, + 0.87843150000000003, + 0.99618600000000002, + 0.88069200000000003, + 0.82675900000000002, + 0.94117650000000008, + 0.99815500000000001, + 0.92203000000000002, + 0.88581299999999996, + 1.0, 1.0, - 0.231373, - 0.298039, - 0.75294099999999997 + 0.96078399999999997, + 0.94117600000000001 ] } ] diff --git a/transfer_functions/tf_rw_001.json b/transfer_functions/tf_rw_001.json new file mode 100644 index 0000000000000000000000000000000000000000..3f96d6b4cb2d7579ec27c2bb71bd01f79d141388 --- /dev/null +++ b/transfer_functions/tf_rw_001.json @@ -0,0 +1,101 @@ +[ + { + "ColorSpace" : "Lab", + "Name" : "Oxy Red White", + "Points" : + [ + 0.0, + 0.0, + 0.5, + 0.0, + 0.0, + 0.0, + 0.5, + 0.0, + 0.01, + 0.0062500000931322575, + 0.5, + 0.0, + 0.5, + 0.10000000149011612, + 0.5, + 0.0, + 1.0, + 1.0, + 0.5, + 0.0 + ], + "RGBPoints" : + [ + 0.0, + 0.403922, + 0.0, + 0.050979999999999998, + 0.062744999999999995, + 0.52596699999999996, + 0.029527000000000001, + 0.066727999999999996, + 0.12548999999999999, + 0.64764299999999997, + 0.058962000000000001, + 0.082475999999999994, + 0.1882355, + 0.722445, + 0.076677999999999996, + 0.098224000000000006, + 0.2509805, + 0.79718599999999995, + 0.095194000000000001, + 0.114187, + 0.31372549999999999, + 0.86805100000000002, + 0.16409099999999999, + 0.14371400000000001, + 0.37647049999999999, + 0.937809, + 0.233541, + 0.173933, + 0.43921549999999998, + 0.96143000000000001, + 0.32605899999999999, + 0.232987, + 0.50196078499999996, + 0.984375, + 0.41814699999999999, + 0.292657, + 0.56470600000000004, + 0.986344, + 0.49688599999999999, + 0.371396, + 0.62745099999999998, + 0.98823499999999997, + 0.57570200000000005, + 0.45067299999999999, + 0.69019600000000003, + 0.98823499999999997, + 0.65640900000000002, + 0.54319099999999998, + 0.75294100000000008, + 0.98841999999999997, + 0.73674700000000004, + 0.63589399999999996, + 0.81568649999999998, + 0.99235700000000004, + 0.809581, + 0.73234900000000003, + 0.87843150000000003, + 0.99618600000000002, + 0.88069200000000003, + 0.82675900000000002, + 0.94117650000000008, + 0.99815500000000001, + 0.92203000000000002, + 0.88581299999999996, + 1.0, + 1.0, + 0.96078399999999997, + 0.94117600000000001 + ] + } +] + diff --git a/transfer_functions/tf_rw_002.json b/transfer_functions/tf_rw_002.json new file mode 100644 index 0000000000000000000000000000000000000000..6a892338d87b1d5a87ff7a3ac43a1303318a953b --- /dev/null +++ b/transfer_functions/tf_rw_002.json @@ -0,0 +1,97 @@ +[ + { + "ColorSpace" : "Lab", + "Name" : "Oxyflame Red 2", + "Points" : + [ + 0.0, + 0.0, + 0.5, + 0.0, + 0.0, + 0.0, + 0.5, + 0.0, + 0.089999999999999997, + 0.0, + 0.5, + 0.0, + 1.0, + 1.0, + 0.5, + 0.0 + ], + "RGBPoints" : + [ + 0.0, + 0.403922, + 0.0, + 0.050979999999999998, + 0.062744999999999995, + 0.52596699999999996, + 0.029527000000000001, + 0.066727999999999996, + 0.12548999999999999, + 0.64764299999999997, + 0.058962000000000001, + 0.082475999999999994, + 0.1882355, + 0.722445, + 0.076677999999999996, + 0.098224000000000006, + 0.2509805, + 0.79718599999999995, + 0.095194000000000001, + 0.114187, + 0.31372549999999999, + 0.86805100000000002, + 0.16409099999999999, + 0.14371400000000001, + 0.37647049999999999, + 0.937809, + 0.233541, + 0.173933, + 0.43921549999999998, + 0.96143000000000001, + 0.32605899999999999, + 0.232987, + 0.50196078499999996, + 0.984375, + 0.41814699999999999, + 0.292657, + 0.56470600000000004, + 0.986344, + 0.49688599999999999, + 0.371396, + 0.62745099999999998, + 0.98823499999999997, + 0.57570200000000005, + 0.45067299999999999, + 0.69019600000000003, + 0.98823499999999997, + 0.65640900000000002, + 0.54319099999999998, + 0.75294100000000008, + 0.98841999999999997, + 0.73674700000000004, + 0.63589399999999996, + 0.81568649999999998, + 0.99235700000000004, + 0.809581, + 0.73234900000000003, + 0.87843150000000003, + 0.99618600000000002, + 0.88069200000000003, + 0.82675900000000002, + 0.94117650000000008, + 0.99815500000000001, + 0.92203000000000002, + 0.88581299999999996, + 1.0, + 1.0, + 0.96078399999999997, + 0.94117600000000001 + ] + } +] + diff --git a/transfer_functions/tf_rwb_001.json b/transfer_functions/tf_rwb_001.json new file mode 100644 index 0000000000000000000000000000000000000000..b3724f88e811664180ef17955bf3a7e1b29745ab --- /dev/null +++ b/transfer_functions/tf_rwb_001.json @@ -0,0 +1,37 @@ +[ + { + "ColorSpace" : "Diverging", + "Name" : "Oxy 100", + "Points" : + [ + 0.0, + 0.0, + 0.5, + 0.0, + 0.0, + 0.0, + 0.5, + 0.0, + 0.01, + 0.0, + 0.5, + 0.0, + 1.0, + 1.0, + 0.5, + 0.0 + ], + "RGBPoints" : + [ + 0.0, + 0.70588200000000001, + 0.0156863, + 0.14902000000000001, + 1.0, + 0.231373, + 0.298039, + 0.75294099999999997 + ] + } +] + diff --git a/transfer_functions/tf_rwb_002.json b/transfer_functions/tf_rwb_002.json new file mode 100644 index 0000000000000000000000000000000000000000..6f6275c106e9c1477443ad1f31c02007ee09dd3c --- /dev/null +++ b/transfer_functions/tf_rwb_002.json @@ -0,0 +1,37 @@ +[ + { + "ColorSpace" : "Diverging", + "Name" : "Oxy 99", + "Points" : + [ + 0.0, + 0.0, + 0.5, + 0.0, + 0.0, + 0.0, + 0.5, + 0.0, + 0.02, + 0.0, + 0.5, + 0.0, + 1.0, + 1.0, + 0.5, + 0.0 + ], + "RGBPoints" : + [ + 0.0, + 0.70588200000000001, + 0.0156863, + 0.14902000000000001, + 1.0, + 0.231373, + 0.298039, + 0.75294099999999997 + ] + } +] + diff --git a/transfer_functions/tf_rwb_003.json b/transfer_functions/tf_rwb_003.json new file mode 100644 index 0000000000000000000000000000000000000000..75d4a2f074ccca7e0b0eac9f3a3d5b4c54df43d1 --- /dev/null +++ b/transfer_functions/tf_rwb_003.json @@ -0,0 +1,37 @@ +[ + { + "ColorSpace" : "Diverging", + "Name" : "Oxy 101", + "Points" : + [ + 0.0, + 0.0, + 0.5, + 0.0, + 0.0, + 0.0, + 0.5, + 0.0, + 0.029999999999999999, + 0.0, + 0.5, + 0.0, + 1.0, + 1.0, + 0.5, + 0.0 + ], + "RGBPoints" : + [ + 0.0, + 0.70588200000000001, + 0.0156863, + 0.14902000000000001, + 1.0, + 0.231373, + 0.298039, + 0.75294099999999997 + ] + } +] + diff --git a/transfer_functions/tf_rwb_004.json b/transfer_functions/tf_rwb_004.json new file mode 100644 index 0000000000000000000000000000000000000000..90f15c9fc1fb9ed218026a4c9a98b40ac9618e5c --- /dev/null +++ b/transfer_functions/tf_rwb_004.json @@ -0,0 +1,37 @@ +[ + { + "ColorSpace" : "Diverging", + "Name" : "Oxy 102", + "Points" : + [ + 0.0, + 0.0, + 0.5, + 0.0, + 0.0, + 0.0, + 0.5, + 0.0, + 0.040000000000000001, + 0.0, + 0.5, + 0.0, + 1.0, + 1.0, + 0.5, + 0.0 + ], + "RGBPoints" : + [ + 0.0, + 0.70588200000000001, + 0.0156863, + 0.14902000000000001, + 1.0, + 0.231373, + 0.298039, + 0.75294099999999997 + ] + } +] + diff --git a/transfer_functions/tf_rwb_005.json b/transfer_functions/tf_rwb_005.json new file mode 100644 index 0000000000000000000000000000000000000000..b0ea4589740ae83704aa0e977c0724fc935be9f7 --- /dev/null +++ b/transfer_functions/tf_rwb_005.json @@ -0,0 +1,37 @@ +[ + { + "ColorSpace" : "Diverging", + "Name" : "Oxy 98", + "Points" : + [ + 0.0, + 0.0, + 0.5, + 0.0, + 0.0, + 0.0, + 0.5, + 0.0, + 0.050000000000000003, + 0.0, + 0.5, + 0.0, + 1.0, + 1.0, + 0.5, + 0.0 + ], + "RGBPoints" : + [ + 0.0, + 0.70588200000000001, + 0.0156863, + 0.14902000000000001, + 1.0, + 0.231373, + 0.298039, + 0.75294099999999997 + ] + } +] +