Geometry Nodes

You can fill the mesh with the shade_smooth attribute : rB0700441578c9
Also yeah, reroutes deserve the attention…

I dont find info so I ask here, sorry if its repeated.
but why instance have only object socket and no geometry? and when it be added?

its basing thing of nodes and its not added. yet we must do so “stupid” moves like create objects to do some more complicated things.

Yeah, it’s planned. I can’t say exactly when, but I’d be willing to bet on it working for 3.0.

5 Likes

The uvs are converted to geometry nodes attribute once the instances are realized, afaik there’s no way to convert geometry node attributes to built in attributes currently, you have to use the attribute node for the uvs to work again

This is not an option. This is something that has to go into game engine, not stay in Blender.

This is so confusing. Using attribute fill with a “hidden” specific attribute name is the very last way I’d consider making something smooth shades. Also, how do I utilize this to do smooth shading based on normal angle (like auto-smooth checkbox)? The commit clearly mentions per-face control, so I am curious how to replicate the Auto Smooth behavior.

1 Like

Geometry nodes currently lacks that, I asked in this thread earlier about how come the auto smooth check box in the properties panel did not work for primitive mesh nodes, here is what he replied:

This is really not that confusing, shade smooth is a boolean attribute per face, this means this face is either “Yes” it is smooth shaded, or “No” it is not. You can use like a vertex group to convert it to shade_smooth so that only a part of the mesh is smooth shaded, but this will be a bit tricky because vertex group is in point domain while shade_smooth is in face, but there will be a automatic conversion, same for the data type from “float” to “boolean”

I don’t see why… smooth shading being a mesh attribute, you can use the same methods, the same nodes as for any other attribute, that’s completely consistent. If you wanted to split normals depending on face angle, you’d need a mesh statistics node I suppose. OR a dedicated set of nodes to control normals, which we don’t have yet.

@HooglyBoogly my take is that the auto-smooth attribute should give way to a modern way of controlling normals, one that leverages the power of nodes. Provide the user with face angles, face areas, etc. and let them modify normals with this information.
eg, use a mesh analysis node to tag all edges whose faces are at a certain angle, and split normals with this attribute

Well, there, you answered youself :slight_smile:
You first said you don’t know why, and then you followed by “you’d need mesh statistics, or dedicated set of nodes to control normals”

Well, why not have just one “AutoSmooth” node which @HooglyBoogly suggested, which when the normal angle is set to 180º would have special mode which just filled all the points with shade_smooth attribute.

I am not saying that attribute needs to go away. It’s certainly useful for advanced mesh smoothing control, but just having a single AutoSmooth node which all it takes as an input is single angle float value and when set to max value (180) just skips face angle computation completely for performance reasons would be much more intuitive solution for end user than knowing about an obscure attribute name that doesn’t even show up in the attribute autocomplete list.

I was answering your previous post :

I am trying to help you make sense of it. I don’t see why this is confusing ? it makes sense (to me at least) that it would be a mesh attribute, since like you said, it can vary per-component. If it were an object property there couldn’t be any variance over the mesh, it would just be all smooth or all flat

To address your other comment (quoting for clarity)

I’m not arguing for the method here, but the attribute is not hidden, it appears in the dropdown just like any other attribute when you use an attribute node (fill, math…) (edit only in 2.93! 2.92 didn’t have it)

Strange, I missed that. I will check again.

I really don’t know how auto smooth operates but I don’t think it is filling shade_smooth attribute to the mesh, I thought it works more like an edge split modifier but for normals

Uh…? I never said the proposed, currently non existent node should work exactly like the old Auto Smooth checkbox. I just said that it would make complete sense to skip the normal angle computation method completely if the user sets the angle in that node to 180 degrees.

It’d be a special case which would work exactly same as filling the attribute with shade smooth. If you have auto smooth angle that is >= 180 degrees, you are certain your faces will always come completely smooth, with no sharp ones, so it doesn’t make sense to run the angle calculation.

My point is that this proposed auto smooth node could be a very simple node with just one float value which could do 3 different things in a very easy, user friendly manner:
1, It could make the input geometry all smooth by setting the value to max (180)
2, It could make the input geometry that’s already smooth faceted by setting the value to min (0)
3, It could smooth the geometry by face angle in the same way Auto Smooth checkbox does by using any value between 0 and 180
4, It would always do so in a very performant manner, as it would simply skip the face angle calculations when using a value of 0 or 180.

1 Like

That’s what I am referring to. It does not work that way. Like I said, shade smooth is a per face thing, not per point or edge. And face angle is more like an edge thing, like the angle of the two neighbour faces of an edge. If you select this one edge and tell GN to shade smooth, it is most likely to smooth both faces neighbouring the edge

I still don’t get it… I am not proposing anything different than what already exists. When you check Auto Smooth checkbox in the mesh properties panel, it does exactly what we all want it to do. If you set it to 0, it does exactly that, makes all the edges faceted, if you set it to 180, it once again does exactly that.

I really have no clue what you are talking about. This is no scifi, this is already functional. All I want is for it to be a GN node.

I don’t see anything preventing a function from checking face angles and then tagging boundary edges, like @LudvikKoutny says it’s exactly what the smooth angle aready does

That’s the point I disagree. I don’t think the current auto smooth works that way. Auto smooth split the edges normal rather than doing anything with shade smooth. Look at this:

The cube has auto smooth on with 30 degrees angle setting. If it works as you say, which is filling part of the mesh with shade smooth attribute, some of the faces will be unchecked in the spreadsheet. But the situation is all faces are still checked. I believe auto smooth is not modifying the shade_smooth attributes, it just splits the edges after the shade smooth operation.

Yes, I know what you mean - that the shade smooth is not a Face Corner attribute but a Face Attribute. But I never said it has to be that way for the proposed node. I thought about it more along the lines of alternative to shade smooth attribute. Or, as @HooglyBoogly suggested, the current, mesh properties Auto Smooth checkbox could be changed so that it modifies that attribute instead.

Bottom line is that it’s a problem which has several relatively straightforward solutions, where as your posts keep sounding like it’s some super difficult problem to solve. That’s not the case.

I still don’t understand why you would think shade_smooth is not straight forward enough that you even need to find an alternative. What I tried to say is that auto smooth is never an alternative shade smooth, and I don’t think it should be.

You just said you did not suggest anything that is not existed, you just wanted a already exist thing to be in GN. Isn’t this conflicting?

Going back to shade smooth, which part of it makes you think it is not straight forward enough, apart from the inability to do auto smooth on GN generated geometry? The auto smooth has a workaround of using the edge split node or modifier for now, and I think it really is a separate issue.

Also I don’t think that is what face corner means. The face corner attributes I know are like UVMaps and Vertex Colors, etc, not like this face angle of an edge thing. I might be wrong though.

No, what I suggested is a new node, not new functionality. The functionality already exists.

And why should not auto smooth be an alternative to shade_smooth attribute? If you can add auto smooth node and set the angle to 180 instead of adding attribute fill and set the fill type to shade smooth? Why not have both options?

Or in other words, if the Auto Smooth node would exist, what should it do when the angle value is set to 180 degrees?