I try to implement some new features for Disney Material.
In the first line, it is Specular Transmission. @Dade pointed me on https://schuttejoe.github.io/post/disneybsdf/ page, where almost all of the code has been done.
I have just a few questions about the implementation in Lux:
1. For the specular transmission calculation, we need a relative refraction index. Should it be defined as texture or derived from exterior/interior volumes?
I assume second, since we have this one for glass material, but looks like it's deprecated.
https://github.com/LuxCoreRender/LuxCor ... s.cpp#L203
Code: Select all
if (props.IsDefined(propName + ".ioroutside")) {
SLG_LOG("WARNING: deprecated property " + propName + ".ioroutside");
exteriorIor = GetTexture(props.Get(Property(propName + ".ioroutside")(1.f)));
} else if (props.IsDefined(propName + ".exteriorior"))
exteriorIor = GetTexture(props.Get(Property(propName + ".exteriorior")(1.f)));
2. Should we derive the color information for transmission from baseColor and ignore volumetric properties?
3. What should I be aware of in turning Disney Material from Opaque into Transmissive? Is just adding transmission even enough?
And maybe one more question about subsurface scattering in DisneyMaterial. Is it currently a fake without using any information of internal volume, depth, and curvature? Should we replace it in the future?
I'll keep posting my progress in this thread. Hope to have things done soon