Olympus PBR Scan Project

Scratched method works good for some surfaces, but what if there no scratches at all?
Next idea is to use a laser. There are a lot of cheap
lasers with star projection prism. It look quite
promising and I ordered one, wait some months,
then tried and it actually works.

Laser creates a pattern, it's possible to change focus to make dots sharper and smaller in very close distance.
When you move camera, reflection moves, but green dots stay still. Also I'm making 3-5 shots for one laser position, then move laser to another place to highlight another area. It's ok for reconstruction.
Well, it's not good for every case. For flat or not much curved
mirror-metal surfaces it works ok. But for regular mirror and glass it
makes pairs of dots, not usable for reconstruction. For advanced object it
became a mess because you have to move laser too much
around every curved surface.
Ice cream spoon, about 99% Glossiness

That was a long vacations. Lets try to resume this project!

Last method.
Let’s call it UFBFFR that’s mean UndestructibleFlourBasedFrontFlashReconstruction.
You probably know about painting methods forshiny objects, this one looks the best.

There is only one problem: I don’t like to wash my electronics in dishwasher:)

they really do that on this picture :grinning:

So I like try to use a standard flour for baking to use it as a coating.
I use a middle brush to make a flying dust. It means we need a very thin fraction of flour, that’s part keep flying after I’m push the brush. And biggest parts of flour should fall aside of object, we need only thin to keep shape of object as close as possible. After coating the object should looks very similar, just more dusty:)

That’s where front flash start work! It highlight all microdust dots on shiny surface, some of them you probaly cannot see, but Photoscan will.

First I made simple test with 100% mirror spoon for ice cream and IPhone5(IPhone is camera:)

All shots I made holding spoon in hands with front flash of IPhone.
Actually for smooth PBR reflection you need to smooth final mesh with Strength (1-3)

Result you can see here and I like it!

Second test is how easy to remove this coating.
For that I used my radio transmitter for flashlight. I putted a lot of flour on it, then opened battery block and throw flour there inside. Keep it for 20 minutes. And then it was cleaned easily with vacuum cleaner. By the way, for Olympus camera it was enough to use only same brush to make it clean as before. Easy!

Now everything is ready to start scan process.
How my studio looks:

Just a simple white shell can be a whitebox

my flash:

I made first group of 32 photos, this will be a texturing chunk:

Second group of 150 photos for fine geometry reconstruction. There is a very thin layer of flour on the surface:

Final raw 5M polys mesh:

1 Like

I’m really happy about green, that was almost impossible part to scan without tricks. It is just black mirror.

but red is not ok.
Now I’m using Meshmixer to polish some sides of camera to get smooth PBR reflection for glossy metal on desimated mesh.
After cleanup and removing glass part:

Texture is reprojected to final mesh:

Final processing info:

Original image size 24Mpix. 200 photos. GTX 670M, 8Gb RAM.

Next step is to make PBR maps. Now I have RGB only.
My initial idea was to use only Blender to get it in few steps:
use custom shader, as close as possible to Sketchfab Metalness Shader
use Cycles at utralow details for PBR preview
use CompositingNodes and ShaderNodes to extract albedo, metal and roughness from RGB

Blender Compositor has some cool nodes like Matte and Blur, and CyclesShaderNodes doesn’t have.
I wrote a simple plugin to connect them and use Compositing output in CyclesShader in realtime, I call it Connector, will be available soon with manual.
So you can see any changes in Matte almost in realtime in Cycles render. A bit ticky but it works.
This way I can chose material in RGB by color, adjust and mix it in Shader nodes and see result in render view.

1 Like

But after uploading to Sketchfab I found that shaders are a bit diffent, but this difference is critical for roughness.
Infortunatlly, I desided to use simpler method.
I made 4 roughness presets in Sketchfab first, and then just painted some masks manually in Blender using this values as reference.
I’m quite tired by this model now. Can’t wait for Eevee renderer for Blender.
Mixing this masks with grayscale RGB and it’s done.

1 Like

I found lens scheme for my camera:

Reconstructed inside:

1 Like

Final model: