Removed unsused TMOs. Removed unused sliders and adjusted to default position others.

This commit is contained in:
Jonathas Costa
2019-08-15 14:23:14 -04:00
parent 188dffc63c
commit 17d43d4c93
60 changed files with 43 additions and 12329 deletions

View File

@@ -14,9 +14,7 @@ asset.onInitialize(function ()
-- HDR / Image options:
openspace.setPropertyValueSingle('RenderEngine.Gamma', 0.95);
openspace.setPropertyValueSingle('RenderEngine.HDRExposure', 3.7);
openspace.setPropertyValueSingle('RenderEngine.ToneMapOperator', 8);
openspace.setPropertyValueSingle('RenderEngine.Lightness', 1.1);
openspace.setPropertyValueSingle('RenderEngine.Saturation', 1.2);
openspace.setPropertyValueSingle('RenderEngine.Saturation', 1.0);
end)
asset.onDeinitialize(function ()

View File

@@ -1,203 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
asset.require('spice/base')
--asset.require('scene/solarsystem/missions/apollo/a15kernels')
local models = asset.syncedResource({
Name = "Apollo 15 Models",
Type = "HttpSynchronization",
Identifier = "apollo_models",
Version = 1
})
local kernels = asset.syncedResource({
Name = "Apollo Kernels",
Type = "HttpSynchronization",
Identifier = "apollo_spice",
Version = 1
})
local Kernels = {
kernels .. "/apollo15.0001.tsc",
-- kernels .. '/AS15-P_v01.bc',
kernels .. '/apollo15.0001.tf',
kernels .. '/apollo15MetricAddendum002.ti',
-- kernels .. '/apollo15PanoramicAddendum001.ti',
kernels .. '/apollo15_metric.0002.ti',
-- kernels .. '/apollo15_panoramic.0001.ti',
kernels .. '/apollo15-1.bsp',
kernels .. '/AS15-M_v01.bc',
-- kernels .. '/AS15-M_v01.bsp',
}
-- local Apollo15Kernels = {
-- --sclk
-- ApolloKernels .. "/apollo15.0001.tsc",
-- --pck
-- ApolloKernels .. "/moon_080317.tf",
-- ApolloKernels .. "/moon_assoc_me.tf",
-- --ik
-- ApolloKernels .. "/apollo15_metric_v2.0001.ti",
-- ApolloKernels .. "/apollo15_panoramic.0001.ti",
-- --tspk
-- ApolloKernels .. "/de421.bsp",
-- ApolloKernels .. "/moon_pa_de421_1900-2050.bpc",
-- --iak
-- ApolloKernels .. "/apollo15MetricAddendum002.ti",
-- ApolloKernels .. "/apolloPanAddendum001.ti",
-- --fk
-- ApolloKernels .. "/apollo15_v2.0001.tf",
-- ApolloKernels .. "/apollo15_v2.0002.tf",
-- --spk
-- ApolloKernels .. "/AS15_M_REV23_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV4.bsp ",
-- ApolloKernels .. "/AS15_M_REV70_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV04_v2.bsp ",
-- ApolloKernels .. "/AS15_M_REV27_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV44_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV71_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV15_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV33_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV50_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV71_SMITHED_V02.bsp",
-- ApolloKernels .. "/AS15_M_REV15_v2.bsp ",
-- ApolloKernels .. "/AS15_M_REV34_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV60_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV72_v2.bsp",
-- ApolloKernels .. "/AS15_M_REV16_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV35_SMITHED_V02.bsp",
-- ApolloKernels .. "/AS15_M_REV62_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV22_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV38_SMITHED_V01.bsp",
-- ApolloKernels .. "/AS15_M_REV63_SMITHED_V01.bsp",
-- --ck
-- ApolloKernels .. "/AS15_M_REV04_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV15_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV16_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV22_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV23_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV27_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV33_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV34_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV35_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV35_SMITHED_V02.bc",
-- ApolloKernels .. "/AS15_M_REV38_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV44_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV50_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV60_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV62_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV63_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV70_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV71_SMITHED_V01.bc",
-- ApolloKernels .. "/AS15_M_REV71_SMITHED_V02.bc",
-- ApolloKernels .. "/AS15_M_REV72_v2.bc",
-- }
local LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
},
-- {
-- Identifier = "Camera",
-- Type = "CameraLightSource",
-- Intensity = 0.5,
-- Enabled = false
-- }
}
local Apollo15 = {
Identifier = "Apollo15",
Parent = "Moon",
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "APOLLO 15",
Observer = "MOON",
Frame = "IAU_MOON",
Kernels = Kernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "A15_METRIC",
DestinationFrame = "GALACTIC"
}
},
TimeFrame = { -- Using Spice kernels for 1850-2150
Type = "TimeFrameInterval",
Start = "1971-07-30T02:22:00.00",
End = "1971-08-01T18:05:00.00"
},
GUI = {
Name = "Apollo 15",
Path = "/Solar System/Missions/Apollo 15"
}
}
local Apollo15Main = {
Identifier = "Apollo15Main",
Parent = Apollo15.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
-- GeometryFile = models .. "/Apollo_Spacecraft.obj"
GeometryFile = models .. "/Apollo_CSM_shrunk_rotated_xy_doubble_size.obj"
},
ColorTexture = models .. "/gray.png",
LightSources = LightSources,
DisableFaceCulling = true
},
GUI = {
Name = "Apollo 15 Main",
Path = "/Solar System/Missions/Apollo 15"
}
}
local Apollo15Trail = {
Identifier = "Apollo15Trail",
Parent = "Moon",
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "APOLLO 15",
Observer = "MOON",
Frame = "IAU_MOON",
Kernels = Kernels
},
Color = { 0.70, 0.50, 0.20 },
StartTime = "1971 JUL 26",
EndTime = "1971 AUG 01 14:30:41.680",
SampleInterval = 2
},
GUI = {
Name = "Apollo 15 Trail",
Path = "/Solar System/Missions/Apollo 15"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Apollo15,
Apollo15Main,
Apollo15Trail
})

View File

@@ -1,86 +0,0 @@
local ApolloKernels = asset.syncedResource({
Name = "Apollo Kernels",
Type = "HttpSynchronization",
Identifier = "apollo_spice",
Version = 1
})
local Apollo15Kernels = {
--sclk
ApolloKernels .. "apollo15.0001.tsc",
--pck
ApolloKernels .. "moon_080317.tf",
ApolloKernels .. "moon_assoc_me.tf",
--ik
ApolloKernels .. "apollo15_metric_v2.0001.ti",
ApolloKernels .. "apollo15_panoramic.0001.ti",
--tspk
ApolloKernels .. "de421.bsp",
ApolloKernels .. "moon_pa_de421_1900-2050.bpc",
--iak
ApolloKernels .. "apollo15MetricAddendum002.ti",
ApolloKernels .. "apolloPanAddendum001.ti",
--fk
ApolloKernels .. "apollo15_v2.0001.tf",
ApolloKernels .. "apollo15_v2.0002.tf",
--spk
ApolloKernels .. "AS15_M_REV23_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV4.bsp ",
ApolloKernels .. "AS15_M_REV70_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV04_v2.bsp ",
ApolloKernels .. "AS15_M_REV27_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV44_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV71_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV15_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV33_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV50_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV71_SMITHED_V02.bsp",
ApolloKernels .. "AS15_M_REV15_v2.bsp ",
ApolloKernels .. "AS15_M_REV34_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV60_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV72_v2.bsp",
ApolloKernels .. "AS15_M_REV16_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV35_SMITHED_V02.bsp",
ApolloKernels .. "AS15_M_REV62_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV22_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV38_SMITHED_V01.bsp",
ApolloKernels .. "AS15_M_REV63_SMITHED_V01.bsp",
--ck
ApolloKernels .. "AS15_M_REV04_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV15_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV16_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV22_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV23_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV27_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV33_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV34_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV35_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV35_SMITHED_V02.bc",
ApolloKernels .. "AS15_M_REV38_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV44_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV50_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV60_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV62_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV63_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV70_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV71_SMITHED_V01.bc",
ApolloKernels .. "AS15_M_REV71_SMITHED_V02.bc",
ApolloKernels .. "AS15_M_REV72_v2.bc",
}
--asset.export("ApolloKernels", Kernels)
asset.export("Apollo15Kernels", Apollo15Kernels)

View File

@@ -1,234 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local csm = asset.require('./apollo_csm')
asset.require('spice/base')
local kernelsFolder = asset.syncedResource({
Name = "Apollo Kernels",
Type = "HttpSynchronization",
Identifier = "apollo_spice",
Version = 1
})
local kernels = {
kernelsFolder .. "/moon_080317.tf",
kernelsFolder .. "/apollo8.tf",
kernelsFolder .. "/moon_pa_de421_1900-2050.bpc",
kernelsFolder .. '/apollo8.tsc',
kernelsFolder .. '/apollo8.bsp',
kernelsFolder .. '/apollo8_earthrise.bc',
}
local apolloSpiceId = "-908"
local Apollo8Launch = {
Identifier = "Apollo8Launch",
Parent = "Earth",
TimeFrame = { -- Using Spice kernels for 1850-2150
Type = "TimeFrameInterval",
Start = "1968 DEC 21",
End = "1968 DEC 28"
},
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = apolloSpiceId,
Observer = "EARTH",
Frame = "IAU_EARTH",
Kernels = kernels
},
},
GUI = {
Name = "Apollo 8 Launch Capsule",
Path = "/Solar System/Missions/Apollo"
}
}
local Apollo8 = {
Identifier = "Apollo8",
Parent = "EarthBarycenter",
TimeFrame = { -- Using Spice kernels for 1850-2150
Type = "TimeFrameInterval",
Start = "1968 DEC 21",
End = "1968 DEC 28"
},
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = apolloSpiceId,
Observer = "EARTH BARYCENTER",
Frame = "GALACTIC",
Kernels = kernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "A8_EARTHRISE",
DestinationFrame = "GALACTIC",
TimeFrame = {
-- The orientation of Apollo 8 is only
-- available during the few minutes when
-- the famous Earthrise picture was taken.
Type = "TimeFrameInterval",
Start = "1968 DEC 24 16:37:19",
End = "1968 DEC 24 16:40:15"
}
}
},
GUI = {
Name = "Apollo 8",
Path = "/Solar System/Missions/Apollo"
}
}
local Apollo8LaunchModel = {
Identifier = "Apollo8LaunchModel",
Parent = Apollo8Launch.Identifier,
Transform = {
Scale = {
Type = "StaticScale",
-- The scale of the model is in cm; OpenSpace is in m
Scale = 0.01
},
Rotation = {
Type = "StaticRotation",
Rotation = {0.0, 0.0, -3.1415/2}
}
},
GUI = {
Hidden = true,
Name = "Apollo 8 Launch Model",
Path = "/Solar System/Missions/Apollo"
}
}
local Apollo8Model = {
Identifier = "Apollo8Model",
Parent = Apollo8.Identifier,
Transform = {
Scale = {
Type = "StaticScale",
-- The scale of the model is in cm; OpenSpace is in m
Scale = 0.01
},
Rotation = {
Type = "StaticRotation",
Rotation = {0.0, 0.0, -3.1415/2}
}
},
GUI = {
Hidden = true,
Name = "Apollo 8 Model",
Path = "/Solar System/Missions/Apollo"
}
}
local PivotOffset = { 0, 2.5, 0}
-- The pivot node is used for navigation inside the spacecraft
local Apollo8Pivot = {
Identifier = "Apollo8Pivot",
Parent = Apollo8.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = PivotOffset
},
},
GUI = {
Name = "Apollo 8 Pivot",
Path = "/Solar System/Missions/Apollo"
}
}
local Apollo8LaunchTrail = {
Identifier = "Apollo8LaunchTrail",
Parent = "Earth",
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = apolloSpiceId,
Observer = "EARTH",
Frame = "IAU_EARTH",
Kernels = kernels
},
Color = { 0.70, 0.50, 0.20 },
StartTime = "1968 DEC 21 12:51:00",
EndTime = "1968 DEC 21 23:23:22",
SampleInterval = 30
},
GUI = {
Name = "Apollo 8 Launch Trail",
Path = "/Solar System/Missions/Apollo"
}
}
local Apollo8MoonTrail = {
Identifier = "Apollo8MoonTrail",
Parent = "Moon",
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = apolloSpiceId,
Observer = "MOON",
Frame = "IAU_MOON",
Kernels = kernels
},
Color = { 0.70, 0.50, 0.20 },
StartTime = "1968 DEC 23",
EndTime = "1968 DEC 26",
SampleInterval = 30,
Enabled = false,
},
GUI = {
Name = "Apollo 8 Moon Trail",
Path = "/Solar System/Missions/Apollo"
}
}
local Apollo8EarthBarycenterTrail = {
Identifier = "Apollo8EarthBarycenterTrail",
Parent = "EarthBarycenter",
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = apolloSpiceId,
Observer = "EARTH BARYCENTER",
Frame = "GALACTIC",
Kernels = kernels
},
Color = { 1, 0.0, 0.0 },
StartTime = "1968 DEC 21",
EndTime = "1968 DEC 28",
SampleInterval = 30,
Enabled = false,
},
GUI = {
Name = "Apollo 8 Earth Barycenter Trail",
Path = "/Solar System/Missions/Apollo"
}
}
local exportList = {
Apollo8,
Apollo8Model,
Apollo8Launch,
Apollo8LaunchModel,
Apollo8Pivot,
Apollo8LaunchTrail,
Apollo8MoonTrail,
Apollo8EarthBarycenterTrail
}
assetHelper.registerSceneGraphNodesAndExport(asset, exportList)
-- Registering Command and Service module needs to happen fter the export list
-- has been registered, since it depends on the Apollo8Model scene graph node.
csm.registerCsm(asset, Apollo8Model.Identifier)
csm.registerCsm(asset, Apollo8LaunchModel.Identifier)

View File

@@ -1,39 +0,0 @@
--apollo_11_lem_flipbook.asset
local helper = asset.require('util/vrt_flipbook_helper')
local assetPrefix = "A11flip";
local assetGlobe = "Moon";
local flipbookCount = 19;
local flipbook = nil;
local vrts = asset.syncedResource({
Name = "Apollo 11 Flipbook",
Type = "HttpSynchronization",
Identifier = "apollo_11_flipbook",
Version = 1
})
asset.onInitialize(function ()
openspace.globebrowsing.addBlendingLayersFromDirectory(vrts, assetGlobe);
flipbook = helper.createFlipbook(assetPrefix, assetGlobe, 19);
function nextFlip()
helper.nextFlipbookPage(flipbook);
end
function previousFlip()
helper.previousFlipbookPage(flipbook);
end
openspace.bindKey("RIGHT", "nextFlip()", "Show the next Apollo 11 flipbook image.", "Next A11 flip", "/Missions/Apollo/11")
openspace.bindKey("LEFT", "previousFlip()","Show the previous Apollo 11 flipbook image.", "Prev A11 flip", "/Missions/Apollo/11")
end)
asset.onDeinitialize(function ()
flipbook = nil;
openspace.clearKey("RIGHT")
openspace.clearKey("LEFT")
end)

View File

@@ -1,280 +0,0 @@
-- This asset exports a function to create an Apollo Command and Service Module (CSM).
-- Instead of hard-coding the scene graph node parent,
-- client assets can decide which object that the CSM should be attached to.
-- Usage example: registerCsm(asset, Apollo8.Idenfitier)
-- ...where Apollo8 is the scene graph node identifier to attach the CSM to.
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local models = asset.syncedResource({
Name = "Apollo Models",
Type = "HttpSynchronization",
Identifier = "apollo_models",
Version = 1
})
local partsInfo = {
-- Data is structured as: Geometry file name (except .obj suffix), texture file name, shading
-- Exterior
{"AP08_cone_command_module", "Command_module_diff.png", true},
{"AP08_cone_hatchdoor_handle_scratched_metal", "scratched_metal_gloss.png", true},
{"AP08_cone_vent_ports_black", "black.png", true},
{"AP08_cone_vent_ports_red", "red.png", true},
{"AP08_cone_hatchdoor_interior", "apollo_hatchdoor_interior.jpg", false},
{"AP08_service_black", "black.png", true},
{"AP08_service_brown", "brown.png", true},
{"AP08_service_grey", "gray.png", true},
{"AP08_service_high_gain_antenna", "Antenna_diff.png", true},
{"AP08_service_module", "Service_module_diff.png", true},
{"AP08_service_nozzle", "Nozzle_diff.png", true},
{"AP08_service_pink", "pink.png", true},
{"AP08_service_red", "red.png", true},
{"AP08_service_scratched_metal", "scratched_metal_gloss.png", true},
{"AP08_service_white", "white.png", true},
-- Interior
-- {"AP11_int_back_wall_left", "AP11_int_back_wall_left.png", false},
-- {"AP11_int_back_wall_right", "AP11_int_back_wall_right.png", false},
-- {"AP11_interior_back_wall_top_0Shape3", "back_wall_top_0Shape3_tpAmbient_paint_03.png", false},
-- {"AP11_interior_belt_buckles_02_L2", "belt_buckles_02_L2Shape_tpAmbient.png", false},
-- {"AP11_interior_belt_straps_02", "belt_straps_02Shape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_black_push_buttons", "push_buttonsShape_tpAmbient.png", false},
-- {"AP11_interior_bottom_boxes_03", "bottom_boxes_03_paint_01.png", false},
-- {"AP11_interior_bottom_floor_tp", "bottom_floor_tpAmbient_paint_v002.png", false},
-- {"AP11_interior_box_back_01", "box_back_01_paint_v001.png", false},
-- {"AP11_interior_box_back_02", "box_back_02_paint_v001.png", false},
-- {"AP11_interior_box_back_04", "box_back_04_paint_v001.png", false},
-- {"AP11_interior_box_lft_lower_01", "box_lft_lower_01Shape_Diffuse_paint_v002.png", false},
-- {"AP11_interior_box_lft_top", "box_lft_topShape_Diffuse_paint_v009.png", false},
-- {"AP11_interior_box_mid_tp", "box_mid_tpDiffuse_paint_v001.png", false},
-- {"AP11_interior_box_rt_top_02", "box_rt_top_02_paint_04.png", false},
-- {"AP11_interior_brushed_blue_ano", "brushed_blue_ano_paint_01.png", false},
-- {"AP11_interior_brushed_brass", "brushed_brass_paint_01.png", false},
-- {"AP11_interior_brushed_grey_ano", "brushed_grey_ano_paint_02.png", false},
-- {"AP11_interior_canvas_cover", "canvas_coverShape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_Channel_attachment", "Channel_attachment_Diffuse.png", false},
-- {"AP11_interior_Channel_baseMetal", "Channel_baseMetal_Diffuse.png", false},
-- {"AP11_interior_Channel_Material", "Channel_Material_Diffuse.png", false},
-- {"AP11_interior_Channel_rsMaterial2", "Channel_rsMaterial2_Diffuse.png", false},
-- {"AP11_interior_cloth_01", "cloth_01Shape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_coiled_hose", "coiled_hoseShape_tpAmbient.png", false},
-- {"AP11_interior_control_panel_left_win_plates", "control_panel_left_win_platesShape_tpAmbient.png", false},
-- {"AP11_interior_control_panel_rt_win_plates", "control_panel_rt_win_platesShape_tpAmbient.png", false},
-- {"AP11_interior_copper_parts_main_cp", "copper_parts_main_cpShape_tpAmbient.png", false},
-- {"AP11_interior_dials_main2", "dials_main2Shape_tpAmbient.png", false},
-- {"AP11_interior_dials_t2", "dials_t2Shape_tpAmbient.png", false},
-- {"AP11_interior_dial_fixes_01", "dial_fixes_01Shape_tpAmbient.png", false},
-- {"AP11_interior_fire_ex_02", "fire_ex_02_paint_v001.png", false},
-- {"AP11_interior_floor_panels_3", "floor_panels_3Shape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_floor_tile_tex_01", "floor_tile_tex_01.png", false},
-- {"AP11_interior_grey", "gray.png", false},
-- {"AP11_interior_handholds_cp", "handholds_cpShape_tpAmbient_paint_05.png", false},
-- {"AP11_interior_hatch_release_0Shape5", "hatch_release_0Shape5_tpAmbient_paint_02.png", false},
-- {"AP11_interior_headrests_02", "headrests_02Shape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_hoses_black_01", "hoses_black_01Shape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_hoses_white_0Shape1", "hoses_white_0Shape1_tpAmbient_paint_01.png", false},
-- {"AP11_interior_josticks1", "joysticks1Shape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_joysticks_fabric1", "joysticks_fabric1_Shape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_joystick_poles_lft_05", "joystick_poles_lft_05_paint_v002.png", false},
-- {"AP11_interior_joystick_poles_lft_long_05", "joystick_poles_lft_long_05_paint_v002.png", false},
-- {"AP11_interior_joystick_poles_rt_05", "joystick_poles_rt_05_paint_v002.png", false},
-- {"AP11_interior_latch_mechanisms_01", "latch_mechanisms_01Shape_tpAmbient.png", false},
-- {"AP11_interior_lower_push_buttons", "lower_push_buttonsShape_tpAmbient.png", false},
-- {"AP11_interior_lower_walls_back", "lower_walls_back_paint_04.png", false},
-- {"AP11_interior_lower_walls_boxes_head", "lower_walls_boxes_headShape_tpAmbient_paint_v001.png", false},
-- {"AP11_interior_main_cp_left_smth_03", "main_cp_left_0Shape3_tpAmbient_paint_02.png", false},
-- {"AP11_interior_main_cp_mid_smth_02", "main_cp_mid_smth_02Shape_tpAmbient_paint_02.png", false},
-- {"AP11_interior_main_cp_rt_smth", "main_cp_rt_smthShape_tpAmbient_paint_02.png", false},
-- {"AP11_interior_main_cp_wheels", "main_cp_wheelsShape_tpAmbient.png", false},
-- {"AP11_interior_metal_brackets_under_hatch", "metal_brackets_under_hatchShape_tpAmbient.png", false},
-- {"AP11_interior_metal_tunnel_parts", "metal_tunnel_partsShape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_metal_window_parts", "metal_window_partsShape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_middle_walls_05", "middle_walls_05_tpAmbient_paint_02.png", false},
-- {"AP11_interior_middle_walls_0Shape8", "middle_walls_0Shape8_tpAmbient_paint_01.png", false},
-- {"AP11_interior_mid_tunnel_parts", "mid_tunnel_parts_03Shape_tpAmbient_paint_02.png", false},
-- {"AP11_interior_new_switch_rails1", "new_switch_rails1Shape_tpAmbient.png", false},
-- {"AP11_interior_nozzles_02", "nozzles_02Shape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_outlet_fabric3", "outlet_fabric3Shape_tpAmbient_paint_02.png", false},
-- {"AP11_interior_pole_end_02", "pole_end_02.png", false},
-- {"AP11_interior_pole_end_03", "pole_end_03.png", false},
-- {"AP11_interior_pole_tex_03", "pole_tex_03.png", false},
-- {"AP11_interior_pole_tex_04", "pole_tex_04.png", false},
-- {"AP11_interior_pole_tex_05", "pole_tex_05.png", false},
-- {"AP11_interior_pole_tex_lower_01", "pole_tex_lower_01.png", false},
-- {"AP11_interior_pole_under_seat_paint_01", "pole_under_seat_paint_01.png", false},
-- {"AP11_interior_pole_under_seat_square_bar", "pole_under_seat_square_bar_paint_01.png", false},
-- {"AP11_interior_push_switches_lft1", "push_switches_lft1Shape_tpAmbient.png", false},
-- {"AP11_interior_random_small_parts_01", "random_small_parts_01Shape_tpAmbient_paint_02.png", false},
-- {"AP11_interior_red", "red.png", false},
-- {"AP11_interior_reticle_wheel_tp", "reticle_wheel_tpAmbient_paint_01.png", false},
-- {"AP11_interior_rivet_paint_v001", "rivet_paint_v001.png", false},
-- {"AP11_interior_seats_fabric", "seats_fabric_paint_01.png", false},
-- {"AP11_interior_seat_left_tp", "seat_left_tpAmbient_paint_v001.png", false},
-- {"AP11_interior_seat_lights_left", "seat_lights_left_Shape_tpAmbient_paint_v001.png", false},
-- {"AP11_interior_seat_lights_rt", "seat_lights_rt_Shape_tpAmbient_paint_v001.png", false},
-- {"AP11_interior_seat_middle_tp", "seat_middle_tpAmbient_paint_v001.png", false},
-- {"AP11_interior_seat_poles_0Shape1", "seat_poles_0Shape1_tpAmbient_paint_01.png", false},
-- {"AP11_interior_seat_pole_mirror_0Shape1", "seat_pole_mirror_0Shape1_tpAmbient_paint_01.png", false},
-- {"AP11_interior_seat_rt_tp", "seat_rt_tpAmbient_paint_v001.png", false},
-- {"AP11_interior_sextant_0Shape2", "sextant_0Shape2_tpAmbient.png", false},
-- {"AP11_interior_switch_covers_main_middle1", "switch_covers_main_middle1Shape_tpAmbient.png", false},
-- {"AP11_interior_switch_rails_lft", "switch_rails_lftShape_tpAmbient.png", false},
-- {"AP11_interior_tunnel_main_cylinder1", "switch_rails_lftShape_tpAmbient.png", false},
-- {"AP11_interior_tunnel_switches_01", "tunnel_switches_01Shape_tpAmbient.png", false},
-- {"AP11_interior_tunnel_wheelsShape", "tunnel_wheelsShape_tpAmbient.png", false},
-- {"AP11_interior_walls_mid_left", "walls_mid_leftShape_tpAmbient_paint_01.png", false},
-- {"AP11_interior_windows_front_0Shape4", "windows_front_0Shape4_tpAmbient_paint_01.png", false}
}
local partsInfoFull = {
-- Data is structured as: Geometry file name (except .obj suffix), texture file name, shading
-- Exterior
{"AP08_cone_command_module", "Command_module_diff.png", true},
{"AP08_cone_hatchdoor_handle_scratched_metal", "scratched_metal_gloss.png", true},
{"AP08_cone_vent_ports_black", "black.png", true},
{"AP08_cone_vent_ports_red", "red.png", true},
{"AP08_cone_hatchdoor_interior", "apollo_hatchdoor_interior.jpg", false},
{"AP08_service_black", "black.png", true},
{"AP08_service_brown", "brown.png", true},
{"AP08_service_grey", "gray.png", true},
{"AP08_service_high_gain_antenna", "Antenna_diff.png", true},
{"AP08_service_module", "Service_module_diff.png", true},
{"AP08_service_nozzle", "Nozzle_diff.png", true},
{"AP08_service_pink", "pink.png", true},
{"AP08_service_red", "red.png", true},
{"AP08_service_scratched_metal", "scratched_metal_gloss.png", true},
{"AP08_service_white", "white.png", true},
-- Interior
{"AP11_int_back_wall_left", "AP11_int_back_wall_left.png", false},
{"AP11_int_back_wall_right", "AP11_int_back_wall_right.png", false},
{"AP11_interior_back_wall_top_0Shape3", "back_wall_top_0Shape3_tpAmbient_paint_03.png", false},
{"AP11_interior_belt_buckles_02_L2", "belt_buckles_02_L2Shape_tpAmbient.png", false},
{"AP11_interior_belt_straps_02", "belt_straps_02Shape_tpAmbient_paint_01.png", false},
{"AP11_interior_black_push_buttons", "push_buttonsShape_tpAmbient.png", false},
{"AP11_interior_bottom_boxes_03", "bottom_boxes_03_paint_01.png", false},
{"AP11_interior_bottom_floor_tp", "bottom_floor_tpAmbient_paint_v002.png", false},
{"AP11_interior_box_back_01", "box_back_01_paint_v001.png", false},
{"AP11_interior_box_back_02", "box_back_02_paint_v001.png", false},
{"AP11_interior_box_back_04", "box_back_04_paint_v001.png", false},
{"AP11_interior_box_lft_lower_01", "box_lft_lower_01Shape_Diffuse_paint_v002.png", false},
{"AP11_interior_box_lft_top", "box_lft_topShape_Diffuse_paint_v009.png", false},
{"AP11_interior_box_mid_tp", "box_mid_tpDiffuse_paint_v001.png", false},
{"AP11_interior_box_rt_top_02", "box_rt_top_02_paint_04.png", false},
{"AP11_interior_brushed_blue_ano", "brushed_blue_ano_paint_01.png", false},
{"AP11_interior_brushed_brass", "brushed_brass_paint_01.png", false},
{"AP11_interior_brushed_grey_ano", "brushed_grey_ano_paint_02.png", false},
{"AP11_interior_canvas_cover", "canvas_coverShape_tpAmbient_paint_01.png", false},
{"AP11_interior_Channel_attachment", "Channel_attachment_Diffuse.png", false},
{"AP11_interior_Channel_baseMetal", "Channel_baseMetal_Diffuse.png", false},
{"AP11_interior_Channel_Material", "Channel_Material_Diffuse.png", false},
{"AP11_interior_Channel_rsMaterial2", "Channel_rsMaterial2_Diffuse.png", false},
{"AP11_interior_cloth_01", "cloth_01Shape_tpAmbient_paint_01.png", false},
{"AP11_interior_coiled_hose", "coiled_hoseShape_tpAmbient.png", false},
{"AP11_interior_control_panel_left_win_plates", "control_panel_left_win_platesShape_tpAmbient.png", false},
{"AP11_interior_control_panel_rt_win_plates", "control_panel_rt_win_platesShape_tpAmbient.png", false},
{"AP11_interior_copper_parts_main_cp", "copper_parts_main_cpShape_tpAmbient.png", false},
{"AP11_interior_dials_main2", "dials_main2Shape_tpAmbient.png", false},
{"AP11_interior_dials_t2", "dials_t2Shape_tpAmbient.png", false},
{"AP11_interior_dial_fixes_01", "dial_fixes_01Shape_tpAmbient.png", false},
{"AP11_interior_fire_ex_02", "fire_ex_02_paint_v001.png", false},
{"AP11_interior_floor_panels_3", "floor_panels_3Shape_tpAmbient_paint_01.png", false},
{"AP11_interior_floor_tile_tex_01", "floor_tile_tex_01.png", false},
{"AP11_interior_grey", "gray.png", false},
{"AP11_interior_handholds_cp", "handholds_cpShape_tpAmbient_paint_05.png", false},
{"AP11_interior_hatch_release_0Shape5", "hatch_release_0Shape5_tpAmbient_paint_02.png", false},
{"AP11_interior_headrests_02", "headrests_02Shape_tpAmbient_paint_01.png", false},
{"AP11_interior_hoses_black_01", "hoses_black_01Shape_tpAmbient_paint_01.png", false},
{"AP11_interior_hoses_white_0Shape1", "hoses_white_0Shape1_tpAmbient_paint_01.png", false},
{"AP11_interior_josticks1", "joysticks1Shape_tpAmbient_paint_01.png", false},
{"AP11_interior_joysticks_fabric1", "joysticks_fabric1_Shape_tpAmbient_paint_01.png", false},
{"AP11_interior_joystick_poles_lft_05", "joystick_poles_lft_05_paint_v002.png", false},
{"AP11_interior_joystick_poles_lft_long_05", "joystick_poles_lft_long_05_paint_v002.png", false},
{"AP11_interior_joystick_poles_rt_05", "joystick_poles_rt_05_paint_v002.png", false},
{"AP11_interior_latch_mechanisms_01", "latch_mechanisms_01Shape_tpAmbient.png", false},
{"AP11_interior_lower_push_buttons", "lower_push_buttonsShape_tpAmbient.png", false},
{"AP11_interior_lower_walls_back", "lower_walls_back_paint_04.png", false},
{"AP11_interior_lower_walls_boxes_head", "lower_walls_boxes_headShape_tpAmbient_paint_v001.png", false},
{"AP11_interior_main_cp_left_smth_03", "main_cp_left_0Shape3_tpAmbient_paint_02.png", false},
{"AP11_interior_main_cp_mid_smth_02", "main_cp_mid_smth_02Shape_tpAmbient_paint_02.png", false},
{"AP11_interior_main_cp_rt_smth", "main_cp_rt_smthShape_tpAmbient_paint_02.png", false},
{"AP11_interior_main_cp_wheels", "main_cp_wheelsShape_tpAmbient.png", false},
{"AP11_interior_metal_brackets_under_hatch", "metal_brackets_under_hatchShape_tpAmbient.png", false},
{"AP11_interior_metal_tunnel_parts", "metal_tunnel_partsShape_tpAmbient_paint_01.png", false},
{"AP11_interior_metal_window_parts", "metal_window_partsShape_tpAmbient_paint_01.png", false},
{"AP11_interior_middle_walls_05", "middle_walls_05_tpAmbient_paint_02.png", false},
{"AP11_interior_middle_walls_0Shape8", "middle_walls_0Shape8_tpAmbient_paint_01.png", false},
{"AP11_interior_mid_tunnel_parts", "mid_tunnel_parts_03Shape_tpAmbient_paint_02.png", false},
{"AP11_interior_new_switch_rails1", "new_switch_rails1Shape_tpAmbient.png", false},
{"AP11_interior_nozzles_02", "nozzles_02Shape_tpAmbient_paint_01.png", false},
{"AP11_interior_outlet_fabric3", "outlet_fabric3Shape_tpAmbient_paint_02.png", false},
{"AP11_interior_pole_end_02", "pole_end_02.png", false},
{"AP11_interior_pole_end_03", "pole_end_03.png", false},
{"AP11_interior_pole_tex_03", "pole_tex_03.png", false},
{"AP11_interior_pole_tex_04", "pole_tex_04.png", false},
{"AP11_interior_pole_tex_05", "pole_tex_05.png", false},
{"AP11_interior_pole_tex_lower_01", "pole_tex_lower_01.png", false},
{"AP11_interior_pole_under_seat_paint_01", "pole_under_seat_paint_01.png", false},
{"AP11_interior_pole_under_seat_square_bar", "pole_under_seat_square_bar_paint_01.png", false},
{"AP11_interior_push_switches_lft1", "push_switches_lft1Shape_tpAmbient.png", false},
{"AP11_interior_random_small_parts_01", "random_small_parts_01Shape_tpAmbient_paint_02.png", false},
{"AP11_interior_red", "red.png", false},
{"AP11_interior_reticle_wheel_tp", "reticle_wheel_tpAmbient_paint_01.png", false},
{"AP11_interior_rivet_paint_v001", "rivet_paint_v001.png", false},
{"AP11_interior_seats_fabric", "seats_fabric_paint_01.png", false},
{"AP11_interior_seat_left_tp", "seat_left_tpAmbient_paint_v001.png", false},
{"AP11_interior_seat_lights_left", "seat_lights_left_Shape_tpAmbient_paint_v001.png", false},
{"AP11_interior_seat_lights_rt", "seat_lights_rt_Shape_tpAmbient_paint_v001.png", false},
{"AP11_interior_seat_middle_tp", "seat_middle_tpAmbient_paint_v001.png", false},
{"AP11_interior_seat_poles_0Shape1", "seat_poles_0Shape1_tpAmbient_paint_01.png", false},
{"AP11_interior_seat_pole_mirror_0Shape1", "seat_pole_mirror_0Shape1_tpAmbient_paint_01.png", false},
{"AP11_interior_seat_rt_tp", "seat_rt_tpAmbient_paint_v001.png", false},
{"AP11_interior_sextant_0Shape2", "sextant_0Shape2_tpAmbient.png", false},
{"AP11_interior_switch_covers_main_middle1", "switch_covers_main_middle1Shape_tpAmbient.png", false},
{"AP11_interior_switch_rails_lft", "switch_rails_lftShape_tpAmbient.png", false},
{"AP11_interior_tunnel_main_cylinder1", "switch_rails_lftShape_tpAmbient.png", false},
{"AP11_interior_tunnel_switches_01", "tunnel_switches_01Shape_tpAmbient.png", false},
{"AP11_interior_tunnel_wheelsShape", "tunnel_wheelsShape_tpAmbient.png", false},
{"AP11_interior_walls_mid_left", "walls_mid_leftShape_tpAmbient_paint_01.png", false},
{"AP11_interior_windows_front_0Shape4", "windows_front_0Shape4_tpAmbient_paint_01.png", false}
}
asset.export("registerCsm", function (asset, parentNodeIdentifier)
local parts = {}
for i, info in ipairs(partsInfo) do
parts[#parts + 1] = assetHelper.createModelPart(
parentNodeIdentifier,
sunTransforms.SolarSystemBarycenter.Identifier,
models,
info[1],
info[2],
info[3]
)
end
assetHelper.registerSceneGraphNodesAndExport(asset, parts)
end)
asset.export("registerCsmFull", function (asset, parentNodeIdentifier)
local parts = {}
for i, info in ipairs(partsInfoFull) do
parts[#parts + 1] = assetHelper.createModelPart(
parentNodeIdentifier,
sunTransforms.SolarSystemBarycenter.Identifier,
models,
info[1],
info[2],
info[3]
)
end
assetHelper.registerSceneGraphNodesAndExport(asset, parts)
end)

View File

@@ -1,51 +0,0 @@
--apollo_lem.asset (hopeful title)
-- This asset exports a function to create an Apollo Lunar Excursion Module (LEM).
-- Instead of hard-coding the scene graph node parent,
-- client assets can decide which object that the LEM should be attached to.
-- Usage example: registerLem(asset, Apollo11Lem.Idenfitier)
-- ...where Apollo11Lem is the scene graph node identifier to attach the LEM to.
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local models = asset.syncedResource({
Name = "Apollo Models",
Type = "HttpSynchronization",
Identifier = "apollo_lem_model",
Version = 1
})
local partsInfo = {
-- Data is structured as: Geometry file name (except .obj suffix), texture file name, shading
-- Exterior
{ "black", "black.png", true },
{ "blue_glass", "blue_glass.png", true },
{ "booster", "booster3.png", true },
{ "bright_white", "white.png", true },
{ "dark_grey_dish", "dark_gray.png", true },
{ "dull_white", "dull_white.png", true },
{ "gold", "gold.png", true },
{ "light_grey", "light_gray.png", true },
{ "mid_grey", "gray.png", true },
{ "orange", "orange.png", true },
{ "texture_lem_flag", "texture_lem_flag.png", true },
{ "texture_lem_unitedstates", "texture_lem_unitedstates.png", true },
{ "yellow_buttons", "yellow.png", true }
}
asset.export("registerLem", function (asset, parentNodeIdentifier)
local parts = {}
for i, info in ipairs(partsInfo) do
parts[#parts + 1] = assetHelper.createModelPart(
parentNodeIdentifier,
sunTransforms.SolarSystemBarycenter.Identifier,
models,
info[1],
info[2],
info[3]
)
end
assetHelper.registerSceneGraphNodesAndExport(asset, parts)
end)

View File

@@ -1,60 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('scene/solarsystem/sun/transforms')
local kernels = asset.require('./dawn_kernels').Kernels
local textures = asset.syncedResource({
Name = "Ceres Textures",
Type = "HttpSynchronization",
Identifier = "ceres_textures",
Version = 1
})
local Ceres = {
Identifier = "Ceres",
Parent = transforms.SolarSystemBarycenter.Identifier,
Transform = {
Rotation = {
Type = "SpiceRotation",
SourceFrame = "IAU_CERES",
DestinationFrame = "GALACTIC",
Kernels = {
kernels .. "/dawn_ceres_v01.tpc",
kernels .. "/sb_ceres_140724.bsp",
kernels .. "/sb_ceres_110211.bsp"
}
},
Translation = {
Type = "SpiceTranslation",
Target = "CERES",
Observer = "SSB",
Kernels = {
kernels .. "/dawn_ceres_v01.tpc",
kernels .. "/sb_ceres_140724.bsp",
kernels .. "/sb_ceres_110211.bsp"
}
}
},
Renderable = {
Type = "RenderableGlobe",
Radii = { 6.390E5, 6.390E5, 6.390E5 },
SegmentsPerPatch = 64,
Layers = {
ColorLayers = {
{
Name = "Texture",
FilePath = textures .. "/gray.png",
Enabled = true
}
}
}
},
GUI = {
Path = "/Solar System/Dwarf Planets/Ceres"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { Ceres })

View File

@@ -1,795 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('scene/solarsystem/sun/transforms')
local kernels = asset.require('./dawn_kernels').Kernels
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local textures = asset.syncedResource({
Name = "Dawn Textures",
Type = "HttpSynchronization",
Identifier = "dawn_textures",
Version = 1
})
local models = asset.syncedResource({
Name = "Dawn Models",
Type = "HttpSynchronization",
Identifier = "dawn_model",
Version = 1
})
local KernelFiles = {
kernels .. "/dawn_ref_070926-150201_070829.bsp",
--ik
kernels .. "/dawn_fc_v10.ti",
-- SPK
kernels .. "/sb_ceres_110211.bsp",
kernels .. "/sb_ceres_140724.bsp",
kernels .. "/sb_vesta_071107.bsp",
kernels .. "/dawn_rec_070927_070930_081218_v1.bsp",
--[[kernels .. "/dawn_rec_070930_071201_081218_v1.bsp",
kernels .. "/dawn_rec_071201_080205_081218_v1.bsp",
kernels .. "/dawn_rec_080205_080325_081218_v1.bsp",
kernels .. "/dawn_rec_080325_080503_081218_v1.bsp",
kernels .. "/dawn_rec_080503_080601_081218_v1.bsp",
kernels .. "/dawn_rec_080601_080718_081218_v1.bsp",
kernels .. "/dawn_rec_080718_080910_081218_v1.bsp",
kernels .. "/dawn_rec_080910_081022_090218_v1.bsp",
kernels .. "/dawn_rec_081022_081109_090218_v1.bsp",
kernels .. "/dawn_rec_081109_090228_090306_v1.bsp",
kernels .. "/dawn_rec_090228_090501_090702_v1.bsp",
kernels .. "/dawn_rec_090501_090801_090916_v1.bsp",
kernels .. "/dawn_rec_090801_090915_090923_v1.bsp",
kernels .. "/dawn_rec_090915_091201_091202_v1.bsp",
kernels .. "/dawn_rec_091201_100208_100209_v1.bsp",
kernels .. "/dawn_rec_100208_100316_100323_v1.bsp",
kernels .. "/dawn_rec_100316_100413_100422_v1.bsp",
kernels .. "/dawn_rec_100413_100622_100830_v1.bsp",
kernels .. "/dawn_rec_100622_100824_100830_v1.bsp",
kernels .. "/dawn_rec_100824_101130_101202_v1.bsp",
kernels .. "/dawn_rec_101130_110201_110201_v1.bsp",
kernels .. "/dawn_rec_110201_110328_110328_v1.bsp",
kernels .. "/dawn_rec_110328_110419_110420_v1.bsp",--]]
kernels .. "/dawn_rec_110416_110802_110913_v1.bsp",
kernels .. "/dawn_rec_110802_110831_110922_v1.bsp",
--[[kernels .. "/spk/dawn_rec_110831_110928_111221_v1.bsp",
kernels .. "/dawn_rec_110928_111102_120615_v1.bsp",
kernels .. "/dawn_rec_111102_111210_120618_v1.bsp",
kernels .. "/dawn_rec_111211_120501_120620_v1.bsp",
kernels .. "/dawn_rec_120501_120611_120625_v1.bsp",
kernels .. "/dawn_rec_120611_120724_121101_v1.bsp",--]]
kernels .. "/dawn_rec_120724_120913_121213_v1.bsp",
--PCK
--kernels .. "/dawn_vesta_v06.tpc",
--kernels .. "/dawn_ceres_v01.tpc",
--kernels .. "/pck00008.tpc",
-- FK
kernels .. "/dawn_vesta_v00.tf",
kernels .. "/dawn_v12.tf",
--SCLK
kernels .. "/dawn_203_sclkscet_00039.tsc",
-- CK
kernels .. "/dawn_sc_070927_070930.bc",
kernels .. "/dawn_sc_110801_110807.bc",
kernels .. "/dawn_sc_110808_110814.bc",
kernels .. "/dawn_sc_120910_120916.bc",
-- kernels .. "/dawn_sc_111226_120101.bc",
-- kernels .. "/dawn_sc_120102_120108.bc",
-- kernels .. "/dawn_sc_120109_120115.bc",
-- kernels .. "/dawn_sc_120116_120122.bc",
-- kernels .. "/dawn_sc_120123_120129.bc",
-- all space craft CK files, ~10 gb
-- kernels .. "/dawn_sc_120123_120129.bc",
-- kernels .. "/dawn_sc_070927_070930.bc",
--[[kernels .. "/ck/dawn_sc_071001_071007.bc",
kernels .. "/dawn_sc_071008_071014_v2.bc",
kernels .. "/dawn_sc_071015_071021.bc",
kernels .. "/dawn_sc_071022_071028_v2.bc",
kernels .. "/dawn_sc_071029_071104.bc",
kernels .. "/dawn_sc_071105_071111.bc",
kernels .. "/dawn_sc_071112_071118.bc",
kernels .. "/dawn_sc_071119_071125.bc",
kernels .. "/dawn_sc_071126_071202.bc",
kernels .. "/dawn_sc_071203_071209.bc",
kernels .. "/dawn_sc_071210_071216.bc",
kernels .. "/dawn_sc_071217_071223.bc",
kernels .. "/dawn_sc_071224_071230.bc",
kernels .. "/dawn_sc_071231_080106.bc",
kernels .. "/dawn_sc_080107_080113.bc",
kernels .. "/dawn_sc_080114_080120.bc",
kernels .. "/dawn_sc_080121_080127.bc",
kernels .. "/dawn_sc_080128_080203.bc",
kernels .. "/dawn_sc_080204_080210.bc",
kernels .. "/dawn_sc_080211_080217.bc",
kernels .. "/dawn_sc_080218_080224.bc",
kernels .. "/dawn_sc_080225_080302.bc",
kernels .. "/dawn_sc_080303_080309.bc",
kernels .. "/dawn_sc_080310_080316.bc",
kernels .. "/dawn_sc_080317_080323.bc",
kernels .. "/dawn_sc_080324_080330.bc",
kernels .. "/dawn_sc_080331_080406.bc",
kernels .. "/dawn_sc_080407_080413.bc",
kernels .. "/dawn_sc_080414_080420.bc",
kernels .. "/dawn_sc_080421_080427.bc",
kernels .. "/dawn_sc_080428_080504.bc",
kernels .. "/dawn_sc_080505_080511.bc",
kernels .. "/dawn_sc_080512_080518.bc",
kernels .. "/dawn_sc_080519_080525.bc",
kernels .. "/dawn_sc_080526_080601.bc",
kernels .. "/dawn_sc_080602_080608.bc",
kernels .. "/dawn_sc_080609_080615.bc",
kernels .. "/dawn_sc_080616_080622.bc",
kernels .. "/dawn_sc_080623_080629.bc",
kernels .. "/dawn_sc_080630_080706.bc",
kernels .. "/dawn_sc_080707_080713.bc",
kernels .. "/dawn_sc_080714_080720.bc",
kernels .. "/dawn_sc_080721_080727.bc",
kernels .. "/dawn_sc_080728_080803.bc",
kernels .. "/dawn_sc_080804_080810.bc",
kernels .. "/dawn_sc_080811_080817.bc",
kernels .. "/dawn_sc_080818_080824.bc",
kernels .. "/dawn_sc_080825_080831.bc",
kernels .. "/dawn_sc_080901_080907.bc",
kernels .. "/dawn_sc_080908_080914.bc",
kernels .. "/dawn_sc_080915_080921.bc",
kernels .. "/dawn_sc_080922_080928.bc",
kernels .. "/dawn_sc_080929_081005.bc",
kernels .. "/dawn_sc_081006_081012.bc",
kernels .. "/dawn_sc_081013_081019.bc",
kernels .. "/dawn_sc_081020_081026.bc",
kernels .. "/dawn_sc_081027_081102.bc",
kernels .. "/dawn_sc_081103_081109.bc",
kernels .. "/dawn_sc_081110_081116.bc",
kernels .. "/dawn_sc_081117_081123.bc",
kernels .. "/dawn_sc_081124_081130.bc",
kernels .. "/dawn_sc_081201_081207.bc",
kernels .. "/dawn_sc_081208_081214.bc",
kernels .. "/dawn_sc_081215_081221.bc",
kernels .. "/dawn_sc_081222_081228.bc",
kernels .. "/dawn_sc_081229_090104.bc",
kernels .. "/dawn_sc_090105_090111.bc",
kernels .. "/dawn_sc_090112_090118.bc",
kernels .. "/dawn_sc_090119_090125.bc",
kernels .. "/dawn_sc_090126_090201.bc",
kernels .. "/dawn_sc_090202_090208.bc",
kernels .. "/dawn_sc_090209_090215.bc",
kernels .. "/dawn_sc_090216_090222.bc",
kernels .. "/dawn_sc_090223_090301.bc",
kernels .. "/dawn_sc_090302_090308.bc",
kernels .. "/dawn_sc_090309_090315.bc",
kernels .. "/dawn_sc_090316_090322.bc",
kernels .. "/dawn_sc_090323_090329.bc",
kernels .. "/dawn_sc_090330_090405.bc",
kernels .. "/dawn_sc_090406_090412.bc",
kernels .. "/dawn_sc_090413_090419.bc",
kernels .. "/dawn_sc_090420_090426.bc",
kernels .. "/dawn_sc_090427_090503.bc",
kernels .. "/dawn_sc_090504_090510.bc",
kernels .. "/dawn_sc_090511_090517.bc",
kernels .. "/dawn_sc_090518_090524.bc",
kernels .. "/dawn_sc_090525_090531.bc",
kernels .. "/dawn_sc_090601_090607.bc",
kernels .. "/dawn_sc_090608_090614.bc",
kernels .. "/dawn_sc_090615_090621.bc",
kernels .. "/dawn_sc_090622_090628.bc",
kernels .. "/dawn_sc_090629_090705.bc",
kernels .. "/dawn_sc_090706_090712.bc",
kernels .. "/dawn_sc_090713_090719.bc",
kernels .. "/dawn_sc_090720_090726.bc",
kernels .. "/dawn_sc_090727_090802.bc",
kernels .. "/dawn_sc_090803_090809.bc",
kernels .. "/dawn_sc_090810_090816.bc",
kernels .. "/dawn_sc_090817_090823.bc",
kernels .. "/dawn_sc_090824_090830.bc",
kernels .. "/dawn_sc_090831_090906.bc",
kernels .. "/dawn_sc_090907_090913.bc",
kernels .. "/dawn_sc_090914_090920.bc",
kernels .. "/dawn_sc_090921_090927.bc",
kernels .. "/dawn_sc_090928_091004.bc",
kernels .. "/dawn_sc_091005_091011.bc",
kernels .. "/dawn_sc_091012_091018.bc",
kernels .. "/dawn_sc_091019_091025.bc",
kernels .. "/dawn_sc_091026_091101.bc",
kernels .. "/dawn_sc_091102_091108.bc",
kernels .. "/dawn_sc_091109_091115.bc",
kernels .. "/dawn_sc_091116_091122.bc",
kernels .. "/dawn_sc_091123_091129.bc",
kernels .. "/dawn_sc_091130_091206.bc",
kernels .. "/dawn_sc_091207_091213.bc",
kernels .. "/dawn_sc_091214_091220.bc",
kernels .. "/dawn_sc_091221_091227.bc",
kernels .. "/dawn_sc_091228_100103.bc",
kernels .. "/dawn_sc_100104_100110_v2.bc",
kernels .. "/dawn_sc_100111_100117_v2.bc",--]]
-- kernels .. "/dawn_sc_100118_100124.bc",
-- kernels .. "/dawn_sc_100125_100131.bc",
-- kernels .. "/dawn_sc_100201_100207.bc",
-- kernels .. "/dawn_sc_100208_100214.bc",
-- kernels .. "/dawn_sc_100215_100221.bc",
-- kernels .. "/dawn_sc_100222_100228.bc",
-- kernels .. "/dawn_sc_100301_100307.bc",
-- kernels .. "/dawn_sc_100308_100314.bc",
-- kernels .. "/dawn_sc_100315_100321.bc",
-- kernels .. "/dawn_sc_100322_100328.bc",
-- kernels .. "/dawn_sc_100329_100404.bc",
-- kernels .. "/dawn_sc_100405_100411.bc",
-- kernels .. "/dawn_sc_100412_100418.bc",
-- kernels .. "/dawn_sc_100419_100425.bc",
-- kernels .. "/dawn_sc_100426_100502.bc",
-- kernels .. "/dawn_sc_100503_100509.bc",
-- kernels .. "/dawn_sc_100510_100516.bc",
-- kernels .. "/dawn_sc_100517_100523.bc",
-- kernels .. "/dawn_sc_100524_100530.bc",
-- kernels .. "/dawn_sc_100531_100606.bc",
-- kernels .. "/dawn_sc_100607_100613.bc",
-- kernels .. "/dawn_sc_100614_100620.bc",
-- kernels .. "/dawn_sc_100621_100627.bc",
-- kernels .. "/dawn_sc_100628_100704.bc",
-- kernels .. "/dawn_sc_100705_100711.bc",
-- kernels .. "/dawn_sc_100712_100718.bc",
-- kernels .. "/dawn_sc_100719_100725.bc",
-- kernels .. "/dawn_sc_100726_100801.bc",
-- kernels .. "/dawn_sc_100802_100808.bc",
-- kernels .. "/dawn_sc_100809_100815.bc",
-- kernels .. "/dawn_sc_100816_100822.bc",
-- kernels .. "/dawn_sc_100823_100829.bc",
-- kernels .. "/dawn_sc_100830_100905.bc",
-- kernels .. "/dawn_sc_100906_100912.bc",
-- kernels .. "/dawn_sc_100913_100919.bc",
-- kernels .. "/dawn_sc_100920_100926.bc",
-- kernels .. "/dawn_sc_100927_101003.bc",
-- kernels .. "/dawn_sc_101004_101010.bc",
-- kernels .. "/dawn_sc_101011_101017.bc",
-- kernels .. "/dawn_sc_101018_101024.bc",
-- kernels .. "/dawn_sc_101025_101031.bc",
-- kernels .. "/dawn_sc_101101_101107.bc",
-- kernels .. "/dawn_sc_101108_101114.bc",
-- kernels .. "/dawn_sc_101115_101121.bc",
-- kernels .. "/dawn_sc_101122_101128.bc",
-- kernels .. "/dawn_sc_101129_101205.bc",
-- kernels .. "/dawn_sc_101206_101212.bc",
-- kernels .. "/dawn_sc_101213_101219.bc",
-- kernels .. "/dawn_sc_101220_101226.bc",
-- kernels .. "/dawn_sc_101227_110102.bc",
-- kernels .. "/dawn_sc_110103_110109.bc",
-- kernels .. "/dawn_sc_110110_110116.bc",
-- kernels .. "/dawn_sc_110117_110123.bc",
-- kernels .. "/dawn_sc_110124_110130.bc",
-- kernels .. "/dawn_sc_110131_110206.bc",
-- kernels .. "/dawn_sc_110207_110213.bc",
-- kernels .. "/dawn_sc_110214_110220.bc",
-- kernels .. "/dawn_sc_110221_110227.bc",
-- kernels .. "/dawn_sc_110228_110306.bc",
-- kernels .. "/dawn_sc_110307_110313.bc",
-- kernels .. "/dawn_sc_110314_110320.bc",
-- kernels .. "/dawn_sc_110321_110327.bc",
-- kernels .. "/dawn_sc_110328_110403.bc",
-- kernels .. "/dawn_sc_110404_110410.bc",
-- kernels .. "/dawn_sc_110411_110417.bc",
-- kernels .. "/dawn_sc_110418_110424.bc",
-- kernels .. "/dawn_sc_110425_110501.bc",
-- kernels .. "/dawn_sc_110502_110508.bc",
-- kernels .. "/dawn_sc_110509_110515.bc",
-- kernels .. "/dawn_sc_110516_110522.bc",
-- kernels .. "/dawn_sc_110523_110529.bc",
-- kernels .. "/dawn_sc_110530_110605.bc",
-- kernels .. "/dawn_sc_110606_110612.bc",
-- kernels .. "/dawn_sc_110613_110619.bc",
-- kernels .. "/dawn_sc_110620_110626.bc",
-- kernels .. "/dawn_sc_110627_110703.bc",
-- kernels .. "/dawn_sc_110704_110710.bc",
-- kernels .. "/dawn_sc_110711_110717.bc",
-- kernels .. "/dawn_sc_110718_110724.bc",
-- kernels .. "/dawn_sc_110725_110731.bc",
-- kernels .. "/dawn_sc_110801_110807.bc",
-- kernels .. "/dawn_sc_110808_110814.bc",
-- kernels .. "/dawn_sc_110815_110821.bc",
-- kernels .. "/dawn_sc_110822_110828.bc",
-- kernels .. "/dawn_sc_110829_110904.bc",
-- kernels .. "/dawn_sc_110905_110911.bc",
-- kernels .. "/dawn_sc_110912_110918.bc",
-- kernels .. "/dawn_sc_110919_110925.bc",
-- kernels .. "/dawn_sc_110926_111002.bc",
-- kernels .. "/dawn_sc_111003_111009.bc",
-- kernels .. "/dawn_sc_111010_111016.bc",
-- kernels .. "/dawn_sc_111017_111023.bc",
-- kernels .. "/dawn_sc_111024_111030.bc",
-- kernels .. "/dawn_sc_111031_111106.bc",
-- kernels .. "/dawn_sc_111107_111113.bc",
-- kernels .. "/dawn_sc_111114_111120.bc",
-- kernels .. "/dawn_sc_111121_111127.bc",
-- kernels .. "/dawn_sc_111128_111204.bc",
-- kernels .. "/dawn_sc_111205_111211.bc",
-- kernels .. "/dawn_sc_111212_111218.bc",
-- kernels .. "/dawn_sc_111219_111225.bc",
-- kernels .. "/dawn_sc_111226_120101.bc",
-- kernels .. "/dawn_sc_120102_120108.bc",
-- kernels .. "/dawn_sc_120109_120115.bc",
-- kernels .. "/dawn_sc_120116_120122.bc",
-- kernels .. "/dawn_sc_120123_120129.bc",
-- kernels .. "/dawn_sc_120130_120205.bc",
-- kernels .. "/dawn_sc_120206_120212.bc",
-- kernels .. "/dawn_sc_120213_120219.bc",
-- kernels .. "/dawn_sc_120220_120226.bc",
-- kernels .. "/dawn_sc_120227_120304.bc",
-- kernels .. "/dawn_sc_120305_120311.bc",
-- kernels .. "/dawn_sc_120312_120318.bc",
-- kernels .. "/dawn_sc_120319_120325.bc",
-- kernels .. "/dawn_sc_120326_120401.bc",
-- kernels .. "/dawn_sc_120402_120408.bc",
-- kernels .. "/dawn_sc_120409_120415.bc",
-- kernels .. "/dawn_sc_120416_120422.bc",
-- kernels .. "/dawn_sc_120423_120429.bc",
-- kernels .. "/dawn_sc_120430_120506.bc",
-- kernels .. "/dawn_sc_120507_120513.bc",
-- kernels .. "/dawn_sc_120514_120520.bc",
-- kernels .. "/dawn_sc_120521_120527.bc",
-- kernels .. "/dawn_sc_120528_120603.bc",
-- kernels .. "/dawn_sc_120604_120610.bc",
-- kernels .. "/dawn_sc_120611_120617.bc",
-- kernels .. "/dawn_sc_120618_120624.bc",
-- kernels .. "/dawn_sc_120625_120701.bc",
-- kernels .. "/dawn_sc_120702_120708.bc",
-- kernels .. "/dawn_sc_120709_120715.bc",
-- kernels .. "/dawn_sc_120716_120722.bc",
-- kernels .. "/dawn_sc_120723_120729.bc",
-- kernels .. "/dawn_sc_120730_120805.bc",
-- kernels .. "/dawn_sc_120806_120812.bc",
-- kernels .. "/dawn_sc_120813_120819.bc",
-- kernels .. "/dawn_sc_120820_120826.bc",
-- kernels .. "/dawn_sc_120827_120902.bc",
-- kernels .. "/dawn_sc_120903_120909.bc",
-- kernels .. "/dawn_sc_120910_120916.bc",
-- kernels .. "/dawn_sc_f2_3942xxxxx.bc",
-- kernels .. "/dawn_sc_pred_da028b_00_eu.bc",
-- kernels .. "/dawn_sc_pred_dc041a_00.bc",
-- Solar array rotation kernels ~ 2gb
kernels .. "/dawn_sa_070927_070930.bc",
--[[kernels .. "/ck/dawn_sa_071001_071007.bc",
kernels .. "/dawn_sa_071008_071014.bc",
kernels .. "/dawn_sa_071015_071021.bc",
kernels .. "/dawn_sa_071022_071028_v2.bc",
kernels .. "/dawn_sa_071029_071104.bc",
kernels .. "/dawn_sa_071105_071111.bc",
kernels .. "/dawn_sa_071112_071118.bc",
kernels .. "/dawn_sa_071119_071125.bc",
kernels .. "/dawn_sa_071126_071202.bc",
kernels .. "/dawn_sa_071203_071209.bc",
kernels .. "/dawn_sa_071210_071216.bc",
kernels .. "/dawn_sa_071217_071223.bc",
kernels .. "/dawn_sa_071224_071230.bc",
kernels .. "/dawn_sa_071231_080106.bc",
kernels .. "/dawn_sa_080107_080113.bc",
kernels .. "/dawn_sa_080114_080120.bc",
kernels .. "/dawn_sa_080121_080127.bc",
kernels .. "/dawn_sa_080128_080203.bc",
kernels .. "/dawn_sa_080204_080210.bc",
kernels .. "/dawn_sa_080211_080217.bc",
kernels .. "/dawn_sa_080218_080224.bc",
kernels .. "/dawn_sa_080225_080302.bc",
kernels .. "/dawn_sa_080303_080309.bc",
kernels .. "/dawn_sa_080310_080316.bc",
kernels .. "/dawn_sa_080317_080323.bc",
kernels .. "/dawn_sa_080324_080330.bc",
kernels .. "/dawn_sa_080331_080406.bc",
kernels .. "/dawn_sa_080407_080413.bc",
kernels .. "/dawn_sa_080414_080420.bc",
kernels .. "/dawn_sa_080421_080427.bc",
kernels .. "/dawn_sa_080428_080504.bc",
kernels .. "/dawn_sa_080505_080511.bc",
kernels .. "/dawn_sa_080512_080518.bc",
kernels .. "/dawn_sa_080519_080525.bc",
kernels .. "/dawn_sa_080526_080601.bc",
kernels .. "/dawn_sa_080602_080608.bc",
kernels .. "/dawn_sa_080609_080615.bc",
kernels .. "/dawn_sa_080616_080622.bc",
kernels .. "/dawn_sa_080623_080629.bc",
kernels .. "/dawn_sa_080630_080706.bc",
kernels .. "/dawn_sa_080707_080713.bc",
kernels .. "/dawn_sa_080714_080720.bc",
kernels .. "/dawn_sa_080721_080727.bc",
kernels .. "/dawn_sa_080728_080803.bc",
kernels .. "/dawn_sa_080804_080810.bc",
kernels .. "/dawn_sa_080811_080817.bc",
kernels .. "/dawn_sa_080818_080824.bc",
kernels .. "/dawn_sa_080825_080831.bc",
kernels .. "/dawn_sa_080901_080907.bc",
kernels .. "/dawn_sa_080908_080914.bc",
kernels .. "/dawn_sa_080915_080921.bc",
kernels .. "/dawn_sa_080922_080928.bc",
kernels .. "/dawn_sa_080929_081005.bc",
kernels .. "/dawn_sa_081006_081012.bc",
kernels .. "/dawn_sa_081013_081019.bc",
kernels .. "/dawn_sa_081020_081026.bc",
kernels .. "/dawn_sa_081027_081102.bc",
kernels .. "/dawn_sa_081103_081109.bc",
kernels .. "/dawn_sa_081110_081116.bc",
kernels .. "/dawn_sa_081117_081123.bc",
kernels .. "/dawn_sa_081124_081130.bc",
kernels .. "/dawn_sa_081201_081207.bc",
kernels .. "/dawn_sa_081208_081214.bc",
kernels .. "/dawn_sa_081215_081221.bc",
kernels .. "/dawn_sa_081222_081228.bc",
kernels .. "/dawn_sa_081229_090104.bc",
kernels .. "/dawn_sa_090105_090111.bc",
kernels .. "/dawn_sa_090112_090118.bc",
kernels .. "/dawn_sa_090119_090125.bc",
kernels .. "/dawn_sa_090126_090201.bc",
kernels .. "/dawn_sa_090202_090208.bc",
kernels .. "/dawn_sa_090209_090215.bc",
kernels .. "/dawn_sa_090216_090222.bc",
kernels .. "/dawn_sa_090223_090301.bc",
kernels .. "/dawn_sa_090302_090308.bc",
kernels .. "/dawn_sa_090309_090315.bc",
kernels .. "/dawn_sa_090316_090322.bc",
kernels .. "/dawn_sa_090323_090329.bc",
kernels .. "/dawn_sa_090330_090405.bc",
kernels .. "/dawn_sa_090406_090412.bc",
kernels .. "/dawn_sa_090413_090419.bc",
kernels .. "/dawn_sa_090420_090426.bc",
kernels .. "/dawn_sa_090427_090503.bc",
kernels .. "/dawn_sa_090504_090510.bc",
kernels .. "/dawn_sa_090511_090517.bc",
kernels .. "/dawn_sa_090518_090524.bc",
kernels .. "/dawn_sa_090525_090531.bc",
kernels .. "/dawn_sa_090601_090607.bc",
kernels .. "/dawn_sa_090608_090614.bc",
kernels .. "/dawn_sa_090615_090621.bc",
kernels .. "/dawn_sa_090622_090628.bc",
kernels .. "/dawn_sa_090629_090705.bc",
kernels .. "/dawn_sa_090706_090712.bc",
kernels .. "/dawn_sa_090713_090719.bc",
kernels .. "/dawn_sa_090720_090726.bc",
kernels .. "/dawn_sa_090727_090802.bc",
kernels .. "/dawn_sa_090803_090809.bc",
kernels .. "/dawn_sa_090810_090816.bc",
kernels .. "/dawn_sa_090817_090823.bc",
kernels .. "/dawn_sa_090824_090830.bc",
kernels .. "/dawn_sa_090831_090906.bc",
kernels .. "/dawn_sa_090907_090913.bc",
kernels .. "/dawn_sa_090914_090920.bc",
kernels .. "/dawn_sa_090921_090927.bc",
kernels .. "/dawn_sa_090928_091004.bc",
kernels .. "/dawn_sa_091005_091011.bc",
kernels .. "/dawn_sa_091012_091018.bc",
kernels .. "/dawn_sa_091019_091025.bc",
kernels .. "/dawn_sa_091026_091101.bc",
kernels .. "/dawn_sa_091102_091108.bc",
kernels .. "/dawn_sa_091109_091115.bc",
kernels .. "/dawn_sa_091116_091122.bc",
kernels .. "/dawn_sa_091123_091129.bc",
kernels .. "/dawn_sa_091130_091206.bc",
kernels .. "/dawn_sa_091207_091213.bc",
kernels .. "/dawn_sa_091214_091220.bc",
kernels .. "/dawn_sa_091221_091227.bc",
kernels .. "/dawn_sa_091228_100103.bc",
kernels .. "/dawn_sa_100104_100110_v2.bc",
kernels .. "/dawn_sa_100111_100117_v2.bc",
kernels .. "/dawn_sa_100118_100124.bc",
kernels .. "/dawn_sa_100125_100131.bc",
kernels .. "/dawn_sa_100201_100207.bc",
kernels .. "/dawn_sa_100208_100214.bc",
kernels .. "/dawn_sa_100215_100221.bc",
kernels .. "/dawn_sa_100222_100228.bc",
kernels .. "/dawn_sa_100301_100307.bc",
kernels .. "/dawn_sa_100308_100314.bc",
kernels .. "/dawn_sa_100315_100321.bc",
kernels .. "/dawn_sa_100322_100328.bc",
kernels .. "/dawn_sa_100329_100404.bc",
kernels .. "/dawn_sa_100405_100411.bc",
kernels .. "/dawn_sa_100412_100418.bc",
kernels .. "/dawn_sa_100419_100425.bc",
kernels .. "/dawn_sa_100426_100502.bc",
kernels .. "/dawn_sa_100503_100509.bc",
kernels .. "/dawn_sa_100510_100516.bc",
kernels .. "/dawn_sa_100517_100523.bc",
kernels .. "/dawn_sa_100524_100530.bc",
kernels .. "/dawn_sa_100531_100606.bc",
kernels .. "/dawn_sa_100607_100613.bc",
kernels .. "/dawn_sa_100614_100620.bc",
kernels .. "/dawn_sa_100621_100627.bc",
kernels .. "/dawn_sa_100628_100704.bc",
kernels .. "/dawn_sa_100705_100711.bc",
kernels .. "/dawn_sa_100712_100718.bc",
kernels .. "/dawn_sa_100719_100725.bc",
kernels .. "/dawn_sa_100726_100801.bc",
kernels .. "/dawn_sa_100802_100808.bc",
kernels .. "/dawn_sa_100809_100815.bc",
kernels .. "/dawn_sa_100816_100822.bc",
kernels .. "/dawn_sa_100823_100829.bc",
kernels .. "/dawn_sa_100830_100905.bc",
kernels .. "/dawn_sa_100906_100912.bc",
kernels .. "/dawn_sa_100913_100919.bc",
kernels .. "/dawn_sa_100920_100926.bc",
kernels .. "/dawn_sa_100927_101003.bc",
kernels .. "/dawn_sa_101004_101010.bc",
kernels .. "/dawn_sa_101011_101017.bc", --]]
-- kernels .. "/dawn_sa_101018_101024.bc",
-- kernels .. "/dawn_sa_101025_101031.bc",
-- kernels .. "/dawn_sa_101101_101107.bc",
-- kernels .. "/dawn_sa_101108_101114.bc",
-- kernels .. "/dawn_sa_101115_101121.bc",
-- kernels .. "/dawn_sa_101122_101128.bc",
-- kernels .. "/dawn_sa_101129_101205.bc",
-- kernels .. "/dawn_sa_101206_101212.bc",
-- kernels .. "/dawn_sa_101213_101219.bc",
-- kernels .. "/dawn_sa_101220_101226.bc",
-- kernels .. "/dawn_sa_101227_110102.bc",
-- kernels .. "/dawn_sa_110103_110109.bc",
-- kernels .. "/dawn_sa_110110_110116.bc",
-- kernels .. "/dawn_sa_110117_110123.bc",
-- kernels .. "/dawn_sa_110124_110130.bc",
-- kernels .. "/dawn_sa_110131_110206.bc",
-- kernels .. "/dawn_sa_110207_110213.bc",
-- kernels .. "/dawn_sa_110214_110220.bc",
-- kernels .. "/dawn_sa_110221_110227.bc",
-- kernels .. "/dawn_sa_110228_110306.bc",
-- kernels .. "/dawn_sa_110307_110313.bc",
-- kernels .. "/dawn_sa_110314_110320.bc",
-- kernels .. "/dawn_sa_110321_110327.bc",
-- kernels .. "/dawn_sa_110328_110403.bc",
-- kernels .. "/dawn_sa_110404_110410.bc",
-- kernels .. "/dawn_sa_110411_110417.bc",
-- kernels .. "/dawn_sa_110418_110424.bc",
-- kernels .. "/dawn_sa_110425_110501.bc",
-- kernels .. "/dawn_sa_110502_110508.bc",
-- kernels .. "/dawn_sa_110509_110515.bc",
-- kernels .. "/dawn_sa_110516_110522.bc",
-- kernels .. "/dawn_sa_110523_110529.bc",
-- kernels .. "/dawn_sa_110530_110605.bc",
-- kernels .. "/dawn_sa_110606_110612.bc",
-- kernels .. "/dawn_sa_110613_110619.bc",
-- kernels .. "/dawn_sa_110620_110626.bc",
-- kernels .. "/dawn_sa_110627_110703.bc",
-- kernels .. "/dawn_sa_110704_110710.bc",
-- kernels .. "/dawn_sa_110711_110717.bc",
-- kernels .. "/dawn_sa_110718_110724.bc",
-- kernels .. "/dawn_sa_110725_110731.bc",
-- kernels .. "/dawn_sa_110801_110807.bc",
-- kernels .. "/dawn_sa_110808_110814.bc",
-- kernels .. "/dawn_sa_110815_110821.bc",
-- kernels .. "/dawn_sa_110822_110828.bc",
-- kernels .. "/dawn_sa_110829_110904.bc",
-- kernels .. "/dawn_sa_110905_110911.bc",
-- kernels .. "/dawn_sa_110912_110918.bc",
-- kernels .. "/dawn_sa_110919_110925.bc",
-- kernels .. "/dawn_sa_110926_111002.bc",
-- kernels .. "/dawn_sa_111003_111009.bc",
-- kernels .. "/dawn_sa_111010_111016.bc",
-- kernels .. "/dawn_sa_111017_111023.bc",
-- kernels .. "/dawn_sa_111024_111030.bc",
-- kernels .. "/dawn_sa_111031_111106.bc",
-- kernels .. "/dawn_sa_111107_111113.bc",
-- kernels .. "/dawn_sa_111114_111120.bc",
-- kernels .. "/dawn_sa_111121_111127.bc",
-- kernels .. "/dawn_sa_111128_111204.bc",
-- kernels .. "/dawn_sa_111205_111211.bc",
-- kernels .. "/dawn_sa_111212_111218.bc",
-- kernels .. "/dawn_sa_111219_111225.bc",
-- kernels .. "/dawn_sa_111226_120101.bc",
-- kernels .. "/dawn_sa_120102_120108.bc",
-- kernels .. "/dawn_sa_120109_120115.bc",
-- kernels .. "/dawn_sa_120116_120122.bc",
-- kernels .. "/dawn_sa_120123_120129.bc",
-- kernels .. "/dawn_sa_120130_120205.bc",
-- kernels .. "/dawn_sa_120206_120212.bc",
-- kernels .. "/dawn_sa_120213_120219.bc",
-- kernels .. "/dawn_sa_120220_120226.bc",
-- kernels .. "/dawn_sa_120227_120304.bc",
-- kernels .. "/dawn_sa_120305_120311.bc",
-- kernels .. "/dawn_sa_120312_120318.bc",
-- kernels .. "/dawn_sa_120319_120325.bc",
-- kernels .. "/dawn_sa_120326_120401.bc",
-- kernels .. "/dawn_sa_120402_120408.bc",
-- kernels .. "/dawn_sa_120409_120415.bc",
-- kernels .. "/dawn_sa_120416_120422.bc",
-- kernels .. "/dawn_sa_120423_120429.bc",
-- kernels .. "/dawn_sa_120430_120506.bc",
-- kernels .. "/dawn_sa_120507_120513.bc",
-- kernels .. "/dawn_sa_120514_120520.bc",
-- kernels .. "/dawn_sa_120521_120527.bc",
-- kernels .. "/dawn_sa_120528_120603.bc",
-- kernels .. "/dawn_sa_120604_120610.bc",
-- kernels .. "/dawn_sa_120611_120617.bc",
-- kernels .. "/dawn_sa_120618_120624.bc",
-- kernels .. "/dawn_sa_120625_120701.bc",
-- kernels .. "/dawn_sa_120702_120708.bc",
-- kernels .. "/dawn_sa_120709_120715.bc",
-- kernels .. "/dawn_sa_120716_120722.bc",
-- kernels .. "/dawn_sa_120723_120729.bc",
-- kernels .. "/dawn_sa_120730_120805.bc",
-- kernels .. "/dawn_sa_120806_120812.bc",
-- kernels .. "/dawn_sa_120813_120819.bc",
-- kernels .. "/dawn_sa_120820_120826.bc",
-- kernels .. "/dawn_sa_120827_120902.bc",
-- kernels .. "/dawn_sa_120903_120909.bc",
-- kernels .. "/dawn_sa_120910_120916.bc",
}
local LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
},
{
Identifier = "Camera",
Type = "CameraLightSource",
Intensity = 0.5
}
}
local Dawn = {
Identifier = "Dawn",
Parent = transforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "DAWN",
Observer = "SUN",
Kernels = KernelFiles
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "DAWN_SPACECRAFT",
DestinationFrame = "GALACTIC",
Kernels = KernelFiles
}
},
Renderable = {
Type = "RenderableModel",
Body = "DAWN",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/mainbodydawn.obj"
},
ColorTexture = textures .. "/gray.png",
LightSources = LightSources
},
GUI = {
Path = "/Solar System/Missions/Dawn"
}
}
-- Dawn Solar Array module 1
local DawnSolarArray1 = {
Identifier = "DawnSolar1",
Parent = Dawn.Identifier,
Transformation = {
Rotation = {
Type = "SpiceRotation",
SourceFrame = "DAWN_SA-Y",
DestinationFrame = "DAWN_SPACECRAFT"
}
},
Renderable = {
Type = "RenderableModel",
Body = "DAWN",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/solarpanelleft.obj"
},
ColorTexture = textures .. "/gray.png",
LightSources = LightSources
},
GUI = {
Name = "Dawn Solar 1",
Path = "/Solar System/Missions/Dawn"
}
}
-- Dawn Solar Array module 2
local DawnSolarArray2 = {
Identifier = "DawnSolar2",
Parent = Dawn.Identifier,
Transformation = {
Rotation = {
Type = "SpiceRotation",
SourceFrame = "DAWN_SA+Y",
DestinationFrame = "DAWN_SPACECRAFT"
}
},
Renderable = {
Type = "RenderableModel",
Body = "DAWN",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/solarpanelright.obj"
},
ColorTexture = textures .. "/gray.png",
LightSources = LightSources
},
GUI = {
Name = "Dawn Solar 2",
Path = "/Solar System/Missions/Dawn"
}
}
local DawnTrail = {
Identifier = "DawnTrail",
Parent = transforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "DAWN",
Observer = "SUN"
},
Color = { 1.0, 0.8, 0.4 },
ShowFullTrail = true,
StartTime = "2007 SEP 26 13:28:00",
EndTime = "2012 SEP 12 12:00:00",
PointSize = 5,
SampleInterval = 3600,
TimeStampSubsampleFactor = 4,
EnableFade = false,
Rendering = "Lines+Points"
},
GUI = {
Name = "Dawn Trail",
Path = "/Solar System/Missions/Dawn"
}
}
-- DawnFov 1
local DawnFramingCamera1 = {
Identifier = "Dawn_framing_camera_1",
Parent = Dawn.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "DAWN",
Frame = "DAWN_SPACECRAFT",
Color = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "DAWN_FC1",
Method = "ELLIPSOID",
Aberration = "NONE"
},
PotentialTargets = { "VESTA", "CERES" }
},
GUI = {
Name = "Dawn Framing Camera 1",
Path = "/Solar System/Missions/Dawn"
}
}
local DawnFramingCamera2 = {
Identifier = "Dawn_framing_camera_2",
Parent = Dawn.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "DAWN",
Frame = "DAWN_SPACECRAFT",
Color = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "DAWN_FC2",
Method = "ELLIPSOID",
Aberration = "NONE"
},
PotentialTargets = { "VESTA", "CERES" }
},
GUI = {
Name = "Dawn Framing Camera 2",
Path = "/Solar System/Missions/Dawn"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Dawn,
DawnSolarArray1,
DawnSolarArray2,
DawnTrail,
DawnFramingCamera1,
DawnFramingCamera2
})

View File

@@ -1,8 +0,0 @@
local Kernels = asset.syncedResource({
Name = "Dawn Kernels",
Type = "HttpSynchronization",
Identifier = "dawn_kernels",
Version = 1
})
asset.export("Kernels", Kernels)

View File

@@ -1,67 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('./transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local textures = asset.syncedResource({
Name = "Gaia Textures",
Type = "HttpSynchronization",
Identifier = "gaia_textures",
Version = 1
})
local model = asset.syncedResource({
Name = "Gaia Model",
Type = "HttpSynchronization",
Identifier = "gaia_model",
Version = 1
})
local Gaia = {
Identifier = "Gaia",
Parent = transforms.GaiaPosition.Identifier,
Transform = {
Rotation = {
Type = "FixedRotation",
Attached = "Gaia",
XAxis = { 1.0, 0.0, 0.0 },
XAxisOrthogonal = true,
YAxis = "Sun",
YAxisInverted = true
},
Scale = {
Type = "StaticScale",
Scale = 10.0
}
},
-- X Orthogonal
Renderable = {
Type = "RenderableModel",
Body = "GAIA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = model .. "/gaia.obj"
},
ColorTexture = textures .. "/gaia-baked.png",
LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 0.3
},
{
Identifier = "Camera",
Type = "CameraLightSource",
Intensity = 0.4
}
}
},
GUI = {
Name = "Gaia",
Path = "/Solar System/Missions/Gaia"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { Gaia })

View File

@@ -1,64 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local trail = asset.syncedResource({
Name = "Gaia Trail",
Type = "HttpSynchronization",
Identifier = "gaia_trail",
Version = 2
})
local GaiaTrail = {
Identifier = "GaiaTrail",
Parent = earthTransforms.EarthBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Enabled = false,
Translation = {
Type = "HorizonsTranslation",
HorizonsTextFile = trail .. "/gaia_orbit_horizons.dat"
},
Color = { 0.0, 0.8, 0.7 },
ShowFullTrail = false,
StartTime = "2013 DEC 19 09:55:10",
EndTime = "2019 JUN 20 05:55:10",
PointSize = 5,
SampleInterval = 12000,
TimeStampSubsampleFactor = 1,
EnableFade = false,
Rendering = "Lines"
},
GUI = {
Name = "Gaia Trail",
Path = "/Solar System/Missions/Gaia"
}
}
local GaiaTrailEclip = {
Identifier = "GaiaTrail_Eclip",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Enabled = false,
Translation = {
Type = "HorizonsTranslation",
HorizonsTextFile = trail .. "/gaia_orbit_horizons_sun.dat"
},
Color = { 1.0, 0.0, 0.0 },
ShowFullTrail = false,
StartTime = "2013 DEC 19 09:55:10",
EndTime = "2019 JUN 20 05:55:10",
PointSize = 5,
SampleInterval = 6000,
TimeStampSubsampleFactor = 1,
EnableFade = false,
Rendering = "Lines"
},
GUI = {
Name = "Gaia Ecliptic Trail",
Path = "/Solar System/Missions/Gaia"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaTrail, GaiaTrailEclip } )

View File

@@ -1,27 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms')
local trail = asset.syncedResource({
Name = "Gaia Trail",
Type = "HttpSynchronization",
Identifier = "gaia_trail",
Version = 1
})
local GaiaPosition = {
Identifier = "GaiaPosition",
Parent = earthTransforms.EarthBarycenter.Identifier,
Transform = {
Translation = {
Type = "HorizonsTranslation",
HorizonsTextFile = trail .. "/gaia_orbit_horizons.dat"
},
},
GUI = {
Name = "Position",
Path = "/Solar System/Missions/Gaia"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaPosition })

View File

@@ -1,981 +0,0 @@
asset.require('spice/base')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local assetHelper = asset.require('util/asset_helper')
local models_chutes = asset.syncedResource({
Name = "Insight Models Chutes",
Type = "HttpSynchronization",
Identifier = "insight_models_chutes",
Version = 1
})
local models_cruise_arrays = asset.syncedResource({
Name = "Insight Models Cruise Arrays",
Type = "HttpSynchronization",
Identifier = "insight_models_cruise_arrays",
Version = 1
})
local models_cruise_cone = asset.syncedResource({
Name = "Insight Models Cruise Cone",
Type = "HttpSynchronization",
Identifier = "insight_models_cruise_cone",
Version = 1
})
local models_lander_lander_deck = asset.syncedResource({
Name = "Insight Models Lander Deck",
Type = "HttpSynchronization",
Identifier = "insight_models_lander_lander_deck",
Version = 1
})
local models_lander_legs_deploy = asset.syncedResource({
Name = "Insight Models Lander Legs Deploy",
Type = "HttpSynchronization",
Identifier = "insight_models_lander_legs_deploy",
Version = 1
})
local models_lander_legs_stow = asset.syncedResource({
Name = "Insight Models Lander Legs Stow",
Type = "HttpSynchronization",
Identifier = "insight_models_lander_legs_stow",
Version = 1
})
local models_lander_panels_deploy = asset.syncedResource({
Name = "Insight Models Lander Panels Deploy",
Type = "HttpSynchronization",
Identifier = "insight_models_lander_panels_deploy",
Version = 1
})
local models_lander_panels_stow = asset.syncedResource({
Name = "Insight Models Lander Panels Stow",
Type = "HttpSynchronization",
Identifier = "insight_models_lander_panels_stow",
Version = 1
})
local ikernels = asset.syncedResource({
Name = "Insight Kernels",
Type = "HttpSynchronization",
Identifier = "insight_kernels",
Version = 1
})
local iKernels = {
ikernels .. '/nsyt_spk_cruise_od063_v1_approach2surface_SC_Lander.tsc',
ikernels .. '/insight_v02.tfr',
ikernels .. '/mar085s.bsp',
ikernels .. '/nsyt_spk_cruise_POST_approach2surface_SC_Lander.bsp',
ikernels .. '/nsyt_spk_cruise_POST_approach2surface_SC_Lander.bck',
}
local RotationMatrix = {
-1, 0, 0,
0, 0, -1,
0, -1, 0
}
local LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
},
{
Type = "SceneGraphLightSource",
Identifier = "Mars",
Node = "Mars",
Intensity = 1.0
},
{
Identifier = "Camera",
Type = "CameraLightSource",
Intensity = 0.5
}
}
--expected timeline
local entryTimeStart = "2018 NOV 26 19:39:03.68"; --(-00:08:07.32 less then pdf)
local parachuteDeployTime1 = "2018 NOV 26 19:42:41.68" -- entry + 218s
local parachuteDeployTime20 = "2018 NOV 26 19:42:42.18" -- entry + 218.5s
local parachuteDeployTime40 = "2018 NOV 26 19:42:42.68" -- entry + 219s
local heatShieldSeperationTime = "2018 NOV 26 19:42:56.68" -- entry + 233s
local legDeployTime = "2018 NOV 26 19:43:06.68" -- entry + 243s
local landerSeperationTime = "2018 NOV 26 19:44:51.68" -- entry + 348s
local touchdownTime = "2018 NOV 26 19:45:32.68" -- entry + 389s
local panelDeployTime = "2018 NOV 26 19:45:33.68" -- entry + 390s
local foreverTime = "2018 NOV 26 20:17:50.68" -- entry + 2327s
local kernelTouchdownTime = "2018 NOV 26 19:45:32.3"
local spiceRotationEndTime = "2018 NOV 26 19:51:39"
local InsightParent = {
Identifier = "InsightParent",
Parent = "MarsBarycenter",
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "INSIGHT",
Observer = "MARS",
Frame = "GALACTIC",
Kernels = iKernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "INSIGHT_LANDER_CRUISE",
DestinationFrame = "GALACTIC"
},
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = spiceRotationEndTime
},
GUI = {
Hidden = true,
Name = "InsightParent",
Path = "/Solar System/Missions/Insight"
}
}
-- -1397 offset for MOLA
local Insight = {
Identifier = "Insight",
Parent = "InsightParent",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = {0.0, 0.0, -3.1415}
}
},
GUI = {
Name = "Insight",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Entry_CapsuleA = {
Identifier = "Insight_Entry_CapsuleA",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_cruise_cone .. "/cruise_insight_doubleside2_newcapsule_diffuse.obj"
},
ColorTexture = models_cruise_cone .. "/insight_newcapsule_diffuse.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = landerSeperationTime
},
GUI = {
Hidden = true,
Name = "Insight Entry CapsuleA",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Entry_Capsule_Ring = {
Identifier = "Insight_Entry_Capsule_Ring",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_cruise_cone .. "/insight_cruise_cone_ring_foil_gold.obj"
},
ColorTexture = models_cruise_cone .. "/foil_gold_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = landerSeperationTime
},
GUI = {
Hidden = true,
Name = "Insight Entry Capsule Ring",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Entry_Capsule_Plugs = {
Identifier = "Insight_Entry_Capsule_Plugs",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_cruise_cone .. "/insight_cruise_cone_capsule_diffuse.obj"
},
ColorTexture = models_cruise_cone .. "/insight_capsule_diffuse.png",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = landerSeperationTime
},
GUI = {
Hidden = true,
Name = "Insight Entry Capsule Plugs",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Entry_Heatshield = {
Identifier = "Insight_Entry_Heatshield",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_cruise_cone .. "/insight_cruise_heatshield_foil_gold.obj"
},
ColorTexture = models_cruise_cone .. "/foil_gold_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = heatShieldSeperationTime
},
GUI = {
Hidden = true,
Name = "Insight Entry Heatshield",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Parachute_0 = {
Identifier = "Insight_Parachute_0",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_chutes .. "/insight_chute_frame01_diff1.obj"
},
ColorTexture = models_chutes .. "/chute_diff.png",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = parachuteDeployTime1,
End = parachuteDeployTime20
},
GUI = {
Hidden = true,
Name = "Insight Parachute0",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Parachute_Cords_0 = {
Identifier = "Insight_Parachute_Cords_0",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_chutes .. "/insight_chute_frame01_cords1.obj"
},
ColorTexture = models_chutes .. "/foil_gold_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = parachuteDeployTime1,
End = parachuteDeployTime20
},
GUI = {
Hidden = true,
Name = "Insight ParachuteC0",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Parachute_20 = {
Identifier = "Insight_Parachute_20",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_chutes .. "/insight_chute_frame20_diff1.obj"
},
ColorTexture = models_chutes .. "/chute_diff.png",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = parachuteDeployTime20,
End = parachuteDeployTime40
},
GUI = {
Hidden = true,
Name = "Insight Parachute20",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Parachute_Cords_20 = {
Identifier = "Insight_Parachute_Cords_20",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_chutes .. "/insight_chute_frame20_cords1.obj"
},
ColorTexture = models_chutes .. "/foil_gold_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = parachuteDeployTime20,
End = parachuteDeployTime40
},
GUI = {
Hidden = true,
Name = "Insight ParachuteC20",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Parachute_40 = {
Identifier = "Insight_Parachute_40",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_chutes .. "/chute_doubleside_frame40_diff.obj"
},
ColorTexture = models_chutes .. "/chute_diff.png",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = parachuteDeployTime40,
End = landerSeperationTime
},
GUI = {
Hidden = true,
Name = "Insight Parachute40",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Parachute_Cords_40 = {
Identifier = "Insight_Parachute_Cords_40",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_chutes .. "/insight_chute_frame40_cords1.obj"
},
ColorTexture = models_chutes .. "/foil_gold_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = parachuteDeployTime40,
End = landerSeperationTime
},
GUI = {
Hidden = true,
Name = "Insight ParachuteC40",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_A001 = {
Identifier = "Insight_Lander_A001",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO01.obj"
},
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_01.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander A001",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_A002 = {
Identifier = "Insight_Lander_A002",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO02.obj"
},
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_02.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander A002",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_A003 = {
Identifier = "Insight_Lander_A003",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO03.obj"
},
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_03.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander A003",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_A004 = {
Identifier = "Insight_Lander_A004",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO04.obj"
},
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_04.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander A004",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_A005 = {
Identifier = "Insight_Lander_A005",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO05.obj"
},
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_05.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander A005",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_A006 = {
Identifier = "Insight_Lander_A006",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO06.obj"
},
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_06.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander A006",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_A007 = {
Identifier = "Insight_Lander_A007",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO07.obj"
},
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_07.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander A007",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_A008 = {
Identifier = "Insight_Lander_A008",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO08.obj"
},
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_08.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander A008",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_foil1 = {
Identifier = "Insight_Lander_foil1",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_foil1.obj"
},
ColorTexture = models_lander_lander_deck .. "/foil_silver_ramp.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander foil",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_Tex01 = {
Identifier = "Insight_Lander_Tex01",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_tex01.obj"
},
ColorTexture = models_lander_lander_deck .. "/InSIGHT_tex_01.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander Tex01",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Lander_Tex02 = {
Identifier = "Insight_Lander_Tex02",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_tex02.obj"
},
ColorTexture = models_lander_lander_deck .. "/InSIGHT_tex_02.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight Lander Tex02",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Legs_Stowed_tex = {
Identifier = "Insight_Legs_Stowed_tex",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_legs_stow .. "/insight_lander_legs_stow_tex01.obj"
},
ColorTexture = models_lander_legs_stow .. "/InSIGHT_tex_01.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = heatShieldSeperationTime,
End = legDeployTime
},
GUI = {
Hidden = true,
Name = "Insight legs_stow_tex",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Legs_Stowed_AO06 = {
Identifier = "Insight_Legs_Stowed_AO",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_legs_stow .. "/insight_lander_legs_stow_AO06.obj"
},
ColorTexture = models_lander_legs_stow .. "/InSIGHT_AO_06.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = heatShieldSeperationTime,
End = legDeployTime
},
GUI = {
Hidden = true,
Name = "Insight legs_stow_AO",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Legs_Deployed_tex = {
Identifier = "Insight_Legs_Deployed_tex",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_legs_deploy .. "/insight_lander_legs_deploy_tex01.obj"
},
ColorTexture = models_lander_legs_deploy .. "/InSIGHT_tex_01.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = legDeployTime,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight legs_deploy_tex",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Legs_Deployed_AO06 = {
Identifier = "Insight_Legs_Deployed_AO",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_legs_deploy .. "/insight_lander_legs_deploy_AO06.obj"
},
ColorTexture = models_lander_legs_deploy .. "/InSIGHT_AO_06.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = legDeployTime,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight legs_deploy_AO",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Panels_Stowed_tex = {
Identifier = "Insight_Panels_Stowed_tex",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_panels_stow .. "/insight_lander_panels_stow_tex01.obj"
},
ColorTexture = models_lander_panels_stow .. "/InSIGHT_tex_01.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight panels_stow_tex",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Panels_Stowed_tex2 = {
Identifier = "Insight_Panels_Stowed_tex2",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_panels_stow .. "/insight_lander_panels_stow_tex02.obj"
},
ColorTexture = models_lander_panels_stow .. "/InSIGHT_tex_02.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight panels_stow_tex2",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Panels_Stowed_AO01 = {
Identifier = "Insight_Panels_Stowed_AO",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_panels_stow .. "/insight_lander_panels_stow_AO01.obj"
},
ColorTexture = models_lander_panels_stow .. "/InSIGHT_AO_01.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight panels_stow_AO",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Panels_Deployed_tex = {
Identifier = "Insight_panels_Deployed_tex",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_panels_deploy .. "/insight_lander_panels_deploy_tex01.obj"
},
ColorTexture = models_lander_panels_deploy .. "/InSIGHT_tex_01.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = panelDeployTime,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight panels_deploy_tex",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Panels_Deployed_tex2 = {
Identifier = "Insight_panels_Deployed_tex2",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_panels_deploy .. "/insight_lander_panels_deploy_tex02.obj"
},
ColorTexture = models_lander_panels_deploy .. "/InSIGHT_tex_02.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = panelDeployTime,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight panels_deploy_tex2",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Panels_Deployed_AO06 = {
Identifier = "Insight_panels_Deployed_AO",
Parent = Insight.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models_lander_panels_deploy .. "/insight_lander_panels_deploy_AO01.obj"
},
ColorTexture = models_lander_panels_deploy .. "/InSIGHT_AO_01.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources,
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = panelDeployTime,
End = foreverTime
},
GUI = {
Hidden = true,
Name = "Insight panels_deploy_AO",
Path = "/Solar System/Missions/Insight"
}
}
local Insight_Trail = {
Identifier = "InsightTrail",
Parent = "Mars",
Renderable = {
Enabled = false,
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "-189",
Observer = "MARS",
Frame = "IAU_MARS",
Kernels = iKernels
},
Color = { 0.70, 0.50, 0.20 },
StartTime = "2018 NOV 26 19:30:13.390",
EndTime = "2018 NOV 26 19:51:40.890",
SampleInterval = 2
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = entryTimeStart,
End = landerSeperationTime
},
GUI = {
Name = "Insight Trail",
Path = "/Solar System/Missions/Insight"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
InsightParent, Insight, Insight_Entry_CapsuleA, Insight_Entry_Capsule_Ring,
Insight_Entry_Capsule_Plugs, Insight_Entry_Heatshield, Insight_Parachute_0,
Insight_Parachute_Cords_0, Insight_Parachute_20, Insight_Parachute_Cords_20,
Insight_Parachute_40, Insight_Parachute_Cords_40, Insight_Lander_A001,
Insight_Lander_A002, Insight_Lander_A003, Insight_Lander_A004, Insight_Lander_A005,
Insight_Lander_A006, Insight_Lander_A007, Insight_Lander_A008, Insight_Lander_foil1,
Insight_Lander_Tex01, Insight_Lander_Tex02, Insight_Legs_Stowed_tex,
Insight_Legs_Stowed_AO06, Insight_Legs_Deployed_tex, Insight_Legs_Deployed_AO06,
Insight_Panels_Stowed_tex, Insight_Panels_Stowed_tex2, Insight_Panels_Stowed_AO01,
Insight_Panels_Deployed_tex, Insight_Panels_Deployed_tex2,
Insight_Panels_Deployed_AO06, Insight_Trail
})

View File

@@ -1,202 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('scene/solarsystem/planets/jupiter/transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local textures = asset.syncedResource({
Name = "Juno Textures",
Type = "HttpSynchronization",
Identifier = "juno_textures",
Version = 1
})
local model = asset.syncedResource({
Name = "Juno Model",
Type = "HttpSynchronization",
Identifier = "juno_model",
Version = 1
})
local kernels = asset.syncedResource({
Name = "Juno Kernels",
Type = "HttpSynchronization",
Identifier = "juno_kernels",
Version = 2
})
local JunoKernels = {
kernels .. "/juno_v12.tf",
kernels .. "/JNO_SCLKSCET.00039.tsc",
kernels .. "/juno_jade_v00.ti",
kernels .. "/juno_jedi_v00.ti",
kernels .. "/juno_jiram_v01.ti",
kernels .. "/juno_junocam_v00.ti",
kernels .. "/juno_mag_v00.ti",
kernels .. "/juno_mwr_v01.ti",
kernels .. "/juno_struct_v01.ti",
kernels .. "/juno_uvs_v00.ti",
kernels .. "/juno_waves_v00.ti",
kernels .. "/juno_mwr_v01.ti",
kernels .. "/spk_merge_110805_171017_130515.bsp",
kernels .. "/juno_sc_nom_110807_171016_v01.bc",
kernels .. "/juno_sc_prl_110930_111028_jc003c01_v01.bc",
kernels .. "/juno_sc_prl_111028_111125_jc004b00_v01.bc",
kernels .. "/juno_sc_prl_111125_111223_jc005b00_v01.bc",
kernels .. "/juno_sc_prl_111223_120127_jc006a02_v01.bc",
kernels .. "/juno_sc_prl_120127_120217_jc007a00_v01.bc",
kernels .. "/juno_sc_prl_120217_120316_jc008b00_v02.bc",
kernels .. "/juno_sc_prl_120316_120413_jc009a00_v01.bc",
kernels .. "/juno_sc_prl_120413_120511_jc010a04_v01.bc",
kernels .. "/juno_sc_prl_120511_120608_jc011a01_v02.bc",
kernels .. "/juno_sc_prl_120608_120706_jc012b01_v01.bc",
kernels .. "/juno_sc_prl_120706_120802_jc013a01_v01.bc",
kernels .. "/juno_sc_prl_120802_120824_jc014b01_v01.bc",
kernels .. "/juno_sc_prl_120824_120928_jc015m00_v01.bc",
kernels .. "/juno_sc_prl_120919_120928_jc015o00_v01.bc",
kernels .. "/juno_sc_prl_120928_121026_jc016c03_v01.bc",
kernels .. "/juno_sc_prl_121026_121123_jc017a01_v01.bc",
kernels .. "/juno_sc_prl_121123_121221_jc018b01_v01.bc",
kernels .. "/juno_sc_prl_121221_130118_jc019a01_v01.bc",
kernels .. "/juno_sc_prl_130118_130215_jc020b01_v01.bc",
kernels .. "/juno_sc_prl_130315_130412_jc022b01_v01.bc",
kernels .. "/juno_sc_prl_130412_130510_jc023b03_v01.bc",
kernels .. "/juno_sc_prl_130510_130607_jc024a01_v01.bc",
kernels .. "/juno_sc_prl_130607_130705_jc025a00_v01.bc",
kernels .. "/juno_sc_prl_130705_130802_jc026a01_v01.bc",
kernels .. "/juno_sc_prl_130726_131020_jx024a02_EFB_v03.bc",
kernels .. "/juno_sc_prl_130802_130830_jc027a02_v01.bc",
kernels .. "/juno_sc_prl_130830_130927_jc028a01_v01.bc",
kernels .. "/juno_sc_prl_130926_131025_jc029a00_v01.bc",
kernels .. "/juno_sc_prl_130927_131025_jc029c01_v01.bc",
kernels .. "/juno_sc_prl_131022_131025_jc029f00_v01.bc",
kernels .. "/juno_sc_prl_131025_131122_jc030b04_v01.bc",
kernels .. "/juno_sc_prl_131122_131220_jc031b01_v01.bc",
kernels .. "/juno_sc_prl_131220_140124_jc032a01_v01.bc",
kernels .. "/juno_sc_prl_140124_140214_jc033a01_v01.bc",
kernels .. "/juno_sc_prl_140214_140314_jc034b01_v01.bc",
kernels .. "/juno_sc_prl_140314_140411_jc035a01_v01.bc",
kernels .. "/juno_sc_prl_140411_140509_jc036b01_v01.bc",
kernels .. "/juno_sc_prl_140509_140606_jc037b02_v01.bc",
kernels .. "/juno_sc_prl_140606_140704_jc038a01_v01.bc",
kernels .. "/juno_sc_prl_140704_140801_jc039b01_v01.bc",
kernels .. "/juno_sc_prl_140801_140829_jc040a01_v01.bc",
kernels .. "/juno_sc_prl_140829_140926_jc041a01_v01.bc",
kernels .. "/juno_sc_prl_140926_141024_jc042a01_v01.bc",
kernels .. "/juno_sc_prl_141024_141121_jc043a01_v01.bc",
kernels .. "/juno_sc_prl_141105_141121_jc043m01_v01.bc",
kernels .. "/juno_sc_prl_141107_141121_jc043s01_v01.bc",
kernels .. "/juno_sc_prl_141121_141219_jc044a01_v01.bc",
kernels .. "/juno_sc_prl_141219_150123_jc045a01_v01.bc",
kernels .. "/juno_sc_prl_150123_150213_jc046a01_v01.bc",
kernels .. "/juno_sc_prl_150213_150313_jc047a01_v01.bc",
kernels .. "/juno_sc_prl_150312_150409_jc048a01_v01.bc",
kernels .. "/juno_sc_prl_150410_150508_jc049a01_v01.bc",
kernels .. "/juno_sc_prl_150508_150605_jc050a01_v01.bc",
kernels .. "/juno_sc_prl_150605_150703_jc051a01_v01.bc",
kernels .. "/juno_sc_prl_150703_150731_jc052a01_v01.bc",
kernels .. "/juno_sc_prl_150731_150828_jc053a01_v01.bc",
kernels .. "/juno_sc_prl_150805_150828_jc053m00_v01.bc",
kernels .. "/juno_sc_prl_150807_150828_jc053s00_v01.bc",
kernels .. "/juno_sc_prl_150828_150924_jc054a00_v01.bc",
kernels .. "/juno_sc_prl_150924_151023_jc055a00_v01.bc",
kernels .. "/juno_sc_prl_151023_151120_jc056a00_v01.bc",
kernels .. "/juno_sc_prl_151120_151218_jc057a00_v01.bc",
kernels .. "/juno_sc_prl_151218_160115_jc058a00_v01.bc",
kernels .. "/juno_sc_prl_160115_160212_jc059a00_v01.bc",
kernels .. "/juno_sc_prl_160212_160311_jc060a00_v01.bc",
kernels .. "/juno_sc_prl_160311_160408_jc061a00_v01.bc",
kernels .. "/juno_sc_prl_160408_160506_jc062a00_v01.bc",
kernels .. "/juno_sc_prl_160506_160603_jc063a00_v01.bc",
kernels .. "/juno_sc_prl_160603_160630_jc064a00_v01.bc",
kernels .. "/juno_sc_prl_160708_160729_jm0001rp_v02.bc",
kernels .. "/juno_sc_prl_160729_160826_jm0002rp_v01.bc",
kernels .. "/juno_sc_prl_160827_160920_jm0003a00_v01.bc",
kernels .. "/juno_sc_prl_160924_161019_jm0004a00_v01.bc",
kernels .. "/juno_sc_prl_161014_161115_jm0005a00_v01.bc",
kernels .. "/juno_sc_prl_161022_161115_jm0005b00_v01.bc",
kernels .. "/juno_sc_prl_161115_161213_jx0405rp_v01.bc",
kernels .. "/juno_sc_prl_161210_170115_jm0031a00_v01.bc",
kernels .. "/juno_sc_prl_170115_170201_jm0032a00_v01.bc",
kernels .. "/juno_sc_prl_170201_170309_jm0041a00_v01.bc",
kernels .. "/juno_sc_prl_170309_170326_jm0042rp_v01.bc",
kernels .. "/juno_sc_prl_170326_170427_jm0051rp_v01.bc",
kernels .. "/juno_sc_prl_170427_170518_jm0052rp_v01.bc",
kernels .. "/juno_sc_prl_170518_170615_jm0061a00_v01.bc",
kernels .. "/juno_sc_prl_170615_170710_jm0062a00_v01.bc",
kernels .. "/juno_sc_prl_170710_170805_jm0071a00_v01.bc",
kernels .. "/juno_sc_prl_170805_170831_jm0072a00_v01.bc",
kernels .. "/juno_sc_prl_170831_170927_jm0081a00_v01.bc",
kernels .. "/juno_sc_prl_170927_171023_jm0082a00_v01.bc",
kernels .. "/juno_sc_prl_171023_171030_jm0091a00_v01.bc",
kernels .. "/juno_sc_prl_171023_171030_jm0091a00_v01.bc"
}
local RotationMatrix = {
0, 1, 0,
0, 0, 1,
1, 0, 0
}
local Juno = {
Identifier = "Juno",
Parent = transforms.JupiterBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "JUNO",
Observer = "JUPITER BARYCENTER",
Kernels = JunoKernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "JUNO_SPACECRAFT",
DestinationFrame = "GALACTIC",
Kernels = JunoKernels
}
},
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = model .. "/Juno.obj"
},
ColorTexture = textures .. "/gray.png",
ModelTransform = RotationMatrix,
LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier)
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = "2011-08-07T17:15:00",
End = "2017-10-16T19:29:24"
},
GUI = {
Path = "/Solar System/Missions/Juno"
}
}
local JunoTrail = {
Identifier = "JunoTrail",
Parent = transforms.JupiterBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "JUNO",
Observer = "JUPITER BARYCENTER",
Kernels = JunoKernels
},
Color = { 0.70, 0.50, 0.20 },
StartTime = "2016 JUL 01",
EndTime = "2016 DEC 13",
SampleInterval = 2
},
GUI = {
Name = "Juno Trail",
Path = "/Solar System/Missions/Juno"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { Juno, JunoTrail })

View File

@@ -1,59 +0,0 @@
-- mercurymagnetosphere.asset
local assetHelper = asset.require('util/asset_helper')
local localFolder = asset.syncedResource({
Name = "Mercury Magnetosphere",
Type = "HttpSynchronization",
Identifier = "mercury_magnetosphere",
Version = 1
})
local MercuryRadius = 2.4397E6
local Magnetosphere = {
Name = "Mercury Magnetosphere",
Identifier = "MercuryMagnetosphere",
Parent = "MercuryBarycenter",
SceneRadius = 0.8E+5,
Renderable = {
Type = "RenderableTimeVaryingVolume",
SourceDirectory = localFolder,
TransferFunction = localFolder .. "/transferfunction.txt",
Variable = "rho",
StepSize = "0.003",
Dimensions = {64, 64, 64},
GridType = "Cartesian",
SecondsBefore = 24*60*60*365*100,
SecondsAfter = 24*60*60*365*100,
Enabled = false
},
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "MERCURY",
Observer = "MERCURY BARYCENTER",
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "MERCURYSE",
DestinationFrame = "GALACTIC",
Kernels = {
localFolder .. "/openspace_mercury.ti"
}
},
Scale = {
Type = "StaticScale",
Scale = MercuryRadius,
},
},
GUI = {
Name = "Mercury Magnetosphere",
Path = "/Solar System/Missions/Messenger"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Magnetosphere
})

View File

@@ -1,220 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local mercuryTransforms = asset.require('scene/solarsystem/planets/mercury/transforms')
local models = asset.syncedResource({
Name = "Messenger Models",
Type = "HttpSynchronization",
Identifier = "messenger_model",
Version = 1
})
local kernels = asset.syncedResource({
Name = "Messenger Kernels",
Type = "HttpSynchronization",
Identifier = "messenger_spice",
Version = 2
})
local LocalKernels = {
kernels .. '/messenger_2548.tsc',
kernels .. '/msgr_v231.tf',
kernels .. '/de405.bsp',
kernels .. '/msgr_040803_150430_150430_od431sc_2.bsp',
kernels .. '/msgr_antenna_v000.bsp',
kernels .. '/msgr_de405_de423s.bsp',
kernels .. '/msgr_epps_v100.ti',
kernels .. '/msgr_grns_v110.ti',
kernels .. '/msgr_mag_v021.ti',
kernels .. '/msgr_mascs_v100.ti',
kernels .. '/msgr_mdis_v160.ti',
kernels .. '/msgr_mla_v010.ti',
kernels .. '/msgr_rs_v111.ti',
kernels .. '/msgr_xrs_v001.ti',
kernels .. '/pck00008.tpc',
kernels .. '/pck00008_msgr.tpc',
kernels .. '/pck00009_msgr_v10.tpc',
kernels .. '/pck00010_msgr_v10.tpc',
kernels .. '/pck00010_msgr_v23.tpc',
kernels .. '/pck00010.tpc',
kernels .. '/msgr_1103_v02.bc',
kernels .. '/msgr_1104_v02.bc',
kernels .. '/msgr_1105_v02.bc',
kernels .. '/msgr_1106_v02.bc',
}
local RotationMatrix = {
1, 0, 0,
0, 0, -1,
0, 1, 0
}
local LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier)
local Messenger = {
Identifier = "Messenger",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "MESSENGER",
Observer = "SUN",
Kernels = LocalKernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "MSGR_SPACECRAFT",
DestinationFrame = "GALACTIC",
},
},
TimeFrame = {
Type = "TimeFrameInterval",
Start = "2011-03-01",
End = "2011-06-30"
},
GUI = {
Name = "Messenger",
Path = "/Solar System/Missions/Messenger"
}
}
local MessengerProbeBlack = {
Identifier = "MessengerProbe_black",
Parent = Messenger.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/MessengerProbe_black.obj"
},
ColorTexture = models .. "/Tex_black.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "MessengerProbe Black",
Path = "/Solar System/Missions/Messenger"
}
}
local MessengerProbeFoil = {
Identifier = "MessengerProbe_foil",
Parent = Messenger.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/MessengerProbe_foil.obj"
},
ColorTexture = models .. "/foil_n2.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "MessengerProbe foil",
Path = "/Solar System/Missions/Messenger"
}
}
local MessengerProbeHeatShield = {
Identifier = "MessengerProbe_heatShield",
Parent = Messenger.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/MessengerProbe_heatShield.obj"
},
ColorTexture = models .. "/AO_heatshield4.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "MessengerProbe Heat Sheild",
Path = "/Solar System/Missions/Messenger"
}
}
local MessengerProbeMetal = {
Identifier = "MessengerProbe_Metal",
Parent = Messenger.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/MessengerProbe_metal.obj"
},
ColorTexture = models .. "/Tex_grey.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "MessengerProbe Metal",
Path = "/Solar System/Missions/Messenger"
}
}
local MessengerProbePanels = {
Identifier = "MessengerProbe_panels",
Parent = Messenger.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/MessengerProbe_panels.obj"
},
ColorTexture = models .. "/Messenger_tex.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "MessengerProbe Panels",
Path = "/Solar System/Missions/Messenger"
}
}
local MessengerTrail = {
Identifier = "MessengerTrail",
Parent = mercuryTransforms.MercuryBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailOrbit",
Translation = {
Type = "SpiceTranslation",
Target = "MESSENGER",
Observer = "MERCURY BARYCENTER",
Kernels = Kernels
},
Color = { 0.288, 0.375, 0.934 },
EnableFade = false,
StartTime = "2011 MARCH 01 12:00:00",
EndTime = "2011 MAY 30 12:00:00",
Period = 12,
Resolution = 10000
},
GUI = {
Name = "Messenger Trail",
Path = "/Solar System/Missions/Messenger"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Messenger,
MessengerProbeBlack,
MessengerProbeFoil,
MessengerProbeHeatShield,
MessengerProbeMetal,
MessengerProbePanels,
MessengerTrail
})

View File

@@ -1,33 +0,0 @@
OpenSpace ecliptic frames:
Mercury-centric Solar Ecliptic (MERCURYSE) frame
These frames are only defined as helper frames for OpenSpace.
+X is parallel to the geometric planet-sun position vector.
-Y axis is the normalized component of the planet's orbital vector
+Z axis is parallel to the cross product of the frame's +X axis
and the frame's +Y axis.
\begindata
FRAME_MERCURYSE = 4600199
FRAME_4600199_NAME = 'MERCURYSE'
FRAME_4600199_CLASS = 5
FRAME_4600199_CLASS_ID = 4600199
FRAME_4600199_CENTER = 199
FRAME_4600199_RELATIVE = 'J2000'
FRAME_4600199_DEF_STYLE = 'PARAMETERIZED'
FRAME_4600199_FAMILY = 'TWO-VECTOR'
FRAME_4600199_PRI_AXIS = 'X'
FRAME_4600199_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION'
FRAME_4600199_PRI_OBSERVER = 'MERCURY'
FRAME_4600199_PRI_TARGET = 'SUN'
FRAME_4600199_PRI_ABCORR = 'NONE'
FRAME_4600199_SEC_AXIS = 'Y'
FRAME_4600199_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY'
FRAME_4600199_SEC_OBSERVER = 'MERCURY'
FRAME_4600199_SEC_TARGET = 'SUN'
FRAME_4600199_SEC_ABCORR = 'NONE'
FRAME_4600199_SEC_FRAME = 'J2000'

View File

@@ -1,8 +0,0 @@
width 1024
lower 0.0
upper 0.1
mappingkey 0.0 255 0 0 0
mappingkey 0.01 255 0 0 0
mappingkey 0.1 255 255 0 100
mappingkey 0.5 255 255 0 255

View File

@@ -1,120 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('./transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local textures = asset.syncedResource({
Name = "Charon Textures",
Type = "HttpSynchronization",
Identifier = "charon_textures",
Version = 3
})
local charonRadius = 6.035E5
local CharonProjection = {
Identifier = "CharonProjection",
Parent = transforms.PlutoBarycenterAccurate.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "CHARON",
Observer = "PLUTO BARYCENTER"
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "IAU_CHARON",
DestinationFrame = "GALACTIC"
}
},
Renderable = {
Type = "RenderablePlanetProjection",
Geometry = {
Type = "SimpleSphere",
Radius = charonRadius,
Segments = 350
},
ColorTexturePaths = {
textures .. "/NH_Charon_mosaic.png",
textures .. "/NH_Charon_mosaic_8192.png"
},
HeightTexturePaths = {
textures .. "/NH_Charon_DTM.png",
textures .. "/NH_Charon_DTM_8192.png"
},
MeridianShift = true,
Projection = {
Observer = "NEW HORIZONS",
Target = "CHARON",
Aberration = "NONE",
AspectRatio = 2,
Instrument = {
Name = "NH_LORRI",
Method = "ELLIPSOID",
Aberration = "NONE",
Fovy = 0.2907,
Aspect = 1,
Near = 0.2,
Far = 10000
},
PotentialTargets = {
"PLUTO",
"CHARON"
}
}
},
GUI = {
Path = "/Solar System/Dwarf Planets/Pluto",
Name = "Charon Projection"
}
}
local CharonText = {
Identifier = "CharonText",
Parent = CharonProjection.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = {0, -1000000.0, 0}
}
},
Renderable = {
Type = "RenderablePlaneImageLocal",
Size = 10^6.3,
Origin = "Center",
Billboard = true,
Texture = textures .. "/Charon-Text.png",
BlendMode = "Additive"
},
GUI = {
Name = "Charon Text",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
local CharonShadow = {
Identifier = "CharonShadow",
Parent = CharonProjection .Identifier,
Renderable = {
Type = "RenderableShadowCylinder",
TerminatorType = "PENUMBRAL",
LightSource = "SUN",
Observer = "NEW HORIZONS",
Body = "CHARON",
BodyFrame = "IAU_CHARON",
Aberration = "NONE"
},
GUI = {
Name = "Charon Shadow",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
CharonProjection,
CharonText,
CharonShadow
})

View File

@@ -1,386 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('./transforms')
local LorriOffset = { -6.626, -4.1, -3.23 }
local RalphOffset = { -6.9, -4.6, 8.7 }
local AliceOffset = { -7.9, -1.7, 8.3 }
local RexOffset = { 0, 0, 0 }
local Lorri = {
Identifier = "NH_LORRI",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
Color = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_LORRI",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
}
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = LorriOffset
}
},
GUI = {
Name = "LORRI",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local RalphLeisa = {
Identifier = "NH_RALPH_LEISA",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_RALPH_LEISA",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
}
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = RalphOffset
}
},
GUI = {
Name = "RALPH LEISA",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local RalphMvicPan1 = {
Identifier = "NH_RALPH_MVIC_PAN1",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_RALPH_MVIC_PAN1",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
}
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = RalphOffset
}
},
GUI = {
Name = "RALPH MVIC PAN 1",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local RalphMvicPan2 = {
Identifier = "NH_RALPH_MVIC_PAN2",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_RALPH_MVIC_PAN2",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
}
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = RalphOffset
}
},
GUI = {
Name = "RALPH MVIC PAN 2",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local RalphMvicRed = {
Identifier = "NH_RALPH_MVIC_RED",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_RALPH_MVIC_RED",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
}
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = RalphOffset
}
},
GUI = {
Name = "RALPH MVIC RED",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local RalphMvicBlue = {
Identifier = "NH_RALPH_MVIC_BLUE",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_RALPH_MVIC_BLUE",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
}
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = RalphOffset
}
},
GUI = {
Name = "RALPH MVIC BLUE",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local RalphMvicFt = {
Identifier = "NH_RALPH_MVIC_FT",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_RALPH_MVIC_FT",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
}
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = RalphOffset
}
},
GUI = {
Name = "RALPH MVIC FT",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local RalphMvicMethane = {
Identifier = "NH_RALPH_MVIC_METHANE",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_RALPH_MVIC_METHANE",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
}
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = RalphOffset
}
},
GUI = {
Name = "RALPH MVIC METHANE",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local RalphMvicNir = {
Identifier = "NH_RALPH_MVIC_NIR",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_RALPH_MVIC_NIR",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
}
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = RalphOffset
}
},
GUI = {
Name = "RALPH MVIC NIR",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local AliceAirglow = {
Identifier = "NH_ALICE_AIRGLOW",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_ALICE_AIRGLOW",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
},
SimplifyBounds = true
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = AliceOffset
}
},
GUI = {
Name = "ALICE AIRGLOW",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local AliceSoc = {
Identifier = "NH_ALICE_SOC",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "NEW HORIZONS",
Frame = "NH_SPACECRAFT",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "NH_ALICE_SOC",
Aberration = "NONE"
},
PotentialTargets = {
"Pluto",
"Charon",
-- "Jupiter", "Io", "Europa", "Ganymede", "Callisto"
}
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = AliceOffset
}
},
GUI = {
Name = "ALICE SOC",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
local Rex = {
Identifier = "NH_REX",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableCrawlingLine",
Source = "NH_REX",
Target = "EARTH",
Instrument = "NH_REX",
Color = {
Start = { 1.0, 0.7, 0.0, 1.0},
End = {0.0, 0.0, 0.0, 0.0 }
}
},
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = {-3.141502/2, 0, -3.141502/2}
},
Translation = {
Type = "StaticTranslation",
Position = RexOffset
}
},
GUI = {
Name = "REX",
Path = "/Solar System/Missions/New Horizons/Instruments"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Lorri,
RalphLeisa,
RalphMvicPan1,
RalphMvicPan2,
RalphMvicRed,
RalphMvicBlue,
RalphMvicFt,
RalphMvicMethane,
RalphMvicNir,
AliceAirglow,
AliceSoc,
Rex
})

View File

@@ -1,48 +0,0 @@
local Kernels = asset.syncedResource({
Name = "New Horizons Kernels",
Type = "HttpSynchronization",
Identifier = "newhorizons_kernels",
Version = 1
})
local NewHorizonsKernels = {
Kernels .. "/nh_pred_20141201_20190301_od122.bsp",
Kernels .. "/NavSE_plu047_od122.bsp",
Kernels .. "/NavPE_de433_od122.bsp",
Kernels .. "/new-horizons_1121.tsc",
Kernels .. "/nh_scispi_2015_pred.bc",
Kernels .. "/nh_scispi_2015_recon.bc",
Kernels .. "/nh_lorri_wcs.bc",
Kernels .. "/PLU_LORRI_ALL_161216.bc",
Kernels .. "/nh_targets_v001.tpc",
Kernels .. "/nh_pcnh_005.tpc",
Kernels .. "/nh_v220.tf",
Kernels .. "/nh_allinstruments_v002.ti",
Kernels .. "/nh_alice_v200.ti",
Kernels .. "/nh_lorri_v201.ti",
Kernels .. "/nh_pepssi_v110.ti",
Kernels .. "/nh_ralph_v100.ti",
Kernels .. "/nh_rex_v100.ti",
Kernels .. "/nh_sdc_v101.ti",
Kernels .. "/nh_swap_v100.ti",
Kernels .. "/nh_astr_v000.ti",
Kernels .. "/nh_fss_v000.ti",
Kernels .. "/nh_soc_misc_v001.tf",
Kernels .. "/nh_stars.bsp",
}
local PlutoKernels = {
Kernels .. "/NavPE_de433_od122.bsp",
Kernels .. "/NavSE_plu047_od122.bsp"
}
asset.export("Kernels", Kernels)
asset.export("NewHorizonsKernels", NewHorizonsKernels)
asset.export("PlutoKernels", PlutoKernels)

View File

@@ -1,31 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local transforms = asset.require('./transforms')
local NewHorizonsModel = asset.require('./model')
local textures = NewHorizonsModel.NewHorizonsTextures
local models = NewHorizonsModel.NewHorizonsModels
local Labels = {
Identifier = "Labels",
Parent = NewHorizonsModel.NewHorizons.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "NEW HORIZONS",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/Labels.obj"
},
ColorTexture = textures .. "/labels.png",
AmbientIntensity = 0.8
},
GUI = {
Path = "/Solar System/Missions/New Horizons"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { Labels })

View File

@@ -1,57 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('./transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local textures = asset.syncedResource({
Name = "New Horizons Textures",
Type = "HttpSynchronization",
Identifier = "newhorizons_textures",
Version = 3
})
local models = asset.syncedResource({
Name = "New Horizons Model",
Type = "HttpSynchronization",
Identifier = "newhorizons_model",
Version = 1
})
local NewHorizons = {
Identifier = "NewHorizons",
Parent = transforms.NewHorizonsPosition.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "NEW HORIZONS",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/NewHorizonsCleanModel.obj"
},
ColorTexture = textures .. "/NHTexture.jpg",
AmbientIntensity = 0.0,
DiffuseIntensity = 1.0,
SpecularIntensity = 1.0,
LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
},
{
Identifier = "Camera",
Type = "CameraLightSource",
Intensity = 0.5
}
}
},
GUI = {
Name = "New Horizons",
Path = "/Solar System/Missions/New Horizons"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { NewHorizons })
asset.export("NewHorizonsTextures", textures)
asset.export("NewHorizonsModels", models)

View File

@@ -1,20 +0,0 @@
asset.require('./model')
asset.require('./label')
asset.require('./fov')
asset.require('./trail')
asset.require('./pluto')
asset.require('./charon')
asset.require('./othermoons')
local mission = asset.localResource("newhorizons.mission")
local missionName
asset.onInitialize(function()
missionName = openspace.loadMission(mission)
end)
asset.onDeinitialize(function()
openspace.unloadMission(missionName)
end)

View File

@@ -1,122 +0,0 @@
-- Source: http://pluto.jhuapl.edu/Mission/index.php
-- Many of the values (especially days of the month if 01 or 30 or 31 and hh::mm::ss if all 0)
-- are approximate and need fixing
return {
Name = "New Horizons",
Phases = {
{
Name = "Cruise Phase",
TimeRange = { Start = "2006 JAN 19 00:00:00", End = "2015 JAN 15 00:00:00" },
Phases = {
{
Name = "Jupiter fly-by",
TimeRange = { Start = "2007 FEB 28 00:00:00", End = "2007 FEB 28 23:59:59" }
},
{
Name = "Annual checkout 1",
TimeRange = { Start = "2007 SEP 01 00:00:00", End = "2007 NOV 30 00:00:00" }
},
{
Name = "Annual checkout 2",
TimeRange = { Start = "2008 JUL 01 00:00:00", End = "2008 AUG 31 00:00:00" }
},
{
Name = "Annual checkout 3",
TimeRange = { Start = "2009 JUL 01 00:00:00", End = "2009 AUG 31 00:00:00" }
},
{
Name = "Annual checkout 4",
TimeRange = { Start = "2010 MAY 01 00:00:00", End = "2010 JUL 31 00:00:00" }
},
{
Name = "Annual checkout 5",
TimeRange = { Start = "2011 MAY 01 00:00:00", End = "2011 JUL 31 00:00:00" }
},
{
Name = "Annual checkout 6",
TimeRange = { Start = "2012 MAY 01 00:00:00", End = "2012 JUL 31 00:00:00" }
},
{
Name = "Annual checkout 7",
TimeRange = { Start = "2013 MAY 01 00:00:00", End = "2013 AUG 31 00:00:00" }
},
{
Name = "Annual checkout 8 and Optical Navigation campaign 1",
TimeRange = { Start = "2014 JUN 01 00:00:00", End = "2014 AUG 31 00:00:00" }
},
{
Name = "Final Wakeup from Hibernation",
TimeRange = { Start = "2014 DEC 06 00:00:00", End = "2014 DEC 06 23:59:59" }
}
}
},
{
Name = "Pluto Encounter/Approach Phase 1",
TimeRange = { Start = "2015 JAN 15 00:00:00", End = "2015 APR 01 00:00:00" },
Phases = {
{
Name = "Optical nagivation campaign 2",
TimeRange = { Start = "2015 JAN 25 00:00:00", End = "2015 APR 01 00:00:00" }
}
}
},
{
Name = "Pluto Encounter/Approach Phase 2",
TimeRange = { Start = "2015 APR 01 00:00:00", End = "2015 JUN 01 00:00:00" },
Phases = {
{
Name = "Best-ever images of Pluto",
TimeRange = { Start = "2015 MAY 01 00:00:00", End = "2015 JUN 01 00:00:00" }
}
}
},
{
Name = "Pluto Encounter/Approach Phase 3",
TimeRange = { Start = "2015 JUN 01 00:00:00", End = "2015 JUL 15 00:00:00" },
Phases = {
{
Name = "Closest approach to Pluto",
TimeRange = { Start = "2015 JUL 14 11:49:57", End = "2015 JUL 14 11:49:58" }
},
{
Name = "Closest approach to Charon",
TimeRange = { Start = "2015 JUL 14 12:03:50", End = "2015 JUL 14 12:03:51" }
},
{
Name = "Pluto-Sun Occultation",
TimeRange = { Start = "2015 JUL 14 12:51:25", End = "2015 JUL 14 12:52:00" }
},
{
Name = "Pluto-Earth Occultation",
TimeRange = { Start = "2015 JUL 14 12:52:27", End = "2015 JUL 14 12:53:00" }
},
{
Name = "Charon-Sun Occultation",
TimeRange = { Start = "2015 JUL 14 14:17:40", End = "2015 JUL 14 14:18:00" }
},
{
Name = "Charon-Earth Occultation",
TimeRange = { Start = "2015 JUL 14 14:20:00", End = "2015 JUL 14 14:21:00" }
}
}
},
{
Name = "Departure Phase 1",
TimeRange = { Start = "2015 JUL 15 00:00:00", End = "2015 AUG 01 00:00:00" }
},
{
Name = "Departure Phase 2",
TimeRange = { Start = "2015 AUG 01 00:00:00", End = "2015 OCT 01 00:00:00" }
},
{
Name = "Departure Phase 3",
TimeRange = { Start = "2015 OCT 01 00:00:00", End = "2016 JAN 01 00:00:00" }
},
{
Name = "Data Playback Ends",
TimeRange = { Start = "2016 OCT 01 00:00:00", End = "2016 DEC 01 00:00:00" }
}
}
}

View File

@@ -1,126 +0,0 @@
local Hydra = asset.require('scene/solarsystem/dwarf_planets/pluto/hydra')
local Kerberos = asset.require('scene/solarsystem/dwarf_planets/pluto/kerberos')
local Nix = asset.require('scene/solarsystem/dwarf_planets/pluto/nix')
local Styx = asset.require('scene/solarsystem/dwarf_planets/pluto/styx')
local assetHelper = asset.require('util/asset_helper')
local hydraTextures = asset.syncedResource({
Name = "Hydra Textures",
Type = "HttpSynchronization",
Identifier = "hydra_textures",
Version = 1
})
local HydraText = {
Identifier = "HydraText",
Parent = Hydra.Hydra.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 1000000, 0, 1000000 },
},
},
Renderable = {
Type = "RenderablePlaneImageLocal",
Size = 10.0^6.3,
Origin = "Center",
Billboard = true,
Texture = hydraTextures .. "/Hydra-Text.png",
BlendMode = "Additive"
},
GUI = {
Name = "Hydra Text",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
local kerberosTextures = asset.syncedResource({
Name = "Kerberos Textures",
Type = "HttpSynchronization",
Identifier = "kerberos_textures",
Version = 1
})
local KerberosText = {
Identifier = "KerberosText",
Parent = Kerberos.Kerberos.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 1000000.0, 0, 1000000.0 }
},
},
Renderable = {
Type = "RenderablePlaneImageLocal",
Size = 10^6.3,
Origin = "Center",
Billboard = true,
Texture = kerberosTextures .. "/Kerberos-Text.png",
BlendMode = "Additive"
},
GUI = {
Name = "Kerberos Text",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
local nixTextures = asset.syncedResource({
Name = "Nix Textures",
Type = "HttpSynchronization",
Identifier = "nix_textures",
Version = 1
})
local NixText = {
Identifier = "NixText",
Parent = Nix.Nix.Identifier,
Renderable = {
Type = "RenderablePlaneImageLocal",
Size = 10^6.3,
Origin = "Center",
Billboard = true,
Texture = nixTextures .. "/Nix-Text.png",
BlendMode = "Additive"
},
GUI = {
Name = "Nix Text",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
local styxTextures = asset.syncedResource({
Name = "Styx Textures",
Type = "HttpSynchronization",
Identifier = "styx_textures",
Version = 1
})
local StyxText = {
Identifier = "StyxText",
Parent = Styx.Styx.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 1000000.0, 0, 1000000.0 }
},
},
Renderable = {
Type = "RenderablePlaneImageLocal",
Size = 10^6.3,
Origin = "Center",
Billboard = true,
Texture = styxTextures .. "/Styx-Text.png",
BlendMode = "Additive"
},
GUI = {
Name = "Styx Text",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
HydraText,
KerberosText,
NixText,
StyxText
})

View File

@@ -1,251 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('./transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local assets = asset.syncedResource({
Name = "Pluto Assets",
Type = "HttpSynchronization",
Identifier = "newhorizons_plutoencounter_pluto_assets",
Version = 1
})
local encounterTextures = asset.syncedResource({
Name = "Pluto Encounter Textures",
Type = "HttpSynchronization",
Identifier = "newhorizons_plutoencounter_pluto_textures",
Version = 4
})
local textures = asset.syncedResource({
Name = "Pluto Textures",
Type = "HttpSynchronization",
Identifier = "pluto_textures",
Version = 5
})
local images = asset.syncedResource({
Name = "Pluto Images",
Type = "HttpSynchronization",
Identifier = "newhorizons_plutoencounter_pluto_images",
Version = 1
})
local plutoRadius = 1.173E6
local PlutoProjection = {
Identifier = "PlutoProjection",
Parent = transforms.PlutoBarycenterAccurate.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "PLUTO",
Observer = "PLUTO BARYCENTER",
Kernels = NewHorizonsKernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "IAU_PLUTO",
DestinationFrame = "GALACTIC"
},
Scale = {
Type = "StaticScale",
Scale = 1.0
}
},
Renderable = {
Type = "RenderablePlanetProjection",
Radius = plutoRadius,
Geometry = {
Type = "SimpleSphere",
Radius = plutoRadius,
Segments = 400
},
ColorTexturePaths = {
textures .. "/pluto.png",
textures .. "/NH_Pluto_mosaic_16384.png",
textures .. "/NH_Pluto_mosaic_8192.png",
textures .. "/pmap_cyl_k201.jpg",
textures .. "/pmap_cyl_k201_4096.jpg"
},
HeightTexturePaths = {
textures .. "/NH_Pluto_DTM_16384.png",
textures .. "/NH_Pluto_DTM_8192.png"
},
MeridianShift = false,
Projection = {
Sequence = images,
EventFile = assets .. "/core_v9h_obs_getmets_v8_time_fix_nofrcd_mld.txt",
-- SequenceType = "hybrid",
SequenceType = "image-sequence",
Observer = "NEW HORIZONS",
Target = "PLUTO",
Aberration = "NONE",
AspectRatio = 2,
DataInputTranslation = {
Instrument = {
LORRI = {
DetectorType = "Camera",
Spice = { "NH_LORRI" }
},
RALPH_MVIC_PAN_FRAME = {
DetectorType = "Scanner",
StopCommand = "RALPH_ABORT",
Spice = { "NH_RALPH_MVIC_FT" }
},
RALPH_MVIC_COLOR = {
DetectorType = "Scanner",
StopCommand = "END_NOM",
Spice = { "NH_RALPH_MVIC_NIR",
"NH_RALPH_MVIC_METHANE",
"NH_RALPH_MVIC_RED",
"NH_RALPH_MVIC_BLUE" }
},
RALPH_LEISA = {
DetectorType = "Scanner",
StopCommand = "END_NOM",
Spice = { "NH_RALPH_LEISA" }
},
RALPH_MVIC_PAN1 = {
DetectorType = "Scanner",
StopCommand = "END_NOM",
Spice = { "NH_RALPH_MVIC_PAN1" }
},
RALPH_MVIC_PAN2 = {
DetectorType = "Scanner",
StopCommand = "END_NOM",
Spice = { "NH_RALPH_MVIC_PAN2" }
},
ALICE_Use_AIRGLOW = {
DetectorType = "Scanner",
StopCommand = "ALICE_END_PIXELLIST",
Spice = { "NH_ALICE_AIRGLOW" }
},
ALICE_Use_AIRGLOW = {
DetectorType = "Scanner",
StopCommand = "ALICE_END_HISTOGRAM",
Spice = { "NH_ALICE_AIRGLOW" }
},
ALICE_Use_SOCC = {
DetectorType = "Scanner",
StopCommand = "ALICE_END_PIXELLIST",
Spice = { "NH_ALICE_SOC" }
},
ALICE_Use_SOCC = {
DetectorType = "Scanner",
StopCommand = "ALICE_END_HISTOGRAM",
Spice = { "NH_ALICE_SOC" }
},
REX_START = {
DetectorType = "Scanner",
StopCommand = "REX_MODE_OFF",
Spice = { "NH_REX" }
}
},
Target ={
Read = {
"TARGET_NAME",
"INSTRUMENT_HOST_NAME",
"INSTRUMENT_ID",
"START_TIME",
"STOP_TIME",
"DETECTOR_TYPE"
},
Convert = {
PLUTO = { "PLUTO" },
NEWHORIZONS = { "NEW HORIZONS" },
CCD = { "CAMERA" },
FRAMECCD = { "SCANNER" }
}
}
},
Instrument = {
Name = "NH_LORRI",
Method = "ELLIPSOID",
Aberration = "NONE",
Fovy = 0.2907,
Aspect = 1,
Near = 0.2,
Far = 10000
},
PotentialTargets = {
"PLUTO",
"CHARON",
"NIX",
"HYDRA",
"P5",
"P4"
}
}
},
GUI = {
Name = "Pluto Projection",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
local PlutoBarycenterLabel = {
Identifier = "PlutoBarycenterLabel",
Parent = transforms.PlutoBarycenterAccurate.Identifier,
Renderable = {
Type = "RenderablePlaneImageLocal",
Billboard = true,
Size = 5E4,
Texture = encounterTextures .. "/barycenter.png",
BlendMode = "Additive"
},
GUI = {
Name = "Pluto Barycenter Label",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
local PlutoText = {
Identifier = "PlutoText",
Parent = PlutoProjection.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = {0, -2000000.0, 0}
},
},
Renderable = {
Type = "RenderablePlaneImageLocal",
Size = 10^6.3,
Origin = "Center",
Billboard = true,
Texture = encounterTextures .. "/Pluto-Text.png",
BlendMode = "Additive"
},
GUI = {
Name = "Pluto Text",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
local PlutoShadow = {
Identifier = "PlutoShadow",
Parent = PlutoProjection.Identifier,
Renderable = {
Type = "RenderableShadowCylinder",
TerminatorType = "PENUMBRAL",
LightSource = "SUN",
Observer = "NEW HORIZONS",
Body = "PLUTO",
BodyFrame = "IAU_PLUTO",
Aberration = "NONE",
},
GUI = {
Name = "Pluto Shadow",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
PlutoProjection,
PlutoBarycenterLabel,
PlutoText,
PlutoShadow
})

View File

@@ -1,36 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('./transforms')
local TrailAtPluto = {
Identifier = "NewHorizonsTrailPluto",
Parent = transforms.PlutoBarycenterAccurate.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "NEW HORIZONS",
Observer = "PLUTO BARYCENTER"
},
Color = { 1.0, 0.8, 0.4 },
ShowFullTrail = true,
StartTime = "2015 JUL 07 12:00:00",
EndTime = "2015 JUL 17 12:00:00",
PointSize = 5,
SampleInterval = 3600,
TimeStampSubsampleFactor = 4,
EnableFade = false,
Rendering = "Lines+Points"
},
GUI = {
Name = "New Horizons Trail Pluto",
Path = "/Solar System/Missions/New Horizons"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
TrailAtPluto
})

View File

@@ -1,54 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local kernels = asset.require('./kernels')
local PlutoBarycenterAccurate = {
Identifier = "PlutoBarycenterAccurate",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
TimeFrame = {
Type = "TimeFrameInterval",
Start = "2015-JAN-01",
End = "2015-AUG-01"
},
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "PLUTO BARYCENTER",
Observer = "SUN",
Kernels = kernels.PlutoKernels
},
},
GUI = {
Name = "Pluto Barycenter Accurate",
Path = "/Solar System/Dwarf Planets/Pluto"
}
}
local NewHorizonsPosition = {
Identifier = "NewHorizonsPosition",
Parent = PlutoBarycenterAccurate.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "NEW HORIZONS",
Observer = "PLUTO BARYCENTER",
Kernels = kernels.NewHorizonsKernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "NH_SPACECRAFT",
DestinationFrame = "GALACTIC"
}
},
GUI = {
Name = "New Horizons Position",
Path = "/Solar System/Missions/New Horizons"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
PlutoBarycenterAccurate,
NewHorizonsPosition
})

View File

@@ -1,7 +0,0 @@
"2019/01/27 10:42:00.000" "2019/01/27 15:12:00.000"
"2019/02/03 10:43:00.000" "2019/02/03 15:13:00.000"
"2019/02/10 11:05:00.000" "2019/02/10 15:35:00.000"
"2019/02/17 10:43:00.000" "2019/02/17 15:13:00.000"
"2019/02/24 10:22:00.000" "2019/02/24 14:52:00.000"
"2019/03/03 10:01:00.000" "2019/03/03 14:31:00.000"
"2019/03/10 10:01:00.000" "2019/03/10 14:31:00.000"

View File

@@ -1,173 +0,0 @@
"2019/04/16 12:03:15.000" "2019/04/16 12:03:15.800"
"2019/04/16 12:03:25.000" "2019/04/16 12:03:25.800"
"2019/04/16 12:03:35.000" "2019/04/16 12:03:35.800"
"2019/04/16 12:03:45.000" "2019/04/16 12:03:45.800"
"2019/04/16 12:03:55.000" "2019/04/16 12:03:55.800"
"2019/04/16 12:04:05.000" "2019/04/16 12:04:05.800"
"2019/04/16 12:04:15.000" "2019/04/16 12:04:15.800"
"2019/04/16 12:04:53.000" "2019/04/16 12:04:53.800"
"2019/04/16 12:05:03.000" "2019/04/16 12:05:03.800"
"2019/04/16 12:05:13.000" "2019/04/16 12:05:13.800"
"2019/04/16 12:05:23.000" "2019/04/16 12:05:23.800"
"2019/04/16 12:05:33.000" "2019/04/16 12:05:33.800"
"2019/04/16 12:05:43.000" "2019/04/16 12:05:43.800"
"2019/04/16 12:05:53.000" "2019/04/16 12:05:53.800"
"2019/04/16 12:06:03.000" "2019/04/16 12:06:03.800"
"2019/04/16 12:06:13.000" "2019/04/16 12:06:13.800"
"2019/04/16 12:06:23.000" "2019/04/16 12:06:23.800"
"2019/04/16 12:07:13.000" "2019/04/16 12:07:13.800"
"2019/04/16 12:07:23.000" "2019/04/16 12:07:23.800"
"2019/04/16 12:07:33.000" "2019/04/16 12:07:33.800"
"2019/04/16 12:07:43.000" "2019/04/16 12:07:43.800"
"2019/04/16 12:07:53.000" "2019/04/16 12:07:53.800"
"2019/04/16 12:08:03.000" "2019/04/16 12:08:03.800"
"2019/04/16 12:08:13.000" "2019/04/16 12:08:13.800"
"2019/04/16 12:08:23.000" "2019/04/16 12:08:23.800"
"2019/04/16 12:08:33.000" "2019/04/16 12:08:33.800"
"2019/04/16 12:08:43.000" "2019/04/16 12:08:43.800"
"2019/04/16 12:09:34.000" "2019/04/16 12:09:34.800"
"2019/04/16 12:09:44.000" "2019/04/16 12:09:44.800"
"2019/04/16 12:09:54.000" "2019/04/16 12:09:54.800"
"2019/04/16 12:10:04.000" "2019/04/16 12:10:04.800"
"2019/04/16 12:10:14.000" "2019/04/16 12:10:14.800"
"2019/04/16 12:10:24.000" "2019/04/16 12:10:24.800"
"2019/04/16 12:10:34.000" "2019/04/16 12:10:34.800"
"2019/04/16 12:10:44.000" "2019/04/16 12:10:44.800"
"2019/04/16 12:10:54.000" "2019/04/16 12:10:54.800"
"2019/04/16 12:11:04.000" "2019/04/16 12:11:04.800"
"2019/04/16 12:11:51.000" "2019/04/16 12:11:51.800"
"2019/04/16 12:12:01.000" "2019/04/16 12:12:01.800"
"2019/04/16 12:12:11.000" "2019/04/16 12:12:11.800"
"2019/04/16 12:12:21.000" "2019/04/16 12:12:21.800"
"2019/04/16 12:12:31.000" "2019/04/16 12:12:31.800"
"2019/04/16 12:12:41.000" "2019/04/16 12:12:41.800"
"2019/04/16 12:12:51.000" "2019/04/16 12:12:51.800"
"2019/04/16 12:13:01.000" "2019/04/16 12:13:01.800"
"2019/04/16 12:13:56.000" "2019/04/16 12:13:56.800"
"2019/04/16 12:14:06.000" "2019/04/16 12:14:06.800"
"2019/04/16 12:14:16.000" "2019/04/16 12:14:16.800"
"2019/04/16 12:14:26.000" "2019/04/16 12:14:26.800"
"2019/04/16 12:14:36.000" "2019/04/16 12:14:36.800"
"2019/04/16 12:14:46.000" "2019/04/16 12:14:46.800"
"2019/04/16 12:14:56.000" "2019/04/16 12:14:56.800"
"2019/04/16 12:15:06.000" "2019/04/16 12:15:06.800"
"2019/04/16 12:15:40.000" "2019/04/16 12:15:40.800"
"2019/04/16 12:15:50.000" "2019/04/16 12:15:50.800"
"2019/04/16 12:16:00.000" "2019/04/16 12:16:00.800"
"2019/04/16 12:16:10.000" "2019/04/16 12:16:10.800"
"2019/04/16 12:16:20.000" "2019/04/16 12:16:20.800"
"2019/04/16 17:49:37.000" "2019/04/16 17:49:37.800"
"2019/04/16 17:49:47.000" "2019/04/16 17:49:47.800"
"2019/04/16 17:49:57.000" "2019/04/16 17:49:57.800"
"2019/04/16 17:50:07.000" "2019/04/16 17:50:07.800"
"2019/04/16 17:50:17.000" "2019/04/16 17:50:17.800"
"2019/04/16 17:50:27.000" "2019/04/16 17:50:27.800"
"2019/04/16 17:50:37.000" "2019/04/16 17:50:37.800"
"2019/04/16 17:50:47.000" "2019/04/16 17:50:47.800"
"2019/04/16 17:50:57.000" "2019/04/16 17:50:57.800"
"2019/04/16 17:51:07.000" "2019/04/16 17:51:07.800"
"2019/04/16 17:51:17.000" "2019/04/16 17:51:17.800"
"2019/04/16 17:51:27.000" "2019/04/16 17:51:27.800"
"2019/04/16 17:51:37.000" "2019/04/16 17:51:37.800"
"2019/04/16 17:51:47.000" "2019/04/16 17:51:47.800"
"2019/04/16 17:52:48.000" "2019/04/16 17:52:48.800"
"2019/04/16 17:52:58.000" "2019/04/16 17:52:58.800"
"2019/04/16 17:53:08.000" "2019/04/16 17:53:08.800"
"2019/04/16 17:53:18.000" "2019/04/16 17:53:18.800"
"2019/04/16 17:53:28.000" "2019/04/16 17:53:28.800"
"2019/04/16 17:53:38.000" "2019/04/16 17:53:38.800"
"2019/04/16 17:53:48.000" "2019/04/16 17:53:48.800"
"2019/04/16 17:53:58.000" "2019/04/16 17:53:58.800"
"2019/04/16 17:54:08.000" "2019/04/16 17:54:08.800"
"2019/04/16 17:54:18.000" "2019/04/16 17:54:18.800"
"2019/04/16 17:54:28.000" "2019/04/16 17:54:28.800"
"2019/04/16 17:54:38.000" "2019/04/16 17:54:38.800"
"2019/04/16 17:54:48.000" "2019/04/16 17:54:48.800"
"2019/04/16 17:55:35.000" "2019/04/16 17:55:35.800"
"2019/04/16 17:55:45.000" "2019/04/16 17:55:45.800"
"2019/04/16 17:55:55.000" "2019/04/16 17:55:55.800"
"2019/04/16 17:56:05.000" "2019/04/16 17:56:05.800"
"2019/04/16 17:56:15.000" "2019/04/16 17:56:15.800"
"2019/04/16 17:56:25.000" "2019/04/16 17:56:25.800"
"2019/04/16 17:56:35.000" "2019/04/16 17:56:35.800"
"2019/04/16 17:56:45.000" "2019/04/16 17:56:45.800"
"2019/04/16 17:56:55.000" "2019/04/16 17:56:55.800"
"2019/04/16 17:57:05.000" "2019/04/16 17:57:05.800"
"2019/04/16 17:57:15.000" "2019/04/16 17:57:15.800"
"2019/04/16 17:57:25.000" "2019/04/16 17:57:25.800"
"2019/04/16 17:57:35.000" "2019/04/16 17:57:35.800"
"2019/04/16 17:57:45.000" "2019/04/16 17:57:45.800"
"2019/04/16 17:57:55.000" "2019/04/16 17:57:55.800"
"2019/04/16 17:58:05.000" "2019/04/16 17:58:05.800"
"2019/04/16 17:58:15.000" "2019/04/16 17:58:15.800"
"2019/04/16 17:58:48.000" "2019/04/16 17:58:48.800"
"2019/04/16 17:58:58.000" "2019/04/16 17:58:58.800"
"2019/04/16 17:59:08.000" "2019/04/16 17:59:08.800"
"2019/04/16 17:59:18.000" "2019/04/16 17:59:18.800"
"2019/04/16 17:59:28.000" "2019/04/16 17:59:28.800"
"2019/04/16 17:59:38.000" "2019/04/16 17:59:38.800"
"2019/04/16 17:59:48.000" "2019/04/16 17:59:48.800"
"2019/04/16 17:59:58.000" "2019/04/16 17:59:58.800"
"2019/04/16 18:00:08.000" "2019/04/16 18:00:08.800"
"2019/04/16 18:00:18.000" "2019/04/16 18:00:18.800"
"2019/04/16 18:00:28.000" "2019/04/16 18:00:28.800"
"2019/04/16 18:00:38.000" "2019/04/16 18:00:38.800"
"2019/04/16 18:01:41.000" "2019/04/16 18:01:41.800"
"2019/04/16 18:01:51.000" "2019/04/16 18:01:51.800"
"2019/04/16 18:02:01.000" "2019/04/16 18:02:01.800"
"2019/04/16 18:02:11.000" "2019/04/16 18:02:11.800"
"2019/04/16 18:02:21.000" "2019/04/16 18:02:21.800"
"2019/04/16 18:02:31.000" "2019/04/16 18:02:31.800"
"2019/04/16 18:02:41.000" "2019/04/16 18:02:41.800"
"2019/04/16 18:02:51.000" "2019/04/16 18:02:51.800"
"2019/04/16 18:03:01.000" "2019/04/16 18:03:01.800"
"2019/04/16 18:03:11.000" "2019/04/16 18:03:11.800"
"2019/04/16 18:03:21.000" "2019/04/16 18:03:21.800"
"2019/04/30 21:02:07.000" "2019/04/30 21:02:07.800"
"2019/04/30 21:02:17.000" "2019/04/30 21:02:17.800"
"2019/04/30 21:02:27.000" "2019/04/30 21:02:27.800"
"2019/04/30 21:02:37.000" "2019/04/30 21:02:37.800"
"2019/04/30 21:02:47.000" "2019/04/30 21:02:47.800"
"2019/04/30 21:02:57.000" "2019/04/30 21:02:57.800"
"2019/04/30 21:03:07.000" "2019/04/30 21:03:07.800"
"2019/04/30 21:03:17.000" "2019/04/30 21:03:17.800"
"2019/04/30 21:03:27.000" "2019/04/30 21:03:27.800"
"2019/04/30 21:03:37.000" "2019/04/30 21:03:37.800"
"2019/04/30 21:03:47.000" "2019/04/30 21:03:47.800"
"2019/04/30 21:03:57.000" "2019/04/30 21:03:57.800"
"2019/04/30 21:04:42.000" "2019/04/30 21:04:42.800"
"2019/04/30 21:04:52.000" "2019/04/30 21:04:52.800"
"2019/04/30 21:05:02.000" "2019/04/30 21:05:02.800"
"2019/04/30 21:05:12.000" "2019/04/30 21:05:12.800"
"2019/04/30 21:05:22.000" "2019/04/30 21:05:22.800"
"2019/04/30 21:05:32.000" "2019/04/30 21:05:32.800"
"2019/04/30 21:05:42.000" "2019/04/30 21:05:42.800"
"2019/04/30 21:05:52.000" "2019/04/30 21:05:52.800"
"2019/04/30 21:06:02.000" "2019/04/30 21:06:02.800"
"2019/04/30 21:06:12.000" "2019/04/30 21:06:12.800"
"2019/04/30 21:06:22.000" "2019/04/30 21:06:22.800"
"2019/04/30 21:06:32.000" "2019/04/30 21:06:32.800"
"2019/04/30 21:07:04.000" "2019/04/30 21:07:04.800"
"2019/04/30 21:07:14.000" "2019/04/30 21:07:14.800"
"2019/04/30 21:07:24.000" "2019/04/30 21:07:24.800"
"2019/04/30 21:07:34.000" "2019/04/30 21:07:34.800"
"2019/04/30 21:07:44.000" "2019/04/30 21:07:44.800"
"2019/04/30 21:07:54.000" "2019/04/30 21:07:54.800"
"2019/04/30 21:08:04.000" "2019/04/30 21:08:04.800"
"2019/04/30 21:08:14.000" "2019/04/30 21:08:14.800"
"2019/04/30 21:08:24.000" "2019/04/30 21:08:24.800"
"2019/04/30 21:08:34.000" "2019/04/30 21:08:34.800"
"2019/04/30 21:08:44.000" "2019/04/30 21:08:44.800"
"2019/04/30 21:08:54.000" "2019/04/30 21:08:54.800"
"2019/04/30 21:09:04.000" "2019/04/30 21:09:04.800"
"2019/04/30 21:09:14.000" "2019/04/30 21:09:14.800"
"2019/04/30 21:09:24.000" "2019/04/30 21:09:24.800"
"2019/04/30 21:10:13.000" "2019/04/30 21:10:13.800"
"2019/04/30 21:10:23.000" "2019/04/30 21:10:23.800"
"2019/04/30 21:10:33.000" "2019/04/30 21:10:33.800"
"2019/04/30 21:10:43.000" "2019/04/30 21:10:43.800"
"2019/04/30 21:10:53.000" "2019/04/30 21:10:53.800"
"2019/04/30 21:11:03.000" "2019/04/30 21:11:03.800"
"2019/04/30 21:11:13.000" "2019/04/30 21:11:13.800"
"2019/04/30 21:11:23.000" "2019/04/30 21:11:23.800"
"2019/04/30 21:11:33.000" "2019/04/30 21:11:33.800"

View File

@@ -1,110 +0,0 @@
"2019/05/25 03:57:58.000" "2019/05/25 03:57:58.800"
"2019/05/25 03:58:08.000" "2019/05/25 03:58:08.800"
"2019/05/25 03:58:18.000" "2019/05/25 03:58:18.800"
"2019/05/25 03:58:28.000" "2019/05/25 03:58:28.800"
"2019/05/25 03:58:38.000" "2019/05/25 03:58:38.800"
"2019/05/25 03:58:48.000" "2019/05/25 03:58:48.800"
"2019/05/25 03:58:58.000" "2019/05/25 03:58:58.800"
"2019/05/25 03:59:08.000" "2019/05/25 03:59:08.800"
"2019/05/25 04:00:14.000" "2019/05/25 04:00:14.800"
"2019/05/25 04:00:24.000" "2019/05/25 04:00:24.800"
"2019/05/25 04:00:34.000" "2019/05/25 04:00:34.800"
"2019/05/25 04:00:44.000" "2019/05/25 04:00:44.800"
"2019/05/25 04:00:54.000" "2019/05/25 04:00:54.800"
"2019/05/25 04:01:04.000" "2019/05/25 04:01:04.800"
"2019/05/25 04:01:14.000" "2019/05/25 04:01:14.800"
"2019/05/25 04:01:24.000" "2019/05/25 04:01:24.800"
"2019/05/25 04:01:34.000" "2019/05/25 04:01:34.800"
"2019/05/25 04:01:44.000" "2019/05/25 04:01:44.800"
"2019/05/25 04:01:54.000" "2019/05/25 04:01:54.800"
"2019/05/25 04:02:04.000" "2019/05/25 04:02:04.800"
"2019/05/25 04:02:14.000" "2019/05/25 04:02:14.800"
"2019/05/25 04:03:05.000" "2019/05/25 04:03:05.800"
"2019/05/25 04:03:15.000" "2019/05/25 04:03:15.800"
"2019/05/25 04:03:25.000" "2019/05/25 04:03:25.800"
"2019/05/25 04:03:35.000" "2019/05/25 04:03:35.800"
"2019/05/25 04:03:45.000" "2019/05/25 04:03:45.800"
"2019/05/25 04:03:55.000" "2019/05/25 04:03:55.800"
"2019/05/25 04:04:05.000" "2019/05/25 04:04:05.800"
"2019/05/25 04:04:15.000" "2019/05/25 04:04:15.800"
"2019/05/25 04:04:25.000" "2019/05/25 04:04:25.800"
"2019/05/25 04:04:35.000" "2019/05/25 04:04:35.800"
"2019/05/25 04:04:45.000" "2019/05/25 04:04:45.800"
"2019/05/25 04:04:55.000" "2019/05/25 04:04:55.800"
"2019/05/25 04:05:05.000" "2019/05/25 04:05:05.800"
"2019/05/25 04:05:15.000" "2019/05/25 04:05:15.800"
"2019/05/25 04:05:25.000" "2019/05/25 04:05:25.800"
"2019/05/25 04:06:19.000" "2019/05/25 04:06:19.800"
"2019/05/25 04:06:29.000" "2019/05/25 04:06:29.800"
"2019/05/25 04:06:39.000" "2019/05/25 04:06:39.800"
"2019/05/25 04:06:49.000" "2019/05/25 04:06:49.800"
"2019/05/25 04:06:59.000" "2019/05/25 04:06:59.800"
"2019/05/25 04:07:09.000" "2019/05/25 04:07:09.800"
"2019/05/25 04:07:19.000" "2019/05/25 04:07:19.800"
"2019/05/25 04:07:29.000" "2019/05/25 04:07:29.800"
"2019/05/25 04:07:39.000" "2019/05/25 04:07:39.800"
"2019/05/25 04:07:49.000" "2019/05/25 04:07:49.800"
"2019/05/25 04:07:59.000" "2019/05/25 04:07:59.800"
"2019/05/25 04:08:09.000" "2019/05/25 04:08:09.800"
"2019/05/25 04:08:19.000" "2019/05/25 04:08:19.800"
"2019/05/25 04:08:29.000" "2019/05/25 04:08:29.800"
"2019/05/25 04:08:39.000" "2019/05/25 04:08:39.800"
"2019/05/25 04:08:49.000" "2019/05/25 04:08:49.800"
"2019/05/25 04:08:59.000" "2019/05/25 04:08:59.800"
"2019/05/25 04:09:47.000" "2019/05/25 04:09:47.800"
"2019/05/25 04:09:57.000" "2019/05/25 04:09:57.800"
"2019/05/25 04:10:07.000" "2019/05/25 04:10:07.800"
"2019/05/25 04:10:17.000" "2019/05/25 04:10:17.800"
"2019/05/25 04:10:27.000" "2019/05/25 04:10:27.800"
"2019/05/25 04:10:37.000" "2019/05/25 04:10:37.800"
"2019/05/25 04:10:47.000" "2019/05/25 04:10:47.800"
"2019/05/25 04:10:57.000" "2019/05/25 04:10:57.800"
"2019/05/25 04:11:07.000" "2019/05/25 04:11:07.800"
"2019/05/25 04:11:17.000" "2019/05/25 04:11:17.800"
"2019/05/25 04:11:27.000" "2019/05/25 04:11:27.800"
"2019/05/25 04:11:37.000" "2019/05/25 04:11:37.800"
"2019/05/25 04:11:47.000" "2019/05/25 04:11:47.800"
"2019/05/25 04:11:57.000" "2019/05/25 04:11:57.800"
"2019/05/25 04:12:07.000" "2019/05/25 04:12:07.800"
"2019/05/25 04:12:17.000" "2019/05/25 04:12:17.800"
"2019/05/25 04:12:27.000" "2019/05/25 04:12:27.800"
"2019/05/25 04:13:28.000" "2019/05/25 04:13:28.800"
"2019/05/25 04:13:38.000" "2019/05/25 04:13:38.800"
"2019/05/25 04:13:48.000" "2019/05/25 04:13:48.800"
"2019/05/25 04:13:58.000" "2019/05/25 04:13:58.800"
"2019/05/25 04:14:08.000" "2019/05/25 04:14:08.800"
"2019/05/25 04:14:18.000" "2019/05/25 04:14:18.800"
"2019/05/25 04:14:28.000" "2019/05/25 04:14:28.800"
"2019/05/25 04:14:38.000" "2019/05/25 04:14:38.800"
"2019/05/25 04:14:48.000" "2019/05/25 04:14:48.800"
"2019/05/25 04:14:58.000" "2019/05/25 04:14:58.800"
"2019/05/25 04:15:08.000" "2019/05/25 04:15:08.800"
"2019/05/25 04:15:18.000" "2019/05/25 04:15:18.800"
"2019/05/25 04:15:28.000" "2019/05/25 04:15:28.800"
"2019/05/25 04:15:38.000" "2019/05/25 04:15:38.800"
"2019/05/25 04:15:48.000" "2019/05/25 04:15:48.800"
"2019/05/25 04:15:58.000" "2019/05/25 04:15:58.800"
"2019/05/25 04:17:00.000" "2019/05/25 04:17:00.800"
"2019/05/25 04:17:10.000" "2019/05/25 04:17:10.800"
"2019/05/25 04:17:20.000" "2019/05/25 04:17:20.800"
"2019/05/25 04:17:30.000" "2019/05/25 04:17:30.800"
"2019/05/25 04:17:40.000" "2019/05/25 04:17:40.800"
"2019/05/25 04:17:50.000" "2019/05/25 04:17:50.800"
"2019/05/25 04:18:00.000" "2019/05/25 04:18:00.800"
"2019/05/25 04:18:10.000" "2019/05/25 04:18:10.800"
"2019/05/25 04:18:20.000" "2019/05/25 04:18:20.800"
"2019/05/25 04:18:30.000" "2019/05/25 04:18:30.800"
"2019/05/25 04:18:40.000" "2019/05/25 04:18:40.800"
"2019/05/25 04:18:50.000" "2019/05/25 04:18:50.800"
"2019/05/25 04:19:00.000" "2019/05/25 04:19:00.800"
"2019/05/25 04:19:59.000" "2019/05/25 04:19:59.800"
"2019/05/25 04:20:09.000" "2019/05/25 04:20:09.800"
"2019/05/25 04:20:19.000" "2019/05/25 04:20:19.800"
"2019/05/25 04:20:29.000" "2019/05/25 04:20:29.800"
"2019/05/25 04:20:39.000" "2019/05/25 04:20:39.800"
"2019/05/25 04:20:49.000" "2019/05/25 04:20:49.800"
"2019/05/25 04:20:59.000" "2019/05/25 04:20:59.800"
"2019/05/25 04:21:09.000" "2019/05/25 04:21:09.800"
"2019/05/25 04:21:19.000" "2019/05/25 04:21:19.800"
"2019/05/25 04:21:29.000" "2019/05/25 04:21:29.800"
"2019/05/25 04:21:39.000" "2019/05/25 04:21:39.800"

View File

@@ -1 +0,0 @@
"2019/05/25 03:57:58.000" "2019/05/25 04:21:40.000"

View File

@@ -1,115 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('./transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local textures = asset.syncedResource({
Name = "Bennu Textures",
Type = "HttpSynchronization",
Identifier = "bennu_textures",
Version = 1
})
local models = asset.syncedResource({
Name = "Bennu Models",
Type = "HttpSynchronization",
Identifier = "bennu_models",
Version = 1
})
local BENNU_BODY = "2101955"
local Bennu = {
Identifier = "Bennu",
Parent = transforms.BennuBarycenter.Identifier,
Transform = {
Rotation = {
Type = "SpiceRotation",
SourceFrame = "IAU_BENNU",
DestinationFrame = "GALACTIC"
},
},
Renderable = {
Type = "RenderableModelProjection",
Body = BENNU_BODY,
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/BennuTextured.obj"
},
ColorTexture = textures .. "/gray.png",
Projection = {
Sequence = asset.localResource('InstrumentTimes'),
SequenceType = "instrument-times",
Observer = "OSIRIS-REX",
Target = BENNU_BODY,
Aberration = "NONE",
AspectRatio = 2,
DataInputTranslation = {
Instruments = {
ORX_OCAMS_POLYCAM = {
DetectorType = "Camera",
Spice = { "ORX_OCAMS_POLYCAM" },
Files = {
"BaseballDiamond_PolyCam.txt",
--"OrbitalB_Site08_PolyCamImages.txt",
"Recon_225m_Equatorial_PolyCam.txt",
},
},
ORX_REXIS = {
DetectorType = "Camera",
Spice = { "ORX_REXIS" },
Files = {
"DetailedSurvey_EquatorialStations_Spectrometers.txt",
"Recon_225m_Equatorial_spectrometers.txt",
"Recon_525m_Equatorial_spectrometers.txt",
}
}
},
Target = {
Body = BENNU_BODY
},
},
Instrument = { -- INVALID DATA - JUST FOR TESTING
Name = "ORX_OCAMS_POLYCAM",
Method = "ELLIPSOID",
Aberration = "NONE",
Fovy = 0.792,
Aspect = 1,
Near = 0.01,
Far = 1000000
}
}
},
GUI = {
Path = "/Solar System/Asteroid"
}
}
local BennuTrail = {
Identifier = "BennuTrail",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = BENNU_BODY,
Observer = "SUN"
},
Color = { 0.4, 0.0, 0.7 },
StartTime = "2015 JAN 01 00:00:00.000",
EndTime = "2023 MAY 31 00:00:00.000",
SampleInterval = 3600
},
GUI = {
Name = "Bennu Trail",
Path = "/Solar System/Asteroid"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { Bennu, BennuTrail })

View File

@@ -1,345 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('./transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms')
local kernels = asset.syncedResource({
Name = "Osiris Rex Kernels",
Type = "HttpSynchronization",
Identifier = "osirisrex_kernels",
Version = 1
})
local textures = asset.syncedResource({
Name = "Osiris Rex Textures",
Type = "HttpSynchronization",
Identifier = "osirisrex_textures",
Version = 1
})
local models = asset.syncedResource({
Name = "Osiris Rex Models",
Type = "HttpSynchronization",
Identifier = "osirisrex_models",
Version = 1
})
local BENNU_BODY = "2101955"
KernelCase = 2 -- Right now we only have the image times for case 2
local CaseDependentKernels
if KernelCase == 2 then
CaseDependentKernels = {
kernels .. "/ORX_Recon_525mSortie_Case02.bsp",
kernels .. "/Recon_525mSortie_Case02_0Latitude.bc",
kernels .. "/Recon_525mSortie_Case02_atl_19145_04.atf",
kernels .. "/ORX_Recon_225mSortie_Case02.bsp",
kernels .. "/Recon_225mSortie_Case02_0Latitude.bc"
}
elseif KernelCase == 5 then
CaseDependentKernels = {
kernels .. "/ORX_Recon_525mSortie_Case05.bsp",
kernels .. "/Recon_525mSortie_Case05_20negLatitude.bc",
kernels .. "/Recon_525mSortie_Case05_atl_19145_04.atf",
kernels .. "/Recon_525mSortie_Case05_NominalProfile.bc",
kernels .. "/ORX_Recon_225mSortie_Case05.bsp",
kernels .. "/Recon_225mSortie_Case05_20negLatitude.bc"
}
elseif KernelCase == 8 then
CaseDependentKernels = {
kernels .. "/Recon_525mSortie_Case08_NominalProfile.bc",
kernels .. "/ORX_Recon_225mSortie_Case08.bsp",
kernels .. "/Recon_225mSortie_Case08_40negLatitude.bc"
}
elseif KernelCase == 11 then
CaseDependentKernels = {
kernels .. "/ORX_Recon_225mSortie_Case11.bsp",
kernels .. "/Recon_225mSortie_Case11_60negLatitude.bc"
}
end
local OsirisRexKernels = {
-- background
-- SCLK kernels needs to be loaded before CK kernels (and generally first)
kernels .. "/ORX_SCLKSCET.00000.tsc",
-- This cannot be loaded correctly for some reason!
--openspace.spice.loadKernel(kernels .. "/OsirisRexKernels/background/dsk/RQ36mod.oct12_CCv0001.bds")
kernels .. "/orx_v04.tf",
kernels .. "/orx_lidar_v00.ti",
kernels .. "/orx_ocams_v03.ti",
kernels .. "/orx_otes_v00.ti",
kernels .. "/orx_rexis_v00.ti",
kernels .. "/orx_struct_v00.ti",
kernels .. "/orx_navcam_v00.ti",
kernels .. "/orx_ola_v00.ti",
kernels .. "/orx_ovirs_v00.ti",
kernels .. "/orx_stowcam_v00.ti",
-- kernels .. "/naif0011.tls",
kernels .. "/bennu_SPH250m.tpc",
kernels .. "/bennu_v10.tpc",
-- Low res SPK
kernels .. "/orx_160917_231024_pgaa3_day15m60_v1.bsp",
kernels .. "/orx_160914_231024_pgaa3_day12m60_v1.bsp",
kernels .. "/orx_160908_231024_pgaa3_day06m60_v1.bsp",
kernels .. "/spk_orx_160908_231024_pgaa2_day06m60_v3.bsp",
kernels .. "/orx_160908_231024_pgaa2_day06m60.bsp",
kernels .. "/OREX_20160908_M60_complete.bsp",
kernels .. "/OREX_20160904_M45_complete.bsp",
-- SPK
kernels .. "/de421.bsp",
kernels .. "/sb-101955-76.bsp",
-- Nominal_Profile_LowRes
kernels .. "/Approach_600s_20180816T230000_20181119T010000.bsp",
kernels .. "/Approach_NominalProfile_600s_20180816T230000_20181119T010000.bc",
kernels .. "/DetailedSurvey_600s_20190108T000000_20190317T000000.bsp",
kernels .. "/OrbitalA_600s_20181203T230000_20190109T000000.bsp",
kernels .. "/OrbitalA_NominalProfile_600s_20181203T230000_20190109T000000.bc",
kernels .. "/OrbitalB_600s_20190316T000000_20190521T000000.bsp",
kernels .. "/DetailedSurvey_NominalProfile_600s_20190108T000000_20190317T000000.bc",
kernels .. "/OrbitalB_NominalProfile600s_20190316T000000_20190521T000000.bc",
kernels .. "/PrelimSurvey_600s_20181119T230000_20181204T010000.bsp",
kernels .. "/PrelimSurvey_NominalProfile_600s_20181119T230000_20181204T010000.bc",
kernels .. "/Recon_600s_20190519T000000_20190830T000000.bsp",
kernels .. "/Recon_NominalProfile_600s_20190519T000000_20190830T000000.bc",
-- Nominal_Observations_Science
kernels .. "/Phase03_AP_DustSearch_1.bc",
kernels .. "/Phase03_AP_LightCurve_1.bc",
kernels .. "/Phase03_AP_LightCurve_2.bc",
kernels .. "/Phase03_AP_SatSearch_1.bc",
kernels .. "/Phase03_AP_SatSearch_2.bc",
kernels .. "/Phase03_AP_PhaseFunction_1.bc",
kernels .. "/Phase03_AP_ShapeModel_1.bc",
kernels .. "/Phase03_AP_ShapeModel_2.bc",
kernels .. "/Phase03_AP_ShapeModel_3.bc",
kernels .. "/Phase03_AP_ShapeModel_4.bc",
kernels .. "/Phase03_AP_ShapeModel_5.bc",
kernels .. "/Phase03_AP_ShapeModel_6.bc",
kernels .. "/Phase03_AP_ShapeModel_7.bc",
kernels .. "/Phase03_AP_ShapeModel_8.bc",
kernels .. "/Phase03_AP_ShapeModel_9_Forced4x4.bc",
kernels .. "/Phase03_AP_SpectraMap_1.bc",
kernels .. "/Phase04_PS_MC_1_v1_1a.bc",
kernels .. "/Phase04_PS_MC_2_v1_1a.bc",
kernels .. "/Phase04_PS_OLA_Nominal_1.bc",
kernels .. "/Phase04_PS_OLA_Nominal_2.bc",
kernels .. "/Phase04_PS_OLA_Nominal_3.bc",
kernels .. "/Phase04_PS_OLA_Nominal_4.bc",
kernels .. "/Phase04_PS_PolyCam_1.bc",
kernels .. "/Phase04_PS_PolyCam_2.bc",
kernels .. "/Phase04_PS_PolyCam_3.bc",
kernels .. "/Phase04_PS_PolyCam_4.bc",
kernels .. "/Phase04_PS_PolyCam_5.bc",
kernels .. "/Phase04_PS_PolyCam_6.bc",
--openspace.spice.loadKernel(kernels .. "/OsirisRexKernels/Nominal_Observations_Science/06_DetailedSurvey/BaseballDiamond_v2/atl_19013_18_BBD1_info.TXT")
--openspace.spice.loadKernel(kernels .. "/OsirisRexKernels/Nominal_Observations_Science/06_DetailedSurvey/BaseballDiamond_v2/atl_19014_16_BBD2_info.TXT")
--openspace.spice.loadKernel(kernels .. "/OsirisRexKernels/Nominal_Observations_Science/06_DetailedSurvey/BaseballDiamond_v2/atl_19020_18_BBD3_info.TXT")
--openspace.spice.loadKernel(kernels .. "/OsirisRexKernels/Nominal_Observations_Science/06_DetailedSurvey/BaseballDiamond_v2/atl_19021_19_BBD4_info.TXT")
--openspace.spice.loadKernel(kernels .. "/OsirisRexKernels/Nominal_Observations_Science/06_DetailedSurvey/BaseballDiamond_v2/README.txt")
kernels .. "/atl_19013_18_BBD1_v2.bc",
kernels .. "/atl_19014_16_BBD2_v2.bc",
kernels .. "/atl_19020_18_BBD3_v2.bc",
kernels .. "/atl_19021_19_BBD4_v2.bc",
kernels .. "/Phase06_DS_Equatorial_Stations_1.bc",
kernels .. "/Phase06_DS_Equatorial_Stations_2.bc",
kernels .. "/Phase06_DS_Equatorial_Stations_3.bc",
kernels .. "/Phase06_DS_Equatorial_Stations_4.bc",
kernels .. "/Phase06_DS_Equatorial_Stations_5.bc",
kernels .. "/Phase06_DS_Equatorial_Stations_6.bc",
kernels .. "/Phase06_DS_Equatorial_Stations_7.bc",
kernels .. "/Phase06_DS_Plume_Search_1.bc",
kernels .. "/Phase06_DS_Plume_Search_2.bc",
kernels .. "/Phase07_OB_CSS_Mapping_1.bc",
kernels .. "/Phase07_OB_CSS_Mapping_2.bc",
kernels .. "/Phase07_OB_CSS_Mapping_3.bc",
kernels .. "/CSS_Mapping_1.a",
kernels .. "/CSS_Mapping_2.a",
kernels .. "/CSS_Mapping_3.a",
--openspace.spice.loadKernel(kernels .. "/Case02_0Latitude.wmv")
--openspace.spice.loadKernel(kernels .. "/Case05_20negLatitude.wmv")
--openspace.spice.loadKernel(kernels .. "/Case08_40negLatitude.wmv")
--openspace.spice.loadKernel(kernels .. "/Case11_60negLatitude.wmv")
}
local LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
},
{
Identifier = "Camera",
Type = "CameraLightSource",
Intensity = 0.5
}
}
-- Append the CaseDependentKernels at the end of the OsirisRexKernels set
for i = 0, #CaseDependentKernels do
OsirisRexKernels[#OsirisRexKernels + 1] = CaseDependentKernels[i]
end
local OsirisRex = {
Identifier = "OsirisRex",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "OSIRIS-REX",
Observer = "SUN",
Kernels = OsirisRexKernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "ORX_SPACECRAFT",
DestinationFrame = "GALACTIC"
},
},
Renderable = {
Type = "RenderableModel",
Body = "OSIRIS-REX",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/orx_base_resized_12_sep_2016.obj"
},
ColorTexture = textures .. "/osirisTex.png",
LightSources = LightSources
},
GUI = {
Name = "OSIRIS REx",
Path = "/Solar System/Missions/OSIRIS REx"
}
}
local PolyCam = {
Identifier = "ORX_OCAMS_POLYCAM",
Parent = OsirisRex.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { -0.2476, 0.2710, 0.3364 }
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "ORX_OCAMS_POLYCAM",
DestinationFrame = "ORX_SPACECRAFT"
}
},
Renderable = {
Type = "RenderableModel",
Body = "OSIRIS-REX",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/orx_polycam_resized_12_sep_2016.obj"
},
ColorTexture = textures .. "/osirisTex.png",
LightSources = LightSources
},
GUI = {
Name = "OCAMS POLYCAM",
Path = "/Solar System/Missions/OSIRIS REx/Instruments"
}
}
local Rexis = {
Identifier = "ORX_REXIS",
Parent = OsirisRex.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "OSIRIS-REX",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/orx_rexis_resized_12_sep_2016.obj"
},
ColorTexture = textures .. "/osirisTex.png",
LightSources = LightSources
},
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0, 0.3371, 0.2712 }
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "ORX_REXIS",
DestinationFrame = "ORX_SPACECRAFT"
},
},
GUI = {
Name = "REXIS",
Path = "/Solar System/Missions/OSIRIS REx/Instruments"
}
}
local PolyCamFov = {
Identifier = "POLYCAM FOV",
Parent = PolyCam.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "OSIRIS-REX",
Frame = "ORX_OCAMS_POLYCAM",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "ORX_OCAMS_POLYCAM",
Method = "ELLIPSOID",
Aberration = "NONE"
},
PotentialTargets = { BENNU_BODY }
},
GUI = {
Name = "POLYCAM FOV",
Path = "/Solar System/Missions/OSIRIS REx/Instruments"
}
}
local RexisFov = {
Identifier = "REXIS FOV",
Parent = Rexis.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "OSIRIS-REX",
Frame = "ORX_REXIS",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "ORX_REXIS",
Method = "ELLIPSOID",
Aberration = "NONE"
},
PotentialTargets = { BENNU_BODY },
FrameConversions = {
[BENNU_BODY] = "IAU_BENNU"
}
},
GUI = {
Name = "REXIS FOV",
Path = "/Solar System/Missions/OSIRIS REx/Instruments"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
OsirisRex,
PolyCam,
Rexis,
PolyCamFov,
RexisFov
})

View File

@@ -1,16 +0,0 @@
asset.request('./bennu')
asset.request('./model')
asset.request('./trail')
asset.require('./script_schedule')
local mission = asset.localResource('osirisrex.mission')
local missionName
asset.onInitialize(function()
missionName = openspace.loadMission(mission)
end)
asset.onDeinitialize(function()
openspace.unloadMission(missionName)
end)

View File

@@ -1,386 +0,0 @@
--[[
References:
[1] Source : http://www.asteroidmission.org/about-mission/
Date : 2016-08-23
Comment : Precision is not even month - it just defines the overall mission approach
[2] Source : http://brinktest.lpl.arizona.edu/mission/
Date : 2016-08-23
Comment : Data taken from text descriptions of the visualizations. There is a little time bar up
in the upper right corner.
[3] Source : SPICE kernel data coverage
Date : 2016-08-23
Comment : The spice data is split up into across different files. These files
seems to represent different phases. A script was used to extract the
SPICE coverage from all .bc files and use the names of the files as
mission names and associate the name with the time coverage.
Script used: support/mission/ckbrief2mission.js
[4] Source : Visual interpretation of SPICE kernel data coverage
Date : 2016-08-23
Comment : Based on observation of the visualized spice data through OpenSpace.
--]]
return {
Name = "OSIRIS-REx",
Phases = {
-- All 1-level phases based on [1]
{
Name = "Planning and Fabrication",
TimeRange = { Start = "2012 JAN 01 00:00:00", End = "2016 SEP 08 23:05:00" }
},
{
Name = "Outbound Cruise",
TimeRange = { Start = "2016 SEP 03 00:00:00", End = "2018 SEP 01 01:00:00" },
Phases = {
-- Phases from [4]
{
Name = "Pre Launch",
TimeRange = { Start = "2016 SEP 03 01:00:00", End = "2016 SEP 08 23:05:05" }
},
{
Name = "Launch", TimeRange = { Start = "2016 SEP 08 23:05:05", End = "2016 SEP 08 23:09:00" }
},
{
Name = "Earth Orbit", TimeRange = { Start = "2016 SEP 08 23:09:00", End = "2016 SEP 08 23:45:00" }
},
{
Name = "Solar Orbit", TimeRange = { Start = "2016 SEP 08 23:45:00", End = "2018 SEP 01 00:00:00" }
},
{
Name = "Upcoming Gravity Assist", TimeRange = { Start = "2017 JAN 22 15:00:00", End = "2017 SEP 22 15:00:00" }
},
{
Name = "Gravity Assist", TimeRange = { Start = "2017 SEP 22 15:00:00", End = "2017 SEP 22 21:00:00" }
}
}
},
{
Name = "Asteroid Operations",
Phases = {
-- Nested Levels from [3]
{
Name = "03_Approach", Phases = {
{
Name = "DustSearch_v1",
Phases = {
{
Name = "Phase03_AP_DustSearch_1.bc",
TimeRange = { Start = "2018-SEP-11 21:31:01.183", End = "2018-SEP-12 02:18:41.183" }
}
}
},
{
Name = "LightCurve_v1",
Phases = {
{
Name = "Phase03_AP_LightCurve_1.bc",
TimeRange = { Start = "2018-OCT-09 21:50:48.182", End = "2018-OCT-10 02:33:16.183" }
},
{
Name = "Phase03_AP_LightCurve_2.bc",
TimeRange = { Start = "2018-OCT-10 21:50:48.182", End = "2018-OCT-11 02:33:16.183" }
}
}
},
{
Name = "NatSatSearch_v1",
Phases = {
{
Name = "Phase03_AP_SatSearch_1.bc",
TimeRange = { Start = "2018-OCT-26 19:38:30.183", End = "2018-OCT-27 00:22:34.183" }
},
{
Name = "Phase03_AP_SatSearch_2.bc",
TimeRange = { Start = "2018-NOV-05 17:10:20.183", End = "2018-NOV-05 21:59:48.183" }
}
}
},
{
Name = "PhaseFunction_v1",
Phases = {
{
Name = "Phase03_AP_PhaseFunction_1.bc",
TimeRange = { Start = "2018-OCT-12 21:42:26.183", End = "2018-OCT-13 02:24:54.183" }
}
}
},
{
Name = "ShapeModel_v1", Phases = {
{
Name = "Phase03_AP_ShapeModel_1.bc",
TimeRange = { Start = "2018-NOV-09 11:02:59.183", End = "2018-NOV-09 15:52:27.183" }
},
{
Name = "Phase03_AP_ShapeModel_2.bc",
TimeRange = { Start = "2018-NOV-10 11:02:59.183", End = "2018-NOV-10 15:52:27.183" }
},
{
Name = "Phase03_AP_ShapeModel_3.bc",
TimeRange = { Start = "2018-NOV-11 11:02:59.183", End = "2018-NOV-11 15:52:27.183" }
},
{
Name = "Phase03_AP_ShapeModel_4.bc",
TimeRange = { Start = "2018-NOV-12 11:02:59.183", End = "2018-NOV-12 15:52:27.183" }
},
{
Name = "Phase03_AP_ShapeModel_5.bc",
TimeRange = { Start = "2018-NOV-13 11:02:59.183", End = "2018-NOV-13 15:52:27.183" }
},
{
Name = "Phase03_AP_ShapeModel_6.bc",
TimeRange = { Start = "2018-NOV-14 11:03:53.183", End = "2018-NOV-14 15:51:33.183" }
},
{
Name = "Phase03_AP_ShapeModel_7.bc",
TimeRange = { Start = "2018-NOV-15 11:03:53.183", End = "2018-NOV-15 15:51:33.183" }
},
{
Name = "Phase03_AP_ShapeModel_8.bc",
TimeRange = { Start = "2018-NOV-16 11:03:53.183", End = "2018-NOV-16 15:51:33.183" }
},
{
Name = "Phase03_AP_ShapeModel_9_Forced4x4.bc",
TimeRange = { Start = "2018-NOV-17 11:03:54.183", End = "2018-NOV-17 15:51:34.183" }
}
}
},
{
Name = "SpectraMap_v1",
Phases = {
{
Name = "Phase03_AP_SpectraMap_1.bc",
TimeRange = { Start = "2018-OCT-30 20:44:53.183", End = "2018-OCT-31 01:34:21.183" }
}
}
}
}
},
{
Name = "04_PrelimSurvey",
Phases = {
{
Name = "MapCamOLA_v1",
Phases = {
{
Name = "Phase04_PS_MC_1_v1_1a.bc",
TimeRange = { Start = "2018-NOV-20 01:13:12.183", End = "2018-NOV-20 06:13:04.183" }
},
{
Name = "Phase04_PS_MC_2_v1_1a.bc",
TimeRange = { Start = "2018-NOV-28 01:13:12.183", End = "2018-NOV-28 06:13:04.183" }
}
}
},
{
Name = "OLA_v1",
Phases = {
{
Name = "Phase04_PS_OLA_Nominal_1.bc",
TimeRange = { Start = "2018-NOV-19 22:30:00.184", End = "2018-NOV-19 23:19:28.183" }
},
{
Name = "Phase04_PS_OLA_Nominal_2.bc",
TimeRange = { Start = "2018-NOV-23 22:19:34.184", End = "2018-NOV-23 23:19:26.183" }
},
{
Name = "Phase04_PS_OLA_Nominal_3.bc",
TimeRange = { Start = "2018-NOV-24 00:48:38.184", End = "2018-NOV-24 01:38:06.184" }
},
{
Name = "Phase04_PS_OLA_Nominal_4.bc",
TimeRange = { Start = "2018-NOV-27 22:29:58.184", End = "2018-NOV-27 23:19:26.183" }
}
}
},
{
Name = "PolyCam_v1",
Phases = {
{
Name = "Phase04_PS_PolyCam_1.bc",
TimeRange = { Start = "2018-NOV-19 12:00:33.183", End = "2018-NOV-19 16:46:25.183" }
},
{
Name = "Phase04_PS_PolyCam_2.bc",
TimeRange = { Start = "2018-NOV-20 07:10:26.183", End = "2018-NOV-20 12:10:18.183" }
},
{
Name = "Phase04_PS_PolyCam_3.bc",
TimeRange = { Start = "2018-NOV-23 11:51:29.184", End = "2018-NOV-23 16:51:21.184" }
},
{
Name = "Phase04_PS_PolyCam_4.bc",
TimeRange = { Start = "2018-NOV-24 07:17:39.184", End = "2018-NOV-24 12:03:31.184" }
},
{
Name = "Phase04_PS_PolyCam_5.bc",
TimeRange = { Start = "2018-NOV-27 12:00:20.184", End = "2018-NOV-27 16:46:12.184" }
},
{
Name = "Phase04_PS_PolyCam_6.bc",
TimeRange = { Start = "2018-NOV-28 07:10:35.183", End = "2018-NOV-28 12:10:27.183" }
}
}
},
}
},
{
Name = "06_DetailedSurvey",
Phases = {
{
Name = "BaseballDiamond_v2",
Phases = {
{
Name = "atl_19013_18_BBD1_v2.bc",
TimeRange = { Start = "2019-JAN-13 18:59:31.195", End = "2019-JAN-13 23:59:29.179" }
},
{
Name = "atl_19014_16_BBD2_v2.bc",
TimeRange = { Start = "2019-JAN-14 16:56:01.185", End = "2019-JAN-14 21:55:58.219" }
},
{
Name = "atl_19020_18_BBD3_v2.bc",
TimeRange = { Start = "2019-JAN-20 18:59:15.211", End = "2019-JAN-20 23:59:13.195" }
},
{
Name = "atl_19021_19_BBD4_v2.bc",
TimeRange = { Start = "2019-JAN-21 19:26:47.179", End = "2019-JAN-22 00:26:44.213" }
}
}
},
{
Name = "EquatorialStations_v1",
Phases = {
{
Name = "Phase06_DS_Equatorial_Stations_1.bc",
TimeRange = { Start = "2019-JAN-27 10:36:24.185", End = "2019-JAN-27 15:20:28.185" }
},
{
Name = "Phase06_DS_Equatorial_Stations_2.bc",
TimeRange = { Start = "2019-FEB-03 10:35:30.185", End = "2019-FEB-03 15:21:22.185" }
},
{
Name = "Phase06_DS_Equatorial_Stations_3.bc",
TimeRange = { Start = "2019-FEB-10 10:51:50.185", End = "2019-FEB-10 15:51:42.185" }
},
{
Name = "Phase06_DS_Equatorial_Stations_4.bc",
TimeRange = { Start = "2019-FEB-17 10:29:11.186", End = "2019-FEB-17 15:29:03.186" }
},
{
Name = "Phase06_DS_Equatorial_Stations_5.bc",
TimeRange = { Start = "2019-FEB-24 10:08:28.186", End = "2019-FEB-24 15:08:20.185" }
},
{
Name = "Phase06_DS_Equatorial_Stations_6.bc",
TimeRange = { Start = "2019-MAR-03 09:52:58.186", End = "2019-MAR-03 14:42:26.186" }
},
{
Name = "Phase06_DS_Equatorial_Stations_7.bc",
TimeRange = { Start = "2019-MAR-10 09:57:47.186", End = "2019-MAR-10 14:36:33.186" }
}
}
},
{
Name = "PlumeSearch_v1",
Phases = {
{
Name = "Phase06_DS_Plume_Search_1.bc",
TimeRange = { Start = "2019-JAN-28 10:34:36.185", End = "2019-JAN-28 15:22:16.185" }
},
{
Name = "Phase06_DS_Plume_Search_2.bc",
TimeRange = { Start = "2019-FEB-18 10:29:11.186", End = "2019-FEB-18 15:29:03.186" }
}
}
}
}
},
{
Name = "07_OrbitalB",
Phases = {
{
Name = "CandidateSampleSite_v1",
Phases = {
{
Name = "Phase07_OB_CSS_Mapping_1.bc",
TimeRange = { Start = "2019-APR-08 10:35:27.186", End = "2019-APR-08 15:22:06.186" }
},
{
Name = "Phase07_OB_CSS_Mapping_2.bc",
TimeRange = { Start = "2019-APR-08 16:16:06.186", End = "2019-APR-11 10:38:58.186" }
},
{
Name = "Phase07_OB_CSS_Mapping_3.bc",
TimeRange = { Start = "2019-APR-22 17:51:23.186", End = "2019-APR-29 19:41:03.186" }
}
}
}
}
},
{
Name = "08_Recon",
Phases = {
{
Name = "225m_Sortie_v2",
Phases = {
{
Name = "Recon_225mSortie_Case02_0Latitude.bc",
TimeRange = { Start = "2019-MAY-25 03:50:31.195", End = "2019-MAY-25 04:32:17.227" }
},
{
Name = "Recon_225mSortie_Case05_20negLatitude.bc",
TimeRange = { Start = "2019-MAY-25 03:50:48.216", End = "2019-MAY-25 04:37:10.209" }
},
{
Name = "Recon_225mSortie_Case08_40negLatitude.bc",
TimeRange = { Start = "2019-MAY-25 04:02:43.176", End = "2019-MAY-25 04:54:41.179" }
},
{
Name = "Recon_225mSortie_Case11_60negLatitude.bc",
TimeRange = { Start = "2019-MAY-25 04:21:46.161", End = "2019-MAY-25 05:18:44.232" }
}
}
},
{
Name = "525m_Sortie_v2",
Phases = {
{
Name = "Recon_525mSortie_Case02_0Latitude.bc",
TimeRange = { Start = "2019-MAY-25 04:06:39.220", End = "2019-MAY-25 04:44:17.198" }
},
{
Name = "Recon_525mSortie_Case05_20negLatitude.bc",
TimeRange = { Start = "2019-MAY-25 04:11:39.201", End = "2019-MAY-25 04:49:37.224" }
},
{
Name = "Recon_525mSortie_Case05_NominalProfile.bc",
TimeRange = { Start = "2019-MAY-25 03:01:50.184", End = "2019-MAY-25 06:38:50.232" }
},
{
Name = "Recon_525mSortie_Case08_NominalProfile.bc",
TimeRange = { Start = "2019-MAY-25 03:01:50.184", End = "2019-MAY-25 06:38:50.232" }
}
}
}
}
}
-- End of [3]
}
},
{
Name = "Backup Time",
TimeRange = { Start = "2020 JAN 01 00:00:00", End = "2021 JAN 01 00:00:00" }
},
{
Name = "Return Cruise",
TimeRange = { Start = "2021 JAN 01 00:00:00", End = "2023 SEP 20 00:00:00"}
},
-- Not too interesting in terms of space visualization --> out commented
-- { Name = "Sample Analysis", TimeRange = { Start = "2023 JAN 01 00:00:00", End = "2025 JUN 01 00:00:00" } },
-- End of [1]
}
}

View File

@@ -1,18 +0,0 @@
local scriptSchedulerHelper = asset.require('util/script_scheduler_helper')
asset.onInitialize(function ()
scriptSchedulerHelper.scheduleRenderableEnabled("2016 SEP 08 23:05:00", "Scene.OsirisRexTrailSolarSystem", false)
scriptSchedulerHelper.scheduleRenderableEnabled("2016 SEP 08 23:05:00", "Scene.OsirisRexTrailBennu", false)
scriptSchedulerHelper.scheduleRenderableEnabledReversable("2016 SEP 08 23:05:01", "Scene.OsirisRexTrailEarth", true)
scriptSchedulerHelper.scheduleRenderableEnabledReversable("2016 SEP 09 00:00:00", "Scene.OsirisRexTrailSolarSystem", true)
scriptSchedulerHelper.scheduleRenderableEnabledReversable("2016 SEP 09 02:00:00", "Scene.OsirisRexTrailEarth", false)
scriptSchedulerHelper.scheduleRenderableEnabledReversable("2018 OCT 11 00:00:00", "Scene.OsirisRexTrailBennu", true)
scriptSchedulerHelper.scheduleRenderableEnabledReversable("2018 OCT 15 00:00:00", "Scene.OsirisRexTrailSolarSystem", false)
scriptSchedulerHelper.scheduleRenderableEnabledReversable("2019 AUG 01 00:00:00", "Scene.OsirisRexTrailSolarSystem", true)
scriptSchedulerHelper.scheduleRenderableEnabledReversable("2019 AUG 01 00:00:00", "Scene.OsirisRexTrailBennu", false)
end)
asset.onDeinitialize(function ()
openspace.scriptScheduler.clear()
end)

View File

@@ -1,95 +0,0 @@
return
{ Name = "Nominal_Observations_Science", Phases = {
{ Name = "03_Approach", Phases = {
{ Name = "DustSearch_v1", Phases = {
{ Name = "Phase03_AP_DustSearch_1.bc", TimeRange = { Start = "2018-SEP-11 21:31:01.183", End = "2018-SEP-12 02:18:41.183" }},
}},
{ Name = "LightCurve_v1", Phases = {
{ Name = "Phase03_AP_LightCurve_1.bc", TimeRange = { Start = "2018-OCT-09 21:50:48.182", End = "2018-OCT-10 02:33:16.183" }},
{ Name = "Phase03_AP_LightCurve_2.bc", TimeRange = { Start = "2018-OCT-10 21:50:48.182", End = "2018-OCT-11 02:33:16.183" }},
}},
{ Name = "NatSatSearch_v1", Phases = {
{ Name = "Phase03_AP_SatSearch_1.bc", TimeRange = { Start = "2018-OCT-26 19:38:30.183", End = "2018-OCT-27 00:22:34.183" }},
{ Name = "Phase03_AP_SatSearch_2.bc", TimeRange = { Start = "2018-NOV-05 17:10:20.183", End = "2018-NOV-05 21:59:48.183" }},
}},
{ Name = "PhaseFunction_v1", Phases = {
{ Name = "Phase03_AP_PhaseFunction_1.bc", TimeRange = { Start = "2018-OCT-12 21:42:26.183", End = "2018-OCT-13 02:24:54.183" }},
}},
{ Name = "ShapeModel_v1", Phases = {
{ Name = "Phase03_AP_ShapeModel_1.bc", TimeRange = { Start = "2018-NOV-09 11:02:59.183", End = "2018-NOV-09 15:52:27.183" }},
{ Name = "Phase03_AP_ShapeModel_2.bc", TimeRange = { Start = "2018-NOV-10 11:02:59.183", End = "2018-NOV-10 15:52:27.183" }},
{ Name = "Phase03_AP_ShapeModel_3.bc", TimeRange = { Start = "2018-NOV-11 11:02:59.183", End = "2018-NOV-11 15:52:27.183" }},
{ Name = "Phase03_AP_ShapeModel_4.bc", TimeRange = { Start = "2018-NOV-12 11:02:59.183", End = "2018-NOV-12 15:52:27.183" }},
{ Name = "Phase03_AP_ShapeModel_5.bc", TimeRange = { Start = "2018-NOV-13 11:02:59.183", End = "2018-NOV-13 15:52:27.183" }},
{ Name = "Phase03_AP_ShapeModel_6.bc", TimeRange = { Start = "2018-NOV-14 11:03:53.183", End = "2018-NOV-14 15:51:33.183" }},
{ Name = "Phase03_AP_ShapeModel_7.bc", TimeRange = { Start = "2018-NOV-15 11:03:53.183", End = "2018-NOV-15 15:51:33.183" }},
{ Name = "Phase03_AP_ShapeModel_8.bc", TimeRange = { Start = "2018-NOV-16 11:03:53.183", End = "2018-NOV-16 15:51:33.183" }},
{ Name = "Phase03_AP_ShapeModel_9_Forced4x4.bc", TimeRange = { Start = "2018-NOV-17 11:03:54.183", End = "2018-NOV-17 15:51:34.183" }},
}},
{ Name = "SpectraMap_v1", Phases = {
{ Name = "Phase03_AP_SpectraMap_1.bc", TimeRange = { Start = "2018-OCT-30 20:44:53.183", End = "2018-OCT-31 01:34:21.183" }},
}},
}},
{ Name = "04_PrelimSurvey", Phases = {
{ Name = "MapCamOLA_v1", Phases = {
{ Name = "Phase04_PS_MC_1_v1_1a.bc", TimeRange = { Start = "2018-NOV-20 01:13:12.183", End = "2018-NOV-20 06:13:04.183" }},
{ Name = "Phase04_PS_MC_2_v1_1a.bc", TimeRange = { Start = "2018-NOV-28 01:13:12.183", End = "2018-NOV-28 06:13:04.183" }},
}},
{ Name = "OLA_v1", Phases = {
{ Name = "Phase04_PS_OLA_Nominal_1.bc", TimeRange = { Start = "2018-NOV-19 22:30:00.184", End = "2018-NOV-19 23:19:28.183" }},
{ Name = "Phase04_PS_OLA_Nominal_2.bc", TimeRange = { Start = "2018-NOV-23 22:19:34.184", End = "2018-NOV-23 23:19:26.183" }},
{ Name = "Phase04_PS_OLA_Nominal_3.bc", TimeRange = { Start = "2018-NOV-24 00:48:38.184", End = "2018-NOV-24 01:38:06.184" }},
{ Name = "Phase04_PS_OLA_Nominal_4.bc", TimeRange = { Start = "2018-NOV-27 22:29:58.184", End = "2018-NOV-27 23:19:26.183" }},
}},
{ Name = "PolyCam_v1", Phases = {
{ Name = "Phase04_PS_PolyCam_1.bc", TimeRange = { Start = "2018-NOV-19 12:00:33.183", End = "2018-NOV-19 16:46:25.183" }},
{ Name = "Phase04_PS_PolyCam_2.bc", TimeRange = { Start = "2018-NOV-20 07:10:26.183", End = "2018-NOV-20 12:10:18.183" }},
{ Name = "Phase04_PS_PolyCam_3.bc", TimeRange = { Start = "2018-NOV-23 11:51:29.184", End = "2018-NOV-23 16:51:21.184" }},
{ Name = "Phase04_PS_PolyCam_4.bc", TimeRange = { Start = "2018-NOV-24 07:17:39.184", End = "2018-NOV-24 12:03:31.184" }},
{ Name = "Phase04_PS_PolyCam_5.bc", TimeRange = { Start = "2018-NOV-27 12:00:20.184", End = "2018-NOV-27 16:46:12.184" }},
{ Name = "Phase04_PS_PolyCam_6.bc", TimeRange = { Start = "2018-NOV-28 07:10:35.183", End = "2018-NOV-28 12:10:27.183" }},
}},
}},
{ Name = "06_DetailedSurvey", Phases = {
{ Name = "BaseballDiamond_v2", Phases = {
{ Name = "atl_19013_18_BBD1_v2.bc", TimeRange = { Start = "2019-JAN-13 18:59:31.195", End = "2019-JAN-13 23:59:29.179" }},
{ Name = "atl_19014_16_BBD2_v2.bc", TimeRange = { Start = "2019-JAN-14 16:56:01.185", End = "2019-JAN-14 21:55:58.219" }},
{ Name = "atl_19020_18_BBD3_v2.bc", TimeRange = { Start = "2019-JAN-20 18:59:15.211", End = "2019-JAN-20 23:59:13.195" }},
{ Name = "atl_19021_19_BBD4_v2.bc", TimeRange = { Start = "2019-JAN-21 19:26:47.179", End = "2019-JAN-22 00:26:44.213" }},
}},
{ Name = "EquatorialStations_v1", Phases = {
{ Name = "Phase06_DS_Equatorial_Stations_1.bc", TimeRange = { Start = "2019-JAN-27 10:36:24.185", End = "2019-JAN-27 15:20:28.185" }},
{ Name = "Phase06_DS_Equatorial_Stations_2.bc", TimeRange = { Start = "2019-FEB-03 10:35:30.185", End = "2019-FEB-03 15:21:22.185" }},
{ Name = "Phase06_DS_Equatorial_Stations_3.bc", TimeRange = { Start = "2019-FEB-10 10:51:50.185", End = "2019-FEB-10 15:51:42.185" }},
{ Name = "Phase06_DS_Equatorial_Stations_4.bc", TimeRange = { Start = "2019-FEB-17 10:29:11.186", End = "2019-FEB-17 15:29:03.186" }},
{ Name = "Phase06_DS_Equatorial_Stations_5.bc", TimeRange = { Start = "2019-FEB-24 10:08:28.186", End = "2019-FEB-24 15:08:20.185" }},
{ Name = "Phase06_DS_Equatorial_Stations_6.bc", TimeRange = { Start = "2019-MAR-03 09:52:58.186", End = "2019-MAR-03 14:42:26.186" }},
{ Name = "Phase06_DS_Equatorial_Stations_7.bc", TimeRange = { Start = "2019-MAR-10 09:57:47.186", End = "2019-MAR-10 14:36:33.186" }},
}},
{ Name = "PlumeSearch_v1", Phases = {
{ Name = "Phase06_DS_Plume_Search_1.bc", TimeRange = { Start = "2019-JAN-28 10:34:36.185", End = "2019-JAN-28 15:22:16.185" }},
{ Name = "Phase06_DS_Plume_Search_2.bc", TimeRange = { Start = "2019-FEB-18 10:29:11.186", End = "2019-FEB-18 15:29:03.186" }},
}},
}},
{ Name = "07_OrbitalB", Phases = {
{ Name = "CandidateSampleSite_v1", Phases = {
{ Name = "Phase07_OB_CSS_Mapping_1.bc", TimeRange = { Start = "2019-APR-08 10:35:27.186", End = "2019-APR-08 15:22:06.186" }},
{ Name = "Phase07_OB_CSS_Mapping_2.bc", TimeRange = { Start = "2019-APR-08 16:16:06.186", End = "2019-APR-11 10:38:58.186" }},
{ Name = "Phase07_OB_CSS_Mapping_3.bc", TimeRange = { Start = "2019-APR-22 17:51:23.186", End = "2019-APR-29 19:41:03.186" }},
}},
}},
{ Name = "08_Recon", Phases = {
{ Name = "225m_Sortie_v2", Phases = {
{ Name = "Recon_225mSortie_Case02_0Latitude.bc", TimeRange = { Start = "2019-MAY-25 03:50:31.195", End = "2019-MAY-25 04:32:17.227" }},
{ Name = "Recon_225mSortie_Case05_20negLatitude.bc", TimeRange = { Start = "2019-MAY-25 03:50:48.216", End = "2019-MAY-25 04:37:10.209" }},
{ Name = "Recon_225mSortie_Case08_40negLatitude.bc", TimeRange = { Start = "2019-MAY-25 04:02:43.176", End = "2019-MAY-25 04:54:41.179" }},
{ Name = "Recon_225mSortie_Case11_60negLatitude.bc", TimeRange = { Start = "2019-MAY-25 04:21:46.161", End = "2019-MAY-25 05:18:44.232" }},
}},
{ Name = "525m_Sortie_v2", Phases = {
{ Name = "Recon_525mSortie_Case02_0Latitude.bc", TimeRange = { Start = "2019-MAY-25 04:06:39.220", End = "2019-MAY-25 04:44:17.198" }},
{ Name = "Recon_525mSortie_Case05_20negLatitude.bc", TimeRange = { Start = "2019-MAY-25 04:11:39.201", End = "2019-MAY-25 04:49:37.224" }},
{ Name = "Recon_525mSortie_Case05_NominalProfile.bc", TimeRange = { Start = "2019-MAY-25 03:01:50.184", End = "2019-MAY-25 06:38:50.232" }},
{ Name = "Recon_525mSortie_Case08_NominalProfile.bc", TimeRange = { Start = "2019-MAY-25 03:01:50.184", End = "2019-MAY-25 06:38:50.232" }},
}},
}},
}}

View File

@@ -1,80 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('./transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms')
local BENNU_BODY = "2101955"
local OsirisRexTrailEarth = {
Identifier = "OsirisRexTrailEarth",
Parent = earthTransforms.EarthIAU.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "OSIRIS-REX",
Frame = "IAU_EARTH",
Observer = "EARTH"
},
Color = { 0.9, 0.9, 0.0 },
StartTime = "2016 SEP 8 23:05:00.50",
EndTime = "2016 SEP 9 00:05:00",
SampleInterval = 60
},
GUI = {
Name = "OSIRIS REx Trail Earth",
Path = "/Solar System/Missions/OSIRIS REx"
}
}
local OsirisRexTrailSolarSystem = {
Identifier = "OsirisRexTrailSolarSystem",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "OSIRIS-REX",
Observer = "SUN"
},
Color = { 0.2, 0.9, 0.2 },
StartTime = "2016 SEP 8 23:05:00.50",
EndTime = "2023 SEP 24 12:00:00",
SampleInterval = 3600
},
GUI = {
Name = "OSIRIS REx Trail Solar System",
Path = "/Solar System/Missions/OSIRIS REx"
}
}
local OsirisRexTrailBennu = {
Identifier = "OsirisRexTrailBennu",
Parent = transforms.BennuBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "OSIRIS-REX",
Observer = BENNU_BODY
},
Color = { 0.9, 0.2, 0.9 },
StartTime = "2018 SEP 4 00:00:00",
EndTime = "2023 SEP 24 12:00:00",
SampleInterval = 3600
},
GUI = {
Name = "OSIRIS REx Trail Bennu",
Path = "/Solar System/Missions/OSIRIS REx"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
OsirisRexTrailEarth,
OsirisRexTrailSolarSystem,
OsirisRexTrailBennu
})

View File

@@ -1,26 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('scene/solarsystem/sun/transforms')
local BENNU_BODY = "2101955"
local BennuBarycenter = {
Identifier = "BennuBarycenter",
Parent = transforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = BENNU_BODY,
Observer = "SUN"
}
},
GUI = {
Name = "Bennu Barycenter",
Path = "/Solar System/Missions/OSIRIS REx"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { BennuBarycenter })

View File

@@ -1,75 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local modelFolder = asset.syncedResource({
Name = "Pioneer 10/11 Models",
Type = "HttpSynchronization",
Identifier = "pioneer_10_11_model",
Version = 2
})
local kernelsFolder = asset.syncedResource({
Name = "Pioneer Kernels",
Type = "HttpSynchronization",
Identifier = "pioneer_10_spice",
Version = 1
})
local kernelsList = {kernelsFolder .. '/p10-a.bsp'}
local Pioneer10NAIF = "-23"
local Pioneer10 = {
Identifier = "Pioneer10",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = Pioneer10NAIF,
Observer = "SUN",
Kernels = kernelsList
},
},
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = modelFolder .. "/Pioneer.obj"
},
ColorTexture = modelFolder .. "/gray.png",
LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier)
},
GUI = {
Name = "Pioneer 10",
Path = "/Solar System/Missions/Pioneer/10"
}
}
local Pioneer10Trail = {
Identifier = "Pioneer10Trail",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = Pioneer10NAIF,
Observer = "SUN",
Kernels = kernelsList
},
Color = { 0.70, 0.50, 0.20 },
StartTime = "1972 MAR 03 02:04:00",
EndTime = "1990 JAN 02 00:00:00",
EnableFade = false,
SampleInterval = 6545 * 2
-- 6545 is the number of days between the Start and End time (aka sample every 2d)
},
GUI = {
Name = "Pioneer 10 Trail",
Path = "/Solar System/Missions/Pioneer/10"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Pioneer10,
Pioneer10Trail,
})

View File

@@ -1,78 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local modelFolder = asset.syncedResource({
Name = "Pioneer 10/11 Models",
Type = "HttpSynchronization",
Identifier = "pioneer_10_11_model",
Version = 2
})
local kernelsFolder = asset.syncedResource({
Name = "Pioneer Kernels",
Type = "HttpSynchronization",
Identifier = "pioneer_11_spice",
Version = 1
})
local kernelsList = {
kernelsFolder .. '/p11-a.bsp',
kernelsFolder .. '/p11_sat336.bsp'
}
local Pioneer11NAIF = "-24"
local Pioneer11 = {
Identifier = "Pioneer_11",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = Pioneer11NAIF,
Observer = "SUN",
Kernels = kernelsList
},
},
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = modelFolder .. "/Pioneer.obj"
},
ColorTexture = modelFolder .. "/gray.png",
LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier)
},
GUI = {
Name = "Pioneer 11",
Path = "/Solar System/Missions/Pioneer/11"
}
}
local Pioneer11Trail = {
Identifier = "Pioneer11Trail",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = Pioneer11NAIF,
Observer = "SUN",
Kernels = kernelsList
},
Color = { 0.70, 0.50, 0.20 },
StartTime = "1973 APR 06 02:25:00.000",
EndTime = "1990 JAN 02 00:00:00.000",
EnableFade = false,
SampleInterval = 6087 * 2
--6087 is the number of days between the Start and End time (so sample every 2d)
},
GUI = {
Name = "Pioneer 11 Trail",
Path = "/Solar System/Missions/Pioneer/11"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Pioneer11,
Pioneer11Trail,
})

View File

@@ -1,154 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require('scene/solarsystem/sun/transforms')
local textures = asset.syncedResource({
Name = "67P Textures",
Type = "HttpSynchronization",
Identifier = "67p_textures",
Version = 2
})
local models = asset.syncedResource({
Name = "67P Models",
Type = "HttpSynchronization",
Identifier = "67p_models",
Version = 1
})
local images = asset.syncedResource({
Name = "Rosetta Images",
Type = "HttpSynchronization",
Identifier = "rosettaimages",
Version = 2
})
local imagesDestination = images .. "/images"
local Barycenter = {
Identifier = "67PBarycenter",
Parent = transforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "CHURYUMOV-GERASIMENKO",
Observer = "SUN"
}
},
GUI = {
Name = "67P Barycenter",
Path = "/Solar System/Comets/67P Churymov-Gerasimenko"
}
}
local Comet67P = {
Identifier = "67P",
Parent = Barycenter.Identifier,
Transform = {
Rotation = {
Type = "SpiceRotation",
SourceFrame = "67P/C-G_CK",
DestinationFrame = "GALACTIC"
}
},
Renderable = {
Type = "RenderableModelProjection",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/67P_rotated_5_130.obj"
},
ColorTexture = textures .. "/gray.jpg",
Projection = {
Sequence = { imagesDestination },
SequenceType = "image-sequence",
Observer = "ROSETTA",
Target = "CHURYUMOV-GERASIMENKO",
Aberration = "NONE",
TextureMap = true,
ShadowMap = true,
DataInputTranslation = {
Instrument = {
NAVCAM = {
DetectorType = "Camera",
Spice = { "ROS_NAVCAM-A" }
},
},
Target = {
Read = {
"TARGET_NAME",
"INSTRUMENT_HOST_NAME",
"INSTRUMENT_ID",
"START_TIME",
"STOP_TIME"
},
Convert = {
CHURYUMOV = { "CHURYUMOV-GERASIMENKO" },
ROSETTA = { "ROSETTA" },
["ROSETTA-ORBITER"] = { "ROSETTA" },
CHURYUMOVGERASIMENKO11969R1 = { "CHURYUMOV-GERASIMENKO" },
CHURYUMOVGERASIMENKO = { "CHURYUMOV-GERASIMENKO" },
["CHURYUMOV-GERASIMENKO1(1969R1)"] = { "CHURYUMOV-GERASIMENKO" },
CALIBRATION = { "CALIBRATION" },
ALPHALYR = { "ALPHALYR" },
ZETACAS = { "ZETACAS" }
}
}
},
Instrument = {
Name = "ROS_NAVCAM-A",
Method = "ELLIPSOID",
Aberration = "NONE",
Fovy = 5.00,
Aspect = 1
}
},
BoundingSphereRadius = 5000.0
},
GUI = {
Name = "67P Churymov-Gerasimenko",
Path = "/Solar System/Comets/67P Churymov-Gerasimenko"
}
}
local Trail67P = {
Identifier = "67PTrail",
Parent = transforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "CHURYUMOV-GERASIMENKO",
Observer = "SUN"
},
Color = { 0.1, 0.9, 0.2 },
StartTime = "2014 JAN 01 00:00:00.000",
EndTime = "2017 JAN 01 00:00:00.000",
SampleInterval = 3600
},
GUI = {
Name = "67P Trail",
Path = "/Solar System/Comets/67P Churymov-Gerasimenko"
}
}
asset.onInitialize(function()
if not openspace.directoryExists(imagesDestination) then
openspace.printInfo("Extracting Rosetta images")
openspace.unzipFile(images .. "/images_v1_v2.zip", imagesDestination, true)
end
end)
assetHelper.registerSceneGraphNodesAndExport(asset, {
Barycenter,
Comet67P,
Trail67P
})
asset.export("Barycenter", Barycenter)
asset.export("Comet67P", Comet67P)

View File

@@ -1,543 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local transforms = asset.require('./67p')
local textures = asset.syncedResource({
Name = "Rosetta Textures",
Type = "HttpSynchronization",
Identifier = "rosetta_textures",
Version = 2
})
local models = asset.syncedResource({
Name = "Rosetta Models",
Type = "HttpSynchronization",
Identifier = "rosetta_model",
Version = 3
})
local kernels = asset.syncedResource({
Name = "Rosetta Kernels",
Type = "HttpSynchronization",
Identifier = "rosetta_kernels",
Version = 1
})
local RosettaKernels = {
kernels .. "/ROS_160718_STEP.TSC",
kernels .. "/ros_triv.tsc",
kernels .. "/CORB_DV_243_01___T19_00325.BSP",
kernels .. "/CORB_DV_223_01___T19_00302.BSP",
kernels .. "/CORB_DV_145_01___T19_00216.BSP",
kernels .. "/LORB_DV_236_01___T19_00318.BSP",
kernels .. "/LORB_DV_223_01___T19_00302.BSP",
kernels .. "/LORB_DV_145_01___T19_00216.BSP",
kernels .. "/RORB_DV_243_01___T19_00325.BSP",
kernels .. "/RORB_DV_223_01___T19_00302.BSP",
kernels .. "/RORB_DV_145_01___T19_00216.BSP",
kernels .. "/ATNR_P040302093352_00127.BC",
kernels .. "/ROS_STRUCT_V5.BSP",
kernels .. "/ROS_NAVCAM_V01.TI",
kernels .. "/ROS_CHURYUMOV_V01.TF",
kernels .. "/ROS_V26.TF",
-- CK
-- Rosetta attitude
kernels .. "/RATT_DV_243_01_01____00325.BC",
kernels .. "/RATT_DV_223_01_01____00302.BC",
kernels .. "/RATT_DV_145_01_01____00216.BC",
-- Comet attitude
kernels .. "/CATT_DV_243_01_______00325.BC",
kernels .. "/CATT_DV_223_01_______00302.BC",
kernels .. "/CATT_DV_145_01_______00216.BC",
-- High gain antenna
kernels .. "/ROS_HGA_2016_V0035.BC",
kernels .. "/ROS_HGA_2015_V0053.BC",
kernels .. "/ROS_HGA_2014_V0044.BC",
-- Solar arrays
kernels .. "/ROS_SA_2016_V0034.BC",
kernels .. "/ROS_SA_2015_V0042.BC",
kernels .. "/ROS_SA_2014_V0047.BC",
kernels .. "/ROS_CGS_RSOC_V03.TPC"
}
local LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
},
{
Identifier = "Camera",
Type = "CameraLightSource",
Intensity = 0.5
}
}
local RotationMatrix = {
0, 1, 0,
0, 0, 1,
1, 0, 0
}
local Rosetta = {
Identifier = "Rosetta",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "ROSETTA",
Observer = "SUN",
Kernels = RosettaKernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "ROS_SPACECRAFT",
DestinationFrame = "GALACTIC"
}
},
GUI = {
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaModel = {
Identifier = "RosettaModel",
Parent = Rosetta.Identifier,
Transform = {
Scale = {
Type = "StaticScale",
-- The scale of the model is in cm; OpenSpace is in m
Scale = 0.01
}
},
GUI = {
Name = "Rosetta Model",
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaBlackFoil = {
Identifier = "Rosetta_black_foil",
Parent = RosettaModel.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/black_foil.obj"
},
ColorTexture = textures .. "/foil_silver_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Rosetta Model Part Black Foil",
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaBlackParts = {
Identifier = "Rosetta_black_parts",
Parent = RosettaModel.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/black_parts.obj"
},
ColorTexture = textures .. "/foil_silver_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Rosetta Model Part Black Parts",
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaDish = {
Identifier = "Rosetta_dish",
Parent = RosettaModel.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/dish.obj"
},
ColorTexture = textures .. "/dish_AO.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Rosetta Model Part Dish",
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaParts = {
Identifier = "Rosetta_parts",
Parent = RosettaModel.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/parts.obj"
},
ColorTexture = textures .. "/parts2_AO.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Rosetta Model Part Parts",
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaSilverFoil = {
Identifier = "Rosetta_silver_foil",
Parent = RosettaModel.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/silver_foil.obj"
},
ColorTexture = textures .. "/foil_silver_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Rosetta Model Part Silver Foil",
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaVents = {
Identifier = "Rosetta_vents",
Parent = RosettaModel.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/vents.obj"
},
ColorTexture = textures .. "/tex_01.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Rosetta Model Part Vents",
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaWingA = {
Identifier = "Rosetta_wing_a",
Parent = RosettaModel.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .."/wingA.obj"
},
ColorTexture = textures .. "/tex_01.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Rosetta Model Part Wing A",
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaWingB = {
Identifier = "Rosetta_wing_b",
Parent = RosettaModel.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/wingB.obj"
},
ColorTexture = textures .. "/tex_01.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Rosetta Model Part Wing B",
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaYellowFoil = {
Identifier = "Rosetta_yellow_foil",
Parent = RosettaModel.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/yellow_foil.obj"
},
ColorTexture = textures .. "/foil_gold_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Rosetta Model Part Yellow Foil",
Path = "/Solar System/Missions/Rosetta"
}
}
local Philae = {
Identifier = "Philae",
Parent = transforms.Barycenter.Identifier,
-- This should need a transform, but currently the model is intrinsically
-- translated
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "PHILAE",
Observer = "CHURYUMOV-GERASIMENKO",
Kernels = RosettaKernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "ROS_SPACECRAFT",
DestinationFrame = "GALACTIC",
},
Scale = {
Type = "StaticScale",
-- The scale of the model is in cm; OpenSpace is in m
Scale = 0.01
}
},
GUI = {
Name = "Philae Model",
Path = "/Solar System/Missions/Rosetta"
}
}
local PhilaeFoil = {
Identifier = "Philae_foil",
Parent = Philae.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/lander_foil.obj"
},
ColorTexture = textures .. "/foil_silver_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Philae Model Part Foil",
Path = "/Solar System/Missions/Rosetta"
}
}
local PhilaeLids = {
Identifier = "Philae_lids",
Parent = Philae.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/lander_lids.obj"
},
ColorTexture = textures .. "/parts2_AO.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Philae Model Part Lids",
Path = "/Solar System/Missions/Rosetta"
}
}
local PhilaeParts = {
Identifier = "Philae_parts",
Parent = Philae.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/lander_parts.obj"
},
ColorTexture = textures .. "/foil_silver_ramp.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Philae Model Part Parts",
Path = "/Solar System/Missions/Rosetta"
}
}
local PhilaeSolarPanels = {
Identifier = "Philae_solarp",
Parent = Philae.Identifier,
Renderable = {
Type = "RenderableModel",
Body = "ROSETTA",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/lander_solarp.obj"
},
ColorTexture = textures .. "/tex_01.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Philae Model Parts Solar Panels",
Path = "/Solar System/Missions/Rosetta"
}
}
local NavCam = {
Identifier = "NAVCAM",
Parent = Rosetta.Identifier,
GUI = {
Path = "/Solar System/Missions/Rosetta/Instruments"
}
}
local NavCamFov = {
Identifier = "NAVCAM_FOV",
Parent = NavCam.Identifier,
Renderable = {
Type = "RenderableFov",
Body = "ROSETTA",
Frame = "ROS_NAVCAM-A",
RGB = { 0.8, 0.7, 0.7 },
Instrument = {
Name = "ROS_NAVCAM-A",
Method = "ELLIPSOID",
Aberration = "NONE"
},
PotentialTargets = { "CHURYUMOV-GERASIMENKO" },
FrameConversions = {
["CHURYUMOV-GERASIMENKO"] = "67P/C-G_CK"
}
},
GUI = {
Name = "NAVCAM FOV",
Path = "/Solar System/Missions/Rosetta/Instruments"
}
}
local ImagePlane = {
Identifier = "ImagePlaneRosetta",
Parent = transforms.Comet67P.Identifier,
Renderable = {
Type = "RenderablePlaneProjection",
Frame = "67P/C-G_CK",
DefaultTarget = "CHURYUMOV-GERASIMENKO",
Spacecraft = "ROSETTA",
Instrument = "ROS_NAVCAM-A",
Moving = false,
Texture = textures .. "/defaultProj.png"
},
GUI = {
Name = "Rosetta Image Plane",
Path = "/Solar System/Missions/Rosetta"
}
}
local RosettaCometTrail = {
Identifier = "RosettaCometTrail",
Parent = transforms.Barycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "ROSETTA",
Observer = "CHURYUMOV-GERASIMENKO"
},
Color = { 0.288, 0.375, 0.934 },
StartTime = "2014 AUG 01 12:00:00",
EndTime = "2016 SEP 30 12:00:00",
SampleInterval = 3600
},
GUI = {
Name = "Rosetta Comet Trail",
Path = "/Solar System/Missions/Rosetta"
}
}
local PhilaeTrail = {
Identifier = "PhilaeTrail",
Parent = transforms.Barycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "PHILAE",
Observer = "CHURYUMOV-GERASIMENKO"
},
Color = { 0.8, 0.5, 1.0 },
StartTime = "2014 NOV 12 08:35:00",
EndTime = "2014 NOV 12 17:00:00",
SampleInterval = 2
},
GUI = {
Name = "Philae Trail",
Path = "/Solar System/Missions/Rosetta"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Rosetta,
RosettaModel,
RosettaBlackFoil,
RosettaBlackParts,
RosettaDish,
RosettaParts,
RosettaSilverFoil,
RosettaVents,
RosettaWingA,
RosettaWingB,
RosettaYellowFoil,
NavCam,
NavCamFov,
ImagePlane,
Philae,
PhilaeFoil,
PhilaeLids,
PhilaeParts,
PhilaeSolarPanels,
RosettaCometTrail,
PhilaeTrail
})

View File

@@ -1,239 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local models = asset.syncedResource({
Name = "Voyager 1 Models",
Type = "HttpSynchronization",
Identifier = "voyager1_model",
Version = 1
})
local kernels = asset.syncedResource({
Name = "Voyager 1 Kernels",
Type = "HttpSynchronization",
Identifier = "voyager1_spice",
Version = 1
})
local Kernels = {
kernels .. '/vg1_v02.tf',
kernels .. '/vg100019.tsc',
kernels .. '/Voyager_1.a54206u_V0.2_merged.bsp',
kernels .. '/voyager_1.ST+1991_a54418u.merged.bsp',
kernels .. '/vgr1_jup230.bsp',
kernels .. '/vgr1_sat337.bsp',
kernels .. '/vgr1_super.bc',
kernels .. '/vgr1_super_v2.bc'
}
local RotationMatrix = {
-1, 0, 0,
0, 0, -1,
0, -1, 0
}
local LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
},
{
Identifier = "Camera",
Type = "CameraLightSource",
Intensity = 0.5
}
}
local Voyager1 = {
Identifier = "Voyager_1",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 1",
Observer = "SUN",
Kernels = Kernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "VG1_SC_BUS",
DestinationFrame = "GALACTIC"
}
},
GUI = {
Name = "Voyager 1",
Path = "/Solar System/Missions/Voyager 1"
}
}
local Voyager1Main = {
Identifier = "Voyager_1_Main",
Parent = Voyager1.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/voyager-main.obj"
},
ColorTexture = models .. "/voyager-main.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Voyager 1 Main",
Path = "/Solar System/Missions/Voyager 1"
}
}
local Voyager1Antenna = {
Identifier = "Voyager_1_Antanna",
Parent = Voyager1.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/voyager-antenna.obj"
},
ColorTexture = models .. "/voyager-antenna.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Voyager 1 Antanna",
Path = "/Solar System/Missions/Voyager 1"
}
}
-- The trails are organized as follows. The cruise phases can be resolved in relatively
-- low resolution since they are just straight lines
-- The encounter phases should be much higher resolution or otherwise artifacts would appear
local VoyagerTrailCruiseEarthJupiter = {
Identifier = "Voyager_1_Trail_Cruise_Earth_Jupiter",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 1",
Observer = "SUN",
Kernels = Kernels
},
Color = { 0.70, 0.50, 0.20 },
StartTime = "1977 SEP 05",
EndTime = "1979 MAR 04",
SampleInterval = 545 * 2 -- 545 is the number of days between the Start and End time
},
GUI = {
Name = "Voyager 1 Trail Cruise Earth-Jupiter",
Path = "/Solar System/Missions/Voyager 1"
}
}
local VoyagerTrailEncounterJupiter = {
Identifier = "Voyager_1_Trail_Encounter_Jupiter",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 1",
Observer = "SUN",
Kernels = Kernels
},
Color = { 0.70, 0.50, 0.20 },
EnableFade = false,
StartTime = "1979 MAR 03 23:24:00", -- @TODO: Probably an off-by-one bug in RenderableTrailTrajectory?
EndTime = "1979 MAR 09",
SampleInterval = 100
},
GUI = {
Name = "Voyager 1 Trail Encounter Jupiter",
Path = "/Solar System/Missions/Voyager 1"
}
}
local VoyagerTrailCruiseJupiterSaturn = {
Identifier = "Voyager_1_Trail_Cruise_Jupiter_Saturn",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 1",
Observer = "SUN",
Kernels = Kernels
},
EnableFade = false,
Color = { 0.70, 0.50, 0.20 },
StartTime = "1979 MAR 09",
EndTime = "1980 NOV 11",
SampleInterval = 618 * 2 -- 618 is the number of days between the Start and End time
},
GUI = {
Name = "Voyager 1 Trail Cruise Jupiter-Saturn",
Path = "/Solar System/Missions/Voyager 1"
}
}
local VoyagerTrailEncounterSaturn = {
Identifier = "Voyager_1_Trail_Encounter_Saturn",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 1",
Observer = "SUN",
Kernels = Kernels
},
EnableFade = false,
Color = { 0.70, 0.50, 0.20 },
StartTime = "1980 NOV 10 23:08:30", -- @TODO: Probably an off-by-one bug in RenderableTrailTrajectory?
EndTime = "1980 NOV 16",
SampleInterval = 100
},
GUI = {
Name = "Voyager 1 Trail Encounter Saturn",
Path = "/Solar System/Missions/Voyager 1"
}
}
local VoyagerTrailCruiseSaturnInf = {
Identifier = "Voyager_1_Trail_Cruise_Saturn_Inf",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 1",
Observer = "SUN",
Kernels = Kernels
},
EnableFade = false,
Color = { 0.70, 0.50, 0.20 },
StartTime = "1980 NOV 16",
EndTime = "2021 JAN 01",
SampleInterval = 14656 * 2 -- 14656 is the number of days between the Start and End time
},
GUI = {
Name = "Voyager 1 Trail Cruise Saturn-Inf",
Path = "/Solar System/Missions/Voyager 1"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Voyager1,
Voyager1Main,
Voyager1Antenna,
VoyagerTrailCruiseEarthJupiter,
VoyagerTrailEncounterJupiter,
VoyagerTrailCruiseJupiterSaturn,
VoyagerTrailEncounterSaturn,
VoyagerTrailCruiseSaturnInf
})

View File

@@ -1,338 +0,0 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local models = asset.syncedResource({
Name = "Voyager 2 Models",
Type = "HttpSynchronization",
Identifier = "voyager2_model",
Version = 1
})
local kernels = asset.syncedResource({
Name = "Voyager 2 Kernels",
Type = "HttpSynchronization",
Identifier = "voyager2_spice",
Version = 1
})
local Kernels = {
kernels .. '/vg2_v02.tf',
kernels .. '/vg200022.tsc',
kernels .. '/Voyager_2.m05016u.merged.bsp',
kernels .. '/voyager_2.ST+1992_m05208u.merged.bsp',
kernels .. '/vgr2_jup230.bsp',
kernels .. '/vgr2_sat337.bsp',
kernels .. '/vgr2_ura083.bsp',
kernels .. '/vgr2_nep081.bsp',
kernels .. '/vgr2_super.bc',
kernels .. '/vgr2_super_v2.bc'
}
local RotationMatrix = {
-1, 0, 0,
0, 0, -1,
0, -1, 0
}
local LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
},
{
Identifier = "Camera",
Type = "CameraLightSource",
Intensity = 0.5
}
}
local Voyager2 = {
Identifier = "Voyager_2",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 2",
Observer = "SUN",
Kernels = Kernels
},
Rotation = {
Type = "SpiceRotation",
SourceFrame = "VG2_SC_BUS",
DestinationFrame = "GALACTIC"
}
},
GUI = {
Name = "Voyager 2",
Path = "/Solar System/Missions/Voyager 2"
}
}
local Voyager2Main = {
Identifier = "Voyager_2_Main",
Parent = Voyager2.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/voyager-main.obj"
},
ColorTexture = models .. "/voyager-main.jpg",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Voyager 2 Main",
Path = "/Solar System/Missions/Voyager 2"
}
}
local Voyager2Antenna = {
Identifier = "Voyager_2_Antanna",
Parent = Voyager2.Identifier,
Renderable = {
Type = "RenderableModel",
Geometry = {
Type = "MultiModelGeometry",
GeometryFile = models .. "/voyager-antenna.obj"
},
ColorTexture = models .. "/voyager-antenna.png",
ModelTransform = RotationMatrix,
LightSources = LightSources
},
GUI = {
Name = "Voyager 2 Antanna",
Path = "/Solar System/Missions/Voyager 2"
}
}
-- The trails are organized as follows. The cruise phases can be resolved in relatively
-- low resolution since they are just straight lines
-- The encounter phases should be much higher resolution or otherwise artifacts would appear
local VoyagerTrailCruiseEarthJupiter = {
Identifier = "Voyager_2_Trail_Cruise_Earth_Jupiter",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 2",
Observer = "SUN",
Kernels = Kernels
},
Color = { 0.70, 0.50, 0.20 },
StartTime = "1977 SEP 05",
EndTime = "1979 JUL 06",
SampleInterval = 669 * 2 -- 669 is the number of days between the Start and End time
},
GUI = {
Name = "Voyager 2 Trail Cruise Earth-Jupiter",
Path = "/Solar System/Missions/Voyager 2"
}
}
local VoyagerTrailEncounterJupiter = {
Identifier = "Voyager_2_Trail_Encounter_Jupiter",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 2",
Observer = "SUN",
Kernels = Kernels
},
Color = { 0.70, 0.50, 0.20 },
EnableFade = false,
StartTime = "1979 JUL 05 23:24:00", -- @TODO: Probably an off-by-one bug in RenderableTrailTrajectory?
EndTime = "1979 JUL 15",
SampleInterval = 100
},
GUI = {
Name = "Voyager 2 Trail Encounter Jupiter",
Path = "/Solar System/Missions/Voyager 2"
}
}
local VoyagerTrailCruiseJupiterSaturn = {
Identifier = "Voyager_2_Trail_Cruise_Jupiter_Saturn",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 2",
Observer = "SUN",
Kernels = Kernels
},
EnableFade = false,
Color = { 0.70, 0.50, 0.20 },
StartTime = "1979 JUL 15",
EndTime = "1981 AUG 23",
SampleInterval = 770 * 2 -- 770 is the number of days between the Start and End time
},
GUI = {
Name = "Voyager 2 Trail Cruise Jupiter-Saturn",
Path = "/Solar System/Missions/Voyager 2"
}
}
local VoyagerTrailEncounterSaturn = {
Identifier = "Voyager_2_Trail_Encounter_Saturn",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 2",
Observer = "SUN",
Kernels = Kernels
},
EnableFade = false,
Color = { 0.70, 0.50, 0.20 },
StartTime = "1981 AUG 22 23:08:30", -- @TODO: Probably an off-by-one bug in RenderableTrailTrajectory?
EndTime = "1981 AUG 30",
SampleInterval = 100
},
GUI = {
Name = "Voyager 2 Trail Encounter Saturn",
Path = "/Solar System/Missions/Voyager 2"
}
}
local VoyagerTrailCruiseSaturnUranus = {
Identifier = "Voyager_2_Trail_Cruise_Saturn_Uranus",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 2",
Observer = "SUN",
Kernels = Kernels
},
EnableFade = false,
Color = { 0.70, 0.50, 0.20 },
StartTime = "1981 AUG 30",
EndTime = "1986 JAN 22",
SampleInterval = 1971 * 2 -- 1971 is the number of days between the Start and End time
},
GUI = {
Name = "Voyager 2 Trail Cruise Saturn-Uranus",
Path = "/Solar System/Missions/Voyager 2"
}
}
local VoyagerTrailEncounterUranus = {
Identifier = "Voyager_2_Trail_Encounter_Uranus",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 2",
Observer = "SUN",
Kernels = Kernels
},
EnableFade = false,
Color = { 0.70, 0.50, 0.20 },
StartTime = "1986 JAN 21 23:30:00", -- @TODO: Probably an off-by-one bug in RenderableTrailTrajectory?
EndTime = "1986 JAN 27",
SampleInterval = 100
},
GUI = {
Name = "Voyager 2 Trail Encounter Uranus",
Path = "/Solar System/Missions/Voyager 2"
}
}
local VoyagerTrailCruiseUranusNeptune = {
Identifier = "Voyager_2_Trail_Cruise_Uranus_Neptune",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 2",
Observer = "SUN",
Kernels = Kernels
},
EnableFade = false,
Color = { 0.70, 0.50, 0.20 },
StartTime = "1986 JAN 27",
EndTime = "1989 AUG 24",
SampleInterval = 1305 * 2 -- 1305 is the number of days between the Start and End time
},
GUI = {
Name = "Voyager 2 Trail Cruise Uranus-Neptune",
Path = "/Solar System/Missions/Voyager 2"
}
}
local VoyagerTrailEncounterNeptune = {
Identifier = "Voyager_2_Trail_Encounter_Neptune",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 2",
Observer = "SUN",
Kernels = Kernels
},
EnableFade = false,
Color = { 0.70, 0.50, 0.20 },
StartTime = "1989 AUG 23 23:30:00", -- @TODO: Probably an off-by-one bug in RenderableTrailTrajectory?
EndTime = "1989 AUG 26",
SampleInterval = 100
},
GUI = {
Name = "Voyager 2 Trail Encounter Neptune",
Path = "/Solar System/Missions/Voyager 2"
}
}
local VoyagerTrailCruiseNeptuneInf = {
Identifier = "Voyager_2_Trail_Cruise_Neptune_Inf",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = "VOYAGER 2",
Observer = "SUN",
Kernels = Kernels
},
EnableFade = false,
Color = { 0.70, 0.50, 0.20 },
StartTime = "1989 AUG 26",
EndTime = "2021 JAN 01",
SampleInterval = 11451 * 2 -- 11451 is the number of days between the Start and End time
},
GUI = {
Name = "Voyager 2 Trail Cruise Neptune-Inf",
Path = "/Solar System/Missions/Voyager 2"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Voyager2,
Voyager2Main,
Voyager2Antenna,
VoyagerTrailCruiseEarthJupiter,
VoyagerTrailEncounterJupiter,
VoyagerTrailCruiseJupiterSaturn,
VoyagerTrailEncounterSaturn,
VoyagerTrailCruiseSaturnUranus,
VoyagerTrailEncounterUranus,
VoyagerTrailCruiseUranusNeptune,
VoyagerTrailEncounterNeptune,
VoyagerTrailCruiseNeptuneInf
})

View File

@@ -128,23 +128,17 @@ public:
void updateRaycastData();
void updateDeferredcastData();
void updateHDRAndFiltering();
void updateMSAASamplingPattern();
void setResolution(glm::ivec2 res) override;
void setNAaSamples(int nAaSamples) override;
void setHDRExposure(float hdrExposure) override;
void setGamma(float gamma) override;
void setMaxWhite(float maxWhite) override;
void setToneMapOperator(int tmOp) override;
void setHue(float hue) override;
void setValue(float value) override;
void setSaturation(float sat) override;
void setLightness(float lightness) override;
void setColorSpace(unsigned int colorspace) override;
int nAaSamples() const override;
const std::vector<double>& mSSAPattern() const override;
void update() override;
void performRaycasterTasks(const std::vector<RaycasterTask>& tasks);
void performDeferredTasks(const std::vector<DeferredcasterTask>& tasks);
@@ -181,8 +175,7 @@ private:
UniformCache(mainColorTexture, blackoutFactor, nAaSamples) _uniformCache;
UniformCache(hdrFeedingTexture, blackoutFactor, hdrExposure, gamma,
toneMapOperator, maxWhite, Hue, Saturation, Value,
Lightness, colorSpace, nAaSamples) _hdrUniformCache;
Hue, Saturation, Value, nAaSamples) _hdrUniformCache;
GLint _defaultFBO;
GLuint _screenQuad;
@@ -204,20 +197,14 @@ private:
glm::ivec2 _resolution = glm::ivec2(0);
int _nAaSamples;
float _hdrExposure = 3.7f;
float _gamma = 0.95f;
float _maxWhite = 5.0f;
int _toneMapOperator = 8;
bool _histogramEnabled = false;
float _hue = 1.f;
float _saturation = 1.2f;
float _saturation = 1.f;
float _value = 1.f;
float _lightness = 1.1f;
unsigned int _colorSpace = 1;
std::vector<double> _mSAAPattern;
std::vector<float> _histoPoints;
ghoul::Dictionary _rendererData;
};

View File

@@ -65,26 +65,6 @@ public:
Invalid
};
// The next enum should be synchronized with the
// defines in hdr.glsl file.
enum class ToneMapOperators {
EXPONENTIAL = 0,
LINEAR, //1
SIMPLE_REINHARD, //2
LUM_BASED_REINHARD, //3
WHITE_PRESERVING, //4
ROM_BIN_DA_HOUSE, //5
FILMIC, //6
UNCHARTED, //7
COSTA, //8
PHOTOGRAPHIC_REINHARD, //9
};
enum class COLORSPACE {
HSV = 0,
HSL
};
RenderEngine();
~RenderEngine();
@@ -229,26 +209,19 @@ private:
properties::FloatProperty _globalBlackOutFactor;
properties::IntProperty _nAaSamples;
properties::PropertyOwner _tmoOwner;
properties::BoolProperty _disableHDRPipeline;
properties::FloatProperty _hdrExposure;
properties::FloatProperty _maxWhite;
properties::OptionProperty _toneMapOperator;
properties::PropertyOwner _imageOwner;
properties::FloatProperty _gamma;
properties::FloatProperty _hue;
properties::FloatProperty _saturation;
properties::FloatProperty _value;
properties::FloatProperty _lightness;
properties::FloatProperty _horizFieldOfView;
properties::Vec3Property _globalRotation;
properties::Vec3Property _screenSpaceRotation;
properties::Vec3Property _masterRotation;
properties::OptionProperty _colorSpace;
uint64_t _frameNumber = 0;

View File

@@ -52,16 +52,10 @@ public:
virtual void setNAaSamples(int nAaSamples) = 0;
virtual void setHDRExposure(float hdrExposure) = 0;
virtual void setGamma(float gamma) = 0;
virtual void setMaxWhite(float maxWhite) = 0;
virtual void setToneMapOperator(int tmOp) = 0;
virtual void setHue(float hue) = 0;
virtual void setValue(float value) = 0;
virtual void setSaturation(float sat) = 0;
virtual void setLightness(float lightness) = 0;
virtual void setColorSpace(unsigned int colorspace) = 0;
virtual int nAaSamples() const = 0;
virtual const std::vector<double>& mSSAPattern() const = 0;
/**
* Set raycasting uniforms on the program object, and setup raycasting.

View File

@@ -67,7 +67,6 @@ out vec4 renderTarget;
in vec3 interpolatedNDCPos;
uniform int nAaSamples;
uniform double msaaSamplePatter[48];
uniform int cullAtmosphere;
uniform sampler2D irradianceTexture;
@@ -234,13 +233,6 @@ bool dAtmosphereIntersection(const dvec3 planetPosition, const dRay ray, const d
void dCalculateRayRenderableGlobe(in int mssaSample, out dRay ray,
out dvec4 planetPositionObjectCoords,
out dvec4 cameraPositionInObject) {
// ======================================
// ======= Avoiding Some Matrices =======
// Compute positions and directions in object space.
dvec2 samplePos = dvec2(msaaSamplePatter[mssaSample],
msaaSamplePatter[mssaSample+1]);
dvec4 clipCoords = dvec4(interpolatedNDCPos.xy, 1.0, 1.0);
// Clip to Object Coords

View File

@@ -31,17 +31,13 @@
layout (location = 0) out vec4 finalColor;
uniform float backgroundConstant;
uniform float hdrExposure;
uniform float blackoutFactor;
uniform float gamma;
uniform float maxWhite;
uniform float Hue;
uniform float Saturation;
uniform float Value;
uniform float Lightness;
uniform int toneMapOperator;
uniform uint colorSpace;
uniform int nAaSamples;
uniform sampler2DMS hdrFeedingTexture;
@@ -59,42 +55,15 @@ void main() {
color /= nAaSamples;
color.rgb *= blackoutFactor;
vec3 tColor = vec3(0.0);
if (toneMapOperator == EXPONENTIAL) {
tColor = exponentialToneMapping(color.rgb, hdrExposure, gamma);
} else if (toneMapOperator == LINEAR) {
tColor = linearToneMapping(color.rgb, hdrExposure);
} else if (toneMapOperator == SIMPLE_REINHARD) {
tColor = simpleReinhardToneMapping(color.rgb, hdrExposure);
} else if (toneMapOperator == LUM_BASED_REINHARD) {
tColor = lumaBasedReinhardToneMapping(color.rgb);
} else if (toneMapOperator == WHITE_PRESERVING) {
tColor = whitePreservingLumaBasedReinhardToneMapping(color.rgb, maxWhite);
} else if (toneMapOperator == ROM_BIN_DA_HOUSE) {
tColor = RomBinDaHouseToneMapping(color.rgb);
} else if (toneMapOperator == FILMIC) {
tColor = filmicToneMapping(color.rgb);
} else if (toneMapOperator == UNCHARTED) {
tColor = Uncharted2ToneMapping(color.rgb, hdrExposure);
} else if (toneMapOperator == COSTA) {
tColor = jToneMapping(color.rgb, hdrExposure);
} else if (toneMapOperator == PHOTOGRAPHIC_REINHARD) {
tColor = photographicReinhardToneMapping(color.rgb);
}
// Applies TMO
vec3 tColor = toneMappingOperator(color.rgb, hdrExposure);
// Color control
vec3 hsvColor = rgb2hsv(tColor);
hsvColor.x = (hsvColor.x * Hue) > 360.f ? 360.f : (hsvColor.x * Hue);
hsvColor.y = (hsvColor.y * Saturation) > 1.f ? 1.f : (hsvColor.y * Saturation);
hsvColor.z = (hsvColor.z * Value) > 1.f ? 1.f : (hsvColor.z * Value);
if (colorSpace == HSL_COLOR) {
vec3 hslColor = rgb2hsl(tColor);
hslColor.x = (hslColor.x * Hue) > 360.f ? 360.f : (hslColor.x * Hue);
hslColor.y = (hslColor.y * Saturation) > 1.f ? 1.f : (hslColor.y * Saturation);
hslColor.z = (hslColor.z * Lightness) > 1.f ? 1.f : (hslColor.z * Lightness);
finalColor = vec4(gammaCorrection(hsl2rgb(hslColor), gamma), color.a);
} else if (colorSpace == HSV_COLOR) {
vec3 hsvColor = rgb2hsv(tColor);
hsvColor.x = (hsvColor.x * Hue) > 360.f ? 360.f : (hsvColor.x * Hue);
hsvColor.y = (hsvColor.y * Saturation) > 1.f ? 1.f : (hsvColor.y * Saturation);
hsvColor.z = (hsvColor.z * Value) > 1.f ? 1.f : (hsvColor.z * Value);
finalColor = vec4(gammaCorrection(hsv2rgb(hsvColor), gamma), color.a);
}
// Gamma Correction
finalColor = vec4(gammaCorrection(hsv2rgb(hsvColor), gamma), color.a);
}

View File

@@ -36,8 +36,7 @@ layout(location = 3) out vec4 filterBuffer;
void main() {
Fragment f = getFragment();
_out_color_ = vec4((log2(vec3(1.0) - (f.color.rgb - vec3(DeltaError)))/(-exposure)), f.color.a);
_out_color_ = vec4((log2(vec3(1.0) - (f.color.rgb - vec3(DeltaError)))/(-exposure)), f.color.a);
_out_color_.x = isnan(_out_color_.x) ? MaxValueColorBuffer : _out_color_.x;
_out_color_.y = isnan(_out_color_.y) ? MaxValueColorBuffer : _out_color_.y;
_out_color_.z = isnan(_out_color_.z) ? MaxValueColorBuffer : _out_color_.z;

View File

@@ -26,14 +26,6 @@
in vec4 position;
// out vec2 texCoord;
// out vec3 vPosition;
// out vec4 worldPosition;
void main() {
gl_Position = position;
// texCoord = 0.5 + position.xy * 0.5;
// vPosition = position.xyz;
// worldPosition = position;
}

View File

@@ -22,18 +22,6 @@
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
****************************************************************************************/
// The next defines must being synchronized with the enum defined in file renderengine.h
#define EXPONENTIAL 0
#define LINEAR 1
#define SIMPLE_REINHARD 2
#define LUM_BASED_REINHARD 3
#define WHITE_PRESERVING 4
#define ROM_BIN_DA_HOUSE 5
#define FILMIC 6
#define UNCHARTED 7
#define COSTA 8
#define PHOTOGRAPHIC_REINHARD 9
const float HCV_EPSILON = 1e-7;
const float HSL_EPSILON = 1e-7;
const float HCY_EPSILON = 1e-7;
@@ -155,27 +143,6 @@ vec3 rgb2hsl(vec3 rgb)
return vec3(HCV.x, S, L);
}
vec3 globalToneMappingOperatorRTR(vec3 color, const float exposure, const float maxWhite, const float aveLum) {
// Convert color to XYZ
vec3 xyzCol = RGB2XYZ * color;
// Convert from XYZ to xyY
float xyzSum = xyzCol.x + xyzCol.y + xyzCol.z;
vec3 xyYCol = vec3( xyzCol.x / xyzSum, xyzCol.y / xyzSum, xyzCol.y);
// Apply the tone mapping operation to the luminance (xyYCol.z or xyzCol.y)
float L = (exposure * xyYCol.z) / aveLum;
L = (L * ( 1 + L / (maxWhite * maxWhite) )) / ( 1 + L );
// Using the new luminance, convert back to XYZ
xyzCol.x = (L * xyYCol.x) / (xyYCol.y);
xyzCol.y = L;
xyzCol.z = (L * (1 - xyYCol.x - xyYCol.y))/xyYCol.y;
// Convert back to RGB and send to output buffer
return XYZ2RGB * xyzCol;
}
vec3 exponentialToneMapping(vec3 color, const float exposure, const float gamma) {
color *= exposure;
@@ -186,64 +153,7 @@ vec3 exponentialToneMapping(vec3 color, const float exposure, const float gamma)
return color;
}
vec3 linearToneMapping(vec3 color, const float exposure) {
color = clamp(exposure * color, 0.f, 1.f);
return color;
}
vec3 simpleReinhardToneMapping(vec3 color, const float exposure) {
color *= exposure/(1.f + color / exposure);
return color;
}
vec3 lumaBasedReinhardToneMapping(vec3 color) {
float luma = dot(color, vec3(0.2126f, 0.7152f, 0.0722f));
float toneMappedLuma = luma / (1.f + luma);
color *= toneMappedLuma / luma;
return color;
}
vec3 photographicReinhardToneMapping(vec3 color) {
return color / (color + vec3(1.0));
}
vec3 whitePreservingLumaBasedReinhardToneMapping(vec3 color, const float maxWhite) {
//float luma = dot(color, vec3(0.2126f, 0.7152f, 0.0722f));
float luma = dot(color, vec3(0.4126f, 0.9152f, 0.2722f));
float toneMappedLuma = luma * (1.f + luma / (maxWhite * maxWhite)) / (1.f + luma);
color *= toneMappedLuma / luma;
return color;
}
vec3 RomBinDaHouseToneMapping(vec3 color) {
color = exp2( -1.f / ( 2.72f * color + 0.15f ) );
return color;
}
vec3 filmicToneMapping(vec3 color)
{
color = max(vec3(0.f), color - vec3(0.04f));
color = (color * (6.2f * color + 0.5f)) / (color * (6.2f * color + 20.f) + 0.06f);
return color;
}
vec3 Uncharted2ToneMapping(vec3 color, const float exposure) {
float A = 0.15f;
float B = 0.5f;
float C = 0.1f;
float D = 0.2f;
float E = 0.02f;
float F = 0.3f;
float W = 11.2f;
color *= exposure;
color = ((color * (A * color + C * B) + D * E) / (color * (A * color + B) + D * F)) - E / F;
float white = ((W * (A * W + C * B) + D * E) / (W * (A * W + B) + D * F)) - E / F;
color /= white;
return color;
}
vec3 jToneMapping(vec3 color, const float exposure) {
vec3 toneMappingOperator(vec3 color, const float exposure) {
return 1.0 - exp2(-exposure * color);
}

View File

@@ -54,10 +54,9 @@ namespace {
"mainColorTexture", "blackoutFactor", "nAaSamples"
};
constexpr const std::array<const char*, 12> HDRUniformNames = {
constexpr const std::array<const char*, 8> HDRUniformNames = {
"hdrFeedingTexture", "blackoutFactor", "hdrExposure", "gamma",
"toneMapOperator", "maxWhite", "Hue", "Saturation", "Value",
"Lightness", "colorSpace", "nAaSamples"
"Hue", "Saturation", "Value", "nAaSamples"
};
constexpr const char* ExitFragmentShaderPath =
@@ -385,13 +384,9 @@ void FramebufferRenderer::applyTMO(float blackoutFactor) {
_hdrFilteringProgram->setUniform(_hdrUniformCache.blackoutFactor, blackoutFactor);
_hdrFilteringProgram->setUniform(_hdrUniformCache.hdrExposure, _hdrExposure);
_hdrFilteringProgram->setUniform(_hdrUniformCache.gamma, _gamma);
_hdrFilteringProgram->setUniform(_hdrUniformCache.toneMapOperator, _toneMapOperator);
_hdrFilteringProgram->setUniform(_hdrUniformCache.maxWhite, _maxWhite);
_hdrFilteringProgram->setUniform(_hdrUniformCache.Hue, _hue);
_hdrFilteringProgram->setUniform(_hdrUniformCache.Saturation, _saturation);
_hdrFilteringProgram->setUniform(_hdrUniformCache.Value, _value);
_hdrFilteringProgram->setUniform(_hdrUniformCache.Lightness, _lightness);
_hdrFilteringProgram->setUniform(_hdrUniformCache.colorSpace, _colorSpace);
_hdrFilteringProgram->setUniform(_hdrUniformCache.nAaSamples, _nAaSamples);
@@ -403,13 +398,8 @@ void FramebufferRenderer::applyTMO(float blackoutFactor) {
}
void FramebufferRenderer::update() {
if (_dirtyMsaaSamplingPattern) {
updateMSAASamplingPattern();
}
if (_dirtyResolution) {
updateResolution();
updateMSAASamplingPattern();
}
if (_dirtyRaycastData) {
@@ -733,330 +723,6 @@ void FramebufferRenderer::updateHDRAndFiltering() {
//_hdrFilteringProgram->setIgnoreUniformLocationError(IgnoreError::Yes);
}
void FramebufferRenderer::updateMSAASamplingPattern() {
// JCC: All code below can be replaced by
// void GetMultisamplefv( enum pname, uint index, float *val );
LDEBUG("Updating MSAA Sampling Pattern");
constexpr const int GridSize = 32;
GLfloat step = 2.f / static_cast<GLfloat>(GridSize);
GLfloat sizeX = -1.f;
GLfloat sizeY = 1.0;
constexpr const int NVertex = 4 * 6;
// openPixelSizeVertexData
GLfloat vertexData[GridSize * GridSize * NVertex];
// @CLEANUP(abock): Is this necessary? I was mucking about with the shader and it
// didn't make any visual difference. If it is necessary, the z and w
// components can be removed for sure since they are always 0, 1 and
// not used in the shader either
for (int y = 0; y < GridSize; ++y) {
for (int x = 0; x < GridSize; ++x) {
vertexData[y * GridSize * NVertex + x * NVertex] = sizeX;
vertexData[y * GridSize * NVertex + x * NVertex + 1] = sizeY - step;
vertexData[y * GridSize * NVertex + x * NVertex + 2] = 0.f;
vertexData[y * GridSize * NVertex + x * NVertex + 3] = 1.f;
vertexData[y * GridSize * NVertex + x * NVertex + 4] = sizeX + step;
vertexData[y * GridSize * NVertex + x * NVertex + 5] = sizeY;
vertexData[y * GridSize * NVertex + x * NVertex + 6] = 0.f;
vertexData[y * GridSize * NVertex + x * NVertex + 7] = 1.f;
vertexData[y * GridSize * NVertex + x * NVertex + 8] = sizeX;
vertexData[y * GridSize * NVertex + x * NVertex + 9] = sizeY;
vertexData[y * GridSize * NVertex + x * NVertex + 10] = 0.f;
vertexData[y * GridSize * NVertex + x * NVertex + 11] = 1.f;
vertexData[y * GridSize * NVertex + x * NVertex + 12] = sizeX;
vertexData[y * GridSize * NVertex + x * NVertex + 13] = sizeY - step;
vertexData[y * GridSize * NVertex + x * NVertex + 14] = 0.f;
vertexData[y * GridSize * NVertex + x * NVertex + 15] = 1.f;
vertexData[y * GridSize * NVertex + x * NVertex + 16] = sizeX + step;
vertexData[y * GridSize * NVertex + x * NVertex + 17] = sizeY - step;
vertexData[y * GridSize * NVertex + x * NVertex + 18] = 0.f;
vertexData[y * GridSize * NVertex + x * NVertex + 19] = 1.f;
vertexData[y * GridSize * NVertex + x * NVertex + 20] = sizeX + step;
vertexData[y * GridSize * NVertex + x * NVertex + 21] = sizeY;
vertexData[y * GridSize * NVertex + x * NVertex + 22] = 0.f;
vertexData[y * GridSize * NVertex + x * NVertex + 23] = 1.f;
sizeX += step;
}
sizeX = -1.f;
sizeY -= step;
}
GLuint pixelSizeQuadVAO = 0;
glGenVertexArrays(1, &pixelSizeQuadVAO);
glBindVertexArray(pixelSizeQuadVAO);
GLuint pixelSizeQuadVBO = 0;
glGenBuffers(1, &pixelSizeQuadVBO);
glBindBuffer(GL_ARRAY_BUFFER, pixelSizeQuadVBO);
glBufferData(
GL_ARRAY_BUFFER,
sizeof(GLfloat) * GridSize * GridSize * NVertex,
vertexData,
GL_STATIC_DRAW
);
// Position
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, nullptr);
glEnableVertexAttribArray(0);
// Saves current state
GLint defaultFbo;
glGetIntegerv(GL_FRAMEBUFFER_BINDING, &defaultFbo);
GLint viewport[4];
glGetIntegerv(GL_VIEWPORT, viewport);
// Main framebuffer
GLuint pixelSizeTexture = 0;
GLuint pixelSizeFramebuffer = 0;
glGenTextures(1, &pixelSizeTexture);
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, pixelSizeTexture);
constexpr const GLsizei OnePixel = 1;
glTexImage2DMultisample(
GL_TEXTURE_2D_MULTISAMPLE,
_nAaSamples,
GL_RGBA32F,
OnePixel,
OnePixel,
true
);
glViewport(0, 0, OnePixel, OnePixel);
glGenFramebuffers(1, &pixelSizeFramebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, pixelSizeFramebuffer);
glFramebufferTexture2D(
GL_FRAMEBUFFER,
GL_COLOR_ATTACHMENT0,
GL_TEXTURE_2D_MULTISAMPLE,
pixelSizeTexture,
0
);
GLenum textureBuffers[1] = { GL_COLOR_ATTACHMENT0 };
glDrawBuffers(1, textureBuffers);
glClearColor(0.f, 0.f, 0.f, 1.f);
glClear(GL_COLOR_BUFFER_BIT);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if (status != GL_FRAMEBUFFER_COMPLETE) {
LERROR("MSAA Sampling pattern framebuffer is not complete");
return;
}
std::unique_ptr<ghoul::opengl::ProgramObject> pixelSizeProgram =
ghoul::opengl::ProgramObject::Build(
"OnePixel MSAA",
absPath("${SHADERS}/framebuffer/pixelSizeMSAA.vert"),
absPath("${SHADERS}/framebuffer/pixelSizeMSAA.frag")
);
pixelSizeProgram->activate();
// Draw sub-pixel grid
glEnable(GL_SAMPLE_SHADING);
glBindVertexArray(pixelSizeQuadVAO);
glDisable(GL_DEPTH_TEST);
glDepthMask(false);
glDrawArrays(GL_TRIANGLES, 0, GridSize * GridSize * 6);
glBindVertexArray(0);
glDepthMask(true);
glEnable(GL_DEPTH_TEST);
glDisable(GL_SAMPLE_SHADING);
pixelSizeProgram->deactivate();
// Now we render the Nx1 quad strip
GLuint nOneStripFramebuffer = 0;
GLuint nOneStripVAO = 0;
GLuint nOneStripVBO = 0;
GLuint nOneStripTexture = 0;
sizeX = -1.f;
step = 2.f / static_cast<GLfloat>(_nAaSamples);
std::vector<GLfloat>nOneStripVertexData(_nAaSamples * (NVertex + 12));
for (int x = 0; x < _nAaSamples; ++x) {
nOneStripVertexData[x * (NVertex + 12)] = sizeX;
nOneStripVertexData[x * (NVertex + 12) + 1] = -1.f;
nOneStripVertexData[x * (NVertex + 12) + 2] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 3] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 4] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 5] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 6] = sizeX + step;
nOneStripVertexData[x * (NVertex + 12) + 7] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 8] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 9] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 10] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 11] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 12] = sizeX;
nOneStripVertexData[x * (NVertex + 12) + 13] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 14] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 15] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 16] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 17] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 18] = sizeX;
nOneStripVertexData[x * (NVertex + 12) + 19] = -1.f;
nOneStripVertexData[x * (NVertex + 12) + 20] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 21] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 22] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 23] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 24] = sizeX + step;
nOneStripVertexData[x * (NVertex + 12) + 25] = -1.f;
nOneStripVertexData[x * (NVertex + 12) + 26] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 27] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 28] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 29] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 30] = sizeX + step;
nOneStripVertexData[x * (NVertex + 12) + 31] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 32] = 0.f;
nOneStripVertexData[x * (NVertex + 12) + 33] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 34] = 1.f;
nOneStripVertexData[x * (NVertex + 12) + 35] = 1.f;
sizeX += step;
}
glGenVertexArrays(1, &nOneStripVAO);
glBindVertexArray(nOneStripVAO);
glGenBuffers(1, &nOneStripVBO);
glBindBuffer(GL_ARRAY_BUFFER, nOneStripVBO);
glBufferData(
GL_ARRAY_BUFFER,
sizeof(GLfloat) * _nAaSamples * (NVertex + 12),
nOneStripVertexData.data(),
GL_STATIC_DRAW
);
// position
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 6, nullptr);
glEnableVertexAttribArray(0);
// texture coords
glVertexAttribPointer(
1,
2,
GL_FLOAT,
GL_FALSE,
sizeof(GLfloat) * 6,
reinterpret_cast<GLvoid*>(sizeof(GLfloat) * 4)
);
glEnableVertexAttribArray(1);
// fbo texture buffer
glGenTextures(1, &nOneStripTexture);
glBindTexture(GL_TEXTURE_2D, nOneStripTexture);
glTexImage2D(
GL_TEXTURE_2D,
0,
GL_RGBA32F,
_nAaSamples,
OnePixel,
0,
GL_RGBA,
GL_FLOAT,
nullptr
);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glGenFramebuffers(1, &nOneStripFramebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, nOneStripFramebuffer);
glFramebufferTexture2D(
GL_FRAMEBUFFER,
GL_COLOR_ATTACHMENT0,
GL_TEXTURE_2D,
nOneStripTexture,
0
);
status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if (status != GL_FRAMEBUFFER_COMPLETE) {
LERROR("nOneStrip framebuffer is not complete");
}
glViewport(0, 0, _nAaSamples, OnePixel);
std::unique_ptr<ghoul::opengl::ProgramObject> nOneStripProgram =
ghoul::opengl::ProgramObject::Build(
"OneStrip MSAA",
absPath("${SHADERS}/framebuffer/nOneStripMSAA.vert"),
absPath("${SHADERS}/framebuffer/nOneStripMSAA.frag")
);
nOneStripProgram->activate();
ghoul::opengl::TextureUnit pixelSizeTextureUnit;
pixelSizeTextureUnit.activate();
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, pixelSizeTexture);
nOneStripProgram->setUniform("pixelSizeTexture", pixelSizeTextureUnit);
// render strip
glDrawBuffers(1, textureBuffers);
glClearColor(0.f, 1.f, 0.f, 1.f);
glClear(GL_COLOR_BUFFER_BIT);
glBindVertexArray(nOneStripVAO);
glDisable(GL_DEPTH_TEST);
glDepthMask(false);
for (int sample = 0; sample < _nAaSamples; ++sample) {
nOneStripProgram->setUniform("currentSample", sample);
glDrawArrays(GL_TRIANGLES, sample * 6, 6);
}
glDepthMask(true);
glEnable(GL_DEPTH_TEST);
glBindVertexArray(0);
saveTextureToMemory(GL_COLOR_ATTACHMENT0, _nAaSamples, 1, _mSAAPattern);
// Convert back to [-1, 1] range and then scale for the current viewport size:
for (int d = 0; d < _nAaSamples; ++d) {
_mSAAPattern[d * 3] = (2.0 * _mSAAPattern[d * 3] - 1.0) /
static_cast<double>(viewport[1]);
_mSAAPattern[(d * 3) + 1] = (2.0 * _mSAAPattern[(d * 3) + 1] - 1.0) /
static_cast<double>(viewport[3]);
_mSAAPattern[(d * 3) + 2] = 0.0;
}
nOneStripProgram->deactivate();
// Restores default state
glBindFramebuffer(GL_FRAMEBUFFER, defaultFbo);
glViewport(viewport[0], viewport[1], viewport[2], viewport[3]);
// Deletes unused buffers
glDeleteFramebuffers(1, &pixelSizeFramebuffer);
glDeleteTextures(1, &pixelSizeTexture);
glDeleteBuffers(1, &pixelSizeQuadVBO);
glDeleteVertexArrays(1, &pixelSizeQuadVAO);
glDeleteFramebuffers(1, &nOneStripFramebuffer);
glDeleteTextures(1, &nOneStripTexture);
glDeleteBuffers(1, &nOneStripVBO);
glDeleteVertexArrays(1, &nOneStripVAO);
_dirtyMsaaSamplingPattern = false;
}
void FramebufferRenderer::render(Scene* scene, Camera* camera, float blackoutFactor) {
// Set OpenGL default rendering state
glGetIntegerv(GL_FRAMEBUFFER_BINDING, &_defaultFBO);
@@ -1297,9 +963,6 @@ void FramebufferRenderer::performDeferredTasks(
deferredcastProgram->setUniform("nAaSamples", _nAaSamples);
// 48 = 16 samples * 3 coords
deferredcastProgram->setUniform("msaaSamplePatter", &_mSAAPattern[0], 48);
deferredcaster->preRaycast(
deferredcasterTask.renderData,
_deferredcastData[deferredcaster],
@@ -1364,15 +1027,6 @@ void FramebufferRenderer::setGamma(float gamma) {
_gamma = gamma;
}
void FramebufferRenderer::setMaxWhite(float maxWhite) {
ghoul_assert(maxWhite > 0.f, "Max White value must be greater than zero");
_maxWhite = maxWhite;
}
void FramebufferRenderer::setToneMapOperator(int tmOp) {
_toneMapOperator = tmOp;
}
void FramebufferRenderer::setHue(float hue) {
_hue = hue;
}
@@ -1385,22 +1039,10 @@ void FramebufferRenderer::setSaturation(float sat) {
_saturation = sat;
}
void FramebufferRenderer::setLightness(float lightness) {
_lightness = lightness;
}
void FramebufferRenderer::setColorSpace(unsigned int colorspace) {
_colorSpace = colorspace;
}
int FramebufferRenderer::nAaSamples() const {
return _nAaSamples;
}
const std::vector<double>& FramebufferRenderer::mSSAPattern() const {
return _mSAAPattern;
}
void FramebufferRenderer::updateRendererData() {
ghoul::Dictionary dict;
dict.setValue("fragmentRendererPath", std::string(RenderFragmentShaderPath));

View File

@@ -199,6 +199,14 @@ namespace {
"rendering for the MSAA method."
};
constexpr openspace::properties::Property::PropertyInfo DisableHDRPipelineInfo = {
"DisableHDRPipeline",
"Disable HDR Rendering",
"If this value is enabled, the rendering will disable the HDR color handling "
"and the LDR color pipeline will be used. Be aware of possible over exposure "
"in the final colors."
};
constexpr openspace::properties::Property::PropertyInfo HDRExposureInfo = {
"HDRExposure",
"HDR Exposure",
@@ -213,19 +221,6 @@ namespace {
"tristimulus values in the image."
};
constexpr openspace::properties::Property::PropertyInfo MaxWhiteInfo = {
"MaxWhite",
"Max White Value",
"Max value for white color [0.01-10.0] to be used by tone mapping operators."
};
constexpr openspace::properties::Property::PropertyInfo ToneMapOperatorInfo = {
"ToneMapOperator",
"ToneMap Operator",
"ToneMap Operator is the method used to tranform the pixels using a HDR to"
"pixels using a LDR distribution."
};
constexpr openspace::properties::Property::PropertyInfo HueInfo = {
"Hue",
"Hue",
@@ -244,30 +239,6 @@ namespace {
"Value"
};
constexpr openspace::properties::Property::PropertyInfo LightnessInfo = {
"Lightness",
"Lightness",
"Lightness"
};
openspace::properties::PropertyOwner::PropertyOwnerInfo TMOInfo = {
"ToneMappingOp",
"Tone Mapping Options",
""
};
openspace::properties::PropertyOwner::PropertyOwnerInfo ImageInfo = {
"ImageOp",
"Rendered Image Options",
""
};
constexpr openspace::properties::Property::PropertyInfo ColorSpaceInfo = {
"ColorSpace",
"Color Space",
"Sets the color space for image adjusts."
};
constexpr openspace::properties::Property::PropertyInfo HorizFieldOfViewInfo = {
"HorizFieldOfView",
"Horizontal Field of View",
@@ -303,17 +274,12 @@ RenderEngine::RenderEngine()
, _disableMasterRendering(DisableMasterInfo, false)
, _globalBlackOutFactor(GlobalBlackoutFactorInfo, 1.f, 0.f, 1.f)
, _nAaSamples(AaSamplesInfo, 4, 1, 8)
, _tmoOwner(TMOInfo)
, _hdrExposure(HDRExposureInfo, 1.68f, 0.01f, 10.0f)
, _maxWhite(MaxWhiteInfo, 4.f, 0.001f, 100.0f)
, _toneMapOperator(ToneMapOperatorInfo, properties::OptionProperty::DisplayType::Dropdown)
, _imageOwner(ImageInfo)
, _disableHDRPipeline(DisableHDRPipelineInfo, false)
, _hdrExposure(HDRExposureInfo, 3.7f, 0.01f, 10.0f)
, _gamma(GammaInfo, 0.86f, 0.01f, 5.0f)
, _hue(HueInfo, 1.f, 0.0f, 5.0f)
, _saturation(SaturationInfo, 1.45f, 0.0f, 5.0f)
, _value(ValueInfo, 1.f, 0.0f, 5.0f)
, _lightness(LightnessInfo, 1.1f, 0.0f, 5.0f)
, _colorSpace(ColorSpaceInfo, properties::OptionProperty::DisplayType::Dropdown)
, _saturation(SaturationInfo, 1.f, 0.0f, 2.0f)
, _value(ValueInfo, 1.f, 0.0f, 2.0f)
, _horizFieldOfView(HorizFieldOfViewInfo, 80.f, 1.f, 179.0f)
, _globalRotation(
GlobalRotationInfo,
@@ -351,6 +317,13 @@ RenderEngine::RenderEngine()
});
addProperty(_nAaSamples);
_disableHDRPipeline.onChange([this]() {
if (_renderer) {
//_renderer->setHDRExposure(_hdrExposure);
}
});
addProperty(_disableHDRPipeline);
_hdrExposure.onChange([this]() {
if (_renderer) {
@@ -358,34 +331,6 @@ RenderEngine::RenderEngine()
}
});
addProperty(_hdrExposure);
_maxWhite.onChange([this]() {
if (_renderer) {
_renderer->setMaxWhite(_maxWhite);
}
});
addProperty(_maxWhite);
_toneMapOperator.addOption(static_cast<int>(ToneMapOperators::EXPONENTIAL), "Exponential");
_toneMapOperator.addOption(static_cast<int>(ToneMapOperators::LINEAR), "Linear");
_toneMapOperator.addOption(static_cast<int>(ToneMapOperators::SIMPLE_REINHARD), "Simple Reinhard");
_toneMapOperator.addOption(static_cast<int>(ToneMapOperators::LUM_BASED_REINHARD), "Lum based Reinhard");
_toneMapOperator.addOption(static_cast<int>(ToneMapOperators::WHITE_PRESERVING), "White Preserving");
_toneMapOperator.addOption(static_cast<int>(ToneMapOperators::ROM_BIN_DA_HOUSE), "RomBin da House");
_toneMapOperator.addOption(static_cast<int>(ToneMapOperators::FILMIC), "Filmic");
_toneMapOperator.addOption(static_cast<int>(ToneMapOperators::UNCHARTED), "Uncharted 2");
_toneMapOperator.addOption(static_cast<int>(ToneMapOperators::COSTA), "Costa");
_toneMapOperator.addOption(static_cast<int>(ToneMapOperators::PHOTOGRAPHIC_REINHARD), "Photographic Reinhard");
_toneMapOperator.set(8);
_toneMapOperator.onChange([this]() {
if (_renderer) {
_renderer->setToneMapOperator(_toneMapOperator);
}
});
addProperty(_toneMapOperator);
_gamma.onChange([this]() {
if (_renderer) {
@@ -394,18 +339,6 @@ RenderEngine::RenderEngine()
});
addProperty(_gamma);
_colorSpace.addOption(static_cast<int>(COLORSPACE::HSV), "HSV");
_colorSpace.addOption(static_cast<int>(COLORSPACE::HSL), "HSL");
_colorSpace.set(1);
_colorSpace.onChange([this]() {
if (_renderer) {
_renderer->setColorSpace(_colorSpace);
}
});
addProperty(_colorSpace);
_hue.onChange([this]() {
if (_renderer) {
_renderer->setHue(_hue);
@@ -429,15 +362,6 @@ RenderEngine::RenderEngine()
});
addProperty(_value);
_lightness.onChange([this]() {
if (_renderer) {
_renderer->setLightness(_lightness);
}
});
addProperty(_lightness);
//this->addPropertySubOwner(_imageOwner);
addProperty(_globalBlackOutFactor);
addProperty(_applyWarping);