首页 / 浏览问题 / 组件GIS / 问题详情
Material3D 贴图显示不正确
48EXP 2019年07月24日

使用 ModelEntityManager 对模型进行贴图时,发现设置材质后显示不正确,仅显示颜色。

下面图为贴材质前后的效果图以及贴图图片

下面为贴图代码

 private void Test(GeoModel3D geoModel3D)
        {
            Model model = geoModel3D.Model;
            if (m_extrudeDatasetVector != null)
            {
                ModelEntityManager m_ExtrudeManager = new ModelEntityManager(m_extrudeDatasetVector);
                SkeletonID skeletonID = new SkeletonID(-1, 0);
                Skeleton skeleton = model.GetSkeleton(skeletonID);
                string firstMaterialName = "modelMaterial";
                string picturePath = @"E:\texture\4.jpg";
                Material3D material3D = new Material3D(firstMaterialName);
                TextureData textureData = new TextureData(firstMaterialName);
                textureData.FromFile(picturePath);
                material3D.Texture = textureData;
                material3D.Name = firstMaterialName;
                skeleton.Material = material3D;
                model.Update(skeleton);
                m_ExtrudeManager.Update(model);
                m_ExtrudeManager.UpdateDataset();
                m_ExtrudeManager.Dispose();
                m_extrudeLayer3D.UpdateData();
            }
        }

1个回答

您好,https://blog.csdn.net/supermapsupport/article/details/90691994这里有个详细的网址参考,你那边可以参考这个来进行制作

2,432EXP 2019年07月24日
您好,感谢您的回答,这个链接中对于已经有纹理的模型可以进行替换,可是对于拉伸起来的白模(没有贴纹理的),这种方法达不到效果。
您好,你是指用桌面的线性拉伸拉伸的白膜吗,那个应该在拉伸的时候赋予贴图。具体接口是ModelBuider3D.LinearExtrude
您好,谢谢,这里是指在idesktop中拉伸起来的白模,但这个白模图层没有贴图,现在要选中其中一个要素进行贴图。发现贴出来就是上面的效果(这个没找到贴图大小或者重复次数的设置)
您好,有的,就是在我给的接口里面设置贴图,里面有个参数TextureMapParameter
您好,谢谢你的回答。这个接口我看到了。可能是我没表述清楚,不过我现在是要给白模(类型为GeoModel3D)来贴纹理,这个就只能用ModelEntityManager来设置了,但这里面设置的TextureData不能设置贴图大小或者重复次数,导致贴出来效果不正确
您好,我这边理解了你的意思,你那边可以参考一下安装目录\SampleCode\Realspace\Skeleton2GeoModel3D\Skeleton2GeoModel3D.csproj,里面有介绍怎么设置的
...