Jump to content
  • entries
    945
  • comments
    5,899
  • views
    930,190

Smooth Move


Josh

3,854 views

 Share

Smoothing groups are one of the most frequently requested features for 3D World Studio, so I am happy to show you their implementation in Leadwerks3D, finally. Smoothing groups are usually stored as a bitwise flag. When two faces share a vertex at a certain position, if they have one or more smoothing groups in common, their vertex normal is calculated as if they are sharing a vertex.

 

I first attempted to write an algorithm based on edges, which worked great for cylinders but failed for geometry that had faces that influence vertex normals they are not connected to by an edge. I wrote another routine, which uses an n*n*n loop (big programming no-no, but sometimes it's necessary) and got good results with cylinders and spheres. Cones are a difficult case, and if you don't believe me, just crack out a cone in your favorite 3D modeling app and inspect the tip. I got around this problem by adding a max smoothing angle member to the brush class, which allows the smoothing algorithm to discard faces that are too 'different' from the one being processed.

 

Here's the result:

blogentry-1-0-98349000-1334272802_thumb.jpg

 

In order to make shapes like arches appear smoothed, the smoothing algorithm has to span multiple objects. This will be accomplished by first grabbing all the brushes in the nearby vicinity to the brush being processed, and then searching for vertices that occupy the same position, on faces that have a smoothing group in common.

 

In the past, we've seen some pretty advanced modeling done with 3D World Studio, but the lack of smoothing groups always limited it. It will be awesome to see what people come up with, when those limits are removed and they can model exactly what they want.

blogentry-1-0-86258600-1334273538_thumb.jpg

blogentry-1-0-84197700-1334273554_thumb.jpg

blogentry-1-0-66387800-1334273601_thumb.jpg

blogentry-1-0-52265300-1334273781_thumb.jpg

blogentry-1-0-27391000-1334273805_thumb.jpg

  • Upvote 1
 Share

6 Comments


Recommended Comments

It will be awesome to see what people come up with, when those limits are removed

so, when it comes to human experimentation (pre-alpha build or something), I'm ready smile.png

 

And, If I could have a small request: Current 3DWS 5.x has "texture lock" feature, that works globally - on all scene brushes. Whether it would be possible to add a flag "lock UV" at the brush level ? I mean bitwise flag (similar to smoothing groups concept) for preventing UV changes on scale / rotation / position for selected brushes?

Link to comment

And when its time to test it, I would love to beta test it as well wink.pngAnd will CSG work on mobile?

Yes, it will be quite interesting to see CSG levels on mobile, as these have traditionally been the realm of AAA games. It seems like mobile technology has finally caught up to where we need it to be.

  • Upvote 1
Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...