mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-05-06 11:29:55 -05:00
Feature/du updates (#972)
* Updating DU for new data. * Changed how OS handles partiview colormaps. * Multiple changes to adapt OS' behavior for cmaps. * Small tweaks. MW sphere is now fading in the correct spacetime. * Added all the Star Orbits. * Fixing bug in speck reading procedure. * Changed code to allow comments into data region of a speck file. * Added deep sky objects. * Added Home label * Fixed bug in drawelements. * Added Sun as a separated star for better control. * Update version numbers on DU assets * Move starorbits into their own asset file * Making some of the digital universe renderables fully opaque for performance gains
This commit is contained in:
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "2dF Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_2dF_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,14 +22,16 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 1.0,
|
||||
Opacity = 1.0,
|
||||
File = speck .. "/2dF.speck",
|
||||
Texture = textures .. "/point3.png",
|
||||
ColorMap = speck .. "/lss.cmap",
|
||||
ColorOption = { "redshift", "prox5Mpc" },
|
||||
ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } },
|
||||
ColorMap = speck .. "/2dF.cmap",
|
||||
ColorOption = { "redshift", "proximity" },
|
||||
ColorRange = { { 0.0, 0.075 }, { 1.0, 25.0 } },
|
||||
Unit = "Mpc",
|
||||
ScaleFactor = 508.0
|
||||
ScaleFactor = 520.0,
|
||||
BillboardMaxSize = 4.7,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "2dF Galaxies",
|
||||
|
||||
@@ -22,7 +22,7 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 0.4, 0.2 },
|
||||
Transparency = 1.0,
|
||||
Opacity = 1.0,
|
||||
File = speck .. "/2MASS.speck",
|
||||
Texture = textures .. "/point3.png",
|
||||
ColorMap = speck .. "/lss.cmap",
|
||||
@@ -31,7 +31,9 @@ local object = {
|
||||
Unit = "Mpc",
|
||||
CorrectionSizeEndDistance = 20.6,
|
||||
CorrectionSizeFactor = 15.0,
|
||||
ScaleFactor = 508.0
|
||||
ScaleFactor = 510.78,
|
||||
BillboardMaxSize = 11.15,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "2MASS Galaxies",
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "6dF Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_6dF_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -21,15 +21,17 @@ local object = {
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 1.0,
|
||||
Color = { 1.0, 1.0, 0.0 },
|
||||
Opacity = 1.0,
|
||||
File = speck .. "/6dF.speck",
|
||||
Texture = textures .. "/point3.png",
|
||||
ColorMap = speck .. "/lss.cmap",
|
||||
ColorOption = { "redshift", "prox5Mpc" },
|
||||
ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } },
|
||||
ColorMap = speck .. "/6dF.cmap",
|
||||
ColorOption = { "redshift", "proximity" },
|
||||
ColorRange = { { 0.0, 0.075 }, { 1.0, 10.0 } },
|
||||
Unit = "Mpc",
|
||||
ScaleFactor = 508.0
|
||||
ScaleFactor = 534.0,
|
||||
BillboardMaxSize = 7.0,
|
||||
EnablePixelSizeControl = true,
|
||||
},
|
||||
GUI = {
|
||||
Name = "6dF Galaxies",
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Abell Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_abell_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,8 +22,8 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 0.4, 0.2 },
|
||||
Transparency = 1.0,
|
||||
ScaleFactor = 525.0,
|
||||
Opacity = 1.0,
|
||||
--ColorMap = speck .. "/abell.cmap",
|
||||
File = speck .. "/abell.speck",
|
||||
Texture = textures .. "/point3.png",
|
||||
LabelFile = speck .. "/abell.label",
|
||||
@@ -36,7 +36,10 @@ local object = {
|
||||
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
|
||||
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
|
||||
0.0, 0.0, 0.0, 1.0
|
||||
}
|
||||
},
|
||||
ScaleFactor = 520.0,
|
||||
BillboardMaxSize = 7.0,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Abell Galaxy Clusters",
|
||||
|
||||
@@ -15,7 +15,7 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.65,
|
||||
Opacity = 0.65,
|
||||
LabelFile = speck .. "/stars-altlbl.label",
|
||||
TextColor = { 0.4, 0.4, 0.4, 1.0 },
|
||||
DrawLabels = true,
|
||||
|
||||
@@ -6,7 +6,7 @@ local textures = asset.syncedResource({
|
||||
Name = "Background Radiation Textures",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_backgroundradiation_textures",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local speck = asset.syncedResource({
|
||||
@@ -214,7 +214,35 @@ local multiverse_planck_4 = {
|
||||
}
|
||||
|
||||
|
||||
local Halpha = {
|
||||
Identifier = "HAlpha",
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = {0, 0, 3.14159265359}
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphere",
|
||||
Enabled = false,
|
||||
Size = 9.2E21,
|
||||
Segments = 40,
|
||||
Opacity = 0.4,
|
||||
Texture = textures .. "/mwHalpha-f.png",
|
||||
Orientation = "Inside",
|
||||
UseAdditiveBlending = true,
|
||||
MirrorTexture = true,
|
||||
FadeOutThreshold = 0.025,
|
||||
Background = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "H Alpha",
|
||||
Path = "/Milky Way/All Sky Images"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
wmap, cbe, planck, multiverse_planck_1, multiverse_planck_2, multiverse_planck_3,
|
||||
multiverse_planck_4
|
||||
multiverse_planck_4, Halpha
|
||||
})
|
||||
|
||||
@@ -6,7 +6,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Clusters Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_clusters_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -15,13 +15,19 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.65,
|
||||
Opacity = 0.65,
|
||||
LabelFile = speck .. "/galclust.label",
|
||||
TextColor = { 0.7, 0.3, 0.0, 1.0 },
|
||||
TextColor = { 1.0, 0.44, 0.0, 1.0 },
|
||||
DrawLabels = true,
|
||||
TextSize = 22,
|
||||
TextMinSize = 8.0,
|
||||
Unit = "Mpc"
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = {
|
||||
-0.7357425748, 0.67726129641, 0.0, 0.0,
|
||||
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
|
||||
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
|
||||
0.0, 0.0, 0.0, 1.0
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Name = "Galaxy Cluster Labels",
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
|
||||
local textures = asset.syncedResource({
|
||||
Name = "Deep Sky Objects Textures",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_deepsky_textures",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local speck = asset.syncedResource({
|
||||
Name = "Deep Sky Objects Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_deepsky_speck",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local deepSkyPoints = {
|
||||
Identifier = "DeepSkyObjects",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 0.0 },
|
||||
Opacity = 0.99,
|
||||
ScaleFactor = 500.0,
|
||||
File = speck .. "/dso.speck",
|
||||
Texture = textures .. "/point3.png",
|
||||
--ColorMap = speck .. "/tully.cmap",
|
||||
--ColorMap = speck .. "/lss.cmap",
|
||||
--ColorOption = { "proximity" },
|
||||
--ColorOption = { "prox5Mpc" },
|
||||
--ColorRange = { { 1.0, 30.0 } },
|
||||
LabelFile = speck .. "/dso.label",
|
||||
TextColor = { 0.1, 0.4, 0.6, 1.0 },
|
||||
TextSize = 20.50,
|
||||
TextMinSize = 16.0,
|
||||
Unit = "Mpc",
|
||||
-- Fade in value in the same unit as "Unit"
|
||||
--FadeInDistances = { 0.05, 1.0 },
|
||||
-- Max size in pixels
|
||||
BillboardMaxSize = 8.22,
|
||||
BillboardMinSize = 0.0,
|
||||
--CorrectionSizeEndDistance = 22.0,
|
||||
--CorrectionSizeFactor = 10.45
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Deep Sky Objects Points",
|
||||
Path = "/Universe/Galaxies"
|
||||
}
|
||||
}
|
||||
|
||||
local deepSkyImages = {
|
||||
Identifier = "DeepSkyObjectsImages",
|
||||
Renderable = {
|
||||
Type = "RenderablePlanesCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.99,
|
||||
ScaleFactor = 1.0,
|
||||
File = speck .. "/dso.speck",
|
||||
TexturePath = textures,
|
||||
Luminosity = "radius",
|
||||
ScaleLuminosity = 0.001,
|
||||
Unit = "Mpc",
|
||||
-- Fade in value in the same unit as "Unit"
|
||||
--FadeInDistances = {0.001, 0.05010},
|
||||
PlaneMinSize = 5.0
|
||||
},
|
||||
GUI = {
|
||||
Name = "Deep Sky Objects Images",
|
||||
Path = "/Universe/Galaxies"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { deepSkyPoints, deepSkyImages })
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Brown Dwarf Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_dwarfs_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,16 +22,21 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 0.4, 0.0, 0.1 },
|
||||
Transparency = 0.999,
|
||||
Opacity = 1.0,
|
||||
File = speck .. "/dwarfs.speck",
|
||||
Texture = textures .. "/point3.png",
|
||||
LabelFile = speck .. "/dwarfs.label",
|
||||
ColorMap = speck .. "/dwarfs.cmap",
|
||||
ColorOption = { "typeindex" },
|
||||
--ColorRange = { { 1.0, 4.0} },
|
||||
TextColor = { 0.5, 0.1, 0.2, 1.0 },
|
||||
TextSize = 14.6,
|
||||
TextMinSize = 10.0,
|
||||
ScaleFactor = 360,
|
||||
CorrectionSizeEndDistance = 16.1,
|
||||
CorrectionSizeFactor = 7.75,
|
||||
ScaleFactor = 370,
|
||||
--CorrectionSizeEndDistance = 16.1,
|
||||
--CorrectionSizeFactor = 7.75,
|
||||
BillboardMaxSize = 18.0,
|
||||
EnablePixelSizeControl = true,
|
||||
Unit = "pc"
|
||||
},
|
||||
GUI = {
|
||||
|
||||
@@ -22,19 +22,21 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.65,
|
||||
Opacity = 1.0,
|
||||
ScaleFactor = 10.0,
|
||||
Texture = textures .. "/target-blue.png",
|
||||
File = speck .. "/expl.speck",
|
||||
LabelFile = speck .. "/expl.label",
|
||||
ScaleFactor = 380.0,
|
||||
ScaleFactor = 392.5,
|
||||
TextColor = { 0.3, 0.3, 0.8, 1.0 },
|
||||
TextSize = 14.8,
|
||||
TextMaxSize = 200.0,
|
||||
TextMinSize = 10.0,
|
||||
CorrectionSizeEndDistance = 15.23,
|
||||
CorrectionSizeFactor = 13.3,
|
||||
Unit = "pc"
|
||||
Unit = "pc",
|
||||
BillboardMaxSize = 52.0,
|
||||
EnablePixelSizeControl = true,
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Milky Way/Exoplanets"
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Globular Clusters Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_globularclusters_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,17 +22,19 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 0.8, 0.8, 0.0 },
|
||||
Transparency = 0.35,
|
||||
Opacity = 1.0,
|
||||
File = speck .. "/gc.speck",
|
||||
Texture = textures .. "/point4.png",
|
||||
PolygonSides = 5,
|
||||
LabelFile = speck .. "/gc.label",
|
||||
TextColor = { 0.5, 0.5, 0.0, 1.0 },
|
||||
ScaleFactor = 440.0,
|
||||
TextSize = 17.5,
|
||||
TextSize = 18.6,
|
||||
TextMinSize = 10.0,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
TextMaxSize = 14.4,
|
||||
Unit = "pc",
|
||||
BillboardMaxSize = 13.5,
|
||||
EnablePixelSizeControl = true,
|
||||
},
|
||||
GUI = {
|
||||
Name = "Globular Clusters",
|
||||
|
||||
@@ -24,7 +24,7 @@ local radio = {
|
||||
Renderable = {
|
||||
Type = "RenderableSphericalGrid",
|
||||
Enabled = false,
|
||||
GridColor = { 1.0, 1.0, 0.3, 0.75},
|
||||
GridColor = { 0.3, 0.84, 1.0, 0.3},
|
||||
LineWidth = 2.0,
|
||||
GridMatrix = { -0.05487554, 0.4941095, -0.8676661 , 0.0,
|
||||
-0.9938214 , -0.1109906, -0.0003515167, 0.0,
|
||||
@@ -74,7 +74,7 @@ local ecliptic = {
|
||||
Renderable = {
|
||||
Type = "RenderableSphericalGrid",
|
||||
Enabled = false,
|
||||
GridColor = { 0.7, 0.0, 0.0, 0.5},
|
||||
GridColor = { 0.74, 0.26, 0.26, 0.5},
|
||||
LineWidth = 2.0,
|
||||
GridMatrix = { -0.05487554, 0.4941095, -0.8676661 , 0.0,
|
||||
-0.9938214 , -0.1109906, -0.0003515167, 0.0,
|
||||
@@ -121,13 +121,13 @@ local equatorial = {
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 6.2440846E17;
|
||||
Scale = 4.28601E17;
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphericalGrid",
|
||||
Enabled = false,
|
||||
GridColor = { 0.0, 0.0, 1.0, 0.8},
|
||||
GridColor = { 0.69, 0.68, 0.29, 0.8},
|
||||
LineWidth = 2.0,
|
||||
GridMatrix = { -0.05487554, 0.4941095, -0.8676661, 0.0,
|
||||
-0.8734371 , -0.4448296, -0.1980764, 0.0,
|
||||
|
||||
@@ -15,16 +15,23 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.65,
|
||||
Opacity = 0.65,
|
||||
--ScaleFactor = 10.0,
|
||||
LabelFile = speck .. "/groups.label",
|
||||
TextColor = { 0.1, 0.6, 0.2, 1.0 },
|
||||
TextSize = 21.5,
|
||||
TextMinSize = 8.0,
|
||||
Unit = "Mpc"
|
||||
Unit = "Mpc",
|
||||
DrawLabels = true,
|
||||
TransformationMatrix = {
|
||||
-0.7357425748, 0.67726129641, 0.0, 0.0,
|
||||
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
|
||||
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
|
||||
0.0, 0.0, 0.0, 1.0
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Name = "Nearby Galaxy Groups",
|
||||
Name = "Galaxy Group Labels",
|
||||
Path = "/Universe/Galaxies"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "HII Regions Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_h2regions_speck",
|
||||
Version = 2
|
||||
Version = 3
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,17 +22,19 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 0.0, 0.5, 1.0 },
|
||||
Transparency = 0.35,
|
||||
Opacity = 1.0,
|
||||
File = speck .. "/h2.speck",
|
||||
Texture = textures .."/point4.png",
|
||||
PolygonSides = 6,
|
||||
LabelFile = speck .. "/h2.label",
|
||||
TextColor = { 0.5, 0.5, 0.5, 1.0 },
|
||||
ScaleFactor = 420,
|
||||
ScaleFactor = 425,
|
||||
TextSize = 17.25,
|
||||
TextMinSize = 10.0,
|
||||
TextMinSize = 30.0,
|
||||
Unit = "pc"
|
||||
Unit = "pc",
|
||||
BillboardMaxSize = 25.0,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "HII Regions",
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Kepler Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_kepler_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,13 +22,15 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 0.0 },
|
||||
Transparency = 0.99,
|
||||
ScaleFactor = 395.0,
|
||||
Opacity = 0.99,
|
||||
ScaleFactor = 410.0,
|
||||
File = speck .. "/kepler.speck",
|
||||
Texture = textures .. "/halo.png",
|
||||
CorrectionSizeEndDistance = 15.86,
|
||||
CorrectionSizeFactor = 8.59,
|
||||
Unit = "pc"
|
||||
Unit = "pc",
|
||||
BillboardMaxSize = 23.0,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Kepler Planetary Candidates",
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Local Dwarfs Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_localdwarfs_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,19 +22,23 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 0.5, 1.0, 0.2 },
|
||||
Transparency = 0.3,
|
||||
File = speck .. "/localdwarfs.speck",
|
||||
ColorMap = speck .. "/localgroup.cmap",
|
||||
ColorOption = { "association" },
|
||||
Opacity = 0.3,
|
||||
File = speck .. "/localgroup.speck",
|
||||
Texture = textures .. "/point4.png",
|
||||
PolygonSides = 12,
|
||||
LabelFile = speck .. "/localdwarfs.label",
|
||||
LabelFile = speck .. "/localgroup.label",
|
||||
TextColor = { 0.3, 0.3, 1.0, 1.0 },
|
||||
ScaleFactor = 478,
|
||||
ScaleFactor = 465,
|
||||
TextSize = 18.3,
|
||||
TextMinSize = 7.3,
|
||||
Unit = "Mpc"
|
||||
Unit = "Mpc",
|
||||
BillboardMaxSize = 20.0,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Local Dwarf Galaxies",
|
||||
Name = "Local Group",
|
||||
Path = "/Universe/Galaxies"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,13 @@ local planeSpeck = asset.syncedResource({
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local homespeck = asset.syncedResource({
|
||||
Name = "Home Speck File",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_home_speck",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local sphere = {
|
||||
Identifier = "MilkyWay",
|
||||
Transform = {
|
||||
@@ -40,7 +47,7 @@ local sphere = {
|
||||
Orientation = "Inside",
|
||||
UseAdditiveBlending = true,
|
||||
MirrorTexture = true,
|
||||
FadeOutThreshold = 0.025,
|
||||
FadeOutThreshold = 0.0015,
|
||||
Background = true
|
||||
},
|
||||
GUI = {
|
||||
@@ -73,6 +80,43 @@ local plane = {
|
||||
}
|
||||
}
|
||||
|
||||
local homeLabel = {
|
||||
Identifier = "HomeLabel",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 0.4, 0.2 },
|
||||
Opacity = 0.99,
|
||||
ScaleFactor = 500.0,
|
||||
--File = homespeck .. "/home.speck",
|
||||
-- Texture = textures .. "/point3.png",
|
||||
DrawLabels = true,
|
||||
LabelFile = homespeck .. "/home.label",
|
||||
TextColor = { 0.8, 0.8, 0.8, 1.0 },
|
||||
TextSize = 20.50,
|
||||
TextMinSize = 16.0,
|
||||
TransformationMatrix = {
|
||||
-0.7357425748, 0.67726129641, 0.0, 0.0,
|
||||
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
|
||||
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
|
||||
0.0, 0.0, 0.0, 1.0
|
||||
},
|
||||
Unit = "Mpc",
|
||||
-- Fade in value in the same unit as "Unit"
|
||||
FadeInDistances = { 0.05, 1.0 },
|
||||
-- Max size in pixels
|
||||
BillboardMaxSize = 8.22,
|
||||
BillboardMinSize = 0.0,
|
||||
--CorrectionSizeEndDistance = 22.0,
|
||||
--CorrectionSizeFactor = 10.45
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Home Label",
|
||||
Path = "/Universe/Galaxies"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { sphere, plane })
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { sphere, plane, homeLabel })
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "OB Associations Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_obassociations_speck",
|
||||
Version = 2
|
||||
Version = 3
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -21,18 +21,24 @@ local object = {
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 0.0, 0.0, 1.0 },
|
||||
Transparency = 0.5,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
ColorMap = speck .. "/ob.cmap",
|
||||
ColorOption = { "arm" },
|
||||
SizeOption = {"diameter"},
|
||||
ExactColorMap = true,
|
||||
Opacity = 0.9,
|
||||
File = speck .. "/ob.speck",
|
||||
Texture = textures .. "/point4.png",
|
||||
PolygonSides = 7,
|
||||
LabelFile = speck .. "/ob.label",
|
||||
TextColor = { 0.4, 0.5, 1.0, 1.0 },
|
||||
ScaleFactor = 428.0,
|
||||
ScaleFactor = 390.0,
|
||||
TextSize = 17.0,
|
||||
TextMinSize = 5.76,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
Unit = "pc",
|
||||
--BillboardMaxSize = 21.0,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "OB Associations",
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Open Clusters Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_openclusters_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,7 +22,7 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 0.1, 0.8, 0.4 },
|
||||
Transparency = 0.5,
|
||||
Opacity = 0.5,
|
||||
File = speck .. "/oc.speck",
|
||||
Texture = textures .. "/point4.png",
|
||||
PolygonSides = 12,
|
||||
@@ -32,7 +32,9 @@ local object = {
|
||||
TextSize = 16.68,
|
||||
TextMinSize = 4.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
Unit = "pc",
|
||||
BillboardMaxSize = 20.22,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Open Star Clusters",
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Planetary Nebulae Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_planetarynebulae_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,17 +22,19 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 0.4, 0.4, 0.9 },
|
||||
Transparency = 0.35,
|
||||
Opacity = 1.0,
|
||||
File = speck .. "/pn.speck",
|
||||
Texture = textures .. "/point4.png",
|
||||
PolygonSides = 3,
|
||||
LabelFile = speck .. "/pn.label",
|
||||
TextColor = { 0.25, 0.25, 0.65, 1.0 },
|
||||
ScaleFactor = 418.33,
|
||||
ScaleFactor = 435.0,
|
||||
TextSize = 16.68,
|
||||
TextMinSize = 4.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
Unit = "pc",
|
||||
BillboardMaxSize = 35,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Planetary Nebulae",
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Pulsars Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_pulsars_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,7 +22,7 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 0.7, 0.0, 0.0 },
|
||||
Transparency = 0.5,
|
||||
Opacity = 1.0,
|
||||
File = speck .. "/pulsar.speck",
|
||||
Texture = textures .. "/point4.png",
|
||||
PolygonSides = 4,
|
||||
@@ -32,7 +32,9 @@ local object = {
|
||||
TextSize = 16.68,
|
||||
TextMinSize = 7.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
Unit = "pc",
|
||||
BillboardMaxSize = 35,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Milky Way"
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Quasars Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_quasars_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,15 +22,17 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = true,
|
||||
Color = { 1.0, 0.4, 0.2 },
|
||||
Transparency = 1.0,
|
||||
Opacity = 0.95,
|
||||
File = speck .. "/quasars.speck",
|
||||
Texture = textures .. "/point3.png",
|
||||
Unit = "Mpc",
|
||||
ScaleFactor = 537.31,
|
||||
ScaleFactor = 540.9,
|
||||
-- Fade in value in the same unit as "Unit"
|
||||
FadeInDistances = { 1000.0, 10000.0 },
|
||||
BillboardMaxSize = 30.0,
|
||||
BillboardMinSize = 0.0,
|
||||
BillboardMaxSize = 11.1,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Universe"
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Sloan Digital Sky Survey Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_sloandss_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,11 +22,11 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = true,
|
||||
Color = { 0.8, 0.8, 1.0 },
|
||||
Transparency = 1.0,
|
||||
ScaleFactor = 507.88,
|
||||
Opacity = 0.8,
|
||||
ScaleFactor = 520.0,
|
||||
File = speck .. "/SDSSgals.speck",
|
||||
ColorMap = speck .. "/lss.cmap",
|
||||
ColorOption = { "redshift", "prox5Mpc" },
|
||||
ColorMap = speck .. "/SDSSgals.cmap",
|
||||
ColorOption = { "redshift", "proximity" },
|
||||
ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } },
|
||||
Texture = textures .. "/point3.png",
|
||||
Unit = "Mpc",
|
||||
@@ -38,7 +38,9 @@ local object = {
|
||||
CorrectionSizeFactor = 10.41,
|
||||
TextSize = 14.8,
|
||||
TextMinSize = 10.0,
|
||||
TextMaxSize = 50.0
|
||||
TextMaxSize = 50.0,
|
||||
BillboardMaxSize = 5.5,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Sloan Digital Sky Survey",
|
||||
|
||||
@@ -15,7 +15,7 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.65,
|
||||
Opacity = 0.65,
|
||||
LabelFile = speck .. "/stars.label",
|
||||
TextColor = { 0.4, 0.4, 0.4, 1.0 },
|
||||
DrawLabels = true,
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local transforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms')
|
||||
|
||||
|
||||
local speck = asset.syncedResource({
|
||||
Name = "Grids Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_starorbits_speck",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local sunOrbit = {
|
||||
Identifier = "SunOrbit",
|
||||
--Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Renderable = {
|
||||
Type = "RenderableDUMeshes",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 0.65, 0.0 },
|
||||
Transparency = 1.0,
|
||||
ScaleFactor = 1.0,
|
||||
File = speck .. "/starorbits-Sun.speck",
|
||||
MeshColor = {{ 1.0, 0.65, 0.0 }},
|
||||
--LabelFile = speck .. "/1ld.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 10.3,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
},
|
||||
GUI = {
|
||||
Name = "Sun Orbit",
|
||||
Path = "/Milky Way/Stars/Stars Orbits"
|
||||
}
|
||||
}
|
||||
|
||||
local barnardsOrbit = {
|
||||
Identifier = "BarnardsOrbit",
|
||||
--Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Renderable = {
|
||||
Type = "RenderableDUMeshes",
|
||||
Enabled = false,
|
||||
Color = {1.0, 1.0, 1.0},
|
||||
Transparency = 1.0,
|
||||
ScaleFactor = 1.0,
|
||||
File = speck .. "/starorbits-BarnardsStar.speck",
|
||||
MeshColor = {{0.39, 0.58, 0.93}},
|
||||
--LabelFile = speck .. "/1ld.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 10.3,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
},
|
||||
GUI = {
|
||||
Name = "Barnards Orbit",
|
||||
Path = "/Milky Way/Stars/Stars Orbits"
|
||||
}
|
||||
}
|
||||
|
||||
local kapteynsOrbit = {
|
||||
Identifier = "KapteynsOrbit",
|
||||
--Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Renderable = {
|
||||
Type = "RenderableDUMeshes",
|
||||
Enabled = false,
|
||||
Color = {1.0, 1.0, 1.0},
|
||||
Transparency = 1.0,
|
||||
ScaleFactor = 1.0,
|
||||
File = speck .. "/starorbits-kapteynsStar.speck",
|
||||
MeshColor = {{0.6, 0.6, 0.6}},
|
||||
--LabelFile = speck .. "/1ld.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 10.3,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
},
|
||||
GUI = {
|
||||
Name = "Kapteyns Orbit",
|
||||
Path = "/Milky Way/Stars/Stars Orbits"
|
||||
}
|
||||
}
|
||||
|
||||
local lacaille9352Orbit = {
|
||||
Identifier = "Lacaille9352Orbit",
|
||||
--Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Renderable = {
|
||||
Type = "RenderableDUMeshes",
|
||||
Enabled = false,
|
||||
Color = {1.0, 1.0, 1.0},
|
||||
Transparency = 1.0,
|
||||
ScaleFactor = 1.0,
|
||||
File = speck .. "/starorbits-Lacaille9352.speck",
|
||||
MeshColor = {{0.58, 0.0, 0.83}},
|
||||
--LabelFile = speck .. "/1ld.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 10.3,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
},
|
||||
GUI = {
|
||||
Name = "Lacaille 9352 Orbit",
|
||||
Path = "/Milky Way/Stars/Stars Orbits"
|
||||
}
|
||||
}
|
||||
|
||||
local lSR1826Orbit = {
|
||||
Identifier = "LSR1826Orbit",
|
||||
--Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Renderable = {
|
||||
Type = "RenderableDUMeshes",
|
||||
Enabled = false,
|
||||
Color = {1.0, 1.0, 1.0},
|
||||
Transparency = 1.0,
|
||||
ScaleFactor = 1.0,
|
||||
File = speck .. "/starorbits-LSR1826+3014.speck",
|
||||
MeshColor = {{0.0, 0.39, 0.0}},
|
||||
--LabelFile = speck .. "/1ld.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 10.3,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
},
|
||||
GUI = {
|
||||
Name = "LSR1826+3014 Orbit",
|
||||
Path = "/Milky Way/Stars/Stars Orbits"
|
||||
}
|
||||
}
|
||||
|
||||
local lSRJ0822Orbit = {
|
||||
Identifier = "LSRJ0822Orbit",
|
||||
--Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Renderable = {
|
||||
Type = "RenderableDUMeshes",
|
||||
Enabled = false,
|
||||
Color = {1.0, 1.0, 1.0},
|
||||
Transparency = 1.0,
|
||||
ScaleFactor = 1.0,
|
||||
File = speck .. "/starorbits-LSRJ0822+1700.speck",
|
||||
MeshColor = {{0.5, 1.0, 0.0}},
|
||||
--LabelFile = speck .. "/1ld.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 10.3,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
},
|
||||
GUI = {
|
||||
Name = "LSRJ0822+1700 Orbit",
|
||||
Path = "/Milky Way/Stars/Stars Orbits"
|
||||
}
|
||||
}
|
||||
|
||||
local pM_J13420Orbit = {
|
||||
Identifier = "PM_J13420Orbit",
|
||||
--Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Renderable = {
|
||||
Type = "RenderableDUMeshes",
|
||||
Enabled = false,
|
||||
Color = {1.0, 1.0, 1.0},
|
||||
Transparency = 1.0,
|
||||
ScaleFactor = 1.0,
|
||||
File = speck .. "/starorbits-PM_J13420-3415.speck",
|
||||
MeshColor = {{0.70, 0.13, 0.13}},
|
||||
--LabelFile = speck .. "/1ld.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 10.3,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "pc"
|
||||
},
|
||||
GUI = {
|
||||
Name = "PM_J13420-3415 Orbit",
|
||||
Path = "/Milky Way/Stars/Stars Orbits"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
sunOrbit, barnardsOrbit, pM_J13420Orbit, lSRJ0822Orbit, lSR1826Orbit,
|
||||
lacaille9352Orbit, kapteynsOrbit
|
||||
})
|
||||
@@ -13,7 +13,14 @@ local speck = asset.syncedResource({
|
||||
Name = "Stars Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "stars_du",
|
||||
Version = 3
|
||||
Version = 4
|
||||
})
|
||||
|
||||
local sunspeck = asset.syncedResource({
|
||||
Name = "Stars Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_sunstar_speck",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local colorLUT = asset.syncedResource({
|
||||
@@ -40,4 +47,23 @@ local stars = {
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { stars })
|
||||
local sunstar = {
|
||||
Identifier = "SunStar",
|
||||
Renderable = {
|
||||
Type = "RenderableStars",
|
||||
File = sunspeck .. "/sunstar.speck",
|
||||
Texture = textures .. "/halo.png",
|
||||
--ShapeTexture = textures .. "/disc.png",
|
||||
ColorMap = colorLUT .. "/colorbv.cmap",
|
||||
MagnitudeExponent = 6.2,
|
||||
SizeComposition = "Distance Modulus",
|
||||
RenderMethod = "Texture Based", -- or PSF
|
||||
FadeInDistances = {0.0001, 0.1}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Sun",
|
||||
Path = "/Milky Way/Stars"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { stars, sunstar })
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Galaxy Superclusters Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_superclusters_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -21,16 +21,20 @@ local object = {
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
DrawElements = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.65,
|
||||
Opacity = 0.65,
|
||||
File = speck .. "/superclust.speck",
|
||||
Texture = textures .. "/point3.png",
|
||||
LabelFile = speck .. "/superclust.label",
|
||||
TextColor = { 0.6, 0.6, 0.6, 1.0 },
|
||||
TextColor = { 0.9, 0.9, 0.9, 1.0 },
|
||||
ScaleFactor = 531.0,
|
||||
TextSize = 22.44,
|
||||
TextMinSize = 8.0,
|
||||
Unit = "Mpc"
|
||||
Unit = "Mpc",
|
||||
DrawLabels = true,
|
||||
--BillboardMaxSize = 7.2,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Galaxy Superclusters",
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Supernova Remnants Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_supernovaremnants_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -22,19 +22,21 @@ local object = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 0.5, 0.0 },
|
||||
Transparency = 0.5,
|
||||
Opacity = 0.9,
|
||||
File = speck .. "/snr.speck",
|
||||
Texture = textures .. "/point4.png",
|
||||
PolygonSides = 7,
|
||||
LabelFile = speck .. "/snr.label",
|
||||
TextColor = { 0.6, 0.3, 0.0, 1.0 },
|
||||
ScaleFactor = 440.08,
|
||||
ScaleFactor = 435,
|
||||
TextSize = 17.5,
|
||||
TextMinSize = 8.0,
|
||||
TextMaxSize = 30.0,
|
||||
CorrectionSizeEndDistance = 17.5,
|
||||
CorrectionSizeFactor = 13.96,
|
||||
Unit = "pc"
|
||||
--CorrectionSizeEndDistance = 17.5,
|
||||
--CorrectionSizeFactor = 13.96,
|
||||
Unit = "pc",
|
||||
BillboardMaxSize = 27.2,
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Supernova Remnants",
|
||||
|
||||
@@ -22,13 +22,15 @@ local tullyPoints = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = true,
|
||||
Color = { 1.0, 0.4, 0.2 },
|
||||
Transparency = 0.99,
|
||||
ScaleFactor = 502.77,
|
||||
Opacity = 0.99,
|
||||
ScaleFactor = 500.0,
|
||||
File = speck .. "/tully.speck",
|
||||
Texture = textures .. "/point3.png",
|
||||
--ColorMap = speck .. "/tully.cmap",
|
||||
ColorMap = speck .. "/lss.cmap",
|
||||
--ColorOption = { "proximity" },
|
||||
ColorOption = { "prox5Mpc" },
|
||||
ColorRange = { { 1.0, 80.0 } },
|
||||
ColorRange = { { 1.0, 30.0 } },
|
||||
LabelFile = speck .. "/tully.label",
|
||||
TextColor = { 0.7, 0.7, 0.7, 1.0 },
|
||||
TextSize = 20.50,
|
||||
@@ -43,10 +45,11 @@ local tullyPoints = {
|
||||
-- Fade in value in the same unit as "Unit"
|
||||
FadeInDistances = { 0.05, 1.0 },
|
||||
-- Max size in pixels
|
||||
BillboardMaxSize = 50.0,
|
||||
BillboardMaxSize = 8.22,
|
||||
BillboardMinSize = 0.0,
|
||||
CorrectionSizeEndDistance = 22.0,
|
||||
CorrectionSizeFactor = 10.45
|
||||
--CorrectionSizeEndDistance = 22.0,
|
||||
--CorrectionSizeFactor = 10.45
|
||||
EnablePixelSizeControl = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Tully Galaxies",
|
||||
@@ -74,7 +77,7 @@ local tullyImages = {
|
||||
},
|
||||
Unit = "Mpc",
|
||||
-- Fade in value in the same unit as "Unit"
|
||||
FadeInDistances = {0.05, 0.1},
|
||||
FadeInDistances = {0.001, 0.05010},
|
||||
PlaneMinSize = 5.0
|
||||
},
|
||||
GUI = {
|
||||
@@ -84,5 +87,4 @@ local tullyImages = {
|
||||
}
|
||||
|
||||
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { tullyPoints, tullyImages })
|
||||
|
||||
@@ -6,7 +6,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Voids Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_voids_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
@@ -14,11 +14,12 @@ local object = {
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Enabled = false,
|
||||
DrawElements = false,
|
||||
DrawLabels = true,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.65,
|
||||
Opacity = 0.65,
|
||||
LabelFile = speck .. "/voids.label",
|
||||
TextColor = { 0.0, 0.4, 0.7, 1.0 },
|
||||
TextColor = { 0.296, 0.629, 1.0, 1.0 },
|
||||
TextSize = 20.9,
|
||||
TextMinSize = 8.0,
|
||||
Unit = "Mpc"
|
||||
|
||||
@@ -61,7 +61,7 @@ local Moon = {
|
||||
Name = "Uvvis Hybrid [Utah]",
|
||||
FilePath = mapServiceConfigs .. "/Utah/UvvisHybrid.wms",
|
||||
Settings = {
|
||||
Gamma = 0.75
|
||||
Gamma = 0.75,
|
||||
Multiplier = 1.5
|
||||
}
|
||||
},
|
||||
@@ -70,7 +70,7 @@ local Moon = {
|
||||
Name = "Uvvis Hybrid [Sweden]",
|
||||
FilePath = mapServiceConfigs .. "/LiU/Uvvis_Hybrid.wms",
|
||||
Settings = {
|
||||
Gamma = 0.75
|
||||
Gamma = 0.75,
|
||||
Multiplier = 1.5
|
||||
}
|
||||
},
|
||||
|
||||
@@ -56,12 +56,12 @@ namespace {
|
||||
constexpr const char* ProgramObjectName = "RenderableBillboardsCloud";
|
||||
constexpr const char* RenderToPolygonProgram = "RenderableBillboardsCloud_Polygon";
|
||||
|
||||
constexpr const std::array<const char*, 19> UniformNames = {
|
||||
constexpr const std::array<const char*, 20> UniformNames = {
|
||||
"cameraViewProjectionMatrix", "modelMatrix", "cameraPosition", "cameraLookUp",
|
||||
"renderOption", "minBillboardSize", "maxBillboardSize",
|
||||
"correctionSizeEndDistance", "correctionSizeFactor", "color", "alphaValue",
|
||||
"scaleFactor", "up", "right", "fadeInValue", "screenSize", "spriteTexture",
|
||||
"hasColorMap", "enabledRectSizeControl"
|
||||
"hasColorMap", "enabledRectSizeControl", "hasDvarScaling"
|
||||
};
|
||||
|
||||
constexpr const char* KeyFile = "File";
|
||||
@@ -106,6 +106,20 @@ namespace {
|
||||
"The path to the color map file of the astronomical object."
|
||||
};
|
||||
|
||||
constexpr openspace::properties::Property::PropertyInfo ExactColorMapInfo = {
|
||||
"ExactColorMap",
|
||||
"Exact Color Map File",
|
||||
"Set a 1 to 1 relationship between the color index variable and the colormap"
|
||||
" entrered value."
|
||||
};
|
||||
|
||||
constexpr openspace::properties::Property::PropertyInfo ColorRangeInfo = {
|
||||
"ColorRange",
|
||||
"Color Range",
|
||||
"This value determines the colormap ranges for the color parameters of the "
|
||||
"astronomical objects."
|
||||
};
|
||||
|
||||
constexpr openspace::properties::Property::PropertyInfo PolygonSidesInfo = {
|
||||
"PolygonSides",
|
||||
"Polygon Sides",
|
||||
@@ -160,15 +174,15 @@ namespace {
|
||||
constexpr openspace::properties::Property::PropertyInfo ColorOptionInfo = {
|
||||
"ColorOption",
|
||||
"Color Option",
|
||||
"This value determines which paramenter is used default color of the "
|
||||
"This value determines which paramenter is used for default color of the "
|
||||
"astronomical objects."
|
||||
};
|
||||
|
||||
constexpr openspace::properties::Property::PropertyInfo ColorRangeInfo = {
|
||||
"ColorRange",
|
||||
"Color Range",
|
||||
"This value determines the color ranges for the color parameter of the "
|
||||
"astronomical objects."
|
||||
constexpr openspace::properties::Property::PropertyInfo SizeOptionInfo = {
|
||||
"SizeOption",
|
||||
"Size Option Variable",
|
||||
"This value determines which paramenter (datavar) is used for scaling "
|
||||
"of the astronomical objects."
|
||||
};
|
||||
|
||||
constexpr openspace::properties::Property::PropertyInfo TransformationMatrixInfo = {
|
||||
@@ -275,6 +289,12 @@ documentation::Documentation RenderableBillboardsCloud::Documentation() {
|
||||
Optional::Yes,
|
||||
ColorMapInfo.description
|
||||
},
|
||||
{
|
||||
ExactColorMapInfo.identifier,
|
||||
new BoolVerifier,
|
||||
Optional::Yes,
|
||||
ExactColorMapInfo.description
|
||||
},
|
||||
{
|
||||
PolygonSidesInfo.identifier,
|
||||
new IntVerifier,
|
||||
@@ -323,6 +343,12 @@ documentation::Documentation RenderableBillboardsCloud::Documentation() {
|
||||
Optional::Yes,
|
||||
ColorOptionInfo.description
|
||||
},
|
||||
{
|
||||
SizeOptionInfo.identifier,
|
||||
new StringListVerifier,
|
||||
Optional::Yes,
|
||||
SizeOptionInfo.description
|
||||
},
|
||||
{
|
||||
ColorRangeInfo.identifier,
|
||||
new Vector2ListVerifier<float>,
|
||||
@@ -384,12 +410,7 @@ documentation::Documentation RenderableBillboardsCloud::Documentation() {
|
||||
RenderableBillboardsCloud::RenderableBillboardsCloud(const ghoul::Dictionary& dictionary)
|
||||
: Renderable(dictionary)
|
||||
, _scaleFactor(ScaleFactorInfo, 1.f, 0.f, 600.f)
|
||||
, _pointColor(
|
||||
ColorInfo,
|
||||
glm::vec3(1.f, 0.4f, 0.2f),
|
||||
glm::vec3(0.f, 0.f, 0.f),
|
||||
glm::vec3(1.0f, 1.0f, 1.0f)
|
||||
)
|
||||
, _pointColor(ColorInfo, glm::vec3(1.f), glm::vec3(0.f), glm::vec3(1.f))
|
||||
, _spriteTexturePath(SpriteTextureInfo)
|
||||
, _textColor(
|
||||
TextColorInfo,
|
||||
@@ -404,6 +425,7 @@ RenderableBillboardsCloud::RenderableBillboardsCloud(const ghoul::Dictionary& di
|
||||
, _drawLabels(DrawLabelInfo, false)
|
||||
, _pixelSizeControl(PixelSizeControlInfo, false)
|
||||
, _colorOption(ColorOptionInfo, properties::OptionProperty::DisplayType::Dropdown)
|
||||
, _datavarSizeOption(SizeOptionInfo, properties::OptionProperty::DisplayType::Dropdown)
|
||||
, _fadeInDistance(
|
||||
FadeInDistancesInfo,
|
||||
glm::vec2(0.f),
|
||||
@@ -426,10 +448,15 @@ RenderableBillboardsCloud::RenderableBillboardsCloud(const ghoul::Dictionary& di
|
||||
if (dictionary.hasKey(KeyFile)) {
|
||||
_speckFile = absPath(dictionary.value<std::string>(KeyFile));
|
||||
_hasSpeckFile = true;
|
||||
_drawElements.onChange([&]() { _hasSpeckFile = !_hasSpeckFile; });
|
||||
addProperty(_drawElements);
|
||||
}
|
||||
|
||||
if (dictionary.hasKey(DrawElementsInfo.identifier)) {
|
||||
_drawElements = dictionary.value<bool>(DrawElementsInfo.identifier);
|
||||
}
|
||||
|
||||
_drawElements.onChange([&]() { _hasSpeckFile = !_hasSpeckFile; });
|
||||
addProperty(_drawElements);
|
||||
|
||||
_renderOption.addOption(RenderOptionViewDirection, "Camera View Direction");
|
||||
_renderOption.addOption(RenderOptionPositionNormal, "Camera Position Normal");
|
||||
|
||||
@@ -521,6 +548,10 @@ RenderableBillboardsCloud::RenderableBillboardsCloud(const ghoul::Dictionary& di
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (dictionary.hasKey(ExactColorMapInfo.identifier)) {
|
||||
_isColorMapExact = dictionary.value<bool>(ExactColorMapInfo.identifier);
|
||||
}
|
||||
}
|
||||
else if (dictionary.hasKey(keyColor)) {
|
||||
_pointColor = dictionary.value<glm::vec3>(keyColor);
|
||||
@@ -537,6 +568,28 @@ RenderableBillboardsCloud::RenderableBillboardsCloud(const ghoul::Dictionary& di
|
||||
}
|
||||
addProperty(_scaleFactor);
|
||||
|
||||
if (dictionary.hasKey(SizeOptionInfo.identifier)) {
|
||||
ghoul::Dictionary sizeOptionDataDic = dictionary.value<ghoul::Dictionary>(
|
||||
SizeOptionInfo.identifier
|
||||
);
|
||||
for (int i = 0; i < static_cast<int>(sizeOptionDataDic.size()); ++i) {
|
||||
std::string datavarSizeInUseName(
|
||||
sizeOptionDataDic.value<std::string>(std::to_string(i + 1))
|
||||
);
|
||||
_datavarSizeOption.addOption(i, datavarSizeInUseName);
|
||||
_optionConversionSizeMap.insert({ i, datavarSizeInUseName });
|
||||
_datavarSizeOptionString = datavarSizeInUseName;
|
||||
}
|
||||
|
||||
_datavarSizeOption.onChange([&]() {
|
||||
_dataIsDirty = true;
|
||||
_datavarSizeOptionString = _optionConversionSizeMap[_datavarSizeOption.value()];
|
||||
});
|
||||
addProperty(_datavarSizeOption);
|
||||
|
||||
_hasDatavarSize = true;
|
||||
}
|
||||
|
||||
if (dictionary.hasKey(PolygonSidesInfo.identifier)) {
|
||||
_polygonSides = static_cast<int>(
|
||||
dictionary.value<double>(PolygonSidesInfo.identifier)
|
||||
@@ -617,13 +670,16 @@ RenderableBillboardsCloud::RenderableBillboardsCloud(const ghoul::Dictionary& di
|
||||
_correctionSizeFactor = static_cast<float>(
|
||||
dictionary.value<double>(CorrectionSizeFactorInfo.identifier)
|
||||
);
|
||||
|
||||
addProperty(_correctionSizeFactor);
|
||||
}
|
||||
addProperty(_correctionSizeFactor);
|
||||
|
||||
|
||||
if (dictionary.hasKey(PixelSizeControlInfo.identifier)) {
|
||||
_pixelSizeControl = dictionary.value<bool>(PixelSizeControlInfo.identifier);
|
||||
addProperty(_pixelSizeControl);
|
||||
}
|
||||
addProperty(_pixelSizeControl);
|
||||
|
||||
}
|
||||
|
||||
bool RenderableBillboardsCloud::isReady() const {
|
||||
@@ -636,7 +692,7 @@ void RenderableBillboardsCloud::initialize() {
|
||||
throw ghoul::RuntimeError("Error loading data");
|
||||
}
|
||||
|
||||
if (!_colorOptionString.empty()) {
|
||||
if (!_colorOptionString.empty() && (_colorRangeData.size() > 1)) {
|
||||
// Following DU behavior here. The last colormap variable
|
||||
// entry is the one selected by default.
|
||||
_colorOption.setValue(static_cast<int>(_colorRangeData.size() - 1));
|
||||
@@ -783,6 +839,8 @@ void RenderableBillboardsCloud::renderBillboards(const RenderData& data,
|
||||
|
||||
_program->setUniform(_uniformCache.enabledRectSizeControl, _pixelSizeControl);
|
||||
|
||||
_program->setUniform(_uniformCache.hasDvarScaling, _hasDatavarSize);
|
||||
|
||||
GLint viewport[4];
|
||||
glGetIntegerv(GL_VIEWPORT, viewport);
|
||||
_program->setUniform(_uniformCache.screenSize, glm::vec2(viewport[2], viewport[3]));
|
||||
@@ -946,7 +1004,7 @@ void RenderableBillboardsCloud::render(const RenderData& data, RendererTasks&) {
|
||||
}
|
||||
glm::dvec3 orthoUp = glm::normalize(glm::cross(cameraViewDirectionWorld, orthoRight));
|
||||
|
||||
if (_hasSpeckFile) {
|
||||
if (_hasSpeckFile && _drawElements) {
|
||||
renderBillboards(
|
||||
data,
|
||||
modelMatrix,
|
||||
@@ -994,12 +1052,40 @@ void RenderableBillboardsCloud::update(const UpdateData&) {
|
||||
);
|
||||
GLint positionAttrib = _program->attributeLocation("in_position");
|
||||
|
||||
if (_hasColorMapFile) {
|
||||
/*const size_t nAstronomicalObjects = _fullData.size() /
|
||||
_nValuesPerAstronomicalObject;
|
||||
const size_t nValues = _slicedData.size() / nAstronomicalObjects;
|
||||
GLsizei stride = static_cast<GLsizei>(sizeof(float) * nValues);*/
|
||||
if (_hasColorMapFile && _hasDatavarSize) {
|
||||
glEnableVertexAttribArray(positionAttrib);
|
||||
glVertexAttribPointer(
|
||||
positionAttrib,
|
||||
4,
|
||||
GL_FLOAT,
|
||||
GL_FALSE,
|
||||
sizeof(float) * 9,
|
||||
nullptr
|
||||
);
|
||||
|
||||
GLint colorMapAttrib = _program->attributeLocation("in_colormap");
|
||||
glEnableVertexAttribArray(colorMapAttrib);
|
||||
glVertexAttribPointer(
|
||||
colorMapAttrib,
|
||||
4,
|
||||
GL_FLOAT,
|
||||
GL_FALSE,
|
||||
sizeof(float) * 9,
|
||||
reinterpret_cast<void*>(sizeof(float) * 4)
|
||||
);
|
||||
|
||||
GLint dvarScalingAttrib = _program->attributeLocation("in_dvarScaling");
|
||||
glEnableVertexAttribArray(dvarScalingAttrib);
|
||||
glVertexAttribPointer(
|
||||
dvarScalingAttrib,
|
||||
1,
|
||||
GL_FLOAT,
|
||||
GL_FALSE,
|
||||
sizeof(float) * 9,
|
||||
reinterpret_cast<void*>(sizeof(float) * 8)
|
||||
);
|
||||
}
|
||||
else if (_hasColorMapFile) {
|
||||
glEnableVertexAttribArray(positionAttrib);
|
||||
glVertexAttribPointer(
|
||||
positionAttrib,
|
||||
@@ -1021,6 +1107,28 @@ void RenderableBillboardsCloud::update(const UpdateData&) {
|
||||
reinterpret_cast<void*>(sizeof(float) * 4)
|
||||
);
|
||||
}
|
||||
else if (_hasDatavarSize) {
|
||||
glEnableVertexAttribArray(positionAttrib);
|
||||
glVertexAttribPointer(
|
||||
positionAttrib,
|
||||
4,
|
||||
GL_FLOAT,
|
||||
GL_FALSE,
|
||||
sizeof(float) * 8,
|
||||
nullptr
|
||||
);
|
||||
|
||||
GLint dvarScalingAttrib = _program->attributeLocation("in_dvarScaling");
|
||||
glEnableVertexAttribArray(dvarScalingAttrib);
|
||||
glVertexAttribPointer(
|
||||
dvarScalingAttrib,
|
||||
1,
|
||||
GL_FLOAT,
|
||||
GL_FALSE,
|
||||
sizeof(float) * 5,
|
||||
reinterpret_cast<void*>(sizeof(float) * 4)
|
||||
);
|
||||
}
|
||||
else {
|
||||
glEnableVertexAttribArray(positionAttrib);
|
||||
glVertexAttribPointer(
|
||||
@@ -1174,7 +1282,6 @@ bool RenderableBillboardsCloud::readSpeckFile() {
|
||||
// (signaled by the keywords 'datavar', 'texturevar', and 'texture')
|
||||
std::string line;
|
||||
while (true) {
|
||||
std::streampos position = file.tellg();
|
||||
std::getline(file, line);
|
||||
|
||||
// Guard against wrong line endings (copying files from Windows to Mac) causes
|
||||
@@ -1193,9 +1300,7 @@ bool RenderableBillboardsCloud::readSpeckFile() {
|
||||
line.substr(0, 10) != "polyorivar" &&
|
||||
line.substr(0, 10) != "maxcomment")
|
||||
{
|
||||
// we read a line that doesn't belong to the header, so we have to jump back
|
||||
// before the beginning of the current line
|
||||
file.seekg(position);
|
||||
// Started reading data
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1222,11 +1327,9 @@ bool RenderableBillboardsCloud::readSpeckFile() {
|
||||
|
||||
_nValuesPerAstronomicalObject += 3; // X Y Z are not counted in the Speck file indices
|
||||
|
||||
|
||||
|
||||
do {
|
||||
std::vector<float> values(_nValuesPerAstronomicalObject);
|
||||
|
||||
std::getline(file, line);
|
||||
|
||||
// Guard against wrong line endings (copying files from Windows to Mac) causes
|
||||
// lines to have a final \r
|
||||
if (!line.empty() && line.back() == '\r') {
|
||||
@@ -1234,16 +1337,25 @@ bool RenderableBillboardsCloud::readSpeckFile() {
|
||||
}
|
||||
|
||||
if (line.empty()) {
|
||||
std::getline(file, line);
|
||||
continue;
|
||||
}
|
||||
else if (line[0] == '#') {
|
||||
std::getline(file, line);
|
||||
continue;
|
||||
}
|
||||
|
||||
std::stringstream str(line);
|
||||
std::vector<float> values(_nValuesPerAstronomicalObject);
|
||||
|
||||
for (int i = 0; i < _nValuesPerAstronomicalObject; ++i) {
|
||||
str >> values[i];
|
||||
}
|
||||
|
||||
_fullData.insert(_fullData.end(), values.begin(), values.end());
|
||||
|
||||
// reads new line
|
||||
std::getline(file, line);
|
||||
} while (!file.eof());
|
||||
|
||||
return true;
|
||||
@@ -1288,6 +1400,7 @@ bool RenderableBillboardsCloud::readColorMapFile() {
|
||||
std::stringstream str(line);
|
||||
|
||||
glm::vec4 color;
|
||||
// Each color in the colormap must be defined as (R,G,B,A)
|
||||
for (int j = 0; j < 4; ++j) {
|
||||
str >> color[j];
|
||||
}
|
||||
@@ -1491,22 +1604,33 @@ void RenderableBillboardsCloud::createDataSlice() {
|
||||
_slicedData.reserve(4 * (_fullData.size() / _nValuesPerAstronomicalObject));
|
||||
}
|
||||
|
||||
// Generate the color bins for the colomap
|
||||
int colorMapInUse = 0;
|
||||
std::vector<float> colorBins;
|
||||
if (_hasColorMapFile) {
|
||||
colorMapInUse = _variableDataPositionMap[_colorOptionString];
|
||||
glm::vec2 currentColorRange = _colorRangeData[_colorOption.value()];
|
||||
float colorMapBinSize = (currentColorRange.y - currentColorRange.x) /
|
||||
static_cast<float>(_colorMapData.size());
|
||||
float bin = colorMapBinSize;
|
||||
for (size_t i = 0; i < _colorMapData.size(); ++i) {
|
||||
colorBins.push_back(bin);
|
||||
bin += colorMapBinSize;
|
||||
// what datavar in use for the index color
|
||||
int colorMapInUse = _hasColorMapFile ? _variableDataPositionMap[_colorOptionString] : 0;
|
||||
|
||||
// what datavar in use for the size scaling (if present)
|
||||
int sizeScalingInUse = _hasDatavarSize ?
|
||||
_variableDataPositionMap[_datavarSizeOptionString] : -1;
|
||||
|
||||
auto addDatavarSizeScalling = [&](size_t i, int datavarInUse) {
|
||||
_slicedData.push_back(_fullData[i + 3 + datavarInUse]);
|
||||
};
|
||||
|
||||
auto addPosition = [&](const glm::vec4 &pos) {
|
||||
for (int j = 0; j < 4; ++j) {
|
||||
_slicedData.push_back(pos[j]);
|
||||
}
|
||||
};
|
||||
|
||||
float minColorIdx = std::numeric_limits<float>::max();
|
||||
float maxColorIdx = std::numeric_limits<float>::min();
|
||||
|
||||
for (size_t i = 0; i < _fullData.size(); i += _nValuesPerAstronomicalObject) {
|
||||
float colorIdx = _fullData[i + 3 + colorMapInUse];
|
||||
maxColorIdx = colorIdx >= maxColorIdx ? colorIdx : maxColorIdx;
|
||||
minColorIdx = colorIdx < minColorIdx ? colorIdx : minColorIdx;
|
||||
}
|
||||
|
||||
float biggestCoord = -1.0f;
|
||||
float biggestCoord = -1.f;
|
||||
for (size_t i = 0; i < _fullData.size(); i += _nValuesPerAstronomicalObject) {
|
||||
glm::dvec4 transformedPos = _transformationMatrix * glm::dvec4(
|
||||
_fullData[i + 0],
|
||||
@@ -1514,6 +1638,8 @@ void RenderableBillboardsCloud::createDataSlice() {
|
||||
_fullData[i + 2],
|
||||
1.0
|
||||
);
|
||||
// W-normalization
|
||||
transformedPos /= transformedPos.w;
|
||||
glm::vec4 position(glm::vec3(transformedPos), static_cast<float>(_unit));
|
||||
|
||||
if (_hasColorMapFile) {
|
||||
@@ -1521,29 +1647,49 @@ void RenderableBillboardsCloud::createDataSlice() {
|
||||
_slicedData.push_back(position[j]);
|
||||
biggestCoord = biggestCoord < position[j] ? position[j] : biggestCoord;
|
||||
}
|
||||
// Finds from which bin to get the color.
|
||||
// Note: the first color in the colormap file
|
||||
// is the outliers color.
|
||||
glm::vec4 itemColor;
|
||||
float variableColor = _fullData[i + 3 + colorMapInUse];
|
||||
int c = static_cast<int>(colorBins.size() - 1);
|
||||
while (variableColor < colorBins[c]) {
|
||||
--c;
|
||||
if (c == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
// Note: if exact colormap option is not selected, the first color and the
|
||||
// last color in the colormap file are the outliers colors.
|
||||
int variableColor = static_cast<int>(_fullData[i + 3 + colorMapInUse]);
|
||||
int colorIndex = 0;
|
||||
|
||||
float cmax, cmin;
|
||||
if (_colorRangeData.empty()) {
|
||||
cmax = maxColorIdx; // Max value of datavar used for the index color
|
||||
cmin = minColorIdx; // Min value of datavar used for the index color
|
||||
}
|
||||
else {
|
||||
glm::vec2 currentColorRange = _colorRangeData[_colorOption.value()];
|
||||
cmax = currentColorRange.y;
|
||||
cmin = currentColorRange.x;
|
||||
}
|
||||
|
||||
int colorIndex = c == static_cast<int>(colorBins.size() - 1) ? 0 : c + 1;
|
||||
if (_isColorMapExact) {
|
||||
colorIndex = variableColor + cmin;
|
||||
}
|
||||
else {
|
||||
float ncmap = static_cast<float>(_colorMapData.size());
|
||||
float normalization = ((cmax != cmin) && (ncmap > 2)) ?
|
||||
(ncmap - 2) / (cmax - cmin) : 0;
|
||||
colorIndex = (variableColor - cmin) * normalization + 1;
|
||||
colorIndex = colorIndex < 0 ? 0 : colorIndex;
|
||||
colorIndex = colorIndex >= ncmap ? ncmap - 1 : colorIndex;
|
||||
}
|
||||
|
||||
for (int j = 0; j < 4; ++j) {
|
||||
_slicedData.push_back(_colorMapData[colorIndex][j]);
|
||||
}
|
||||
|
||||
if (_hasDatavarSize) {
|
||||
addDatavarSizeScalling(i, sizeScalingInUse);
|
||||
}
|
||||
}
|
||||
else if (_hasDatavarSize) {
|
||||
addDatavarSizeScalling(i, sizeScalingInUse);
|
||||
addPosition(position);
|
||||
}
|
||||
else {
|
||||
for (int j = 0; j < 4; ++j) {
|
||||
_slicedData.push_back(position[j]);
|
||||
}
|
||||
addPosition(position);
|
||||
}
|
||||
}
|
||||
_fadeInDistance.setMaxValue(glm::vec2(10.0f * biggestCoord));
|
||||
|
||||
@@ -103,6 +103,8 @@ private:
|
||||
bool _hasSpriteTexture = false;
|
||||
bool _spriteTextureIsDirty = true;
|
||||
bool _hasColorMapFile = false;
|
||||
bool _isColorMapExact = false;
|
||||
bool _hasDatavarSize = false;
|
||||
bool _hasPolygon = false;
|
||||
bool _hasLabel = false;
|
||||
|
||||
@@ -121,6 +123,7 @@ private:
|
||||
properties::BoolProperty _drawLabels;
|
||||
properties::BoolProperty _pixelSizeControl;
|
||||
properties::OptionProperty _colorOption;
|
||||
properties::OptionProperty _datavarSizeOption;
|
||||
properties::Vec2Property _fadeInDistance;
|
||||
properties::BoolProperty _disableFadeInDistance;
|
||||
properties::FloatProperty _billboardMaxSize;
|
||||
@@ -139,24 +142,27 @@ private:
|
||||
UniformCache(cameraViewProjectionMatrix, modelMatrix, cameraPos, cameraLookup,
|
||||
renderOption, minBillboardSize, maxBillboardSize, correctionSizeEndDistance,
|
||||
correctionSizeFactor, color, alphaValue, scaleFactor, up, right, fadeInValue,
|
||||
screenSize, spriteTexture, hasColormap, enabledRectSizeControl
|
||||
screenSize, spriteTexture, hasColormap, enabledRectSizeControl, hasDvarScaling
|
||||
) _uniformCache;
|
||||
|
||||
std::shared_ptr<ghoul::fontrendering::Font> _font;
|
||||
|
||||
std::string _speckFile;
|
||||
std::string _colorMapFile;
|
||||
std::string _labelFile;
|
||||
std::string _colorOptionString;
|
||||
std::string _datavarSizeOptionString;
|
||||
|
||||
Unit _unit = Parsec;
|
||||
|
||||
std::vector<float> _slicedData;
|
||||
std::vector<float> _fullData;
|
||||
std::vector<glm::vec4> _colorMapData;
|
||||
std::vector<glm::vec2> _colorRangeData;
|
||||
std::vector<std::pair<glm::vec3, std::string>> _labelData;
|
||||
std::unordered_map<std::string, int> _variableDataPositionMap;
|
||||
std::unordered_map<int, std::string> _optionConversionMap;
|
||||
std::vector<glm::vec2> _colorRangeData;
|
||||
std::unordered_map<int, std::string> _optionConversionSizeMap;
|
||||
|
||||
int _nValuesPerAstronomicalObject = 0;
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@ documentation::Documentation RenderableDUMeshes::Documentation() {
|
||||
{
|
||||
keyColor,
|
||||
new Vector3Verifier<float>,
|
||||
Optional::No,
|
||||
Optional::Yes,
|
||||
"Astronomical Object Color (r,g,b)."
|
||||
},
|
||||
{
|
||||
@@ -715,8 +715,9 @@ bool RenderableDUMeshes::readSpeckFile() {
|
||||
//if (line.substr(0, 4) != "mesh") {
|
||||
// we read a line that doesn't belong to the header, so we have to jump back
|
||||
// before the beginning of the current line
|
||||
file.seekg(position);
|
||||
break;
|
||||
//file.seekg(position);
|
||||
//break;
|
||||
continue;
|
||||
} else {
|
||||
|
||||
//if (line.substr(0, 4) == "mesh") {
|
||||
|
||||
@@ -298,7 +298,7 @@ documentation::Documentation RenderablePlanesCloud::Documentation() {
|
||||
RenderablePlanesCloud::RenderablePlanesCloud(const ghoul::Dictionary& dictionary)
|
||||
: Renderable(dictionary)
|
||||
, _alphaValue(TransparencyInfo, 1.f, 0.f, 1.f)
|
||||
, _scaleFactor(ScaleFactorInfo, 1.f, 0.f, 50.f)
|
||||
, _scaleFactor(ScaleFactorInfo, 1.f, 0.f, 10000.f)
|
||||
, _textColor(
|
||||
TextColorInfo,
|
||||
glm::vec4(1.0f, 1.0, 1.0f, 1.f),
|
||||
@@ -598,6 +598,7 @@ void RenderablePlanesCloud::renderPlanes(const RenderData&,
|
||||
continue;
|
||||
}
|
||||
|
||||
// We only bind a new texture when it is needed
|
||||
if (currentTextureIndex != pAMapItem.first) {
|
||||
_textureMap[pAMapItem.first]->bind();
|
||||
currentTextureIndex = pAMapItem.first;
|
||||
@@ -708,12 +709,14 @@ void RenderablePlanesCloud::render(const RenderData& data, RendererTasks&) {
|
||||
|
||||
float fadeInVariable = 1.f;
|
||||
if (!_disableFadeInDistance) {
|
||||
double distCamera = glm::length(data.camera.positionVec3());
|
||||
float distCamera = static_cast<float>(glm::length(data.camera.positionVec3()));
|
||||
distCamera /= scale;
|
||||
const glm::vec2 fadeRange = _fadeInDistance;
|
||||
const float a = 1.0f / ((fadeRange.y - fadeRange.x) * scale);
|
||||
//const float a = 1.f / ((fadeRange.y - fadeRange.x) * scale);
|
||||
const float a = 1.f / ((fadeRange.y - fadeRange.x));
|
||||
const float b = -(fadeRange.x / (fadeRange.y - fadeRange.x));
|
||||
const float funcValue = static_cast<float>(a * distCamera + b);
|
||||
fadeInVariable *= std::min(funcValue, 1.f);
|
||||
const float funcValue = a * distCamera + b;
|
||||
fadeInVariable *= funcValue > 1.f ? 1.f : funcValue;
|
||||
|
||||
if (funcValue < 0.01f) {
|
||||
return;
|
||||
@@ -881,7 +884,6 @@ bool RenderablePlanesCloud::readSpeckFile() {
|
||||
// (signaled by the keywords 'datavar', 'texturevar', and 'texture')
|
||||
std::string line;
|
||||
while (true) {
|
||||
std::streampos position = file.tellg();
|
||||
std::getline(file, line);
|
||||
|
||||
// Guard against wrong line endings (copying files from Windows to Mac) causes
|
||||
@@ -900,9 +902,7 @@ bool RenderablePlanesCloud::readSpeckFile() {
|
||||
line.substr(0, 10) != "polyorivar" &&
|
||||
line.substr(0, 10) != "maxcomment")
|
||||
{
|
||||
// we read a line that doesn't belong to the header, so we have to jump back
|
||||
// before the beginning of the current line
|
||||
file.seekg(position);
|
||||
// Started reading data
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -993,9 +993,6 @@ bool RenderablePlanesCloud::readSpeckFile() {
|
||||
_nValuesPerAstronomicalObject += 3; // X Y Z are not counted in the Speck file indices
|
||||
|
||||
do {
|
||||
std::vector<float> values(_nValuesPerAstronomicalObject);
|
||||
|
||||
std::getline(file, line);
|
||||
|
||||
// Guard against wrong line endings (copying files from Windows to Mac) causes
|
||||
// lines to have a final \r
|
||||
@@ -1004,6 +1001,11 @@ bool RenderablePlanesCloud::readSpeckFile() {
|
||||
}
|
||||
|
||||
if (line.empty()) {
|
||||
std::getline(file, line);
|
||||
continue;
|
||||
}
|
||||
else if (line[0] == '#') {
|
||||
std::getline(file, line);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1013,6 +1015,8 @@ bool RenderablePlanesCloud::readSpeckFile() {
|
||||
glm::vec3 v(0.f);
|
||||
int textureIndex = 0;
|
||||
|
||||
std::vector<float> values(_nValuesPerAstronomicalObject);
|
||||
|
||||
for (int i = 0; i < _nValuesPerAstronomicalObject; ++i) {
|
||||
str >> values[i];
|
||||
if ((i >= _planeStartingIndexPos) &&
|
||||
@@ -1046,6 +1050,9 @@ bool RenderablePlanesCloud::readSpeckFile() {
|
||||
}
|
||||
}
|
||||
_fullData.insert(_fullData.end(), values.begin(), values.end());
|
||||
|
||||
// reads new line
|
||||
std::getline(file, line);
|
||||
} while (!file.eof());
|
||||
|
||||
return true;
|
||||
|
||||
@@ -24,12 +24,12 @@
|
||||
|
||||
#include "fragment.glsl"
|
||||
|
||||
in vec4 gs_colorMap;
|
||||
flat in vec4 gs_colorMap;
|
||||
in float vs_screenSpaceDepth;
|
||||
in vec2 texCoord;
|
||||
in float ta;
|
||||
|
||||
uniform float alphaValue;
|
||||
uniform float alphaValue; // opacity
|
||||
uniform vec3 color;
|
||||
uniform sampler2D spriteTexture;
|
||||
uniform bool hasColorMap;
|
||||
@@ -64,6 +64,7 @@ Fragment getFragment() {
|
||||
// with the ATM.
|
||||
frag.gPosition = vec4(-1e32, -1e32, -1e32, 1.0);
|
||||
frag.gNormal = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
//frag.disableLDR2HDR = true;
|
||||
|
||||
|
||||
return frag;
|
||||
|
||||
@@ -47,9 +47,13 @@ uniform float correctionSizeEndDistance;
|
||||
|
||||
uniform bool enabledRectSizeControl;
|
||||
|
||||
in vec4 colorMap[];
|
||||
uniform bool hasDvarScaling;
|
||||
|
||||
flat in vec4 colorMap[];
|
||||
flat in float dvarScaling[];
|
||||
|
||||
flat out vec4 gs_colorMap;
|
||||
|
||||
out vec4 gs_colorMap;
|
||||
out vec2 texCoord;
|
||||
out float vs_screenSpaceDepth;
|
||||
out float ta;
|
||||
@@ -65,11 +69,11 @@ const vec2 corners[4] = vec2[4](
|
||||
|
||||
|
||||
void main() {
|
||||
ta = 1.0f;
|
||||
vec4 pos = gl_in[0].gl_Position; // in object space
|
||||
gs_colorMap = colorMap[0];
|
||||
|
||||
double unit = PARSEC;
|
||||
ta = 1.0f;
|
||||
vec4 pos = gl_in[0].gl_Position; // in object space
|
||||
gs_colorMap = colorMap[0];
|
||||
|
||||
double unit = PARSEC;
|
||||
|
||||
// Must be the same as the enum in RenderableBillboardsCloud.h
|
||||
if (pos.w == 1.f) {
|
||||
@@ -91,8 +95,11 @@ void main() {
|
||||
dpos = modelMatrix * dpos;
|
||||
|
||||
double scaleMultiply = exp(scaleFactor * 0.10);
|
||||
scaleMultiply = hasDvarScaling ? dvarScaling[0] * scaleMultiply : scaleMultiply;
|
||||
|
||||
dvec3 scaledRight = dvec3(0.0);
|
||||
dvec3 scaledUp = dvec3(0.0);
|
||||
|
||||
vec4 initialPosition, secondPosition, thirdPosition, crossCorner;
|
||||
|
||||
if (renderOption == 0) {
|
||||
@@ -139,11 +146,12 @@ void main() {
|
||||
scaledRight *= correctionScale;
|
||||
scaledUp *= correctionScale;
|
||||
|
||||
} else {
|
||||
} else {
|
||||
// linear alpha decay
|
||||
if (sizes.x < 2.0f * minBillboardSize) {
|
||||
float maxVar = 2.0f * minBillboardSize;
|
||||
float minVar = minBillboardSize;
|
||||
float var = (sizes.y + sizes.x);
|
||||
float var = (sizes.y + sizes.x);
|
||||
ta = ( (var - minVar)/(maxVar - minVar) );
|
||||
if (ta == 0.0f)
|
||||
return;
|
||||
|
||||
@@ -28,10 +28,13 @@
|
||||
|
||||
in vec4 in_position;
|
||||
in vec4 in_colormap;
|
||||
in float in_dvarScaling;
|
||||
|
||||
out vec4 colorMap;
|
||||
flat out vec4 colorMap;
|
||||
flat out float dvarScaling;
|
||||
|
||||
void main() {
|
||||
colorMap = in_colormap;
|
||||
gl_Position = vec4(in_position);
|
||||
}
|
||||
colorMap = in_colormap;
|
||||
dvarScaling = in_dvarScaling;
|
||||
gl_Position = in_position;
|
||||
}
|
||||
|
||||
@@ -69,6 +69,8 @@ namespace {
|
||||
constexpr const int PsfMethodSpencer = 0;
|
||||
constexpr const int PsfMethodMoffat = 1;
|
||||
|
||||
constexpr double PARSEC = 0.308567756E17;
|
||||
|
||||
struct CommonDataLayout {
|
||||
std::array<float, 3> position;
|
||||
float value;
|
||||
@@ -276,6 +278,20 @@ namespace {
|
||||
"Beta",
|
||||
"Moffat's Beta Constant."
|
||||
};
|
||||
|
||||
constexpr openspace::properties::Property::PropertyInfo FadeInDistancesInfo = {
|
||||
"FadeInDistances",
|
||||
"Fade-In Start and End Distances",
|
||||
"These values determine the initial and final distances from the center of "
|
||||
"our galaxy from which the astronomical object will start and end "
|
||||
"fading-in."
|
||||
};
|
||||
|
||||
constexpr openspace::properties::Property::PropertyInfo DisableFadeInInfo = {
|
||||
"DisableFadeIn",
|
||||
"Disable Fade-in effect",
|
||||
"Enables/Disables the Fade-in effect."
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace openspace {
|
||||
@@ -374,6 +390,18 @@ documentation::Documentation RenderableStars::Documentation() {
|
||||
Optional::No,
|
||||
SizeCompositionOptionInfo.description
|
||||
},
|
||||
{
|
||||
FadeInDistancesInfo.identifier,
|
||||
new Vector2Verifier<double>,
|
||||
Optional::Yes,
|
||||
FadeInDistancesInfo.description
|
||||
},
|
||||
{
|
||||
DisableFadeInInfo.identifier,
|
||||
new BoolVerifier,
|
||||
Optional::Yes,
|
||||
DisableFadeInInfo.description
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -425,6 +453,13 @@ RenderableStars::RenderableStars(const ghoul::Dictionary& dictionary)
|
||||
, _userProvidedTextureOwner(UserProvidedTextureOptionInfo)
|
||||
, _parametersOwner(ParametersOwnerOptionInfo)
|
||||
, _moffatMethodOwner(MoffatMethodOptionInfo)
|
||||
, _fadeInDistance(
|
||||
FadeInDistancesInfo,
|
||||
glm::vec2(0.f),
|
||||
glm::vec2(0.f),
|
||||
glm::vec2(100.f)
|
||||
)
|
||||
, _disableFadeInDistance(DisableFadeInInfo, true)
|
||||
{
|
||||
using File = ghoul::filesystem::File;
|
||||
|
||||
@@ -634,6 +669,14 @@ RenderableStars::RenderableStars(const ghoul::Dictionary& dictionary)
|
||||
addPropertySubOwner(_userProvidedTextureOwner);
|
||||
addPropertySubOwner(_parametersOwner);
|
||||
addPropertySubOwner(_moffatMethodOwner);
|
||||
|
||||
if (dictionary.hasKey(FadeInDistancesInfo.identifier)) {
|
||||
glm::vec2 v = dictionary.value<glm::vec2>(FadeInDistancesInfo.identifier);
|
||||
_fadeInDistance = v;
|
||||
_disableFadeInDistance = false;
|
||||
addProperty(_fadeInDistance);
|
||||
addProperty(_disableFadeInDistance);
|
||||
}
|
||||
}
|
||||
|
||||
RenderableStars::~RenderableStars() {}
|
||||
@@ -944,7 +987,22 @@ void RenderableStars::render(const RenderData& data, RendererTasks&) {
|
||||
_program->setUniform(_uniformCache.radiusCent, _radiusCent);
|
||||
_program->setUniform(_uniformCache.brightnessCent, _brightnessCent);
|
||||
|
||||
_program->setUniform(_uniformCache.alphaValue, _alphaValue);
|
||||
float fadeInVariable = 1.f;
|
||||
if (!_disableFadeInDistance) {
|
||||
float distCamera = static_cast<float>(glm::length(data.camera.positionVec3()));
|
||||
const glm::vec2 fadeRange = _fadeInDistance;
|
||||
const float a = 1.f / ((fadeRange.y - fadeRange.x) * PARSEC);
|
||||
const float b = -(fadeRange.x / (fadeRange.y - fadeRange.x));
|
||||
const float funcValue = a * distCamera + b;
|
||||
fadeInVariable *= funcValue > 1.f ? 1.f : funcValue;
|
||||
|
||||
_program->setUniform(_uniformCache.alphaValue, _alphaValue * fadeInVariable);
|
||||
}
|
||||
else {
|
||||
_program->setUniform(_uniformCache.alphaValue, _alphaValue);
|
||||
}
|
||||
|
||||
|
||||
|
||||
ghoul::opengl::TextureUnit psfUnit;
|
||||
psfUnit.activate();
|
||||
@@ -1392,10 +1450,17 @@ void RenderableStars::readSpeckFile() {
|
||||
float minLumValue = std::numeric_limits<float>::max();
|
||||
float maxLumValue = std::numeric_limits<float>::min();
|
||||
|
||||
bool first = true;
|
||||
do {
|
||||
std::vector<float> values(_nValuesPerStar);
|
||||
|
||||
std::getline(file, line);
|
||||
if (!first) {
|
||||
std::getline(file, line);
|
||||
}
|
||||
else {
|
||||
first = false;
|
||||
}
|
||||
|
||||
std::stringstream str(line);
|
||||
|
||||
for (int i = 0; i < _nValuesPerStar; ++i) {
|
||||
|
||||
@@ -123,6 +123,8 @@ private:
|
||||
properties::PropertyOwner _userProvidedTextureOwner;
|
||||
properties::PropertyOwner _parametersOwner;
|
||||
properties::PropertyOwner _moffatMethodOwner;
|
||||
properties::Vec2Property _fadeInDistance;
|
||||
properties::BoolProperty _disableFadeInDistance;
|
||||
|
||||
std::unique_ptr<ghoul::opengl::ProgramObject> _program;
|
||||
UniformCache(
|
||||
|
||||
@@ -60,6 +60,7 @@ uniform dmat4 cameraViewProjectionMatrix;
|
||||
uniform dmat4 modelMatrix;
|
||||
|
||||
const double PARSEC = 3.08567756E16;
|
||||
//const double PARSEC = 3.08567782E16;
|
||||
|
||||
const vec2 corners[4] = vec2[4](
|
||||
vec2(0.0, 0.0),
|
||||
@@ -78,16 +79,6 @@ float bvToKelvin(float bv) {
|
||||
}
|
||||
|
||||
void main() {
|
||||
vs_position = gl_in[0].gl_Position; // in object space
|
||||
|
||||
// JCC: Don't display the Sun for now.
|
||||
if ((vs_position.x == 0.0) &&
|
||||
(vs_position.y == 0.0) &&
|
||||
(vs_position.z == 0.0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
vs_position = gl_in[0].gl_Position; // in object space
|
||||
dvec4 dpos = modelMatrix * dvec4(vs_position);
|
||||
|
||||
@@ -112,13 +103,15 @@ void main() {
|
||||
double distanceToStar = length((dpos.xyz - eyePosition));
|
||||
double apparentBrightness = pSize * luminosity / (distanceToStar);
|
||||
scaleMultiply = apparentBrightness;
|
||||
} else if (psfParamConf == 1) {
|
||||
}
|
||||
else if (psfParamConf == 1) {
|
||||
float L_over_Lsun = pow(2.51f, SunAbsMagnitude - ge_bvLumAbsMagAppMag.z);
|
||||
float starTemperature = bvToKelvin(ge_bvLumAbsMagAppMag.x);
|
||||
float starRadius = SunRadius * pow(SunTemperature/starTemperature, 2.f) * sqrt(L_over_Lsun);
|
||||
scaleMultiply = ((lumCent * (ge_bvLumAbsMagAppMag.y + 5E9)) +
|
||||
(radiusCent * double(starRadius))) * pow(10.0, magnitudeExponent);
|
||||
} else if (psfParamConf == 2) {
|
||||
}
|
||||
else if (psfParamConf == 2) {
|
||||
double luminosity = double(1.0 - ge_bvLumAbsMagAppMag.y);
|
||||
double distanceToStarInParsecs = trunc(length(dpos.xyz - eyePosition) / PARSEC);
|
||||
double apparentBrightness = luminosity / distanceToStarInParsecs;
|
||||
@@ -130,10 +123,12 @@ void main() {
|
||||
(radiusCent * double(starRadius)) +
|
||||
(brightnessCent * apparentBrightness * 5E15)) *
|
||||
pow(10.0, magnitudeExponent);
|
||||
} else if (psfParamConf == 3) {
|
||||
}
|
||||
else if (psfParamConf == 3) {
|
||||
float absMag = ge_bvLumAbsMagAppMag.z;
|
||||
scaleMultiply = (-absMag + 35.f) * pow(10.0, magnitudeExponent + 8.5f);
|
||||
} else if (psfParamConf == 4) {
|
||||
}
|
||||
else if (psfParamConf == 4) {
|
||||
float absMag = vs_bvLumAbsMagAppMag[0].z;
|
||||
double distanceToStarInMeters = length(dpos.xyz - eyePosition);
|
||||
double distanceToCenterInMeters = length(eyePosition);
|
||||
@@ -151,7 +146,8 @@ void main() {
|
||||
//scaleMultiply = appMag * pow(10.0, magnitudeExponent + 8.5f);
|
||||
scaleMultiply = exp((-30.0 - appMag) * 0.45) * pow(10.0, magnitudeExponent + 8.f);
|
||||
//scaleMultiply = pow(10.0, (appMag - absMag)*(1.0/5.0) + 1.0) * pow(10.0, magnitudeExponent + 3.f);
|
||||
} else if (psfParamConf == 5) {
|
||||
}
|
||||
else if (psfParamConf == 5) {
|
||||
float absMag = ge_bvLumAbsMagAppMag.z;
|
||||
scaleMultiply = exp((-30.623 - absMag) * 0.462) * pow(10.0, magnitudeExponent + 12.5f) * 2000;
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ SGCTConfig = sgct.config.single{}
|
||||
|
||||
-- A 4k fisheye rendering in a 1024x1024 window
|
||||
-- SGCTConfig = sgct.config.fisheye{1024, 1024, res={4096, 4096}, quality="2k", tilt=27}
|
||||
-- SGCTConfig = sgct.config.fisheye{1024, 1024, res={4096, 4096}, quality="1k", tilt=27}
|
||||
|
||||
-- Streaming OpenSpace via Spout to OBS
|
||||
-- SGCTConfig = sgct.config.single{2560, 1440, shared=true, name="WV_OBS_SPOUT1"}
|
||||
|
||||
Reference in New Issue
Block a user