Pull request to X3D 4.0 to add Physically-Based Rendering and other improvements – merged!

Posted on


I’m proud to announce that my pull request to introduce a lot of new features to X3D 4.0 is now merged into the “master” branch of the X3D 4.0 specification. It introduces new rendering features that we already use in CGE:

  • PhysicalMaterial node

  • UnlitMaterial node

  • lots of (Phong) Material node upgrades

  • consistent RGB/grayscale texture treatment

  • Appearance.backMaterial (and deprecation of TwoSidedMaterial)

All these changes are now on their way to the soon-to-be-published new X3D 4.0 public draft. And then to X3D 4.0 official release, after (I hope!) countless people will review it and point out all the errors I did 🙂

Companion documents / tests:

  1. My summary of these changes.

  2. Test files for this feature are in the my x3d-tests repository, in pbr/ subdirectory. I plan to work on them more — add some more, add reference screenshots, add XML encoding versions etc.

  3. Almost all specified things are implemented in our Castle Game Engine and can be tested by view3dscene right now.

  4. The reasons behind various decisions in the PBR specification are documented here.

  5. We have documentation on how various glTF concepts map to X3D, and how Castle Game Engine does it.

Start the discussion at Castle Game Engine Forum