Introducing SmoothingAngle property for PartOperation (Enabled Globally)

Hmmmmm… Okay…?
This feature is very odd.
https://i.gyazo.com/f6bf78c94598e759fa0328c591e72782.mp4

That seems like it’s working as intended. Obviously a cylinder is gonna look like a square if you smooth all angles less than 90 degrees.

Yeah but it got changed back to 90 degrees and it was still like 80 just a bit more messy.

The shadows overall seem a bit messed up with the new feature, will this be addressed?

This is cylinder case of shadows. The mesh and smoothed normals (yellow bars) are illustrated below. When solid angles at vertices are sharp and there is no interior vertices along axial direction, normals become sensitive to render result.
cylinder_normals

Another shadow example in a normal smoothed cube.
box
With this in mind, wonder if allowing >=90 SmoothingAngle still has any value for developers?

1 Like

I can see myself possibly using this for selection box (not the actual instance) shading, or to give my game an uncanny look. My personal belief is that if the engine is capable of doing it, developers should be allowed to do it. Perhaps the solution would be a warning that pops up whenever a developer sets the SmoothingAngle value to something odd, such as values >=90?

I’m under the impression that disallowing values at or greater than 90 is in the interest of newer developers who may not know what this property does and freak out whenever their union suddenly looks terrible. I believe a (toggle-able) popup would solve this while also giving as much freedom as possible for developers to determine the style of their own game.

2 Likes

The shading of simple beveled cubes with this property seems to be very messed up. Each cube has an unnecessary surface shadow despite only having SmoothingAngle 50. The results look even more horrific when you put them side by side like this:

Simple beveled cubes should look something like this (as shown from a very old roblox video)

The surface shadow issues only start appearing when I set SmoothingAngle >= 45. The problem is I can’t make smooth bevel cubes without a SmoothingAngle of at least 50. I’ve obviously tried different methods of unioning a bevel cube however it’s just impossible to prevent this glitch from occurring.

Has this bug been addressed yet? If so then will it be fixed?

2 Likes

very cool

2 Likes

I love this update, but I’m wondering if you can import older CSGv1 unions and apply a SmoothingAngle to them so they look like a proper CSGv1 union (smooth) rather than the new, blockier look when you have v2 enabled.

1 Like

Thanks for bringing updates, Developer Relations! I am proud of you. That is a very helpful feature for me and others. I expect more great updates for developers, thanks.

1 Like

I like this feature, but when will this ship?

Probably when all the bugs are fixed I guess.

1 Like

CSGv1 unions aren’t really supported anymore. They’ll continue to work, sure, but I don’t see new features being added to or working with them.

1 Like

I am aware, but the ability to easily smooth out older csgv1 unions after converting them to csgv2 should be automatic.

I’m fresh from beta testing, first thing I tried is this SmoothingAngle property. It was really fun and very helpful especially to us developers who uses CSGs!

Samples:

3 Likes

Wow, this truly looks AMAZING!

2 Likes

This is great! This will really include a lot more level of detail for unions! Though I wonder how much performance does this affect since the CSGs will be much more complex with a lot more faces and I assume collisions. This really does give a lot more possibilities to developers that before had to use 3D modeling programs to make them meshes. Look forward into seeing it work!

1 Like

It turns normal parts into ps2 graphics lol

2 Likes

I am happy with this update, it helps make beveled CSG cubes smooth

Woah it looks amazing, Me too!

Just decided to do some testing with this feature, having some trouble getting this cylinder to work with Smoothing Angle :confused:

I’ve got it set to 20 degrees when this screenshot was taken, being a basic cylinder union I’d expect it to work with this.

1 Like