Blender 6.1 Exporter

Thanks for Info.
Good work!

Ok, generic env file exports & intensity are done (at least in TOB exporter). Here is flowerRoad_256.env, at full intensity, and 0 degrees of y rotation.

Same scene, at 0.2 intensity.

@PatrickRyan, I was wondering if it was possible to make some like:

  • SunnyNoon_256.env
  • SunnyBeforeAfterNoon_256.env
  • SunRiseSet_256.env

Do not think that anything but the sun is really doing much. Can these things be made without a 360 camera?

Others might be:

  • Cloudy_256.env
  • IndoorsCeilingIncandescent _256.env

@JCPalmer we can certainly make those. I would be making them from nature rather than as renders because there is contribution based on where you shoot other than the sun. If you shoot in a forest, you will get a lot of green contribution in the light, for example. And going out and creating a spherical image is faster than rendering one. Plus, the quality you get from a photo is closer to what the lighting feels like in person.

To illustrate this, I made a few ENVs from the Lys generated sky. I can set the Zenith angle of the sun and luminance of the scene but these environments produce overly blue and muddy light. You can find them at this GitHub link.

I will get out soon and make some images. I use a 14mm lens on a Nikon D810 DSLR with a spherical VR head to make the images and then stitch in PTGui. You can add suggestions or requests to the issue on GitHub.

1 Like

@PatrickRyan, I see what you mean. Sunrise / sunset came out fairly acceptable though. Maybe because there is just less light, so things are darker. If you can improve upon them, go for it.

I am thinking of dropping the environmentIntensity setting on a material basis, and putting the custom property in world, which would get applied for all materials. When using one of these generic .env’s, & you have a lot of materials, this would be a lot easier. Especially, if you want to try a number of intensity values.

Ok, implemented environmentIntensity setting at the World level, for all materials. Here is the 0.2 intensity from above on all the materials. The buttons, eyes, teeth, and ground above were still all 1.0 before.

I can also see where you might have wanted some materials to be different (I like the way the teeth popped), so I changed the setting in materials to act as an override. UI now looks like this in materials.


Think this part is now done. Will migrate this over to the JSON exporter, then start on the clearcoat, etc.

Well, I fixed the problem introduced by the Blender 2.80 API change. I also fixed not setting metallic & roughness to 1 when exporting those as a texture.

I have been re-looking at the PBR docs since it was updated for 4.0 to get anything I might have been missing, mainly sheen & clear coat, but I am also seeing that there is now a sub-surface in PBR. I was thinking that we can also get subsuface.tintcolor, pg. Am a little concerned, since the default is Red. Going to add to scene above & see what happens.

Here is a PBR specific mapping:

Small problem with subsurface.tintcolor is AFAK it is not part of a .babylon file? Is there a reason why not?

nope. to be honest we have not yet added any clear coat / new pbr features to .babylon loader
Pinging @sebavan for an ETA

No, that stuff is actually added. That is the link. Looking closely though, wonder what brdf is?

    public static Parse(source: any, scene: Scene, rootUrl: string): PBRMaterial {
        const material = SerializationHelper.Parse(() => new PBRMaterial(, scene), source, scene, rootUrl);
        if (source.clearCoat) {
        if (source.anisotropy) {
        if (source.brdf) {
        if (source.sheen) {
        return material;

Oh yeah it is :smiley: cool

Seb will tell you for brdf

SubSurface should be in as well :slight_smile: it is a bug… I will fix it ASAP. You ll have it in the next nightly.

About brdf it is a bunch of tweaks to how the pbr is working in case back compatibility would be needed or for debugging purpose.

@sebavan, also just noticed brdf is loaded for sheen.

Thanks a lot both Fixed, I ll generate a nightly ASAP.

Should be all good.

1 Like

Well added subsurface. Since in Principled Node it is a red color by default, it probably should not always be added:

Will just need to put in a check for that exact color, and not include in that case. You would still be able to do a red, not just not that exact one.


Added anistropy. I do not know what it is, but here is when it is set to the max(1).

Does not really payoff in a still picture. Looks like a moving light streak when rotating the camera. The default of Blender is 0. When turned on & set to 0, it has the same effect as not being turned on.

@sebavan, is it better to leave anistropy out / not enabled, when 0?

Clear coat is now done. If either Clearcoat or Clearcoat Roughness has a texture node assigned, or Clearcoat > 0, then will be activated.

Clearcoat Normal ignored when prior test fails.


@sebavan, Follow up on probably a typo for clearcoat. There is a property _indiceOfRefraction. To be consistent, this should probably be _indexOfRefraction. This is so new, there is probably a window to make the breaking change.

FYI, IOR in principled node is 1.45 by default. IOR is 1.5 by default in BJS. Not only am I setting this in the materials version of the property, but also in subsurface & clearcoat, when used.

Agree with the breaking change on this one as it is also most of the time unused. Also, you should not set the one on the material, only in clearcoat and subsurface, but they might actually be different as the coating often as a different IOR from subsurface.

The material one is only here for back compat.

I ll change that ASAP and recreate a nightly later tonight.

Actually checking first with @Deltakosh for the naming ???