[x3d-public] Physically-Based Rendering and other material/lighting upgrades in X3D

GPU Group gpugroup at gmail.com
Fri Jul 3 14:07:28 PDT 2020


Really nice - and I finally understand occlusion textures. Thanks Michalis!!
-Doug

On Fri, Jul 3, 2020 at 1:55 PM Michalis Kamburelis
<michalis.kambi at gmail.com> wrote:
>
> Hi,
>
> I did a presentation about my pull request introducing PBR and other material/lighting upgrades to X3D 4.0 today. There will be a video of it soon :) Here's a bunch of additional information:
>
> 1. The short summary of the changes is on https://github.com/michaliskambi/x3d-tests/wiki/X3D-version-4:-New-features-of-materials,-lights-and-textures . If you're in a hurry, browse just this one document to know what's going on :)
>
> 2. If you are interested in details, the pull request is on https://github.com/Web3DConsortium/X3D/pull/8 (needs access to Web3D GitHub repository).
>
>     And if you want to know the rationale behind some decisions, a lot of it is collected on https://github.com/michaliskambi/x3d-tests/wiki/How-to-add-PBR-to-X3D%3F .
>
>   The examples are in https://github.com/michaliskambi/x3d-tests/ . Castle Game Engine and view3dscene support almost everything described there, so you can just get https://castle-engine.io/view3dscene.php and try it out :)
>
> 3. For those of you already familiar with my proposal (I know at least that Doug Sanden from FreeWRL already implemented a significant portion of it), here is a list of important changes that happened in the last 3 months. Hopefully this is useful, if you want to update your implementations. Of course the PR contains all the details:
>
>     3.1. Added occlusionTexture, occlusionTextureChannel, occlusionStrength to PhysicalMaterial and Material .
>
>     3.2. shininessTexture now takes the information from alpha channel. This way specularTexture (that looks at RGB) and shininessTexture can be combined in one image.
>
>     3.3. Previous xxxTextureChannel fields have been replaced by xxxTextureMapping . They work differently (string ids, matching "mapping" field in texture coordinates / transforms). And they are called better ("channel" was confusing, as the word has a different meaning in context of images). There is a big section in PR documenting how it works.
>
>     3.4. Abstract types X3DSingleTextureNode, X3DSingleTextureTransform, X3DSingleTextureCoordinate added. They allow to use the type-checking system in a natural way, and are required by the above "mapping" mechanism.
>
>     3.5. Lighting equations completely reworked, to take into account UnlitMaterial, PhysicalMaterial, consistent RGB/grayscale treatment, updates for ColorRGBA (it was missing from X3D 3 lighting equations). It is also hopefully easier to read and even implement now -- I expanded various abbreviations in previous equations.
>
>     3.6. Light source intensity is now unbounded (in case of physical model, it has a physical interpretation, which is unbounded; in case of Phong lighting, there was no reason for a 1.0 limit anyway -- it didn't protect the result from going over 1.0).
>
>     3.7. The lighting equations now also contain clear advice on what to do when you have to do Gouraud shading (right now, each browser does whatever seems natural, but it is not always "obvious what to do in Gouraud shading" in case of X3D v4 with new textures).
>
>     3.8. Levels have been updated in the "Shape" component to account for new nodes.
>
>     3.9. normalScale was added alongside the normalTexture field.
>
> Best regards,
> Michalis
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org



More information about the x3d-public mailing list