Olympus PBR Scan Project

blender
photoscan
scanning

(John Greenstone) #21

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.


(John Greenstone) #22

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



(John Greenstone) #23

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


(John Greenstone) #24

Last method.
Let's call it UFBFFR that's mean UndestructibleFlourBasedFrontFlashReconstruction.
You probably know about painting methods forshiny objects, this one looks the best.
https://www.artstation.com/artwork/5bB6z

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


they really do that on this picture :grinning:


(John Greenstone) #25

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:)


(John Greenstone) #26

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.


(John Greenstone) #27

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!


(John Greenstone) #28

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!


(John Greenstone) #29

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


Just a simple white shell can be a whitebox

my flash:


(John Greenstone) #30

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


(John Greenstone) #31

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



(John Greenstone) #32

Final raw 5M polys mesh:


(John Greenstone) #33

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:


(John Greenstone) #34

Texture is reprojected to final mesh:


(John Greenstone) #35

Final processing info:

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


(John Greenstone) #36

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


(John Greenstone) #37

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.


(John Greenstone) #38

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.


(John Greenstone) #39

I found lens scheme for my camera:

Reconstructed inside:


(John Greenstone) #40

Final model: