首页 / 浏览问题 / 组件GIS / 问题详情
包含GeoRegion3D的图层的CullMode渲染问题
7EXP 2020年07月16日
//region3D是一个包含多个3D面的GeoRegion3D实例

//设置region3D的GeoStyle3D 颜色为半透明
GeoStyle3D geostyle3d = new GeoStyle3D();
geostyle3d.FillForeColor = Color.FromArgb(40, 255, 0, 255);
geostyle3d.FillMode = FillMode3D.LineAndFill;

//转为GeoModel3D
GeoModel3D geomodel = region3d.ConvertToGeoModel3D(true, 99);
geomodel.Style3D = geostyle3d;


//新建数据集dataset
DatasetVector dataset = datasource.Datasets.Create(new DatasetVectorInfo(name, DatasetType.Model));
dataset.PrjCoordSys = PrjCoordSys.FromEPSG(4326);
Recordset recordset = dataset.GetRecordset(false, CursorType.Dynamic); 
//将模型geomodel加入数据集dataset             
recordset.AddNew(geomodel);
recordset.Update();

//设置图层layer的GeoStyle3D 颜色为半透明
geostyle3d = new GeoStyle3D();
geostyle3d.FillForeColor = Color.FromArgb(40, 255, 0, 255);
geostyle3d.FillMode = FillMode3D.LineAndFill;

Layer3DSettingVector setting = new Layer3DSettingVector();
setting.Style = geostyle3d;

// 将数据集dataset添加到图层
Layer3DDataset layer = layers.Add(dataset, setting, true);

layer.IsVisible = true;

// 图层渲染模式 CCW顺时针 CW逆时针 NONE双面 DEFAULT默认
layer.CullMode = CullModeType.CCW;
layer.UpdateData();

iObject 9D 桌面二次开发

用GeoRegion3D拟合不规则三维几何体的表面

问题描述:

1. 当layer.CullMode = CullModeType.CCW;或layer.CullMode = CullModeType.CW;时,出现部分表面不显示的情况,如图。

2. 当layer.CullMode = CullModeType.NONE;或layer.CullMode = CullModeType.DEFAULT;时,出现不明阴影,如图是一个球形。

不能用GeoSphere和GeoHemiSphere,因为要生成球形的任意一部分。

1个回答

麻烦提供一个简单的示例demo,最好是上传到百度网盘
4,620EXP 2020年07月17日
...