**
换个漂亮的天空盒子
**
一:技术原理
天空盒子指的是在三维场景中,利用贴图的方式模拟现实中的天空,以达到场景更加真实的效果。
而每个天空盒子则由6个面构成(即四面体),因此需要6张不一样的贴图来表示各个方向的天空。
在三维场景中,我们还可以创建不同区域来显示不同图形,这个区域即视口。
视口(Viewport)是指窗口中的绘制输出区域。我们可以通过同一个场景建设多个视口,然后在每一个观察口都从不同的方向去观察模型,从而很方便地去获取模型当前的状态。
CityMaker的场景中共有5个视口,为序号0-4,分别表示第一个到第四个视图、PIP画中画视图。
CityMaker支持16种视口模式,请参考本章第三节。
主要接口:
ISkyBox::SetImagePath ( gviSkyboxImageIndex ImageIndex, BSTR ImagePath )
参数详解:
ImageIndex:指天空盒四方体中的面类型。
ImagePath:指向图片所在的文件路径,支持HTTP网络路径。
天空盒四面体的面类型为枚举型,如下:
gviSkyboxImageFront 北向
gviSkyboxImageBack 南向
gviSkyboxImageLeft 东向
gviSkyboxImageRight 西向
gviSkyboxImageTop 顶部,注意图片的上方靠南
gviSkyboxImageBottom 底部,注意图片的上方靠北
详情请参考SDKHelp中的ISkyBox接口。
二:设置(或更换)天空盒子
1. .Net步骤
多个视口的不同的天空盒子效果如下: 设置多个视口的天空盒子
(1)设置天空盒子
string[] pngNames = new string[] { "1_BK.jpg",