1
$\begingroup$

This is to solve a problem related to an answer provided to this post to render an "inverse" panorama

Rich Sedman provided an example to render an inverse panorama by having a surrounding sphere reflecting the object and by baking texture of this object. It works well if all faces of the object are perpendicular to the normals array of the surrounding sphere. I have a particular object, that doesn't face the surface of the reflective object :

enter image description here

As you can see, the face "1" is visible but not the face "2" nor "4" because the surrounding sphere normals never hit it directly. I need to be able to project all numbers of this object to a single texture image.

I tried to apply a modifier shrinkwrap to the surrounding sphere, it look like this :

enter image description here

It's a bit better as we can see "2" but not everything stay readable, the shrinkwrap isn't able to stick to the surface everywhere, I couldn't manage to have a better result.

I also tried to convert the surrounding sphere to a cloth , apply a negative pressure and simulate, it look like this :

enter image description here

This time the numbers "1" , "2" , ... are better projected, but a lot of artifact are present in the final image, I am sure we can find a better solution.

Any idea ?

thanks a lot !

Here is my example file with this particular object :

$\endgroup$
9
  • $\begingroup$ What is your goal? I mean - what is the purpose of use this texture? (Texture baked from Shrinkwrapped texture is useless for any other object than deformed sphere by shrink-wrap modifier). $\endgroup$
    – vklidu
    Commented Oct 18, 2022 at 7:03
  • $\begingroup$ My goal is to use this single texture to do machine learning object detection to detect damage on the object, all surface from the object needs to be visible on a single image. The object comes from photogrammetry which mean it's UV are all exploded, that's why i need to project it's texture to a sphere. $\endgroup$
    – iliès
    Commented Oct 18, 2022 at 7:20
  • $\begingroup$ What scale of damages do you expect? I'm asking because if you plan to use shrink-wrap (that would not work either) to bake texture for undamaged object and then shrink-wrap on damaged object with bigger deformations than scratches, it will have influence on shrink-wrapped topology and textures wouldn't be comparable. ... Im not sure if I got right picture of your goal, but wouldn't be better way to mesh state before and after based on surface distances? $\endgroup$
    – vklidu
    Commented Oct 18, 2022 at 7:30
  • $\begingroup$ I will detect, count and classify the damage on the object, for example how many black spot has a banana. If you do it from a single photo, you don't see the black spot that are behind. If you do it with multiple picture the task get more difficult because you need to match and track the same spot across multiple picture to count it only once. But if you see everything on a single image, with an inverted panorama, it's very easy. $\endgroup$
    – iliès
    Commented Oct 18, 2022 at 7:33
  • 1
    $\begingroup$ @iliès 'Manifold' here, a single, watertight surface, enclosing a volume. . in this case, I guess we should add 'equivalent to a sphere' .. the cloth sim method wouldn't work on a doughnut. $\endgroup$
    – Robin Betts
    Commented Oct 20, 2022 at 17:08

1 Answer 1

2
$\begingroup$

One of my temp Answers :)


Shrinkwrap

Speaking to Shrinkwrap > Wrap Method Project, Snap Mode > On Surface, plus some offset ... seems to work here (Subdivision modifier Level 4 used first) ... but topology is (and will be) too much stretched (and at another places compressed).

enter image description here


Bake > Selected to Active

I don't believe there is a way to let sphere cover some more complex or concave shapes, I don't think there is an one click way solution.

Technique you described in comments sounds like you scan a model (banana) or generate photogrammetry model and you need to compare textures.

Since 3Dscan or Photogrametry comes with messy UV, or UVmap that is not identical for each scan ...

enter image description here

To unify textures you would need some proxy object with a topology following the original shape. Like a tube for banana ... here done with a Curve object converted to a mesh ...

enter image description here

... and Bake from Selected to Active.

enter image description here

Any other scan you can bake into this tube's UVmap.

$\endgroup$
6
  • $\begingroup$ Thx for your attempt vklidu , About just comparing texture between two scan of the object, the thing is that photogrammetry 3d reconstruction is "exploding" the UV so you end up with something like that : i.sstatic.net/9GgRL.jpg (This is the 3d scan of a small building) , as you can see there is no way to recognize what is a window, or a door, or a fence here. And if you re-do the photogrammetry twice you also end up with a complete different result, so there is no way to compare them. $\endgroup$
    – iliès
    Commented Oct 20, 2022 at 6:12
  • $\begingroup$ Here is how the projection on a sphere look like : i.sstatic.net/zEaLt.jpg You can recognise elements here, even though it's a bit deformed. But you only see element with faces perpendicular to the surrounding sphere. $\endgroup$
    – iliès
    Commented Oct 20, 2022 at 6:15
  • 1
    $\begingroup$ Sure photogrammetry's UV is "exploded" :) for that I suggested to Bake > Selected to Active ... you would have to generate some nicer UVmap ... see edit. $\endgroup$
    – vklidu
    Commented Oct 20, 2022 at 16:31
  • $\begingroup$ Thx for the update @vklidu , appreciate your support. I am trying to automate all of this, the goal is to have an autonomous system with 3d scan as an imput and detecting / counting the number of black spot on a banana (for example). Each scan will be unique and on an new object never seen before. $\endgroup$
    – iliès
    Commented Oct 23, 2022 at 7:06
  • $\begingroup$ In your last post you said "Unwrap into something nicer" , which is the goal of all of this, I don't want to manually unwrap it by selecting the good vertexes and mark them as Seam, I want to automatically create a sphere just a bit bigger than the object, apply something like the shrinkwrap modifier to get the good normal angle and then bake the texture to this surrounding sphere to have automatically an understandable unwrapped texture. $\endgroup$
    – iliès
    Commented Oct 23, 2022 at 7:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .