当前位置: 首页 > news >正文

如何用3D格式转换工具HOOPS Exchange读取颜色和材料信息?

作为应用程序开发人员,非常希望导入部件的图形表示与它们在创作软件中的外观尽可能接近。外观可以在每个B-Rep面的基础上指定,而且,通过装配层次结构的特定路径可以在视觉外观上赋予父/子覆盖。HOOPS ExchangeHOOPS Exchange可捕获有关来自各种格式的对象外观的数据,每种格式具有不同级别的可用信息。

3D模型轻量化及格式转换解决方案icon-default.png?t=N6B9https://isite.baidu.com/site/wjz8psvc/275e648c-86f9-40a6-a112-5771ac5491f2

▷ 读取颜色和材料数据

获取正确的外观数据有两个部分。第一部分是给定产品结构的特定路径,计算面的效果风格。第二部分是解释并适应您的图形显示工具。

 ▷ 计算人脸的有效样式

要确定如何显示特定表情,必须首先确定有效样式。这可以通过使用HOOPS Exchange API的"杂项级联属性"模块中提供的功能来完成。

由于一般实施应考虑零件实例化,特定B-Rep面的图形表示的最终样式由产品层次结构的路径决定。为通向细分曲面的层次结构的每个实例(A3DAsmModelFile、A3DAsmProductOccurrence (multiple)、A3DAsmPartDefinition、A3DRiRepresentationItem、A3DTessBase、A3DTessFaceData)创建,然后推送杂项级联属性对象。对Push的最终调用不同于之前的每次调用。

如果您使用Exchange Toolkit,确定有效样式的过程在类Tech Soft 3D::RepresentationItemInstance中实现。具体地说,成员函数ts3d::RepresentationItemInstance::getNetStyle可以用于每个面索引。如果你没有使用这个辅助工具包,你可以参考它的实现来更好地理解如何使用级联属性。

▷ 解释样式数据

计算出有效样式后,必须解释其中传达的信息。样式提供了关于如何显示线和面的信息。

▷ 面外观

根据是否为材料,面外观可分为两大类。

如果样式没有指示材质,您的工作很简单。使用API A3DGlobalGetGraphRgbColorData获取A3DGraphRgbColorData。这是最基本的外观数据。

如果样式显示了材质,则必须检查是否有可用的纹理应用数据。如果有,则使用此API检索纹理应用数据。A3DGraphTextureApplicationData结构提供了材质数据和纹理定义数据的索引。

此外,还可使用A3DMiscPointerFromIndexGet和A3DMiscAttribute功能获取PBR属性。请注意,纹理应用数据结构包含用于附加纹理应用数据的索引。所有纹理通道的组合必须用于组成最终外观。

▷ 线条外观

要正确显示线条,必须正确解释样式数据。属性A3DGraphStyleData::m_bVPicture用于指示基于矢量的数据用于定义线条样式。

  • 如果线条样式指示一个矢量图片,使用API A3DGlobalGetGraphVPicturePatternData获取正确渲染所需的数据。
  • 如果线条样式没有指示矢量图片,请使用A3DGlobalGetGraphLinePatternData。

▷ 总结和其他

为CAD几何图形确定正确的显示参数是软件应用程序的一项基本功能。通过遵循上述步骤,您可以确保使用HOOPS Exchange的全套功能来实现这一目标。   

HOOPS中文网icon-default.png?t=N6B9http://techsoft3d.evget.com/

http://www.lryc.cn/news/95212.html

相关文章:

  • [Ubuntu 22.04] 安装docker,并设置镜像加速
  • 如何使用GPT作为SQL查询引擎的自然语言
  • Servlet3.0上传文件
  • 【ARM Cache 系列文章 6 番外篇 – MMU, MPU, SMMU, PMU 差异与关系】
  • NetSuite ERP顾问的进阶之路
  • js 新浏览器打开页面
  • jmeter软件测试实验(附源码以及配置)
  • ZooKeeper原理剖析
  • 【算组合数】CF1833 F
  • Attention详解(自用)
  • pptx转pdf工具类
  • 2023华为OD统一考试(B卷)题库清单(持续收录中)以及考点说明
  • 论文笔记--Won’t Get Fooled Again: Answering Questions with False Premises
  • 【Django】include app_name和namespace的区别
  • (黑客)自学笔记
  • 【期末课程设计】学生成绩管理系统
  • 【论文笔记】KDD2019 | KGAT: Knowledge Graph Attention Network for Recommendation
  • ES6:基础使用,积累
  • Android端上传文件到Spring Boot后端
  • 使用GGML和LangChain在CPU上运行量化的llama2
  • 微服务基础理论
  • 《向量数据库指南》:向量数据库Pinecone管理数据教程
  • 以深度为基础的Scikit-learn: 高级特性与最佳实践
  • Autosar MCAL-S32K324Dio配置-基于EB
  • 【Spring Boot】单元测试
  • Flink CEP (一)原理及概念
  • vue3+taro+Nutui 开发小程序(二)
  • Transformer 模型实用介绍:BERT
  • Spring详解(学习总结)
  • 【JavaEE】Spring中注解的方式去获取Bean对象