First of all I want to apologize if I may use any vocabulary etc. wrong because I am fairly new to the 3D-modelling world (but I will tried my best to read up as much as possible).

What I want to achieve in the end is to generate ground truth data to learn a regressor to estimate the BRDF of an object (given some 2D images of the object). I am limiting myself here to objects with lambertian matt and Cook-Torrence specularity materials (and combinations of the two).

What I have done so far :

I have made myself somewhat familiar with blender and how 3D modeling, materials,textures, lighting objects etc. work in the extend that I need for this task. I know about normal mapping and how to get the surface normals of the object-mesh and about render passes in blender. However here lies my problem: The surface normals of the vertices gives me information about how the 3D geometry of the object reflects the light, not how the surface "property" (by which I mean the material of the object i.e.) influences it. If I think about the reflectance of a point as a signal, I would think about this as the "base function" (maybe this is wrong) and the specularity/diffusivity would be then some additive values to this base function.

Let's say I create some object, add a camera and lighting (in my case axial lighting/lighting has same position and orientation as the camera object) and then add some material that has some specular and diffuse properties. Then I render it and select the different passes. The combined pass gives me the whole rendered image, then I get the color-coded surface normals with the normal pass and the Z-buffer with the Depth pass.

Now to the more interesting passes: When I select the diffuse pass, the image looks just like the combined image with substracted specularity. The specularity pass is a gray value image (probably white = high specularity, black = low specularity). However, I get no information here how this layers/passes actually influence the reflectance of the light at this point! What I need is information about the albedo and gloss values at each pixel. To I have to reverse-calculate them myself then given these passes?

TL;DR: Is there a possibility to get the information of the light reflectance of an actual implementation with light source/materials/textures applied (preferably in some real value fashion) in blender without writing the Raytracer yourself?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.