Shading artifacts?
11151 8 2- eljefe
- Member
- 6 posts
- Joined: April 2008
- Offline
- Mike_RB
- Member
- 78 posts
- Joined: April 2008
- Offline
- mark
- Staff
- 2591 posts
- Joined: July 2005
- Offline
eljefe
Can anyone tell me what causes these artifacts? Most of them look to form triangles bisecting the square polys, but I can't figure out what's doing it.
You might try looking at the point normals (display options), or in the spreadsheet.
If the length of the point normal is 0 or, the point normal is pointing in the wrong direction (compared with other polygons), you sometimes get artifacts like this.
You can also try the facet SOP, orient polygons option (then re-compute normals after).
- eljefe
- Member
- 6 posts
- Joined: April 2008
- Offline
I displayed point normals, and didn't see anything. I then displayed primitive normals, and noticed that the normals for the artifacty polygons were in fact pointing the wrong way. Both solutions presented seem to have solved the problem.
Now that I have got it working, I have a lot more questions about each method:
1) I appended a point sop, checked ‘add normal’, and used the following expression to re-orient my inverted normals
if ($NY < 0, -$NY, $NY)
this seems to have worked, but only so long as the geometry doesn't rotate. What is the best way to re-orient my normals so that I can rotate the geometry without reintroducing artifacts?
2) How are primitive normals calculated? Does it follow something like the right hand rule, based on the vertex ordering?
3) Using the facet sop, there are two options that will fix my problem, cusp polygons and/or remove inline points. Removing inline points seems to decrease the point count by ~12, where as cusp polygons increases the point count and makes the scene port shading a little smoother. Can someone describe what these operations are doing? Online help isn't helping so much =P
Thanks for all your help!
Now that I have got it working, I have a lot more questions about each method:
1) I appended a point sop, checked ‘add normal’, and used the following expression to re-orient my inverted normals
if ($NY < 0, -$NY, $NY)
this seems to have worked, but only so long as the geometry doesn't rotate. What is the best way to re-orient my normals so that I can rotate the geometry without reintroducing artifacts?
2) How are primitive normals calculated? Does it follow something like the right hand rule, based on the vertex ordering?
3) Using the facet sop, there are two options that will fix my problem, cusp polygons and/or remove inline points. Removing inline points seems to decrease the point count by ~12, where as cusp polygons increases the point count and makes the scene port shading a little smoother. Can someone describe what these operations are doing? Online help isn't helping so much =P
Thanks for all your help!
- jason_iversen
- Member
- 12457 posts
- Joined: July 2005
- Offline
You could try to append a Facet SOP and toggle on “Orient Polygons”. This should check for reversed polygons and wind ‘em up the right way - and you won’t have to futz with point-normals, perhaps.
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
also, http://www.odforce.net [www.odforce.net]
- eljefe
- Member
- 6 posts
- Joined: April 2008
- Offline
- old_school
- Staff
- 2540 posts
- Joined: July 2005
- Offline
eljefe
I displayed point normals, and didn't see anything. I then displayed primitive normals, and noticed that the normals for the artifacty polygons were in fact pointing the wrong way. Both solutions presented seem to have solved the problem.
That edge is not going to shade properly (smooth) as is.
You do need to do some clean-up work after the cookie if you want to do such a model. This is very common in all modellers after a polygon boolean.
To make your work less effort reduce the number of divisions on your grid greatly. Actually 2x2 works fine.
Append a Fuse SOP and consolidate points.
Next hit the “s” key in the view port and select all the edges you want to bevel.
Follow with a PolyBevel on the edge selection. Edit to suit.
Another approach is to use NURBs for both the grid and the sphere and use the SurfSect SOP. That's completely procedural.
See the attached file for both solutions.
eljefe
1) I appended a point sop, checked ‘add normal’, and used the following expression to re-orient my inverted normals
if ($NY < 0, -$NY, $NY)
this seems to have worked, but only so long as the geometry doesn't rotate. What is the best way to re-orient my normals so that I can rotate the geometry without reintroducing artifacts?
Simply rotate the geometry AFTER the Point SOP. If that is not doable, the point SOP has a second input that you can use. Inject the Point SOP afterwards and pass a locked off version of your geometry in to the right input that has your Point SOP with the altered normals. Set to Add Normals and put in $NX2 $NY2 and $NZ2 to pass the second inputs normals on to the left input geometry.
eljefe
2) How are primitive normals calculated? Does it follow something like the right hand rule, based on the vertex ordering?
Yep. You don't have direct control over primitive normals.
eljefe
3) Using the facet sop, there are two options that will fix my problem, cusp polygons and/or remove inline points. Removing inline points seems to decrease the point count by ~12, where as cusp polygons increases the point count and makes the scene port shading a little smoother. Can someone describe what these operations are doing? Online help isn't helping so much =P
Turn on the point numbers and look at the edges. That will tell you what you need to know.
Removing in-line points looks at edge angle. If the segment is essentially straight then all the intermediate points are removed. You remove points.
Cusping unshares points when the edge angle is greater than the angle you specify so you end up with more.
There's at least one school like the old school!
- anon_user_40689665
- Member
- 648 posts
- Joined: July 2005
- Offline
- old_school
- Staff
- 2540 posts
- Joined: July 2005
- Offline
-
- Quick Links