Blender 6.1 Exporter

Though Blender 2.80 is not yet production, the exporter is being updated to support more PBR features, so going to version 6.1.

Going to update for BJS 4.0, so to use these new features, 4.0 is required. Adding Clear coat, sheen, & anisotropy. See this topic for more. Not going to try to support anisotropy as a texture, at this time, or anisotropy direction. These features can only be supported using Principled Shader for now. Here is the new mapping:

The other feature is generic environment textures from @PatrickRyan (thanks), are now going to be included in the zip file, and can be selected instead of using the world node background node.

envTexUI

Probably out before end of week. Needed to actually do a map picture for myself, so posting this now. If something seems wrong, say so.

10 Likes

We need a “thank you” button!

1 Like

Great work thanks!

Also, forgot a feature for 6.1 got release prematurely, where you could set the environment intensity on a material by material basis.

material_custom

1 Like

Im doing a visual for the Babylon Shader.

I tried here to map all textures exported from Blender.
But im not sure about Specular and Reflection.

If we use a metallic workflow there is no Speculartexture right?
The Albedo is used to tint the metallic part.

And the Reflection is combined with the environment texure?

In case you didn’t see the news: since yesterday, Principled get emissive & alpha properties! This will help a lot to simplify material setup

In case this help, github topic for gltf i-o.

1 Like

Thanks, I had not yet gone beyond the picture. Still working on the environment texture stuff.

Saved blend with picture. Will update. Not looking like this week to be finished.

I was trying to get both the PBR & STD materials on the same picture. When a spot is used differently based on the material, the PBR version is in parentices, like Diffuse (Albedo) Tex.

Have to update Blender to get the stuff @Vinc3r relayed, but finishing the environment texture stuff first. When I get it, am going to clean up that Blend, and add a separate material for each. Probably going to save the Blend in the repo, because unlike screen shots for custom properties, you need a Blend for these.

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.

envir_override

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(source.name, scene), source, scene, rootUrl);
        if (source.clearCoat) {
            material.clearCoat.parse(source.clearCoat);
        }
        if (source.anisotropy) {
            material.anisotropy.parse(source.anisotropy);
        }
        if (source.brdf) {
            material.brdf.parse(source.brdf);
        }
        if (source.sheen) {
            material.sheen.parse(source.brdf);
        }
        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.