Questions sur les modules de vectorisation

  1. FAQ
  2. »
  3. Vectorisation et gestion des polices
  4. »
  5. Questions sur les modules de vectorisation

Comment puis-je faire pivoter l'entité OdDbViewport? Ou existe-t-il un autre moyen de faire pivoter l’OdDbViewport?

La fenêtre d'affichage elle-même ne peut pas être pivotée, mais son contenu peut utiliser l’OdDbViewport::setTwistAngle()

Erreur: L'extension GL ARB_Fragment_Shader 2016 n'a pas été trouvée

Ici, nous avons deux variantes: soit il n'y a pas de carte vidéo (veuillez vérifier cela et écrire, s'il y en a une), soit le travail est effectué en mode RDP (bureau à distance). Dans ce cas, essayez d'utiliser la vectorisation avec un autre périphérique (GDI ou OpenGL).

L'exportation de Pdf a une certaine différence par rapport au dessin dans la mise en page, en particulier la transparence ou l'utilisation de la vue 3D par rayons X.

L’exportation de vues ombrées (rendues) ne peuvent être effectuées qu'à l'aide du dispositif de rendu GsDevice. Le résultat dans ce mode peut dépéndre de l'appareil utilisé, qui doit être créé du côté des services Application, et non par PdfExport lui-même.

Vous pouvez essayer d'utiliser le périphérique GLES2 pour exporter de telles vues - ce périphérique dispose de la meilleure fonctionnalité pour dessiner des objets géométriques complexes.

Lorsque je définis une grande échelle d'image lors de l'exportation PNG (menu Enregistrer Bitmap), une partie de l'image est remplie avec la couleur par défaut.

Essayez d'utiliser un périphérique de vectorisation WinOpenGL ou WinBitmap. Il existe une certaine restriction quant à la résolution de l'image générée par WinGLES2.

Lorsque j'utilise le module OpenGL pour prévisualiser les impressions Windows (OnPrint()), dois-je afficher des bitmaps sur des périphériques créés avec createBitmapDevice comme l'exemple OdaMfcApp?

L’OpenGL ne peut dessiner directement que dans le contexte de la fenêtre, il ne prend en charge aucun autre contexte de périphérique (DC). Ainsi, vous pouvez dessiner dans les DC d'impression ou bitmap tout en utilisant une image raster seule, générée par le module de vectorisation OpenGL. Si vous transmettez un CC incompatible à l'API OpenGL, cela va générer une erreur.

Y a-t-il des limites du moteur de rendu DirectX12 par rapport à l’OpenGLES2?

Actuellement, nous travaillons sur le rendu Metal et le rendu DirectX12. La principale différence est que l'OpenGLES2 peut être utilisé partout et le DirectX ne peut être utilisé que sur la plate-forme Windows. Cette différence est principale. Le DirectX est plus moderne qu'OpenGL, donc nous nous attendons à ce qu'il donne plus de performances pour le rendu quand il sera développé.

Comment puis-je exporter des fichiers .jpg si la carte vidéo est désactivée?

Les modules de vectorisation GDI et OpenGL peuvent également être utilisés pour rendre une image raster sans matériel de carte vidéo.

Quels modules de vectorisation peuvent être utilisés dans les ODAs SDK?

Modules de Vectorisation de ODA:

WinBitmap, c’est un module de vectorisation multiplateforme qui utilise ses propres méthodes de rendu de géométrie logicielle pour rastériser des graphiques. Il ne prend pas en charge la mise en cache de géométrie, il n’est pas rapide et il ne prend pas en charge le rendu des modes ombrés.

WinGDI, c’est un module qui appelle l'API GDI Windows pour rendre la géométrie. Le GDI Windows rend la géométrie en utilisant leurs propres méthodes logicielles. Typiquement, on utilise ce module pour imprimer sur le système d'exploitation Windows. Il ne prend pas en charge le rendu des modes ombrés.

WinOpenGL, c’est un module de vectorisation multiplateforme qui invoque l'API OpenGL pour rendre la géométrie à l'aide de l'accélération matérielle (disponible uniquement si les pilotes GPU sont installés, ailleurs il rendra la géométrie par des méthodes logicielles). Le module nécessite l’Opengl32.lib à partir du SDK de la plate-forme Windows à lier avec.

WinDirectX, c’est un module qui appelle les bibliothèques DirectX pour rendre la géométrie à l'aide de l'accélération matérielle. Le DirectX est déjà disponible sur Windows OS-es à partir de Windows Vista (pour les systèmes d'exploitation plus anciens, les runtimes DirectX doivent être installés séparément). Le module WinDirectX nécessite la version DirectX 9.0 ou supérieure. Les liens avec Direct3d.lib sont réalisés à partir du SDK Microsoft DirectX.

Comment puis-je rendre correctement les bitmaps OLE intégrés?

Si vous utilisez la configuration des bibliothèques statiques, vous devez également enregistrer l’OdOleItemHandler dans la carte des modules statiques:

#if !defined(_TOOLKIT_IN_DLL_) || defined(__MWERKS__)

ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(ModelerModule);
ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(ExRasterModule);
ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(OdRasterProcessingServicesImpl);
ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(OdOleItemHandlerModuleImpl);
ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(WinGDIModule);

ODRX_BEGIN_STATIC_MODULE_MAP()
  ODRX_DEFINE_STATIC_APPLICATION(OD_T("ModelerGeometry"),  ModelerModule)
  ODRX_DEFINE_STATIC_APPLICATION(OD_T("RxRasterServices"), ExRasterModule)
  ODRX_DEFINE_STATIC_APPLICATION(OD_T("RasterProcessor"),  OdRasterProcessingServicesImpl)
  ODRX_DEFINE_STATIC_APPLICATION(OD_T("OdOleItemHandler"), OdOleItemHandlerModuleImpl)
  ODRX_DEFINE_STATIC_APPLICATION(OdWinGDIModuleName, WinGDIModule)
ODRX_END_STATIC_MODULE_MAP()

#endif

Pour une configuration de bibliothèques dynamiques, l’OdOleItemHandler est chargé automatiquement si ce fichier .tx est disponible dans le dossier du programme.

Puis-je utiliser le rendu ombré avec la vectorisation WinBitmap?

Le module de vectorisation WinBitmap ne prend pas en charge les modes de rendu ombrés, seulement le 2dOptimized, le Wireframe et le HiddenLine (si la propriété de périphérique "SoftwareHLR" est définie sur true). Il en est de même pour le module de vectorisation WinGDI. Les modes de rendu ombrés sont pris en charge par les modules de vectorisation WinOpenGL et WinDirectX.

Pourquoi le seul WinGDI produit-il la sortie correcte avec de petites lignes et des points alors que le DirectX et l’OpenGL ne les affichent pas correctement?

Le WinGDI est un dispositif de vectorisation 2D, de sorte que les petites lignes sont visibles; le Silicon Graphics OpenGL® et Microsoft® DirectX® sont des dispositifs de vectorisation 3D, de sorte que les petites lignes deviennent invisibles (c'est une fonctionnalité des API OpenGL et DirectX et elle ne peut pas être modifiée). Dans AutoCAD® d’Autodesk®, vous pouvez observer un comportement similaire: en mode 2DWireframe, de petites lignes sont visibles et dans tous les modes 3D, elles ressemblent à ODA lorsque vous utilisez l’OpenGL et le DirectX.

Les vectorisateurs ODA prennent-ils en charge la mise en cache de la géométrie?

Tous les vectorisateurs ODA prennent en charge la mise en cache de la géométrie, sauf le WinBitmap.txv.

Comment puis-je influer sur la gradation des couches verrouillées pendant le rendu avec l'appareil WinGDI?

ODA prend en charge la gradation des couches verrouillées et des références externes (xrefs). Les graphiques sont atténués en utilisant la couleur d'arrière-plan actuelle. Vous pouvez contrôler le pourcentage de gradation ou le désactiver à l'aide des variables système suivantes:

  • LAYLOCKFADECTL - Estompe les objets sur les couches verrouillés.
  • XDWGFADECTL - Atténue les objets xref.