kgv's picture

Testing OCCT on Apple M1 (ARM64)

Apple has just released its first generation of ARM-based desktop computers. Macs used exclusively Intel CPUs since transition from IBM PowerPC in 2006, but now Apple believes that their own SoC, originally developed for mobile devices (iPhone and iPad), can replace Intel CPUs within the whole line of products in just 2 years!

Apple M1 SoC became the heart of several low-end devices within the ‘2020 line of products, but Apple promises an outstanding performance difference compared to previous Intel-based generation of products. This is difficult to believe! Could this be true?

kgv's picture

Redesign of Progress Indicator

OCCT 7.5.0 introduces a redesigned progress indication API with the Message_ProgressIndicator class as an entry point. The redesign was focused on the following objectives:

  • Allow propagating a progress indicator to nested algorithms within multiple working threads.
  • Handle various inconsistencies and bugs in existing design (e.g. causing incorrect progress indication due to internal bugs).
  • Improve logic to detect and reveal API misuse (e.g. causing incorrect progress indication due to incorrect API usage).
  • Make the public API more straight-forward and clear for using in algorithms.
abv's picture

OCCT 7.5.0 beta version is available

Hello,

We are pleased to inform you that the new release of OCCT, 7.5.0, is ready for beta testing, and invite you to test this beta version in your applications.

Use the commit tagged "V7_5_0_beta" in the Git repository for this testing. Alternatively, you can use the complete source archive or Windows installer including ready-to-use binaries built with VS 2017.

kgv's picture

PBR in OCCT 3D Viewer

Forthcoming OCCT 7.5.0 release extends its real-time rendering engine with a PBR (physically-based rendering) mode. OCCT implements PBR metal-roughness material workflow described by core glTF 2.0 specifications and also includes glTF data exchange components. New functionality opens a door to a new level of realism and visual quality of displayed models, and improves interoperability across various 3D engines supporting the same material workflow.

kgv's picture

OCCT 3D Viewer becomes sRGB-aware

Before talking about sRGB, lets figure out what was wrong with old OCCT 3D Viewer. Take a look onto a pair of screenshots:

Sphere lighting before (left) and after (right) switching to sRGB-aware renderer.

The left image demonstrates a soft transition of a light into a shadow, while the right one shows more rapid transition. Left image might look softer, but which one is closer to real life?

abv's picture

OCCT 7.4.0 beta version is available

Hello,

We are pleased to inform you that the new release of OCCT, 7.4.0, is ready for beta testing, and invite you to test this beta version in your applications.

Use the commit tagged "V7_4_0_beta" in the Git repository for this testing. Alternatively, you can use the complete source archive.

kgv's picture

Improved Mesh Edges Presentation

Mesh displayed in 3D Viewer may come from different sources - imported from external file (glTF, JT, STL, PLY, OBJ), computed for analytical BRep geometry by BRepMesh (part of OCCT) and ExpressMesh (OCC component) algorithms or generated directly by application code.

The mesh is usually displayed shaded, but such a presentation is not suitable for analysis of mesh structure. In many cases, application developer needs other mesh presentations to locate issues (too many details, not enough details, local deviations, etc.) and make corrections based on analysis results (adjust mesh generation or export parameters).

In this case, mesh edges presentation becomes very helpful.

Draw Harness test case for Mesh Edges (Geometry Shader).

oan's picture

Refactoring of BRepMesh

We are glad to inform the community of Open CASCADE Technology about a complete overhaul of BRepMesh component that is waiting for release in the upcoming 7.4.0 version. This overhaul, constrained by the requirement to keep non-regression of test cases collected during the last 20 years, took a while. In the end, the entire component has gained a new appearance. The new architecture simplifies the process of mesh generation over OCCT’s BRep models and enables processing of some corner cases that were hard to handle before.

abv's picture

OCCT 7.3.0 beta version is available

Hello,

We are pleased to inform you that the next release of OCCT, 7.3.0, is ready for beta testing, and invite you to test this beta version in your applications.

Use the commit tagged "V7_3_0_beta" in the Git repository for this testing. Alternatively, you can use either complete source archive or Windows installer including ready-to-use binaries built with VS 2010.

emv's picture

3D Model Defeaturing

The next release of Open CASCADE Technology (7.3.0) will include the new algorithm intended for removal of the selected features from the model. The features that can be removed include holes, protrusions, gaps, chamfers, fillets etc.

The defeaturing algorithm can be very useful in different contexts:

  • Model simplification for numeric analysis, display on mobile devices, etc;
  • In the direct modeling concept where the history of operations is unavailable;
  • Removal of the proprietary details of the model before sharing it with others;
kgv's picture

gl2ps removal from OCCT dependencies

Historically, OCCT 3D Viewer provided two options for dumping view content:

  • V3d_View::ToPixMap() saving an image screenshot (bitmap) into formats like PNG, BMP, JPG.
  • V3d_View::Export() exporting into vector graphics image format into formats like SVG, PDF, PS.

The latter one was provided with help of an external library gl2ps basing on OpenGL transformations feedback functionality (when OpenGL commands issued for rendering are captured and stored into dedicated buffer).

kgv's picture

Rendering performance counters

Development branch of Open CASCADE Technology (will be available in OCCT 7.3.0) introduces a new small feature for analyzing rendering performance issues #0029346.

Graphic3d_RenderingParams structure has been extended with a set of new properties for collecting and displaying performance counters in 3D Viewer.

kgv's picture

Local Context removal

Local Context was an essential part of OCCT 3D Viewer (AIS_InteractiveContext) for a long time. The concept of Local Context is quite simple and powerful - differentiation of two Viewer states: Neutral Point where all model objects reside, and Local Context augmenting main model presentations with auxiliary ones, created temporarily for particular task in user interaction. Even more, OCCT allows creation of multiple Local Contexts, defining some sort of stack of contexts.

kgv's picture

Weighted Blended Order-independent transparency

Open CASCADE Technology 7.2.0 introduces a new feature in OCCT 3D Viewer for handling translucent presentations Weighted Blended Order-Independent Transparency (OIT), #0027925.

abv's picture

OCCT 7.2.0 beta version is available

Hello,

We are pleased to inform you that OCCT 7.2.0 is ready for beta testing, and invite you to test this beta version in your applications.

Use the commit tagged "V7_2_0_beta" in the Git repository for this testing. Alternatively, you can use either complete source archive or Windows installer including ready-to-use binaries built with VS 2010.

abv's picture

Unification of diagnostic tools in OCCT

For many algorithms and tools to be usable in real applications, it is essential that these algorithms provide detailed information on the encountered problematic situations. In case of error, such details can be critically important for the user to be able to recognize the reason of the problem, and then either eliminate or bypass it.

emv's picture

Boolean Expressions on shapes

The version 7.0 of Open CASCADE Technology features the new General Fuse (GF) based algorithm - Cells Builder. The algorithm can be very useful if you have to perform several standard Boolean operations such as CUT, COMMON and FUSE on the same shapes to obtain the final result.

Due to the possibility to get any split parts of the arguments (parts of the input shapes split in the places of intersection with other input shapes), which are called Cells (that’s where the name for the algorithm comes from), the Cells Builder may significantly simplify and speed up these operations as all intersections will be performed in a single run. In effect, the Cells Builder allows executing the Boolean expressions on the shapes, i.e. performing a sequence of standard Boolean operations in one operation.

The first version of the algorithm (available since OCCT 7.0) had limited capabilities. It worked only with the shapes of the same dimension - only VERTICES, or only EDGES, etc. Recently, the algorithm has been extended to also work with multi-dimensional input shapes. The next version of Open CASCADE (7.2) will feature this extension.

emv's picture

Splitting operation

We are glad to inform you that the next version of the Open CASCADE will feature the long-expected algorithm for splitting the shapes - Splitter algorithm. The algorithm is very useful when you need to split the group of shapes (Objects) by the other group of shapes (Tools). The algorithm will intersect and split all input shapes, but only the split parts of the shapes from the first group will be added into the result.

Note, that:
- The input shapes in both groups can be of any type;
- Each input shape should not be self-interfered;

emv's picture

Gluing Options in Boolean Component

The next release of Open CASCADE Technology will feature the new mode of Boolean Operations - Gluing mode. It is implemented as an option for the algorithms in Boolean Component such as General Fuse, Boolean, Section, Volume Maker and Cells Builder operations. This option has been designed to speed up the computation of the intersection part of the algorithms for the special cases where the arguments do not really interfere each other, but are just touching or overlapping.

abv's picture

OCCT 7.1.0 beta version is available

Hello,

We are pleased to inform you that OCCT 7.1.0 is ready for beta testing, and invite you to test this beta version in your applications.

Use the commit tagged "V7_1_0_beta" in the Git repository for this testing. Alternatively, you can use either complete source archive or Windows installer including ready-to-use binaries built with VS 2010.

kgv's picture

GLSL to become the main rendering path in OCCT

In the past, graphic card in computer was designed to perform limited set of operations. At some point, all cards had to provide the hardware-accelerated functionality called Transformation and Lighting (T&L). Application developers had to implement all features and visual effects that were not parts of the fixed set of graphic card functionality on CPU.

kgv's picture

Building OCCT using MinGW

Open CASCADE Technology 7.0.0.rc can be built using MinGW-w64 on Windows platform.

MinGW is a minimalistic development environment for developing native Windows applications based on GCC. Project MinGW-w64 is its fork aimed to support 64-bit target and new APIs.

GCC (GNU Compiler Collection) remains a main compiler on Linux platform, but is a second-class citizen on platforms like Windows (with dominating msvc - a C/C++ compiler from Microsoft Visual Studio) or OS X (where Apple has pushed developers towards clang).

abv's picture

OCCT 7.0.0 Release Candidate

Hello,

We are pleased to announce that beta testing campaign of OCCT 7.0 has finished, and OCCT 7.0.0 Release Candidate is available.

This time beta testing was especially fruitful: we have got several dozens inputs from the community, which helped to improve OCCT for this release. The most essential changes since beta version are:

abv's picture

OCCT 7.0.0 beta testing

Hello,

We are happy to announce that beta version of OCCT 7.0 is available for testing, and invite you to test it in your projects.

OCCT 7.0 includes a number of essential changes aimed to eliminate legacy limitations of OCCT. These changes improve configuration and building, execution in multithreaded environments and on mobile platforms, reliability of modeling algorithms. By their nature, they affect base classes and API, thus certain effort will likely be necessary to upgrade existing applications for use with OCCT 7.0.

kgv's picture

Stereoscopic rendering in Open CASCADE Technology

Stereoscopic rendering has been first introduced in Open CASCADE Technology 6.8.0. Initial support has been limited to shutter glasses and off-screen rendering. OCCT 6.9.1 improves this functionality and extends the list of supported consumer display devices.

abv's picture

OCCT 6.9.1.beta is ready

Hello,

We are going to issue a maintenance release of OCCT, numbered 6.9.1, to provide bug fixes and minor improvements over the version 6.9.0, before major release of version 7.0. The beta version of 6.9.1 is now available for testing.

abv's picture

Open CASCADE Technology 7.0 preview

Dear All,

We have finalized development of several major new features for Open CASCADE Technology 7.0. The most essential changes -- removal of CDL and WOK -- have been raised to master branch of the OCCT Git repository last Friday, and we propose this version for public review, as "alpha" version of OCCT 7.0.

This article is aimed to give overview of the major changes already integrated, and give idea of the effort required to port existing code on the new version.

Preface

aba's picture

VTK integration services in OCCT

OCCT provides built-in Interactive Services based on own OpenGL-based Visualization component. The basic functionality consists of but not limited to presentation and selection of topological shapes (TopoDS_Shape), which are the key objects in OCCT, but also various presentations for arbitrary mesh data, text annotations and others. Nowadays it works on wide range of platforms, including mobile ones, supports custom GLSL programs, GPU-accelerated Ray Tracing, and plenty of other modern features.

However one might decide to use alternative Visualization component, for historical reasons or for project-specific features. One of the most popular and powerful among freely available visualization toolkits is VTK.

vpa's picture

Redesigned selection in OCCT 6.9.0

One of the most breaking changes in visualization component in OCCT 6.9.0 is complete reconsideration of selection mechanism. The new algorithm is designed to improve performance of dynamic selection of complex scenes by using effective 3D acceleration structures which are built only once and are autonomous from the camera.

abv's picture

OCCT 6.9.0 is released

Hello All,

The release of OCCT 6.9.0 is published. The corresponding tag in Git is "V6_9_0".

szy's picture

Getting rid of plugin mechanism in OCAF persistence

Hi All,
At the moment OCCT OCAF persistence uses plugin mechanism, when library providing persistent functionality for particular subset of OCAF attributes is loaded dynamically at runtime by OCAF. For that, the plugin library name and location must be properly defined with help of predefined set of environment variables and resource files.
This system is quite complex and not transparent, especially for beginners.

kgv's picture

Immediate mode in OCCT 3D Viewer

OCCT 3D viewer provides the way for rendering temporary presentations without redrawing previously drawn content. This feature is designed to optimize viewer performance when only small part of the scene is changed dynamically, usually providing some feedback for user actions.

Dynamic highlighting in Local Context

This article describes this functionality and its evolution in recent versions of OCCT.

abv's picture

OCCT 6.9.0 beta version is ready for testing!

Dear All,

I am pleased to inform you that OCCT 6.9.0 is ready for public beta testing.

We invite you to test this beta version in your applications. If you have reported some issues in bug tracker, please check those with Verified status -- we assume they are fixed, and will appreciate to see your comments in the notes of the issue. If you detect a regression, please report it as soon as possible.

emv's picture

Volume Maker algorithm

1. Introduction

Since the version 6.8.0 of Open CASCADE the new algorithm called “Volume Maker” is available. This algorithm builds the elementary volumes (solids) from a set of connected, intersecting, or nested shapes. The algorithm can be useful for splitting solids into parts, or constructing new solid(s) from set of intersecting or connected faces or shells.

pkv's picture

Boolean Operations With Multiple Arguments

1. Introduction

The Boolean Operator of Open CASCADE (≤6.8.0) allows treating of two and only two arguments (shapes) to process [1]: S1 (Object), S2 (Tool).

In modeling tasks the very frequent situation is when multiple shapes are to be processed from both sides, Object and Tool. For example, when we have to make in a body of Object multiple cutouts, we need to pass to the Boolean Operator one shape as the Object and a set of shapes as a Tool. The developer has to organize a cycle for repetitive cut from the Object shapes of the Tool one by one. Besides the fact that it is inconvenient for the developer, it applies additional extra expenses in the form of auxiliary temporary data structures that are filled in each instance of Boolean Operator.

pkv's picture

Speed up Boolean operator for many simple shapes

1. Introduction

This post in devoted to improvement of performance of building part of Boolean operations. Though in most cases the most time-consuming is intersection part (89% of overall time spent for BO by all Open CASCADE tests), there are special cases where building part takes most of the time. As an example the test case perf bop boxholes is taken, in which relation between Intersection and Building Parts is 2.85 / 26.16. This case is remarkable for showing the performance of the modeler when working with big number of simple shapes.

emv's picture

Fuzzy Boolean Operations

1. Introduction

Next version of OCCT will feature new mode of Boolean Operation Algorithm (BOA), called "Fuzzy".

Fuzzy Boolean operations are the type of Boolean operations in which additional user-specified tolerance is used. This mode allows Boolean operations to handle robustly cases of touching and near-coincident entities of the argument shapes.

Istvan Csanady's picture

Experiences with OCCT on iOS

Since the beta release of our application is coming, I thought it could be interesting to summarize my experiences with OpenCascade on iOS.
First of all, I would like to declare, that I was very satisfied with OCCT, despite all of its problems, it is still the best option for CAD development if you want an open source solution, and in many ways its knowledge competes with other (extremely expensive) CAD kernels.

abv's picture

OCCT 6.8.0 is released!

Hello All,

The release of OCCT 6.8.0 is published. The corresponding tag in Git is "V6_8_0". Note that WOK has also been changed, its version is also elevated to 6.8.0.

abv's picture

OCCT 6.8.0 beta version is ready for testing!

Dear All,

I am pleased to inform you that OCCT 6.8.0 is ready for beta testing.

We invite you to test this beta version in your applications. If you have reported some issues in bug tracker, please check those with Verified status -- we assume they are fixed, and will appreciate to see your comments in the notes of the issue. If you detect a regression, please report it as soon as possible.

aml's picture

Application of stohastic algorithms in extrema

Starting from version 6.8.0 OCCT will include one more algorithm for solving global optimization problems.

Its development has been triggered by insufficient performance and robustness of the existing algorithm of minimization of curve - surface distance in Extrema package (class Extrema_GenExtCS). Recent attempts to fix problems in that algorithm led to severe reduction of its performance, hence the need of a different approach raised.

san's picture

Ray tracing progress: support for lines, markers and text added

Few months ago, the OCCT ray tracing algorithm was rewritten using GLSL. Apart from better portability and certain performance gain, this step opened the door to some important features that can be added most naturally using close OpenGL and GLSL interoperation - such as visualization of lines and text in a ray-traced scene. Lines and text are examples of scene elements that cannot be visualized using purely the ray tracing algorithm.

abv's picture

First version of OCCT without WOK and CDL

Hello,

We are steadily progressing in the refactoring tasks, and now have the first version of OCCT without WOK and CDL ready for review: see Git branch CR0_noCDL. Note that this is the first experimental version, thus please do not try to use it in your project!

Here is some detail on the changes made in this branch.

Removal of generic classes

TCollection instances have been converted to NCollection templates, except a few instances found in nested generic classes -- these are to be converted manually later.

ifv's picture

New optimization algorithm and package Extrema improvement

Starting with version 6.8.0 OCCT will have a new algorithm for solving global optimization tasks using an arbitrary objective function of several variables on a hyperparallelepiped.

The algorithm is based on a slightly modified method of searching the global extremum of a function of several variables satisfying the Lipschitz condition [1, 2].

kgv's picture

Redesign of RTTI: performance comparison

Run-Time Type Information (RTTI) is C++ mechanism to access type information in code at runtime, including well-known dynamic_cast operator. Although this functionality is integral part of modern C++ standard, this was not true at OCCT foundation time. This is why OCCT has been designed with own RTTI implementation.

Since any modern C++ compiler has built-in RTTI support, many users complain - why OCCT still uses their own implementation? Well, migration to built-in C++ mechanisms would require significant changes due to design differences. However this article covers another aspect of such possible migration - performance comparison.

abv's picture

OCCT 6.7.1 is released!

Hello All,

The release of OCCT 6.7.1 is published. The corresponding tag in Git is "V6_7_1". Note that this time it is not part of the master branch but a separate one.

abv's picture

Current progress in OCCT refactoring project

Hello,

This year we are going to concentrate first on a task which perhaps is the longest-pending one in OCCT development - overall refactoring of the code and build system, getting rid of WOK and CDL.

This change will form a basis of the next OCCT version, 7.0.

abv's picture

Documentation updates in OCCT 6.7.1-6.8.0

Hello,

This is to share some details on new items in OCCT documentation to appear in 6.7.1 and 6.8.0, which may be interesting to some people:

  • Documentation can now include images in SVG format, see Mantis issue #24431. This enables use of high-quality vector graphics instead of raster images. Some images are already converted to SVG in 6.7.1.
abv's picture

OCCT 6.7.0: performance and stability

Hello All,

During preparation of OCCT 6.7.0 we have made some improvements related to performance and stability of the code which I would like to describe here.

Inspired by advice of our contributors, we have checked possibility to improve performance by tweaking relevant compiler options. The analysis was limited to Visual Studio compilers (used by most of our customers). Here is a summary chart comparing different versions of VC++ on OCCT code.



san's picture

Shader support in OCCT 6.7.0

As implementation of one of the strategic steps in OCCT visualization component development road-map, support for GLSL shader programs has been added in Open CASCADE Technology 6.7.0.

Shader programs have become a part of aspect classes in Graphic3d package, thus application developers can provide individual shader programs for all supported kinds of graphic primitives: points, lines, shaded polygons and text.

san's picture

Anti-aliasing problem

Problem context

This topic was extracted from OCCT Mantis issue 24324 to involve wider audience into the discussion.

Enabling anti-aliasing with help of V3d_View::SetAntialiasingOn() call for a scene containing shaded polygons often results in problems illustrated by the snapshot below:

abv's picture

OCCT 6.7.0: New documentation system

Hello,

With OCCT 6.7.0 we introduce the new documentation system. All OCCT documentation (Overview, User and Developer Guides) is now included in OCCT source tree (new sub-folder dox), in plain text format (MarkDown with Doxygen extensions). The HTML, CHM, and PDF files are generated using Doxygen.

This makes it easy to make changes in OCCT documentation, and enables OCCT developers and contributors to synchronize changes in the code with corrections in relevant documentation.

san's picture

Ray tracing as alternative rendering method for OCCT visualization component

OCCT 6.7.0 introduces several major improvements of the visualization component. One of the most breaking changes in OCCT visualization concerns simplified implementation of ray tracing algorithm for regular OCCT visualization primitives. This algorithm is implemented using OpenCL. Being a part of TKOpenGl library, it is fully integrated with standard OCCT visualization logic. From now on, ray tracing can be used as alternative rendering method instead of OpenGL rasterization.

abv's picture

OCCT 6.7.0 is ready for beta testing

Dear All,

I am pleased to inform you that OCCT 6.7.0 is ready for beta testing.

We invite you to test this beta version in your applications. If you have reported some issues in bug tracker, please check those with Verified status -- we assume they are fixed, and will appreciate to see your comments in the notes of the issue. If you detect a regression, please report it as soon as possible.

san's picture

Visualization of the model cross-section using OpenGL

Clipping visualized 3D models with user-defined clipping planes is one of basic OpenGL features that allows the user to look inside the models.

However, in some cases it is more interesting to investigate the cross-section shape rather than the model's internals. For this purpose, the cross-section should be visualized in shading using some distinctive visual attributes (specific color, hatching).

dbc's picture

Removal of Persistent classes

Originally, the OCCT persistence was based on an object oriented database. In order to control what is actually stored, the applications had to define a database schema by mean of a set of persistent classes – classes inheriting from Persistent such as the ones from the PGeom and PTopoDS packages –, then to bind their (transient) data model to this database schema through conversion drivers (e.g. MgtGeom, MgtTopoDS) – see Foundation Classes User’s Guide chapter 5, Data Storage.

abv's picture

Portal update: project pages and new forum sections

Hello all,

We are moving further in OCCT development, and since today the information on on-going efforts will be made available to the community via the new section Projects of this portal. Check the project pages to see how OCCT will evolve in the nearest future, and consider subscribing to the pages to get mail notifications on updates.

abv's picture

OCCT 6.6.0 is out!

Hello All,

The release of OCCT 6.6.0 is published. The corresponding tag in Git is "V6_6_0".

abv's picture

OCCT 6.5.5 and beta testing of 6.6.0

Dear Contributors,

Today we have announced a maintenance release 6.5.5 of OCCT libraries, intended for our customers and users who need an improved version of OCCT compatible with 6.5.4.

Now I am pleased to inform you that the next minor version 6.6.0 is ready for beta testing.

This version provides changes and new features aimed to form a basis for further development:

  • Official support of Mac OS X, including use of native Cocoa API (instead of X11).
abv's picture

OCCT 6.5.4 is released!

Hello All,

The release of OCCT 6.5.4 is published. The corresponding tag in Git is "V6_5_4".

abv's picture

OCCT 6.5.4 is ready for beta testing

Dear Contributors,

I am glad to announce that the next maintenance release 6.5.4 of OCCT libraries is planned for the beginning of November. The goal of this release is to provide a stable version incorporating bug fixes and improvements made since previous release 6.5.3 (more than 200 changes). Other improvements and new features being currently developed will be included in another release to be done before the end of the year (more details will come soon).

abv's picture

OCCT 6.5.3 is ready!

Hello All,

As announced yesterday, the release of OCCT 6.5.3 is finally out. The corresponding tag in Git is "V6_5_3".

abv's picture

OCCT 6.5.3 is ready for beta testing

Dear Contributors,

The release 6.5.3 of OCCT libraries has been planned for the end of March. Taking into account the needs of our projects (SALOME first of all) we are going to delay the release by about two weeks; this time will be needed to complete testing and verification of the important fixes made for the projects.

www.opencascade.com

Copyright 2011-2020
OPEN CASCADE SAS
Contact us