stig-atle / io_scene_pbrt

Exporter for blender that exports the scene into pbrt's ascii file format.
59 stars 16 forks source link

convert blender's shaders over to pbrt shaders on export. #20

Open stig-atle opened 4 years ago

stig-atle commented 4 years ago

Now we just export default materail for all unsupported materials assigned. Convert the blender shaders over to a PBRT shader on export, and use as many settings as possible to make it look similar.

https://twitter.com/NateMorrical/status/1211157831925129216

natevm commented 4 years ago

Hey Stig, thanks for your help on this.

I think the primary BRDF we'd benefit most from being converted on export is Blender's "principled BSDF", which is seems to be nearly identical to the Disney BSDF implemented by PBRT. Hopefully that makes conversion easier. Other Blender BSDF conversions are welcome too though!

We'd ultimately like to test the new Disney BSDF in a couple renderers that are using our PBRT scene importer, but to the best of my knowledge, only the Moana Island scene uses this BSDF, which can be difficult to test on due to the scene size and lack of diverse materials. I have several smaller common test scenes with a more diverse set of materials, which I've modified to use solely use Blender's principled bsdf with the hope that I can export the scenes as PBRT files at some point.

I'm thinking I might be able to use your exporter for this once this feature request is implemented.

stig-atle commented 4 years ago

I have pushed some basic support for this now (no texture yet, I'll work on that next). Keep in mind that the bsdf material color will not show up in viewport yet when pbrt is enabled. Here is a simple example, one of each, meaning one is pbrt disney, one is bsdf (but converted on export). I will add texture support, and any missing parameters conversion. Not all parameters are 1 to 1, so there is some inconsistencies here, but I took the most obvious ones tonight. I'll drop a comment again when further support is fixed.

image