OCCT Viewer minimal setup

3D Viewer is an integral part of Open CASCADE Technology framework. There are plenty of graphic engines around, but built-in OCCT 3D Viewer remains a natural choice for OCCT-based applications providing straight-forward to use presentations for B-Rep geometry and interactive functionality essential for CAD-alike applications. But naturally OCCT Viewer usage is not limited to CAD.

This article is devoted to the very beginning – 3D viewer setup, or “Hello World” from OCCT 3D Viewer. It is, however, expected that the developer is already familiar with basic OCCT – handles (smart-pointers), shapes, development environment, etc.

Continue reading

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 Open CASCADE Technology, OpenGL 3.0 (specs released in ‘2008) with it’s mobile counterpart OpenGL ES 3.0 (released ‘2012) was considered a good baseline covering the majority of modern devices  for PBR implementation. But what about WebGL?

Continue reading

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?

Continue reading

OpenGL on Apple M1

Apple has deprecated OpenGL since macOS SDK for Mojave 10.14, making me curious about OpenGL support since the very announcement of Mac mini based on Apple M1 (ARM) SoC. It was claimed in many places that macOS Big Sur remains compatible with OpenGL applications, but so far no details could be found anywhere which OpenGL version will be supported on M1 GPU (OpenGL compatibility table has not been updated since ‘2017).

Continue reading

Progress Indication changes in OCCT 7.5.0

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.
Continue reading

minOS mystery on macOS

Recent sView 20.08 release includes macOS builds – again after a three years break of macOS support. Release promises support of OS X 10.10 and later, but several users have reported a very strange thing – macOS 10.13 and 10.14 declined to start an application indicating that sView requires macOS 10.15 or later for unknown reason…


This error has deeply puzzled me, as I have personally installed sView on OS X 10.10 without any errors – an older macOS version than reported by users. A nonsense I would say!

Continue reading

PBR in OCCT 3D Viewer

Next OCCT 7.5.0 release will add a new PBR (physically-based rendering) mode to real-time rendering engine. 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.


Continue reading

OCCT receives OpenVR support

Release of “Half Life: Alyx” for Virtual Reality shown to me, that VR is not only about funny mechanics. Exploration of deeply detailed world can be joyful even without interactions, although they make world more realistic.

This reminded me about unfinished two-years-old patch for Open CASCADE Technology adding OpenVR support. Looks like a good time to complete the patch!

Continue reading