Why is it difficult to draw 'outlines' in 3DCG?
Adobe Research and an associate professor at the University of Washington. Aaron Hertzman explains it on his blog.
3DCG technology has advanced rapidly in recent years, creating high-quality images in various games and animations. However, 3DCG has a problem that 'contour lines are not stable', and why such a problem occurs and how to solve it is a computer science chief researcher at
Occluding Contour Breakthroughs, Part 1: A Surprisingly Hard Problem | Aaron Hertzmann's blog
ConTesse: Accurate Occluding Contours for Subdivision Surfaces
How to Draw Pictures, Part 1: Contours | Aaron Hertzmann's blog
Mr. Hartsman first explains the procedure for creating line drawings with 3D objects using the following pig objects. The 3DCG of this pig was created by Keenan Crane, a digital geometry researcher at Carnegie Mellon University .
If we indicate the 'depth' of the distance in shades of black and white, and then paint pixels adjacent to different depths black and others white, we end up with a line drawing that looks like this:
A line drawing created in this way is called a 'shading contour' and is the basis for realistic line drawing. Once you've drawn the outlines, you can apply different renderings, such as anime-style or brush-style, to change the look.
However, Hartzman points out that there are many failure cases that cannot be predicted by algorithms, and it is difficult to use in games and animations. According to Hartzman, the cause of the error in the shielding contour has not been clarified for a long time, but a breakthrough study was announced in 2023.
Hertzman then discusses the problems that arise with occluding contours. The shielding outline is created by calculating the depth from the viewpoint and painting it separately, so in theory, where parts of the object appear to overlap, there is a difference in the depth of the object. It is a mechanism that it becomes a contour line by dividing it with a line. It seems that this calculation itself is not very complicated.
What makes the problem difficult is not calculating contours, but 'calculating visible points'. For example, a smooth object like the one shown in the image below has simple circular outlines. However, smooth objects have cubic depth and their curves require a reasonable
triangulation allows you to understand fine depth. However, a smooth object that can be drawn with a simple outline will generate a lot of very complicated parts when separated with a triangular mesh. The appearance of various areas in an object that originally had only two divisions, 'front and back', creates a confusing outline.
Meshing a smooth object by
Hertzman gives another example: You can see that the 3DCG occluded contours of a human face appear and disappear depending on the angle, even with an algorithm that has been tried many times to maintain consistency.
a paper proposing an approach to create a smooth line drawing by complementing it, but even in that research the problem of creating gaps in the line drawing when it is enlarged It seems that it could not be resolved. In addition, the problem with the shielding line drawing has also affected real 3D modeling applications, and Blender 's Freestyle feature, which allows you to post the outline of an object to the rendering, has many complaints about the gap between the 3DCG and the outline. has been submitted.
This problem is very complicated, and in 2001 Mr. Hartzman et al. published
A breakthrough was reached in a 2023 paper co-authored by Hartzmann with Liu Chengshi of the University of British Columbia and Pierre Bénard of the University of Bordeaux on the long-standing problem of shielding contours.
For a smooth object whose contour consists of a single curve, it is not possible to compute an exact contour on a smooth surface, so contour approximation is usually done using a 'polyline' made up of multiple curves etc. will be issued. In order to define a triangular mesh whose contour is this polyline, Hartzman et al.'s paper adopts the idea that 'a contour curve in a 2D image is valid only if there is a part where the curve is an occluded contour'. I'm here.
discretizes ' the contours into polylines. Since discretization divides continuous information into discontinuous values, it seems that invalid polygons are often generated. This invalid polygon affects all existing algorithms to produce visual errors due to invalid curves.
The underlying problem with occluded contours is that the smooth surface contour algorithm '
In the paper, we start with a curved surface called a subdivision surface , which is obtained by regularly dividing a polygon mesh, and convert the vertices sampled on the contour into a polygon mesh . Next we go into the process of checking if all the meshed contours are valid. Repeat checking by inserting new vertices for those that are not valid, and once all mesh contours have converged to a valid shape, regenerate a new 3D mesh with contours that are topologically equivalent to those of the subdivision surface. . This allowed us to 'show the first procedure that is guaranteed to solve the visibility problem of smooth contours,' Hartzman said.
Hertzman concludes by discussing the difficulties and challenges of studying occlusion contours. The procedure for creating robust occlusion contours requires computing topologically valid curves, but topological algorithms are hard to understand and, although experimentally possible, work to apply them to your own objects. The problem is that it has become very complicated. Also, research algorithms can theoretically converge on any surface, but can be quite slow for complex operations.
In addition, the occluding contour is just a starting point for creating line drawings, and there are still many issues such as borders and intersecting lines in order to improve the visibility of line drawings. Still, Hertzman said that the functioning of the occlusion contour algorithm will improve the conventional technique and further develop it with related animations and game objects.
in Note, Posted by log1e_dh