Recentering at Pluto,

Todo - add NH with kernels.
This commit is contained in:
Michal Marcinkowski
2015-01-23 12:10:21 -05:00
parent cf2049e4c4
commit 4c53f763f0
6 changed files with 27 additions and 10 deletions

View File

@@ -68,7 +68,9 @@ private:
glm::dmat3 _stateMatrix;
std::string _frame;
std::string _target;
double _time;
};
} // namespace openspace

View File

@@ -1,7 +1,5 @@
--openspace.setPropertyValue('Earth.renderable.colorTexture', '${OPENSPACE_DATA}/modules/mars/textures/mars.png')
--openspace.time.setTime("2007-01-08T20:42:01.359") -- far
--openspace.time.setTime("2007-02-10T13:30:01.359") -- 4x4
openspace.time.setTime("2007-02-27T16:30:00.000") -- close
openspace.time.setTime("2015-07-14T09:19:00.557") -- pluto
--openspace.time.setDeltaTime(200000.0)
--openspace.time.setDeltaTime(5000.00)

View File

@@ -28,6 +28,9 @@ uniform vec4 campos;
uniform vec4 objpos;
//uniform vec3 camdir; // add this for specular
uniform vec3 sun_pos;
uniform int shadows;
uniform float time;
uniform sampler2D texture1;
@@ -53,9 +56,9 @@ void main()
vec3 n = normalize(vs_normal.xyz);
//vec3 e = normalize(camdir);
vec3 l_pos = vec3(0.0); // sun.
vec3 l_pos = sun_pos; // sun.
vec3 l_dir = normalize(l_pos-objpos.xyz);
float intensity = min(max(5*dot(n,l_dir), 0.0), 1);
float intensity = min(max(5*dot(n,l_dir), 0.3), 1);
float shine = 0.0001;
@@ -72,6 +75,7 @@ void main()
*/
vec4 tmpdiff = diffuse;
tmpdiff[3] = 1;
if(shadows == 1)
diffuse = max(intensity * diffuse, ambient);
//diffuse[3] = 0.6f;
//diffuse = vec4(1);

View File

@@ -41,6 +41,8 @@
namespace {
const std::string _loggerCat = "RenderablePlanet";
const std::string keyBody = "Body";
}
namespace openspace {
@@ -71,7 +73,10 @@ RenderablePlanet::RenderablePlanet(const ghoul::Dictionary& dictionary)
_geometry = planetgeometry::PlanetGeometry::createFromDictionary(geometryDictionary);
}
dictionary.getValue(constants::renderableplanet::keyFrame, _target);
dictionary.getValue(constants::renderableplanet::keyFrame, _frame);
bool b1 = dictionary.getValue(keyBody, _target);
assert(b1 == true);
// TODO: textures need to be replaced by a good system similar to the geometry as soon
// as the requirements are fixed (ab)
@@ -137,7 +142,7 @@ void RenderablePlanet::render(const RenderData& data)
}
}
transform = transform* rot;
if (_target == "IAU_JUPITER"){ //x = 0.935126
if (_frame == "IAU_JUPITER"){ //x = 0.935126
transform *= glm::scale(glm::mat4(1), glm::vec3(1, 0.93513, 1));
}
@@ -145,8 +150,15 @@ void RenderablePlanet::render(const RenderData& data)
//glm::mat4 modelview = data.camera.viewMatrix()*data.camera.modelMatrix();
//glm::vec3 camSpaceEye = (-(modelview*data.position.vec4())).xyz;
psc sun_pos;
double lt;
openspace::SpiceManager::ref().getTargetPosition("SUN", _target, "GALACTIC", "NONE", _time, sun_pos, lt);
// setup the data to the shader
// _programObject->setUniform("camdir", camSpaceEye);
int shadows = (_target == "SUN") ? 0 : 1;
_programObject->setUniform("shadows", shadows);
_programObject->setUniform("sun_pos", sun_pos.vec3());
_programObject->setUniform("ViewProjection", data.camera.viewProjectionMatrix());
_programObject->setUniform("ModelTransform", transform);
setPscUniforms(_programObject, &data.camera, data.position);
@@ -166,7 +178,8 @@ void RenderablePlanet::render(const RenderData& data)
void RenderablePlanet::update(const UpdateData& data){
// set spice-orientation in accordance to timestamp
openspace::SpiceManager::ref().getPositionTransformMatrix(_target, "GALACTIC", data.time, _stateMatrix);
openspace::SpiceManager::ref().getPositionTransformMatrix(_frame, "GALACTIC", data.time, _stateMatrix);
_time = data.time;
}
void RenderablePlanet::loadTexture()

View File

@@ -122,7 +122,7 @@ void RenderableTrail::fullYearSweep(){
_varray.push_back(1.f - p * _r);
_varray.push_back(1.f - p * _g);
_varray.push_back(1.f - p * _b);
_varray.push_back(1.f - p);
_varray.push_back(1.f - p*2.f);
#else
_varray.push_back(1.f );
_varray.push_back(1.f );