首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在OpenCascade中用颜色显示侧面?

如何在OpenCascade中用颜色显示侧面?
EN

Stack Overflow用户
提问于 2019-10-18 17:50:53
回答 1查看 295关注 0票数 1

我有一个.step文件,我需要从侧面为一个项目的图像。现在我有一个问题,那就是侧面都是白色的。

为了得到侧面,我改变了视角,现在我稍微改变了一下,以显示颜色,但这通常不起作用,对象仍然是白色的。我还试着给PositionalLight和DirectionalLight打广告,它们最多也就是灰白色多一点。但我可能忽略了一些简单的东西。

更改视图的代码

代码语言:javascript
运行
复制
            localView = new View3D();
            localView.Dock = DockStyle.Fill;
            Visualizer = new ObjectVisualizer();
            localView.AddVisualizer(Visualizer);
            stepImport = new StepImport();
            Import = stepImport.Import(_currentFile);
            localView.BeginUpdate();
            localView.ViewBottom();
            localView.EndUpdate();

我尝试过的示例光源

代码语言:javascript
运行
复制
            localView.View.SetLightOn(new OCV3d_DirectionalLight(localView.View.Viewer(), OCV3d_TypeOfOrientation.V3d_Zneg, OCQuantity_NameOfColor.Quantity_NOC_RED));
            localView.View.SetLightOn(new OCV3d_PositionalLight(localView.View.Viewer(), -10, -10, -10, OCQuantity_NameOfColor.Quantity_NOC_BLACK));

我尝试获得一个侧视图,就像在FreeCad软件中一样,其中显示了对象的颜色。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-21 18:49:55

多亏了本杰明·比勒的评论,我才得以解决我的问题,因为它确实是让物体从侧面闪闪发光的材料。要更改材质,我必须从我用来显示对象的VisualNode对象访问AisShapes。

代码语言:javascript
运行
复制
VisualNode visualNode = new VisualNode(item.Name, new ObjectVisualizer(localView));
visualNode.AddShape(item.Shape, c, (double)c.A / 255);
foreach(var x in visualNode.AisShapes)
{
    x.SetMaterial(OCGraphic3d_NameOfMaterial.Graphic3d_NOM_PLASTIC);
}
Visualizer.RootNode.Children.Add(visualNode);
visualNode.Show();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58448302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档