说明:目前针对学校和企业团体,只需要申请一个试用的授权License即可,配置到服务器上,别的机器在运行SDK的示例的时候,只需将网络授权添加即可。
ILicenseServer license = new LicenseServer();
license.SetHost("192.168.2.200", 8588, "");
之后就可以正常写代码了,如果授权不成功,会提示“需要标注的runtime授权”。既是没有授权,你也可以加载一个天空进来,这是免费的。
1、在所有的C#代码中,都有初始化场景的代码,这里确定渲染方式和投影坐标等参数。
IPropertySet ps = new PropertySet();
//选择渲染方式
ps.SetProperty("RenderSystem", gviRenderSystem.gviRenderOpenGL);
//球面和非球面坐标系设定
this.axRenderControl1.Initialize(true, ps);
//根节点ID获得
rootId = this.axRenderControl1.ObjectManager.GetProjectTree().RootID;
//定义飞行时间差,马上就飞还是等待1毫秒
this.axRenderControl1.Camera.FlyTime = 1;
2、设置天空盒子,每个三维场景对应一个天空盒子,如果是多屏幕模式,2屏,3屏,4屏,或者画中画模式,那么可以自己定义每个天空盒子,只需要设定天空盒子的索引即可
//设定多个天空,那么后面的GetSkyBox里面就填写1,2,3等索引值
ISkyBox skybox = this.axRenderControl1.ObjectManager.GetSkyBox(0);
skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageBack, tmpSkyboxPath + "\\1_BK.jpg");
skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageBottom, tmpSkyboxPath + "\\1_DN.jpg");
skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageFront, tmpSkyboxPath + "\\1_FR.jpg");
skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageLeft, tmpSkyboxPath + "\\1_LF.jpg");
skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageRight, tmpSkyboxPath + "\\1_RT.jpg");
skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageTop, tmpSkyboxPath + "\\1_UP.jpg");
3、场景和天空都完成后该加载数据了,通常都是FDB,都是通用的代码,那么只讲下开始的这几行
IConnectionInfo ci = new ConnectionInfo();//定义连接
ci.ConnectionType = gviConnectionType.gviConnectionFireBird2x;//连接方式
string tmpFDBPath = Path.Combine(Application.StartupPath.Substring(0, flag), @"Samples\Media\polygon.FDB");//本地数据位置,这里主意下,如果你的路径太长或者有特殊的一些字符的话,有可能打开的时候报错,如果遇到此类问题,拷贝你的数据库文件到短路径下试试。
ci.Database = tmpFDBPath;
IDataSourceFactory dsFactory = new DataSourceFactory();
...省略几百行,这里每个cs的示例都一样,大家自己去拷贝即可。
4、所有的数据都在CSharp的同级目录Media里,里面有如下好东西
版权说明:这些都是伟景行自己的版权,不涉及侵权,请看到同样数据的同行们不要惊讶。
5、示例代码分为初级,高级,交互三大文件夹,大家可以快速的建立起自己的项目。
如需支持请联系
sunhaihong@gvitech.com MrSun