没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:吴秋红|2024-04-22 11:16:57.393|阅读 68 次
概述:在本教程中,我们将使用涡轮发动机模型来演示反射平面、两种类型的阴影和光晕。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
渲染效果
当需要创建具有非常高视觉质量的图像时,HOOPS Visualize可以提供多种渲染效果。在本教程中,我们将使用涡轮发动机模型来演示反射平面、两种类型的阴影和光晕。
本教程将使用沙盒应用程序,对于C++用户,您可以从mfc_sandboxCHPSView::OnUserCodeX项目开始。如果您想按照本教程进行操作,则可以在function中放置代码;C#用户将使用wpf_sandbox应用程序-您将代码放置在DemoUserCommand**X**::Execute.
1.1 加载涡轮机模型
构建并运行沙箱后的第一步是加载涡轮机模型文件。该文件可以在Visualize安装的样本/数据目录中找到。这是一个HSF文件,因此可以通过HOOPS Visualize本机加载。使用沙箱的主菜单将其加载到沙箱中。或者,您可以使用以下代码片段以编程方式加载文件:
HPS::Stream::ImportNotifier notifier; try { HPS::Stream::ImportOptionsKit importOptionsKit; importOptionsKit.SetSegment(mySegmentKey); notifier = HPS::Stream::File::Import(filename, importOptionsKit); // pauses this thread until the HSF is finished loading notifier.Wait(); } catch (HPS::IOException const& e) { // handle exception}
您还需要获取对模型的段键的引用。如果您以编程方式加载该文件,则应该向HPS::ImportOptionsKit.如果您使用沙箱应用程序的文件菜单加载模型,则可以获得模型段,如下所示:
HPS::SegmentKey modelSegmentKey = GetTopView().GetAttachedModel().GetSegmentKey();
有关加载HSF的更多信息,请参阅编程指南的第 9.1节。加载完成后,您应该看到下图:
涡轮发动机的默认视图
1.2 添加反射平面和照明
您可以相对轻松地应用的一种奇特效果是反射平面。SetSimpleReflectionPlane使用平面的几何方程指定平面:
Ax + By + Cz + D = 0
还可以使用反射图像的其他选项,例如不透明度、模糊、褪色和衰减。我们还将添加照明,使模型显得更加真实。将以下代码放入UserCode或方法之一中,DemoUserCommand以在加载模型后激活它。
modelSegmentKey.GetVisualEffectsControl().SetSimpleReflection(true, 0.5f, 1U, false, 0, 2.0f); // parameters are equation of a plane modelSegmentKey.GetVisualEffectsControl().SetSimpleReflectionPlane(HPS::Plane(0, 1, 0, 0.375f)); // add lighting modelSegmentKey.InsertDistantLight(HPS::Vector(1, 1, -1));
使用轨道运算符(位于应用程序的功能区控件中)旋转模型后,生成的图像应如下所示:
带有反射平面的涡轮发动机(请注意,为了清晰起见,窗口背景已更改为白色)
与所有额外的渲染效果一样,需要额外的处理时间才能获得最终的图像。始终牢记渲染质量和性能之间的平衡。
1.3 阴影
modelSegmentKey.GetVisibilityControl().SetShadows(true); modelSegmentKey.GetVisualEffectsControl().SetShadowMaps(true, 16, 2048, true, true);
在本节中,我们将向涡轮机模型应用投影和阴影贴图。由于投影在反射平面上通常看起来不太好,因此我们将禁用它以专注于阴影。我们将启用的第一种阴影类型是阴影贴图。阴影贴图允许几何体的面在受光影响的任何类型的几何体上投射阴影。第一步是在片段中启用阴影,然后我们将设置阴影贴图参数:
在这里,您可以看到前景中的一些部件在其后面的几何体上投射阴影。
接下来,我们将启用阴影。投影在Visualize中称为简单阴影,因为效果受到高度限制。首先,简单的阴影只能投射在平面上。其次,阴影只能由单一光源产生。然而,对于大多数工程应用来说,简单的阴影就可以产生足够的效果。
mySegmentKey.GetVisualEffectsControl().SetSimpleShadow(true); // enables simple shadows mySegmentKey.GetVisualEffectsControl().SetSimpleShadowPlane( HPS::Plane(0, 1, 0, 0.425f)); // sets the plane where the shadows are projected mySegmentKey.GetVisualEffectsControl().SetSimpleShadowColor(HPS::RGBAColor(0.2f, 0.2f, 0.2f)); // color of the shadow mySegmentKey.GetVisualEffectsControl().SetSimpleShadowLightDirection(HPS::Vector(0, 1, 0)); // light direction
带有阴影贴图和简单阴影的涡轮机
1.4.Bloom
另一种可以提高渲染视觉质量的效果是光晕。当强烈的明亮光线从闪亮的表面反射时,就会发生光晕。光线似乎渗入了周围的空气中。Bloom仅在基于着色器的驱动程序中可用,例如DirectX11和OpenGL2。Bloom是使用HPS::PostProcessEffectsKit.
HPS::PostProcessEffectsKit ppek; ppek.SetBloom(true, 10.0f); // enables bloom. strength can be set from 0 to 10, (default is 1) myWindowKey.SetPostProcessEffects(ppek); ppek.SetBloom(false); // disables bloom
启用光晕时,涡轮机的闪亮部分会产生有趣的效果
1.5 纹理
为了获得最高的视觉质量,您还需要添加纹理。将纹理应用到像涡轮机这样复杂的模型超出了本教程的范围,但提供了一个图像来演示它。您可以在Visualize安装的样本/数据目录中找到纹理模型。有关纹理的更多信息可以在编程指南的纹理部分和教程 2:应用材质中找到。
应用纹理的涡轮机
慧都科技是Tech Soft 3D-HOOPS在中国区的唯一增值服务商,负责HOOPS与CEETRON试用,咨询,销售,技术支持,售后,旨在为企业提供一站式的3D开发解决方案。如果您的企业目前也有3D数据格式转换、3D Web轻量化渲染的需求,欢迎咨询在线客服申请3D 轻量化引擎HOOPS的60天免费试用。
↓↓扫码添加客服微信,及时获取“HOOPS技术”支持↓↓
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
Iron Software 为.NET开发者提供了难得的“即插即用”组件体验,无论是做内部工具,还是开发商业软件,都能大幅提升你的开发效率与产品质量。这款宝藏控件,不妨你也来试试!
TestComplete通过与Git、Jenkins和Zephyr的深度集成,构建了一个完整的持续测试生态系统:从代码变更的智能感知到批量测试的自动化执行,再到测试管理的智能化分析,实现了测试流程的全链路自动化。这种端到端的集成方案不仅显著提升了测试效率和质量,更通过实时反馈和可视化管理,为团队提供了精准的代码质量洞察。
微服务架构带来了灵活性,但也让测试变得复杂:不同协议适配费时费力、服务频繁变更导致测试用例维护困难、依赖环境搭建和稳定更是令人头疼。这些挑战常常成为敏捷交付和质量保障的瓶颈。Parasoft SOAtest正是为应对这些复杂分布式系统测试难题而设计的平台。它通过三大核心能力,帮助团队更从容地驾驭微服务测试:
HOOPS SDK为增材制造软件开发提供了从CAD数据读取、模型处理、可视化到文档生成的完整技术栈。无论是桌面端的工业级打印控制系统,还是基于云的在线制造平台,开发者都可通过HOOPS快速构建稳定可靠、用户体验优良的3D打印软件。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号