Talk:Catmull–Clark subdivision surface: Difference between revisions

m
added a section header to the first topic to properly place the table-of-contents (TOC) --- (this happens more often than one would think).
No edit summary
m (added a section header to the first topic to properly place the table-of-contents (TOC) --- (this happens more often than one would think).)
 
(14 intermediate revisions by 4 users not shown)
Line 1:
== what's the input for the function? ==
 
What's the input for the function? Example input/output?
 
Line 36 ⟶ 38:
(-0.555556, 0.555556, -0.555556);
( 0.000000, 0.000000, 1.000000);
(-0.666667750000, 0.000000, 0.666667750000);
( 0.000000, -0.666667750000, 0.666667750000);
( 0.666667750000, 0.000000, 0.666667750000);
( 0.000000, 0.666667750000, 0.666667750000);
( 1.000000, 0.000000, 0.000000);
( 0.666667750000, -0.666667750000, 0.000000);
( 0.666667750000, 0.000000, -0.666667750000);
( 0.666667750000, 0.666667750000, 0.000000);
( 0.000000, 0.000000, -1.000000);
( 0.000000, -0.666667750000, -0.666667750000);
(-0.666667750000, 0.000000, -0.666667750000);
( 0.000000, 0.666667750000, -0.666667750000);
( 0.000000, 1.000000, 0.000000);
(-0.666667750000, 0.666667750000, 0.000000);
(-1.000000, 0.000000, 0.000000);
(-0.666667750000, -0.666667750000, 0.000000);
( 0.000000, -1.000000, 0.000000);
]
Line 81 ⟶ 83:
( 4, 18, 25, 14);
]
 
: I propose this image to illustrate the article:
[[Image:Catmull_subsurf.png‎]]
:: Looks good, but I would suggest breaking it into three images and losing the built-in descriptor lines. I would also suggest stretching the contrast ratio such that it's white on black, rather than light-gray on dark-gray. --[[User:Short Circuit|Michael Mol]] 08:08, 9 January 2010 (UTC)
[[Image:CatmullClark_subdiv0.png|thumbnail|left|Original mesh]]
[[Image:CatmullClark_subdiv1.png|thumbnail|left|1 subdivision]]
[[Image:CatmullClark_subdiv2.png|thumbnail|left|2 subdivisions]]
::: I have tryed to make another set with your suggestions, but I have uploaded the original sizes because I thought IM was able to make nice thumbnails, but it fails, so I will have to make the resize through Gimp and re-upload these. --[[User:Blue Prawn|Blue Prawn]] 23:39, 22 January 2010 (UTC)
:::: Here the new set resized with Gimp:
[[Image:CatmullClark_subdiv_0.png|Original mesh (bis)]]
[[Image:CatmullClark_subdiv_1.png|1 subdivision (bis)]]
[[Image:CatmullClark_subdiv_2.png|2 subdivisions (bis)]]
 
== Algorithm Description Improvements ==
Line 98 ⟶ 88:
I've tried to improve the description of the algorithm (making it look more like math and less like computer code) but may have made a few bloopers along the way. A full mathematical version would be even better, except that I doubt that most people would immediately pick up the notation for a centroid and so would go horribly astray. Still, if someone can do some more work on it I'd be glad. Note also that neither the Wikipedia article nor this task are particularly good references; for example, the WP article only handles the hole-free mesh case. –[[User:Dkf|Donal Fellows]] 15:19, 18 January 2010 (UTC)
 
== Remove non-working OCaml example ==
Please review the definition of "edge_point" and the implementation of "edge_point".
 
Since nobody seems to be trying to fix the first OCaml example, perhaps it should be removed. Should we check with the original author first? - [[User:TobyK|TobyK]] 17:56, 17 August 2011 (UTC)
 
: Hi, I think candidate for deletion should rather be considering if an implementation is poor at the design point of view. Here the code produces wrong output but the error is probably a minor calculation error somewhere. There is also the Tcl example that produces wrong output on the border of the hole. Borders of holes should be smooth, and on the screenshot we can see that it's not. [[User:Blue Prawn|Blue Prawn]] 23:20, 17 August 2011 (UTC)
 
:: The Tcl solution is now fixed. It was a problem in the code to update point locations on the edge of the hole (which to be fair isn't actually discussed ''anywhere'' on the WP page or in the literature that I found with only a small amount of searching). The formula I picked seems to give nice-looking results. –[[User:Dkf|Donal Fellows]] 20:39, 7 November 2011 (UTC)
The sample data has factors of 2/3 but for example, consider the edge connecting points (1,-1,-1) and (1,-1,1). Here, the coordinates mid-point of the edge is (1,-1,0). And the face points of the two adjacent faces are (1,0,0) and (0,_1,0), and the mid-point of the line connecting those two face points would then be (0.5,-0.5,0). And the average of (1,-1,0) and (0.5,-0.5,0) is (0.75,_0.75,0). But this edge_point does not currently appear in the sample data.
::: This current RC page explains how to handle this (which was found by examining results from blender.org). Could you check that what you have done is the same? [[User:Blue Prawn|Blue Prawn]] 01:04, 9 November 2011 (UTC)
:: In general though, only delete a solution if it is “considered harmful”, i.e., actively promoting bad practices not necessary to the solution of the task. Having a bug is not a sin, and there's no way to persuade people to fix things on any exact schedule. (You could try commenting on the original submitter's talk page; they ''might've'' configured email notifications.) Or try to learn enough OCaml to be able to fix it; the algorithm is complex enough that it remains itself the major challenge. –[[User:Dkf|Donal Fellows]] 20:39, 7 November 2011 (UTC)
 
== Should have another example geometry? ==
So, either:
 
Looking at the examples, I can't really be sure that code handles meshes with holes properly.
[a] I have made a factually incorrect statement in the above paragraph, or
[b] The task description is wrong, or
[c] The sample data is wrong.
 
Perhaps (a) we should have a task which renders these geometries, and (b) we should have a task example which has a hole in it? (Perhaps a cube with the top and bottom surfaces removed?) --[[User:Rdm|Rdm]] ([[User talk:Rdm|talk]]) 19:59, 15 May 2015 (UTC)
Help? --[[User:Rdm|Rdm]] 20:37, 1 September 2010 (UTC)