Hello Elias,
since you have created your terrain using --geocentric in osgdem the
terrain is indeed in ECEF coordinates, but there is no reason that your
cessna model is. Looking at your code, the cessna is at the earth centre
(0.0,0.0,0.0). If you want to have your cessna on your terrain you
should load your cessna on a PositionAttitudeTransform and move it
correctly onto earth surface, using the ellipsoid xyzFromLatLonEle. You
should try to place your camera also using this and decomposing your
matrix in order to find where is the problem(
cam->setViewMatrix(translation * toYup * rotation);)
Also you should use as much as possible the osg functionalities in order
to use the same math constants (osg::PI_2 instead of _M_PI_2).
Regards,
Christian
Le 17/06/2015 10:39, Elias Tarasov a écrit :
Hello!
It seems i have a problem Deniz had faced previously.
My generated terrain viewed from osgviewer is here:
https://drive.google.com/file/d/0ByDDImhSolf6Szh5YW81MDdqV2M/view?usp=sharing
My gdalinfo for dem file used to generate terrain is here:
Driver: GTiff/GeoTIFF
Files: n30_w086_1arc_v3_conv.tif
n30_w086_1arc_v3_conv.tif.aux.xml
Size is 58, 50
Coordinate System is:
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4326"]]
Origin = (-85.495972222222221,30.536250000000003)
Pixel Size = (0.000277777777778,-0.000277777777778)
Metadata:
AREA_OR_POINT=Point
DTED_CompilationDate=0002
DTED_DataEdition=02
DTED_DigitizingSystem=SRTM
DTED_HorizontalAccuracy=0013
DTED_HorizontalDatum=WGS84
DTED_MaintenanceDate=0000
DTED_MaintenanceDescription=0000
DTED_MatchMergeDate=0000
DTED_MatchMergeVersion=A
DTED_NimaDesignator=DTED2
DTED_OriginLatitude=0300000N
DTED_OriginLongitude=0860000W
DTED_Producer=USCNIMA
DTED_RelHorizontalAccuracy=NA
DTED_RelVerticalAccuracy=0004
DTED_SecurityCode_DSI=U
DTED_SecurityCode_UHL=U
DTED_UniqueRef_DSI=H24 084
DTED_UniqueRef_UHL=H24 084
DTED_VerticalAccuracy_ACC=0005
DTED_VerticalAccuracy_UHL=0005
DTED_VerticalDatum=E96
Image Structure Metadata:
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( -85.4959722, 30.5362500) ( 85d29'45.50"W, 30d32'10.50"N)
Lower Left ( -85.4959722, 30.5223611) ( 85d29'45.50"W, 30d31'20.50"N)
Upper Right ( -85.4798611, 30.5362500) ( 85d28'47.50"W, 30d32'10.50"N)
Lower Right ( -85.4798611, 30.5223611) ( 85d28'47.50"W, 30d31'20.50"N)
Center ( -85.4879167, 30.5293056) ( 85d29'16.50"W, 30d31'45.50"N)
Band 1 Block=58x50 Type=Int16, ColorInterp=Gray
Min=31.000 Max=61.000
Minimum=31.000, Maximum=61.000, Mean=49.202, StdDev=6.253
NoData Value=0
Unit Type: m
Metadata:
STATISTICS_MAXIMUM=61
STATISTICS_MEAN=49.202413793103
STATISTICS_MINIMUM=31
STATISTICS_STDDEV=6.2528388891449
Here, center of my terrain is:
Center ( -85.4879167, 30.5293056) ( 85d29'16.50"W, 30d31'45.50"N)
Now i want to place a camera in the center of that terrain to use it from an
app:
const double M_PI_2 = 1.57079632679489661923;
int main( int argc, char** argv ) {
osg::ref_ptr<osg::Group> root = new osg::Group;
osg::ref_ptr<osg::Node> cessna =
osgDB::readNodeFile("c:/OpenSceneGraph/data/cessnafire.osg");
osg::ref_ptr<osg::Node> map =
osgDB::readNodeFile("c:/Terrain/FromUSGS/output/out.osgb");
root->addChild( cessna.get() );
root->addChild( map.get() );
osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer;
viewer->setSceneData( root.get() );
osg::Matrixd vm;
osg::EllipsoidModel ellipsoid;
ellipsoid.computeLocalToWorldTransformFromLatLongHeight(osg::DegreesToRadians(-85.4877762),
osg::DegreesToRadians(30.5292506), 100, vm);
vm.invert(vm);
osg::Matrixd rotation2YUp;
rotation2YUp.makeRotate(-M_PI_2, osg::Vec3f(1.0, 0.0, 0.0));
vm *= rotation2YUp;
viewer->getCamera()->setViewMatrix(vm);
return viewer->run();
}
But i don't see anything. Just empty screen.
Well, since terrain had been built in geocentric mode, i think app somehow
moved terrain and cessna to the correct position in ECEF.
So, i just need to move a camera to that position.
I guess camera's position is wrong, but i don't know how to fix it.
Thank you!
Cheers,
Elias
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=64106#64106
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
--
SCHULTE Christian
Ingénieur Recherche
Responsable du Laboratoire de Simulation
ONERA - DCSD/PSEV
Département Commande des Systèmes et Dynamique du Vol
ONERA - Centre de Salon de Provence
BA 701
13661 SALON AIR Cedex - France
Tel :04.90.17.01.45
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org