OCCT PBR in WebGL 1.0


OCCT 7.5.0 has introduced PBR (physically-based rendering) metal-roughness material workflow in it’s real-time rendering engine. This feature brings more realistic rendering of metal materials and, which might be even more important, an industry-adopted material definition supported by many 3D applications (thanks to glTF 2.0 aka “JPEG for 3D” wide adoption).

PBR is considerably much more computationally intensive compared to old simplified approximations like Phong/Gouraud shading models, and involves a lot of optimization tricks to bring PBR to real-time. At the moment of development of PBR in OCCT, OpenGL 3.0 (released in ‘2008) with it’s mobile counterpart OpenGL ES 3.0 (specs released ‘2012) was considered a good baseline covering the majority of modern devices for PBR implementation. But what about WebGL?

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?

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.

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:

First version of OCCT without WOK and CDL


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.

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.

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.