Wings 3D Development Forum

Full Version: Geodesic Distance mesh coloring (seeking)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Geodesic Distance mesh coloring (seeking)

MeshLab has it ... but does not appear to cycle colors with given frequency. Can anyone help me find a free app that does this kind of coloring soup-to-nuts ?

I'm trying to add it to ManifoldLab. I'm going to add it as built in ... coded in Erlang.
cyseal ...

Geodesic distance gets particularly interesting to me (and others) when you try to use it to instantiate concentric distance loops on the surface. I watched this guys video ... and he didn't go there. I think it's the hard part ... because of aliasing and such. Do you understand what I'm getting at ?
Could you explain a bit more? I need to explain to myself in mathematical terms if I'm going to understand problem completely.
Maybe this?
https://www.ceremade.dauphine.fr/~peyre/...d/tp3.html

Also, could you explain what does it mean 'cycling colors with given frequency' ?
Cycling colors would just mean repeating the rainbow more times over a given surface distance. More banding.

In my mind ... this probably means increasing the resolution of the underlaying mesh so that we have more discrete places to put rainbow bands. If were are both nativeEenglish speakers ... we need to stick to words and metaphors like RAINBOW and repeat. But is you really like code ... I can just send you the code snippet ... since it is very short.

Code:
command({vertex,{manifoldlab,topo_bullseye}}, #st{sel=[{WeID,_}]}=St) ->
    Qs =
      [ {label, "Topological Units to run ... "},
        {text, 36,   [{width,10},{key,units},{range,{0, 720}}]},
        separator,
        {label, "Every 18 units is a rainbow cycle"}
      ],

    wings_dialog:dialog("Rainbow Please ... ", Qs,
        fun(Res) ->
            {units,Units}  = lists:keyfind(units, 1, Res ),
            #we{} = We = gb_trees:get(WeID, St#st.shapes),
            MyAcc = fun(Idx,#st{sel=[{WeID,AccSet}]}=AccSt) ->
                Idx2 = Idx rem 18,
                #st{sel=[{WeID,SetMore}]} = wings_sel_conv:more(AccSt),
                SetNow = gb_sets:subtract(SetMore,AccSet),
                H = Idx2 * 20.0,
                S = 0.999,      %% we are just throwing down rainbow colors ...
                V = 0.999,
                RGB = wings_color:hsv_to_rgb({H,S,V}),
                AccSt2 = wings_vertex_cmd:set_color(RGB,AccSt#st{sel=[{WeID,SetNow}]}),
                AccSt2#st{sel=[{WeID,SetMore}]}
            end,
            case Units of
                    0 -> Polycount = length(array:sparse_to_orddict(We#we.vp)),
                         Count = round(math:sqrt(Polycount*1.0));
                    _ -> Count = Units
            end,
            lists:foldl(MyAcc, St, lists:seq(0,Count))
        end);
Cleaned up the process a little.

It seems that this thing can be used for creating new topology on objects too. Imagine that instead of the displacement circles around the body, you create simple edge loops. If such a thing can be achieved then remains finding a way of creating the vertical lines-edges.

It is something worth thinking...
Too much work to do retopo this way. This is just BOOLEAN of two objects making the cleaner lines. That's all. If you want to repurpose those new lines somehow ... have at it. Seems hard to do.
Pages: 1 2