-
Notifications
You must be signed in to change notification settings - Fork 261
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Principled BSDF - anisotropic roughness rotation #1467
Comments
Hi @tomasiser, I wasn't aware of the anisotropic rotation parameter before, and I didn’t see it mentioned in the Disney notes either.
This may not work. A rotated GGX, when expressed in the original coordinate system, introduces non-zero covariance terms, which |
I think I remember that @tizian had achieved something like this with another BSDF. Do you know if the same would be achievable with |
Thank you for the answers! I have to admit that I have not realized that rotating the tangent is not equivalent to just adjusting @ziyi-zhang you're right that the anisotropy rotation is not part of the original Disney paper, so it must be something they did extra in Blender. If you have already implemented this for another BRDF, it would be nice to see! |
Hi all,
It's a fairly important parameter in practice to control anisotropy so it's not just something Blender added on top. Here is e.g. the Renderman documentation about it: https://rmanwiki-26.pixar.com/space/REN26/19661705/PxrTangentField |
@tizian Thank you so much for your insight and code! Do I assume correctly that the EDIT: Actually the Renderman documentation you provided explains it quite well and even provides examples of such input textures. Great! If I have the time I could try to port your code to the current Mitsuba 3 and make a PR. |
Hello,
the Principled BSDF supports anisotropic roughness with the
anisotropic
float parameter. However, inspecting thecalc_dist_params
function, it seems to me that the anisotropy is always in the same orientation, it's just the aspect ratio that changes.In Blender, for example, the specular part of the principled material has an additional parameter "Anisotropic Rotation" to control the orientation. Inspecting the Cycles source codes in node_principled_bsdf.osl show that they use this parameter to rotate the tangent.
What would be the easiest way to incorporate it into Mitsuba 3? I am guessing it might be sufficient to modify
calc_dist_params
such that it returnsax
anday
corresponding to the rotation.A super trivial fix would be to simply allow users to plug-in their own
alpha_u
andalpha_v
parameters in Disney BRDF similarly to the API of rough conductors etc.Blender docs:
![Image](https://private-user-images.githubusercontent.com/10374559/406153498-b6983110-c46f-442d-aaed-350284902c62.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjg1MTQsIm5iZiI6MTczOTE2ODIxNCwicGF0aCI6Ii8xMDM3NDU1OS80MDYxNTM0OTgtYjY5ODMxMTAtYzQ2Zi00NDJkLWFhZWQtMzUwMjg0OTAyYzYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA2MTY1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFhOTRjNWY0ZDgyZWE0ZGNiZmM4MWM0MGEyNmYxZDNjZGNiNjg2MTdiYzI5ZTBlNDI5ZGM5ZGJhOTMwYmE3YjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Kdb1QypdSQuyQw-QRgA23yvUeSvy8_CTfTsZ5T1KYec)
The text was updated successfully, but these errors were encountered: