RenderableShadowCylinder
Inherits Renderable
Members
Name |
Documentation |
Type |
Description |
Optional |
---|---|---|---|---|
|
This value determines the aberration method that is used to compute the shadow cylinder |
|
In list { NONE, LT, LT+S, CN, CN+S } |
No |
|
This value is the SPICE name of target body that is used as the shadow caster for the shadow cylinder |
|
Value of type ‘String’ |
No |
|
This value is the SPICE name of the reference frame in which the shadow cylinder is expressed |
|
Value of type ‘String’ |
No |
|
This value determines the SPICE name of the object that is used as the illuminator for computing the shadow cylinder |
|
Value of type ‘String’ |
No |
|
This value specifies the SPICE name of the object that is the observer of the shadow cylinder |
|
Value of type ‘String’ |
No |
|
This value determines the type of the terminator that is used to calculate the shadow eclipse |
|
In list { UMBRAL, PENUMBRAL } |
No |
|
This value determines the number of control points that is used to construct the shadow geometry. The higher this number, the more detailed the shadow is, but it will have a negative impact on the performance |
|
Value of type ‘Integer’ |
Yes |
|
This value determines the color that is used for the shadow cylinder |
|
Value of type ‘Color3’ |
Yes |
|
This value determines the length of the shadow that is cast by the target object. The total distance of the shadow is equal to the distance from the target to the Sun multiplied with this value |
|
Value of type ‘Double’ |
Yes |
Inherited members from Renderable
Name |
Documentation |
Type |
Description |
Optional |
---|---|---|---|---|
|
Enables/Disables if the object should be dimmed when the camera is in the sunny part of an atmosphere |
|
Value of type ‘Boolean’ |
Yes |
|
This setting determines whether this object will be visible or not |
|
Value of type ‘Boolean’ |
Yes |
|
This value determines the opacity of this renderable. A value of 0 means completely transparent |
|
In range: ( 0,1 ) |
Yes |
|
This value specifies if the renderable should be rendered in the Background,Opaque, Pre/PostDeferredTransparency, or Overlay rendering step |
|
In list { Background, Opaque, PreDeferredTransparent, PostDeferredTransparent, Overlay } |
Yes |
|
A single tag or a list of tags that this renderable will respond to when setting properties |
|
Value of type ‘Table’, or Value of type ‘String’ |
Yes |
|
This tells the type of the renderable |
|
Value of type ‘String’ |
Yes |
Asset Examples
1local transforms = asset.require("./transforms")
2local sunTransforms = asset.require("scene/solarsystem/sun/transforms")
3local kernels = asset.require("./kernels")
4local coreKernels = asset.require("spice/core")
5
6
7
8local textures = asset.resource({
9 Name = "Charon Textures",
10 Type = "HttpSynchronization",
11 Identifier = "charon_textures",
12 Version = 3
13})
14
15
16local CharonRadius = 603500
17
18local CharonProjection = {
19 Identifier = "CharonProjection",
20 Parent = transforms.PlutoBarycenterAccurate.Identifier,
21 Transform = {
22 Translation = {
23 Type = "SpiceTranslation",
24 Target = kernels.ID.Charon,
25 Observer = kernels.ID.PlutoBarycenter
26 },
27 Rotation = {
28 Type = "SpiceRotation",
29 SourceFrame = kernels.Frame.Charon,
30 DestinationFrame = coreKernels.Frame.Galactic
31 }
32 },
33 Renderable = {
34 Type = "RenderablePlanetProjection",
35 Radius = CharonRadius,
36 Segments = 350,
37 ColorTexturePaths = {
38 textures .. "NH_Charon_mosaic.png",
39 textures .. "NH_Charon_mosaic_8192.png"
40 },
41 HeightTexturePaths = {
42 textures .. "NH_Charon_DTM.png",
43 textures .. "NH_Charon_DTM_8192.png"
44 },
45 MeridianShift = true,
46 Projection = {
47 Observer = kernels.ID.NewHorizons,
48 Target = kernels.ID.Charon,
49 Aberration = "NONE",
50 AspectRatio = 2,
51 Instrument = {
52 Name = kernels.Frame.Lorri,
53 Method = "ELLIPSOID",
54 Aberration = "NONE",
55 Fovy = 0.2907,
56 Aspect = 1,
57 Near = 0.2,
58 Far = 10000
59 },
60 PotentialTargets = {
61 kernels.ID.Pluto,
62 kernels.ID.Charon
63 }
64 }
65 },
66 GUI = {
67 Path = "/Solar System/Dwarf Planets/Pluto",
68 Name = "Charon Projection"
69 }
70}
71
72local CharonText = {
73 Identifier = "CharonText",
74 Parent = CharonProjection.Identifier,
75 Transform = {
76 Translation = {
77 Type = "StaticTranslation",
78 Position = { 0, -1000000.0, 0 }
79 }
80 },
81 Renderable = {
82 Type = "RenderablePlaneImageLocal",
83 Size = 19952623.15,
84 Origin = "Center",
85 Billboard = true,
86 Texture = textures .. "Charon-Text.png",
87 BlendMode = "Additive"
88 },
89 GUI = {
90 Name = "Charon Text",
91 Path = "/Solar System/Dwarf Planets/Pluto"
92 }
93}
94
95local CharonShadow = {
96 Identifier = "CharonShadow",
97 Parent = CharonProjection.Identifier,
98 Renderable = {
99 Type = "RenderableShadowCylinder",
100 Opacity = 0.25,
101 TerminatorType = "PENUMBRAL",
102 LightSource = coreKernels.ID.Sun,
103 Observer = kernels.ID.NewHorizons,
104 Body = kernels.ID.Charon,
105 BodyFrame = kernels.Frame.Charon,
106 Aberration = "NONE"
107 },
108 GUI = {
109 Name = "Charon Shadow",
110 Path = "/Solar System/Dwarf Planets/Pluto"
111 }
112}
113
114
115asset.onInitialize(function()
116 openspace.addSceneGraphNode(CharonProjection)
117 openspace.addSceneGraphNode(CharonText)
118 openspace.addSceneGraphNode(CharonShadow)
119end)
120
121asset.onDeinitialize(function()
122 openspace.removeSceneGraphNode(CharonShadow)
123 openspace.removeSceneGraphNode(CharonText)
124 openspace.removeSceneGraphNode(CharonProjection)
125end)
126
127asset.export(CharonProjection)
128asset.export(CharonText)
129asset.export(CharonShadow)