确定用于 PRC 导出的带纹理材质的环境色

渲染设备可以以不同方式显示材质的颜色分量,PDF 导出过程使用环境色行为选项以获得最佳外观的导出图纸。

下图说明了使用 OpenGL ES2 和 OpenGL 设备渲染带纹理材质之间的差异。

gles2 opengl

每个渲染设备对带纹理材质的环境色分量都有不同的解释。

将上述图纸导出为 3D PDF(集成 PRC 的 PDF)格式时,您可能会在输出 PDF 文档中获得不同的渲染结果。

output PDF document

与渲染设备的情况一样,这种差异是由于 PDF 查看器应用程序(例如 Adobe® Reader®)中对带纹理材质的环境色分量的解释不同造成的。

PDF 导出模块在 PDFExportParams 类中提供了一个特殊选项,用于控制 PDF 导出中的环境色渲染,即 PrcExportColorComponentBehavior:

  • kExportAsIs — 环境颜色分量按原样导出。Adobe Reader 中的模型渲染可能与 ODA Software 中的原始图形渲染不同。kExportAsIs

     

  • kExportWhite — 环境颜色分量导出为白色。Adobe Reader 中的模型渲染最接近使用 OpenGL 设备在 ODA Software 中进行的原始图形渲染。kExportWhite

     

  • kExportNotInited — 环境颜色分量导出为统一颜色。Adobe Reader 中的模型渲染最接近使用 GLES2 设备在 ODA Software 中进行的原始图形渲染。kExportNotInited

     

要获取环境颜色选项的当前设置,请使用 PDFExportParams 类的 getPrcExportAmbientColorBehavior() 方法。要设置环境颜色选项,请调用 setPrcExportAmbientColorBehavior() 方法。

下面的代码片段演示了在将 .dwg 图形导出为 3D PDF 文档时如何使用环境颜色选项:

      
OdPdfExportModulePtr pModule = ::odrxDynamicLinker()->loadApp(OdPdfExportModuleName, false);
::odrxDynamicLinker()->loadApp(OdPrcModuleName, false);
::odrxDynamicLinker()->loadApp(OdDwg2PrcExportModuleName, false);

OdPdfExportPtr exporter = pModule->create();

params.setDatabase(db);
params.setVersion(PDFExportParams::kPDFv1_6);
params.setOutput(odSystemServices()->createFile(outPdfFile, Oda::kFileWrite, Oda::kShareDenyNo, Oda::kCreateAlways));

params.setExportFlags(PDFExportParams::kDefault);

params.setPRCMode(PDFExportParams::kAsMesh);

pContext = odCreatePrcAllInSingleViewContextForTD();
params.setPRCContext(pContext);


// Sets prc behaviour when exporting ambient color components to PRC in the texture case
params.setPrcExportAmbientColorBehavior(PDF3D_ENUMS::kExportAsIs);



// initialize the conversion parameters: Layouts  
OdDbBlockTableRecordPtr pLayoutBlock = db->getActiveLayoutBTRId().safeOpenObject();
OdDbLayoutPtr pLayout = pLayoutBlock->getLayoutId().safeOpenObject();
params.layouts().push_back(pLayout->getLayoutName());

params.pageParams().resize(1, OdGsPageParams());

OdUInt32 errCode = exporter->exportPdf(params);
      

今天就开始行动

免费试用 ODA 软件 60 天。
无风险,无需信用卡。

免费试用