Merge pull request #1297 from OpenSpace/feature/orion_nebula

Feature/orion nebula
This commit is contained in:
Alexander Bock
2020-09-16 23:16:24 +02:00
committed by GitHub
7 changed files with 246 additions and 1 deletions

View File

@@ -0,0 +1,51 @@
--orionnebula/cluster.asset
local assetHelper = asset.require('util/asset_helper')
local transforms = asset.require("./transforms")
local sync = asset.syncedResource({
Name = "Orion Nebula Star Cluster",
Type = "HttpSynchronization",
Identifier = "orion_nebula_star_cluster",
Version = 1
})
local OrionClusterStars = {
Identifier = "OrionClusterStars",
Parent = transforms.NebulaPosition.Identifier,
Renderable = {
Type = "RenderableStars",
File = sync .. "/oricluster.speck",
Texture = sync .. "/halo.png",
Texture = sync .. "/colorbv.cmap",
MagnitudeExponent = 5.02,
SizeComposition = "Distance Modulus",
RenderMethod = "Texture Based"
},
GUI = {
Name = "Orion Nebula Star Cluster",
Path = "/Milky Way/Stars"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { OrionClusterStars })
asset.meta = {
Name = "Orion Nebula Star Cluster",
Version = "1.0",
Description = [[ In order to have an accurate depiction of the Orion nebula, we need
to include the star cluster that was birthed from it. We turned to a study of the
cluster's stellar population by Lynne Hillenbrand, who was working at the University of
California, Berkeley at the time. The catalog from her paper contains more than 1500
stars, about half the stars in the actual cluster. The cluster is very crowded, with a
peak density of 10000 stars per cubic parsec over a wide range of masses from a tenth the
sun's mass up to 50 times its mass. We were presented with one problem: there are no
distances. For the stellar distances, we needed to deduce them by statistical methods.
Knowing the size of the cluster and approximating the shape to be roughly spherical, we
placed each star along a line of sight through this imaginary sphere centered on the
cluster. In this sense, these data are observed data and the view from Earth is accurate.
But the distance of each star has been derived from this educated-guess approach for the
cluster distribution. ]],
Author = "AMNH Digital Universe",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "custom"
}

View File

@@ -0,0 +1,157 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local transforms = asset.require('./transforms')
local center = sunTransforms.SolarSystemBarycenter.Identifier;
local LIGHTS = assetHelper.getDefaultLightSources(center);
local sync = asset.syncedResource({
Name = "Orion Nebula Model",
Type = "HttpSynchronization",
Identifier = "orion_nebula_model",
Version = 1
})
local NebulaHolder = {
Identifier = "OrionNebulaHolder",
Parent = transforms.NebulaPosition.Identifier,
Transform = {
Scale = {
Type = "StaticScale",
Scale = 35999998699110400.000000
},
Rotation = {
Type = "FixedRotation",
Attached = "OrionNebulaHolder",
XAxis = {1.000000,1.000000,0.510000},
XAxisOrthogonal = true,
YAxis = "Sun",
YAxisInverted = false
}
},
GUI = {
Name = "Orion Nebula",
Path = "/Milky Way/Objects",
}
}
local OrionNebulaModel = {
Identifier = "OrionNebulaModel",
Parent = NebulaHolder.Identifier,
Transform = {
Scale = {
Type = "StaticScale",
Scale = 0.67500000
}
},
Renderable = {
Type = "RenderableModel",
Geometry = {{
Type = "MultiModelGeometry",
GeometryFile = sync .. "/orion_nebula.obj",
ColorTexture = sync .. "/heic0601a_masked.png"
}},
Opacity = 1.0,
DisableFaceCulling = false,
SpecularIntensity = 0.0,
AmbientIntensity = 0.45,
DiffuseIntensity = 0.0,
RotationVector = { 0.000000, 22.300000, 0.000000 },
LightSources = LIGHTS;
},
GUI = {
Name = "Orion Nebula Model",
Path = "/Milky Way/Objects",
Hidden = true
}
}
local OrionNebulaShocksModel = {
Identifier = "OrionNebulaShocksModel",
Parent = NebulaHolder.Identifier,
Transform = {
Scale = {
Type = "StaticScale",
Scale = 0.67500000
}
},
Renderable = {
Type = "RenderableModel",
Geometry = {{
Type = "MultiModelGeometry",
GeometryFile = sync .. "/orishocks.obj",
ColorTexture = "${DATA}/colors/pink.png"
}},
Opacity = 1.0,
DisableFaceCulling = false,
SpecularIntensity = 0.0,
AmbientIntensity = 0.19,
DiffuseIntensity = 0.4,
RotationVector = { 0.000000, 22.300000, 0.000000 },
LightSources = LIGHTS;
},
GUI = {
Name = "Orion Nebula Shocks",
Path = "/Milky Way/Objects",
Hidden = false
}
}
local OrionNebulaProplydsModel = {
Identifier = "OrionNebulaProplydsModel",
Parent = NebulaHolder.Identifier,
Transform = {
Scale = {
Type = "StaticScale",
Scale = 0.67500000
}
},
Renderable = {
Type = "RenderableModel",
Geometry = {{
Type = "MultiModelGeometry",
GeometryFile = sync .. "/proplyds.obj",
ColorTexture = "${DATA}/colors/pink.png"
}},
Opacity = 1.0,
DisableFaceCulling = false,
SpecularIntensity = 0.0,
AmbientIntensity = 1.0,
DiffuseIntensity = 1.0,
RotationVector = { 0.000000, 22.300000, 0.000000 },
LightSources = LIGHTS;
},
GUI = {
Name = "Orion Nebula Proplyds",
Path = "/Milky Way/Objects",
Hidden = false
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
NebulaHolder,
OrionNebulaModel,
OrionNebulaShocksModel,
OrionNebulaProplydsModel
})
asset.meta = {
Name = "Orion Nebula Model",
Version = "1.0",
Description = [[ In the Digital Universe model of the Orion Nebula, we depict the
ionization front effectively as a terrain, with a flat Hubble image of the nebula mapped
on the undulating surface. In reality, the ionization front has a slight thickness to
it - about a third of a light year - but is quite thin compared to the overall size of
the nebula, which stretches about ten light years from side to side.<br><br>Close into
the center, we see small teardrop-shaped structures with their narrow ends pointing away
from the bright star: these are protoplanetary disks, or proplyds, of dense gas and dust
surrounding young stars. The larger formations that one sees farther away from the center
of the nebula take on a cup-like shape, with the narrow end pointing away from the
nebulas center. These enormous structures are bow shocks that delineate the region where
highspeed winds from the central star slow from supersonic to subsonic speeds. You can
think of an HII region as a sort of tremendous explosion, taking place over millennia,
and the bow shocks are part of the outward rush of material. ]],
Author = "AMNH Digital Universe",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "custom"
}

View File

@@ -0,0 +1,2 @@
asset.require('./cluster')
asset.require('./nebula')

View File

@@ -0,0 +1,26 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local PARSEC_CONSTANT = 3.0856776E16;
local NebulaPosition = {
Identifier = "NebulaPosition",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = {
-329.915 * PARSEC_CONSTANT,
-183.153 * PARSEC_CONSTANT,
-132.706 * PARSEC_CONSTANT
}
},
},
GUI = {
Name = "Orion Nebula Position",
Path = "/Milky Way/Objects",
Hidden = true
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { NebulaPosition })

BIN
data/colors/pink.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

View File

@@ -4,7 +4,7 @@
<div class="col-lg-12">
<p>
<h3>Asset - {{name}}</h3>
<p>{{description}}</p>
<p>{{{description}}}</p>
<p>Version - {{version}}</p>
<p>Author - {{author}}</p>
<p>Associated URL - <a href="{{url}}">{{url}}</a></p>

View File

@@ -127,6 +127,15 @@ window.onload = function () {
}
}
if (documentation[i].identifier == "sceneLicense") {
for (var j = 0; j < documentation[i].data.length; j++) {
var escaped = documentation[i].data[j].description.replace(
/\\n/g, ""
);
documentation[i].data[j].description = escaped;
}
}
}
currentDocumentation = documentation[3];