Accessing Parts (The selection set ones)

kyuzo

Member
Hi,

I'm wondering if any programmers would be able to create a (hopefully simple) node. Despite my best intentions over the years, I've never had the time or ability to learn coding for writing LW plugins, so I'm hoping that someone else will find this fairly straightforward. Ordinarily, I'd have put in a feature request, but well... y'know.

90% of my work is subpatch modelling, and I like to keep track of edge loops visually. I have been using different surfaces for this, but this is a pain, as the object really needs to be a single surface for rendering, often at different stages of progress. Merging surfaces and then trying to re-find edge loops or constantly changing surface parameters is possible but uses up valuable time.

What I'd really like is to be able to access the list of 'Parts' (which are created under 'detail: Parts') in the node editor in the same way as I can select weight maps, and create visually different surfaces for different parts in the node editor, plugging the results into the surface's 'OpenGL' node.
This way, my parts will be visually distinct in OpenGL, but separate from how the object renders.

So, is it possible for anyone to create a node which allows me to choose a seection part from a drop down list?

Cheers,

Derek
 

Sensei

TrueArt Support
Apart of what I wrote to you in PM..
It is possible to make plugin which will show you boundaries between one thing and the other thing (whatever it is), this way:


What you see above is EasySpline http://easyspline.trueart.eu
with real-time spline previewing turned on.

It stays this way, even if you drop the tool,
and you can use any other tool, built-in or 3rd party, and preview is updated.


But it would be possible to use this technique for other things that you need.

I am using in it other my plugins e.g. Show Weights and Show Edge Weights, and Show Unmapped Weights:
This tool is useful for character animators. It will tell you where you have problematic (for bones) vertexes..
 

Attachments

  • EasySpline Preview Splines.png
    EasySpline Preview Splines.png
    504 KB · Views: 121
  • EasySpline Preview Splines 2.jpg
    EasySpline Preview Splines 2.jpg
    395.8 KB · Views: 112

Sensei

TrueArt Support
What I'd really like is to be able to access the list of 'Parts' (which are created under 'detail: Parts') in the node editor in the same way as I can select weight maps, and create visually different surfaces for different parts in the node editor, plugging the results into the surface's 'OpenGL' node.
This way, my parts will be visually distinct in OpenGL, but separate from how the object renders.

So, is it possible for anyone to create a node which allows me to choose a seection part from a drop down list?

I made test node.
MaterialGL() function is called just once per surface which is using test node connected to OpenGL Material in Node Editor.
To make it work the way as you described, Modeler would have to call this function for every single polygon independently, and node would have to fill it based on polygon (which is not given to MaterialGL() function).
For obvious reasons, it is not the case. Object can have (multi-) millions polygons.

But there are different ways to make borderlines visible..


Still, node which will list the all Parts, and output e.g. part index, is needed.
I will make such, if there is demand, and include it in TrueArt's Node Library 2020 http://nodelibrary.trueart.eu
 

kyuzo

Member
Thanks for looking into this Sensei,

My plan was that if I could access the various parts I wanted (probably half a dozen at most) using a separate instance of a node which allowed me to pick each part, I could plug each into a gradient or use a mixer node or something to end up with a single material which I would plug into the OpenGL node of the Surface.

In the same way we could use a weight map to mix different surfacing properties.

Derek
 

Sensei

TrueArt Support
Thanks for looking into this Sensei,

My plan was that if I could access the various parts I wanted (probably half a dozen at most) using a separate instance of a node which allowed me to pick each part, I could plug each into a gradient or use a mixer node or something to end up with a single material which I would plug into the OpenGL node of the Surface.

In the same way we could use a weight map to mix different surfacing properties.

It is not possible to do it in regular Surface's Node Editor.
But 3rd party plug-in which is Polygon Handler (EasySpline, Show Weights, Show Edge Weights, Bezier, Catmull-Rom spline, Catmull-Clark, traditional sub-patch etc. etc.)
could have its own custom Node Editor..

Custom Polygon Handler is able to draw into Modeler's viewports.
It can overlay OpenGL.

e.g. I can make 3rd party plugin which will take Weight map node output (or Part Index), and then overlay red semi-transparent polygons.
User will have idea where is weight map (or Part), and still be able to see what is below (e.g. textures, procedurals),
and work at the same time, in LW or LWCAD or TrueArt's Modeling Pack tools (which were not designed to work with it!)
 

kyuzo

Member
I already use a different OpenGL texture compared to rendering texture in some instances using this....

Wouldn't that work?
 

Attachments

  • OpenGL-node.JPG
    OpenGL-node.JPG
    55.9 KB · Views: 74

Sensei

TrueArt Support
I already use a different OpenGL texture compared to rendering texture in some instances using this....

Wouldn't that work?

Check by yourself...

My tests:
OpenGL material in Modeler 2.jpg
(material is red to show where it is..)

OpenGL material in Modeler.jpg
(mixer does not work.. OpenGL should be red like above)

OpenGL material in Modeler 3.jpg
(green color plugged to Standard material does not work..)

I explained why in #3 post above. From programming perspective.


You wanted ONE surface.. with many surfaces, it will work.. because each surface you can configure independently, plugging something else to OpenGL Material input..
 

kyuzo

Member
Ahh.. I see what you were saying in post #3. It just took a while for me to grasp what you were saying.
Ah well, the solution I was hoping for clearly isn't as simple as 'make a list of parts available'.

Thanks for taking the time to explore this, and patiently explaining why my initial idea wasn't going to work.

;)

Cheers,

Derek
 
Top Bottom