Method and program for generating image of three-dimensional object
The method of using a virtual camera in three-dimensional space to manipulate vanishing points in drawing software ensures consistent composition and size in three-dimensional illustrations, addressing the issue of unintended changes in existing technologies.
Patent Information
- Application Number
- JP2023122036
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-07-26
- Publication Date
- 2025-02-06
- Estimated Expiration
- 2043-07-26
AI Technical Summary
Existing drawing software using perspective rulers for three-dimensional images often results in unintended changes in the size of the 3D object drawing when vanishing points are moved multiple times, leading to compositions that do not align with the user's intentions.
A method involving a virtual camera in a virtual three-dimensional space that projects a three-dimensional object onto a drawing plane using perspective projection, allowing for the manipulation of vanishing points to maintain the desired composition by updating the position and orientation of the virtual camera, and reverting to the original position and orientation when necessary.
Enables the user to draw three-dimensional illustrations with compositions that align with their intentions by maintaining consistent size and orientation of the image, even after changes in vanishing points, improving user experience and accuracy.
Smart Images

Figure 2025018382000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a method and a program for generating an image of a three-dimensional object. [Background technology]
[0002] Conventionally, when drawing three-dimensional objects such as illustrations using drawing software, a perspective ruler based on the law of perspective (abbreviated as "perspective") is sometimes used.
[0003] A perspective ruler is used to draw accurate perspective drawings based on the law of perspective when drawing an illustration. When a user draws an object, the perspective ruler is placed to match the object to be drawn. For example, if the object is in the shape of a box, the perspective ruler is placed along the shape of the box. Perspective lines can be drawn along the perspective ruler. When drawing a line, the user can use the perspective ruler to draw along the guide lines of the perspective ruler, so that a correct straight line following the law of perspective can be drawn even by hand. By repeating the same procedure, an illustration following the law of perspective can be drawn on a two-dimensional canvas. In the composition of a typical illustration, perspective projection, a linear projection method, is generally used.
[0004] For example, Patent Document 1 discloses a technology that discloses a perspective ruler placed on a flat canvas existing in a virtual three-dimensional space. This perspective ruler is displayed by a computer so that a line is drawn on the canvas along the perspective ruler in response to a drawing instruction from a user for a fisheye lens representation.
[0005] For example, Non-Patent Document 1 discloses a technology for placing a 3D object of a human body on a 3D layer that defines a perspective ruler. When the vanishing point or eye level is moved, the angle of the 3D layer changes accordingly, and the appearance of the 3D object also changes accordingly. However, when the vanishing point is moved multiple times, the size of the drawn 3D object gradually changes, resulting in a picture composition that the user does not intend, and this function lacks convenience. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] Patent No. 7305241 [Non-patent literature]
[0007] [Non-Patent Document 1] "Linking Perspective Rulers and 3D Layers - Using Perspective Rulers Part 2" https: / / tips.clip-studio.com / ja-jp / articles / 1116#1dff0c63 (Accessed July 24, 2023) Summary of the Invention [Problem to be solved by the invention]
[0008] The disclosed technology aims to enable, when a user uses drawing software to draw a picture on a virtual canvas by perspective projection, a computer to easily draw a three-dimensional object that serves as a model for the user's drawing on the drawing plane in a composition that more closely matches the user's intentions, in conjunction with the movement of the vanishing point. [Means for solving the problem]
[0009] The disclosed technology is a method for generating an image of a three-dimensional object by projecting a three-dimensional object existing in a virtual three-dimensional space onto a drawing plane by perspective projection using a virtual camera disposed in the three-dimensional space, the method comprising: A plurality of vanishing points corresponding to infinity on the coordinate axes of a known Cartesian coordinate system existing in the three-dimensional space are present on a drawing plane, and in response to a change in the position of at least one of the plurality of vanishing points, a position and / or a posture of the virtual camera is updated; generating an image of the three-dimensional object based on the updated position and / or orientation of the virtual camera; having The updating step comprises: modifying the position and / or orientation of the virtual camera by applying a process having the property that, when the position of the modified vanishing point is returned to the position of the vanishing point prior to the modification of the position of at least one of the plurality of vanishing points, the position and / or orientation of the updated virtual camera is returned to the position and / or orientation of the virtual camera prior to the modification of the position of at least one of the plurality of vanishing points. A method is provided. Effect of the Invention
[0010] According to the disclosed technology, when a user uses drawing software to draw a picture on a virtual canvas by perspective projection, a computer can easily draw a three-dimensional object that serves as a model for the user's drawing on the drawing plane in a composition that more closely matches the user's intentions, in conjunction with the movement of the vanishing point. [Brief description of the drawings]
[0011] [Figure 1A] FIG. 1A shows a camera, a drawing plane, a reference coordinate system, and sample points viewed in a direction parallel to the drawing plane. [Figure 1B] FIG. 1B is a diagram showing the arrangement of point Po, point Ps, and vanishing point Vs, where point Ps and vanishing point Vs are located on opposite sides as viewed from point Po. [Figure 1C] FIG. 1C is a diagram showing an example in which the drawing plane is placed at a position different from that in FIG. 1A. [Figure 2A] FIG. 2A is a diagram showing points Po, Ps, and a vanishing point Vs on a drawing plane. [Figure 2B]FIG. 2B is a diagram showing an example in which the foot of a perpendicular line drawn from point Ps_old to half line Vs_newPo is set to Ps_new. [Figure 2C] FIG. 2C is a diagram showing an example in which the point Ps gradually approaches the point Po by repeating the operation of moving the vanishing point. [Figure 2D] FIG. 2D is a diagram showing an example of determining the position of Ps_new so that PoPs_old=PoPs_new. [Figure 2E] FIG. 2E is a diagram showing an example in which Vs_new becomes too close to Po in the example of FIG. 2D. [Diagram 3] FIG. 3 is a diagram showing an example of determining a new position O_new of the reference coordinate system origin O in the camera coordinate system using the point Po and the point Ps_new. [Figure 4A] FIG. 4A is a diagram showing an example in which the foot of a perpendicular line drawn from point H_old to line segment V1_newV2_new on the rendering plane 100 is set to point H_new. [Figure 4B] FIG. 4B is a diagram showing an example in which point H approaches V1 when the position of V2 changes successively without changing the position of V1. [Figure 4C] FIG. 4C is a diagram showing an example in which a perpendicular line cannot be drawn from point H_old to line segment V1_newV2_new. [Figure 4D] FIG. 4D is a diagram showing another example in which a perpendicular line cannot be drawn from point H_old to line segment V1_newV2_new. [Figure 4E] FIG. 4E is a diagram showing an example in which the distance between the vanishing point and point H is maintained. [Figure 4F] FIG. 4F is a diagram showing an example in which the length V1_newV2_new becomes too short, making it impossible to obtain a point H_new on the line segment V1_newV2_new. [Diagram 5] FIG. 5 is a diagram showing an example in which a new reference coordinate system 301 is defined and used in place of the origin O of the reference coordinate system 300. In FIG. [Figure 6A] 6A is a diagram showing the positional relationship between vanishing points V1, V2, and V3 on the rendering plane 100, the camera Pc, and the three coordinate axes of the reference coordinate system 300. FIG. [Figure 6B]FIG. 6B is a diagram showing the vanishing points of two-point perspective and the characteristics of the camera. [Figure 6C] FIG. 6C is a diagram showing a situation in which the position of the point obtained by projecting the origin of the reference coordinate system onto the rendering plane 100 remains unchanged before and after the vanishing point position is changed. [Figure 7A] FIG. 7A is a diagram showing an example in which PcO / PcPo does not change before and after the vanishing point position is changed. [Figure 7B] FIG. 7B is a diagram showing an example in which PcO remains unchanged before and after the vanishing point position is changed. [Figure 7C] FIG. 7C is a diagram showing an example in which the magnitude of the component of PcO in the camera optical axis direction does not change before and after the vanishing point position is changed. [Figure 8A] FIG. 8A is a diagram showing an example in which the position of the point Po on the rendering plane 100 also changes as the vanishing point position is changed. [Figure 8B] FIG. 8B is a diagram showing an example in which the foot of a perpendicular line drawn from point Ps_old to half line Vs_newPo_new is set to Ps_new. [Figure 8C] FIG. 8C is a diagram showing an example of determining the position of Ps_new so that Po_oldPs_old=Po_newPs_new. [Figure 8D] FIG. 8D is a diagram showing an example in which PcO / PcPo does not change before and after the vanishing point position is changed. [Figure 8E] FIG. 8E is a diagram showing an example in which PcO remains unchanged before and after the vanishing point position is changed. [Figure 8F] FIG. 8F is a diagram showing an example in which the magnitude of the component of PcO in the camera optical axis direction does not change before and after the vanishing point position is changed. [Figure 9] FIG. 9 is a diagram explaining the perspective projection method. [Figure 10] 10A and 10B are diagrams illustrating an example of a change in the image of an object 155 when the positions of vanishing points V1 and V3 on the drawing plane 100 are changed. [Figure 11] FIG. 11 is a diagram showing a hardware configuration of the embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] The perspective ruler is provided with various functions when a user draws on a virtual canvas on a plane using an input interface (e.g., a touch pen, a mouse, a touch panel, a tablet, a pointing device, etc.). It should be noted that in this specification, explanations of general publicly known functions among conventional functions related to the perspective ruler may be omitted.
[0013] The following description is based on the assumption that the disclosed technology is mainly applied to a perspective ruler. However, it should be noted that the disclosed technology is not limited to application to a perspective ruler, but can also be used to create scenes in three-dimensional space, such as producing videos using 3DCG, and to quickly generate videos that estimate changes in the position and / or posture of objects in real space.
[0014] In addition, in this specification, a virtual three-dimensional space may be mentioned. However, it should be noted that this virtual three-dimensional space is used to easily explain the present technology (such as a perspective ruler generation method), and the existence of this virtual three-dimensional space is not necessarily essential when a user uses the present technology (such as a perspective ruler) to perform drawing. The prerequisites for the description of the embodiments will be described below.
[0015] (1) Vanishing points When a line in three-dimensional space is drawn on a drawing plane using perspective projection with a camera set in that three-dimensional space, the line's infinity converges to a single point on the drawing plane. This convergence point is called the line's vanishing point. The position of the vanishing point on the drawing plane can be found as the intersection of a line that passes through the camera position and is parallel to the line, and the drawing plane. However, if the line is parallel to the drawing plane, the vanishing point will be at infinity, and will not appear on the drawing plane. Straight lines that are parallel to each other have the same vanishing point.
[0016] (2) Reference coordinate system In this invention, we focus on one known orthogonal coordinate system that exists in three-dimensional space, and deal with the behavior when the position of the vanishing point of that coordinate axis is manipulated. This known orthogonal coordinate system is called the "reference coordinate system."
[0017] 9 is a diagram explaining the perspective projection method (a drawing method based on perspective projection). A computer can draw an image 155 of an object 150 by projecting the object 150 onto a drawing plane 100 by viewing the object 150 from a camera Pc, which corresponds to an eye in the perspective projection method.
[0018] The position and orientation of the object 150 is specified by a known reference coordinate system 300, which will be described later. The reference coordinate system 300 has three coordinate axes 305, 306, and 307 that are mutually orthogonal, and an origin O.
[0019] Vanishing points V1, V2, and V3 of three-point perspective exist on the drawing plane 100. It goes without saying that drawing on the drawing plane 100 may be performed using two-point perspective or one-point perspective.
[0020] Camera Pc is located on a line that passes through the orthocenter of triangle V1V2V3 formed by the three vanishing points and is perpendicular to the drawing plane, and satisfies ∠V1PcV2=∠V2PcV3=∠V3PcV1=π / 2. In addition, PcV1 is parallel to coordinate axis 306 of reference coordinate system 300, PcV2 is parallel to coordinate axis 305 of reference coordinate system 300, and PcV3 is parallel to coordinate axis 307 of reference coordinate system 300. Therefore, once vanishing points V1, V2, and V3 are determined, the relative orientation between the camera and the reference coordinate system is determined.
[0021] In addition, since the position and orientation of object 150 are determined in reference coordinate system 300, if the position of at least one vanishing point is changed, the relative orientation between the camera and the reference coordinate system changes accordingly, and therefore image 155 also changes. Details of the method for determining the relative position between the camera and the reference coordinate system will be described later.
[0022] FIG. 10 is a diagram illustrating the change in the image of the object 155 when the positions of the vanishing points V1 and V3 on the drawing plane 100 are changed.
[0023] Note that this example shows an example in which the positions of two vanishing points are changed, but it goes without saying that the same concept can be applied when the position of at least one vanishing point is changed, or when the positions of all three vanishing points are changed.
[0024] FIG. 10A shows the positions of the vanishing points V1 and V3 and an image 155a of the object 150 before the positions of the vanishing points V1 and V3 are changed.
[0025] 10B shows the positions of the vanishing points and an image 155b of object 150 after the positions of vanishing points V1 and V3 have been changed. The position of vanishing point V1 has been changed from V1a to V1b. Also, the position of vanishing point V3 has been changed from V3a to V3b. An image 155b of object 150 is shown after the positions of vanishing points V1 and V3 have been changed.
[0026] In this way, in response to the operator changing the position of at least one of the three vanishing points, the image of the object on the drawing plane 100 changes. By changing the position of at least one vanishing point, the operator can obtain an image of the object that looks as desired. Using the obtained image of the object as a model, the operator can easily draw a three-dimensional illustration that follows a perspective drawing method.
[0027] (3) Notation The line segment connecting point A and point B is written as "line segment AB." The length of line segment AB is written as "AB" or "length AB." Note that lines with no thickness and surfaces with no thickness are also included in the three-dimensional object.
[0028] (4) Position of camera Pc in three-point perspective When none of the three coordinate axes of the reference coordinate system 300 are parallel to the drawing plane 100, three vanishing points appear on the drawing plane 100. This state is called three-point perspective.
[0029] (5) Vanishing points in three-point perspective The following properties are known about the vanishing points of three-point perspective: As shown in Figure 6A, the three vanishing points on the drawing plane 100 based on the three coordinate axes of the reference coordinate system 300 are designated as V1, V2, and V3, respectively. The camera position is designated as Pc. The line that passes through the orthocenter H of triangle V1V2V3 and is perpendicular to the drawing plane 100 is designated as L. Pc exists on line L. Furthermore, ∠V1PcV2 = ∠V2PcV3 = ∠V3PcV1 = π / 2. Moreover, triangle V1V2V3 is always an acute triangle, and the orthocenter H is located inside triangle V1V2V3.
[0030] This characteristic can be used to determine the relative positional relationship between the drawing plane 100 and the camera Pc. Note that the relative attitude between the drawing plane 100 and the camera Pc is usually set in advance and is not changed.
[0031] Moreover, the lines PcV1, PcV2, and PcV3 are each parallel to one of the coordinate axes of the reference coordinate system 300. Therefore, it is possible to obtain the relative orientation between the camera Pc and the reference coordinate system 300. However, the relative position between the camera Pc and the reference coordinate system 300 is not determined by this condition alone.
[0032] (6) Position of camera Pc in two-point perspective If one of the coordinate axes of the reference coordinate system 300 is parallel to the drawing plane 100 and the remaining two are not parallel to the drawing plane 100, two vanishing points exist on the drawing plane 100 (the remaining one is located at infinity). This state is called two-point perspective.
[0033] (7) Vanishing points in two-point perspective The following properties are known about the vanishing points of two-point perspective: As shown in FIG. 6B, let V1 and V2 be the two vanishing points on the drawing plane 100, determined by two of the coordinate axes of the reference coordinate system 300. Let Pc be the camera position. Let M be a plane that contains the line segment V1V2 and is perpendicular to the drawing plane 100. Pc exists on plane M. Furthermore, ∠V1PcV2=π / 2. In other words, Pc exists on the circumference of a semicircle that exists on plane M and has the line segment V1V2 as its diameter (according to the circular angle theorem).
[0034] In this way, the relative positional relationship between the rendering plane 100 and the camera Pc cannot be obtained from only the vanishing point position. Therefore, in order to specify the positional relationship, some additional condition must be added.
[0035] If the relative positional relationship between the drawing plane 100 and the camera Pc can be obtained, the relative attitude between the camera Pc and the reference coordinate system 300 can be obtained because the lines PcV1 and PcV2 are each parallel to one of the coordinate axes of the reference coordinate system 300. However, similar to the case of three-point perspective, the relative position between the camera Pc and the reference coordinate system 300 cannot be determined.
[0036] (8) Methods of each embodiment In each embodiment, a method for changing the position and orientation of the camera Pc when the user performs an operation to change the vanishing point position will be described.
[0037] <Embodiment 1 (3-point perspective)> It is assumed that three vanishing points already exist on the rendering plane 100, and that the positions and orientations of the camera Pc and the reference coordinate system 300 have been obtained. From this state, it is assumed that the position of at least one vanishing point has been changed by a user operation or the like.
[0038] As described above, the relative orientation between the camera Pc and the reference coordinate system 300 can be obtained from the position of the vanishing point after the change, but the relative position is not determined. Therefore, the following conditions are set to obtain the relative position between the camera Pc and the reference coordinate system 300.
[0039] <Method A1: Using the reference coordinate system origin and sample points> A sample point is a point whose position coordinates are known in the reference coordinate system 300. The conditions are set as follows.
[0040] (Condition 1) The position of the point obtained by projecting the origin of the reference coordinate system onto the drawing plane 100 must not change before and after the vanishing point position is changed.
[0041] The setting of this condition 1 is illustrated in FIG. 6C. Pc_old is the camera position before the vanishing point position is changed. Pc_new is the camera position obtained from the vanishing point after the vanishing point position is changed. H_old and H_new are the feet of the perpendicular line from the camera Pc to the drawing plane 100 before and after the vanishing point position is changed, respectively. The point Po is obtained by projecting the origin O_old of the reference coordinate system before the vanishing point position is changed onto the drawing plane 100 using the camera Pc_old. The origin O_new of the reference coordinate system after the vanishing point position is on the straight line connecting the camera Pc_new and the point Po, but where on that line it is is unknown. In addition, the direction of each coordinate axis of the reference coordinate system 300 after the vanishing point position is changed is obtained as the direction of the straight line connecting Pc_new and each vanishing point. Since this alone is not enough as a condition, the positions of the sample points projected onto the drawing plane 100 are also used. A specific method of using this will be described later.
[0042] FIG. 1A is a diagram of a camera Pc, a drawing plane 100, a reference coordinate system 300, and a sample point S viewed from a direction parallel to the drawing plane 100. The camera position is Pc. The origin O and the sample point S of the reference coordinate system 300 are projected to points Po and Ps on the drawing plane 100, respectively, using a camera Pc located at point Pc. The vanishing point on the drawing plane 100 of the line connecting points O and S is Vs. In other words, the line PcVs is parallel to the line OS. Points Pc, O, Po, S, Ps, and Vs all exist on the same plane. Therefore, points Po, Ps, and Vs exist on the same line.
[0043] Note that the arrangement of points Po, Ps, and Vs may be such that point Ps and vanishing point Vs are located on opposite sides of point Po, as shown in FIG. 1B. However, points Po and Ps are always located on the same side of vanishing point Vs.
[0044] The distance from the camera Pc to the drawing plane 100 is arbitrary. To be more specific, it is as follows. The content drawn on the drawing plane 100 is presented to the user as an image, and the user performs operations such as changing the vanishing point position on the image. Meanwhile, the camera Pc and objects exist in a virtual three-dimensional space. The unit of length on the image and the unit of length in the three-dimensional space are independent of each other and can be set arbitrarily. For example, the length on the image may be expressed in pixels, and the unit of length in the three-dimensional space may be expressed in meters. It is also possible to arbitrarily determine how many meters one pixel corresponds to, and changing this setting changes the distance from the camera Pc to the drawing plane 100.
[0045] Therefore, for example, it is possible to arrange the drawing plane 100 as shown in FIG. 1C instead of FIG. 1A. However, it is desirable to have consistency before and after the change in the vanishing point position. For example, if the conversion ratio between pixels and meters given as an example above is 1 pixel = k meters, it is desirable to make the value of k the same before and after the change in the vanishing point position. FIG. 6C shows the positions and attitudes of the camera Pc and the reference coordinate system 300 before and after the change in the vanishing point position, based on the drawing plane 100. For example, if the position of one of the three vanishing points is changed, the positions of the remaining two vanishing points on the drawing plane 100 in FIG. 6C do not change. If the value of k is made the same before and after the change in the vanishing point position, 1 meter in the reference coordinate system 300 before the change in the vanishing point position and 1 meter in the reference coordinate system 300 after the change in the vanishing point position will be the same length on the diagram in FIG. 6C, making the explanation easier. Therefore, in the following explanation, it is assumed that the value of k is the same before and after the change in the vanishing point position. The value of k is arbitrary within the range of k>0. Furthermore, in any of the methods of the present invention described below, the results (the relative position and orientation between Pc_new and the reference coordinate system 300) obtained will be the same regardless of the value of k.
[0046] 2A shows points Po, Ps, and Vs on the drawing plane 100. The positions of points Ps and Vs before the vanishing point position is changed are Ps_old and Vs_old, respectively. The positions of points Ps and Vs after the vanishing point position is changed are Ps_new and Vs_new, respectively. The position of point Po does not change before and after the vanishing point position is changed due to the above-mentioned condition settings.
[0047] The points Po, Ps_old, and vanishing point Vs_old are known. The position of the vanishing point Vs_new is obtained as follows. The relative orientation between the camera Pc and the reference coordinate system 300 after the vanishing point position is changed is obtained from the three vanishing points V1, V2, and V3 on the drawing plane 100 after the vanishing point position is changed. Since the position of the sample point S in the reference coordinate system 300 is known, the direction of the straight line OS in the camera coordinate system is obtained using this. As in FIG. 1A, the intersection of the straight line that passes through the point Pc and is parallel to the straight line OS and the drawing plane 100 is set as Vs_new. In this way, even if the relative position between the camera Pc and the reference coordinate system 300 is unknown, the relative orientation can be specified, so the vanishing point Vs_new can be obtained. The point Ps_new exists on the half line Vs_newPo (which extends to infinity on the Po side). The position of the point Ps_new is determined by the following method.
[0048] <Method B1> As shown in FIG. 2B, the foot of the perpendicular line drawn from point Ps_old to half line Vs_newPo is defined as Ps_new. In other words, the position of Ps_new is determined so that ∠Ps_oldPs_newPo=π / 2. In this method, point Ps_new is the point on line PoVs_new that is closest to point Ps_old. Therefore, the change in the position of point Ps on the rendering plane 100 can be minimized.
[0049] However, since PoPs_new≦PoPs_old, there is a problem that, as shown in FIG. 2C, each time steps 11, 12, and 13 are repeated, point Ps approaches point Po.
[0050] <Method B2> As shown in FIG. 2D, the position of Ps_new is determined so that PoPs_old=PoPs_new. In this method, the length PoPs does not change even if the process is repeated, so the problem of FIG. 2C of method B1 does not occur. However, as shown in FIG. 2E, if Vs_new gets too close to Po, the point Ps_new has to be taken on a half line extending Vs_newPo toward the Po side, resulting in a positional relationship as shown in FIG. 1B. Although such an arrangement is geometrically correct, when the arrangement is changed from the arrangement as shown in FIG. 1A to the arrangement as shown in FIG. 1B, the attitude of the reference coordinate system 300 with respect to the camera Pc changes abruptly. This means that the attitude of the camera Pc changes abruptly when the reference coordinate system 300 is used as a reference, which makes it difficult for the user to operate.
[0051] Note that this technique involves a transformation in which, when a user changes the vanishing point position on an image and then returns the vanishing point position to its original state, the position and / or orientation of the camera Pc returns to the state it was in before the user changed the vanishing point position on the image.
[0052] To put it generally, this method includes a transformation in which the change in the state of the camera Pc before and after the movement of the vanishing point is reversible. As long as the method includes a transformation that is reversible, it is a method that does not cause inconvenience in practical use and can be said to be a fully usable method. It goes without saying that such a method that includes a transformation that is reversible is a technology that falls within the technical scope defined in the claims.
[0053] <Method B3> The position of Ps_new is determined so that PoPs_old / PoVs_old=PoPs_new / PoVs_new.
[0054] As described above, the position of Ps_new is determined using one of methods B1, B2, or B3. Next, the new position O_new of the reference coordinate system origin O in the camera coordinate system is calculated using point Po and point Ps_new (Figure 3). Since it is already known that O_new exists on the line Pc_newPo, the position on that line is calculated as follows.
[0055] The origin and sample points of the reference coordinate system 300 after the vanishing point position is changed are O_new and S_new, respectively. First, the length of O_newS' in the figure is found. Point S' is a point on the line Pc_newPs_new, and the line segment O_newS' is parallel to the line segment PoPs_new. As described above, the orientation of the reference coordinate system 300 with respect to the camera coordinate system is found based on the positions of the three vanishing points. Since the position coordinates of the sample points in the reference coordinate system 300 are known, the direction of the line O_newS_new with respect to the camera coordinate system is found. Furthermore, since the direction of the line segment S'S_new is the same as the direction of the line PcPs_new, the direction of the line segment S'S_new in the camera coordinate system is known. Furthermore, since the line segment O_newS' is parallel to the line segment PoPs_new, the direction of the line segment O_newS' in the camera coordinate system is known. Therefore, when focusing on △O_newS'S_new, the directions of its three sides are known, and the angles of its three angles are also known. In addition, since the position coordinates of the sample points in the reference coordinate system 300 are known, the length of the side O_newS_new is also known. In general, if the angles of the three angles of a triangle and the length of one side are known, the lengths of the remaining two sides can be found. Therefore, the length of the side O_newS' can be found. Next, find the length Pc_newO_new. Since △Pc_newPoPs_new and △PcO_newS' are similar, Pc_newPo:PoPs_new=Pc_newO_new:O_newS' Therefore, Pc_newO_new=O_newS'*(Pc_newPo / PoPs_new) gives Pc_newO_new.
[0056] This provides the position of the reference coordinate system 300 in the camera coordinate system. The position and orientation of the camera coordinate system are determined relative to the reference coordinate system 300. Since the position and orientation of the reference coordinate system 300 are known, the position and orientation of the camera Pc are specified.
[0057] <Methods that use only the reference coordinate system origin (Methods A2, A3, A4, A5)> In the above-mentioned method A1, the reference coordinate system origin and sample points are used, but in the following methods (A2, A3, A4), no sample points are used and only the reference coordinate system origin is used. In each of the methods A2, A3, and A4, the following conditions are set, similarly to the method A1. (Condition 1) The position of the point obtained by projecting the origin of the reference coordinate system onto the drawing plane 100 must not change before and after the vanishing point position is changed. In addition, the following conditions are set: These added conditions identify the position of O_new on the line Pc_newPo.
[0058] <Method A2> As shown in Figure 7A, PcO / PcPo is set to remain unchanged before and after the vanishing point position is changed. In other words, Pc_oldO_old / Pc_oldPo = Pc_newO_new / Pc_newPo is set.
[0059] <Method A3> As shown in Fig. 7B, PcO is set so as to remain unchanged before and after the vanishing point position is changed. In other words, Pc_oldO_old = Pc_newO_new is set.
[0060] <Method A4> As shown in FIG. 7C, the magnitude of the component of PcO in the camera optical axis direction (in other words, the component in the direction perpendicular to the rendering plane 100) is set to be constant before and after the vanishing point position is changed.
[0061] <Method A5> The area of a given three-dimensional object projected onto the drawing plane 100 remains unchanged before and after the vanishing point position is changed. When technique A2 is used, the size of an object to be rendered that exists near the origin of the reference coordinate system and is rendered on the rendering plane 100 hardly changes before and after the vanishing point position is changed.
[0062] When using methods A3 and A4, for example, if the vanishing point is moved to enlarge the triangle formed by the three vanishing points, the size of the object to be rendered near the origin of the reference coordinate system on the rendering plane 100 also increases.
[0063] Method A3 has a side effect that the size of the rendered object increases when the object is moved away from the camera Pc due to the movement of the camera Pc, etc. Method A4 does not have this side effect.
[0064] <Setting the reference coordinate system 300> The orientation of the reference coordinate system 300 may be, for example, as follows (but is not limited to the following): (1) World coordinate system (2) Object coordinate system The origin position of the reference coordinate system 300 may be, for example, the following (but is not limited to the following): (1) World coordinate system origin (2) Object coordinate system origin The world coordinate system is the most basic coordinate system that is set in advance in the three-dimensional space to be rendered. The object coordinate system is a coordinate system that is set in advance for "a certain object that exists in three-dimensional space."
[0065] There is no particular limitation on the combination of the position and orientation of the reference coordinate system 300. For example, the origin of the object may be used as the origin of the reference coordinate system 300, and the orientation of the world coordinate system may be used as the orientation of the reference coordinate system 300.
[0066] <Position of sample point in reference coordinate system 300> The positions of the sample points may be set on the coordinate axes of the reference coordinate system 300. This makes it possible for the vanishing point Vs to coincide with any of the vanishing points V1, V2, and V3, eliminating the need for calculations to determine the position of Vs.
[0067] Also, for example, the coordinates of the sample point in the reference coordinate system 300 may always be the same, such as (100,0,0), or the coordinate values may be changed for each processing. For example, the object origin may be used as the origin of the reference coordinate system 300, and the coordinates of the sample point may be changed according to the distance between the camera Pc and the object. If the distance between the camera Pc and the object is close, the distance between the sample point and the origin may be made small, and if the distance is far, the distance between the sample point and the origin may be made large.
[0068] However, when the coordinates of the sample point in the reference coordinate system 300 are set to a fixed value such as (100,0,0), undesirable behavior may occur if the position of the vanishing point corresponding to the direction (100,0,0) is significantly changed on the rendering plane 100. For example, when the above-mentioned method B1 or method B2 is used, if the position of the vanishing point Vs changes significantly and the length of PoVs_new becomes shorter, the position of point Ps_new cannot be taken on the half line Vs_newPo. To correct the above problem, the following method may be used.
[0069] <Method C1> The coordinates of the sample point in the reference coordinate system 300 are selected from three points: (100,0,0), (0,100,0), and (0,0,100). The directions of these three points correspond to vanishing points V1, V2, and V3, respectively, on the rendering plane 100. The sample point corresponding to the vanishing point with the least positional change on the rendering plane 100 is used.
[0070] <Method C2> The coordinates of the sample point S in the reference coordinate system 300 are determined from the following conditions. (Condition C2-1) It is at a predetermined distance d from the origin of the reference coordinate system (for example, d=100). (Condition C2-2) The direction from Po to Ps on the rendering plane 100 does not change before and after the vanishing point position is changed. The coordinates of the sample points that satisfy these conditions can be obtained as follows.
[0071] The matrix M_old represents the orientation of the reference coordinate system 300 in the camera coordinate system before the vanishing point position is changed. The elements of the matrix are arranged such that each row of M_old is a vector that represents each coordinate axis unit vector of the reference coordinate system 300 in the camera coordinate system. Similarly, the matrix M_new represents the orientation of the reference coordinate system 300 in the camera coordinate system after the vanishing point position is changed. The matrix M_rot representing the rotation from M_old to M_new is found by the following equation. M_rot=M_old -1 M_new
[0072] M_rot can be considered as a rotation around a certain axis. This rotation axis vector is called v_axis. There are several ways to obtain v_axis from M_rot. For example, M_rot can be converted to a quaternion and the imaginary part of the quaternion can be normalized. Since the obtained v_axis is a vector expressed in the camera coordinate system, v_axis can be converted to a row vector and used as M_old -1 (or M_new -1 ) on the right side to convert it into a vector v_ref expressed in the reference coordinate system 300. v_ref=v_axisM_old -1 or v_ref=v_axisM_new -1 The obtained v_ref is multiplied by d to obtain the coordinates of the sample point S in the reference coordinate system 300.
[0073] <Method for changing the position of the point Po projected onto the drawing plane 100> In the methods described so far, the position and / or orientation of the camera Pc is determined by setting the condition that "the position of the point Po projected onto the drawing plane 100 by the origin O of the reference coordinate system 300 does not change before and after the vanishing point position is changed."
[0074] As an alternative method shown in Fig. 8A, a method using different condition settings will be described. In this method, the position of the point Po on the rendering plane 100 also changes as the vanishing point position is changed. The position of the point Po after the vanishing point position change is found based on the vanishing point position after the vanishing point position change.
[0075] Let V1, V2, and V3 be the three vanishing points on the drawing plane 100. Let Va be the vector going from V1 to V2. Let Vb be the vector going from V1 to V3. As mentioned above, triangle V1V2V3 is an acute triangle, so Va and Vb are not parallel. The position of any point P on the drawing plane 100 can be expressed as a linear combination of vectors Va and Vb as in the following equation. P=V1+KaVa+KbVb
[0076] If Ka and Kb are given, the position of point P is uniquely determined. Conversely, if the position of point P is given, the values of Ka and Kb are uniquely determined. The latter is derived as follows.
[0077] Let Na be a unit vector on the drawing plane 100 that is perpendicular to Va. Let Nb be a unit vector on the drawing plane 100 that is perpendicular to Vb. Using the fact that Va·Na=0 and Vb·Nb=0, Ka and Kb can be found as follows. Note that "·" represents an inner product. Ka = ((P-V1)·Nb) / (Va·Nb) Kb = ((P-V1)·Na) / (Vb·Na) Using this, the position of point Po after the vanishing point position is changed is determined using the following method. Po, V1, Va, and Vb before the change in vanishing point position are defined as Po_old, V1_old, Va_old, and Vb_old, respectively. Po, V1, Va, and Vb after the vanishing point position change are defined as Po_new, V1_new, Va_new, and Vb_new, respectively. Po_old=V1_old+KaVa_old+KbVb_old Find Ka and Kb that satisfy the following equation. Find Po_new using the following formula. Po_new=V1_new+KaVa_new+KbVb_new
[0078] The origin O_new of the reference coordinate system after the vanishing point position has been changed exists on the line connecting the camera Pc_new and the point Po_new, but where on that line it exists is unknown.
[0079] The process for determining the reference coordinate system origin O_new, which will be described hereinafter, is almost the same as the process when the condition "the position of the point Po does not change before and after the vanishing point position is changed" is set. Therefore, it should be noted that only the processes that are different will be described. In method B1, as shown in FIG. 8B, the foot of a perpendicular line drawn from point Ps_old to half line Vs_newPo_new is set to Ps_new. Method B2 determines the position of Ps_new so that Po_oldPs_old=Po_newPs_new, as shown in FIG. 8C.
[0080] Method B3 determines the position of Ps_new so that Po_oldPs_old / Po_oldVs_old=Po_newPs_new / Po_newVs_new. Po in Figure 3 corresponds to Po_new.
[0081] Method A2 prevents PcO / PcPo from changing before and after the vanishing point position change, as shown in Fig. 8D. That is, Pc_oldO_old / Pc_oldPo_old = Pc_newO_new / Pc_newPo_new.
[0082] Method A3 keeps PcO unchanged before and after the vanishing point position change, as shown in Fig. 8E. That is, Pc_oldO_old = Pc_newO_new.
[0083] Technique A4 prevents the magnitude of the component of PcO in the camera optical axis direction (in other words, the component in the direction perpendicular to the rendering plane 100) from changing before and after the vanishing point position is changed, as shown in FIG. 8F. <Vanishing point placement in three-point perspective> As mentioned above, it is known that the triangle V1V2V3, whose three vertices are the vanishing points V1, V2, and V3 in three-point perspective, is always an acute triangle. In other words, it is theoretically impossible for the triangle V1V2V3 to be an obtuse triangle. Therefore, the following measures can be considered. (Variation 1) In a user interface that allows triangle V1V2V3 to become an obtuse triangle, when triangle V1V2V3 becomes an obtuse triangle, in order to prevent the calculation for determining the position and / or orientation of the camera from failing, the position and / or orientation of the camera Pc is not updated. After that, when triangle V1V2V3 returns to an acute triangle at the instruction of the operator, the update of the position and / or orientation of the camera Pc is resumed. (Variation 2) Another variation is to provide a user interface that limits the range of movement of the three vanishing points so that the triangle V1, V2, and V3 do not become an obtuse triangle. Note that such a user interface setting limits the range of movement of the vanishing points, which may cause the user to feel uncomfortable, so it is preferable to adopt Variation 1 above.
[0084] <Embodiment 2 (2-point perspective)> This section describes how to deal with the situation when the state after changing the vanishing point position is two-point perspective. As mentioned above, in a two-point perspective state, the relative positional relationship between the drawing plane 100 and the camera Pc cannot be obtained from the vanishing point position alone. Therefore, this problem is solved by using the state of the camera Pc before the vanishing point position is changed. Note that the state before the vanishing point position is changed can be either two-point perspective or three-point perspective.
[0085] Let the foot of the perpendicular line drawn from camera Pc to the rendering plane 100 be point H. Point H is a point on the line segment V1V2. Let point H before and after the change in vanishing point position be point H_old and point H_new, respectively. Let the vanishing points on the rendering plane 100 after the change in vanishing point position be V1_new and V2_new. Point H_new exists on the line segment V1_newV2_new. Therefore, point H_new is obtained using the following method.
[0086] <Method D1> 4A, a point H_new is set as the foot of a perpendicular line drawn from point H_old to line segment V1_newV2_new on the drawing plane 100. However, this method has the following problems.
[0087] (a) Point H approaches the vanishing point. For example, as shown in FIG. 4B, when the position of V1 does not change and the position of V2 changes successively from process 21 to process 22 to process 23, point H approaches V1. Then, camera Pc approaches the drawing plane 100, the angle of view of camera Pc becomes large, and the drawn image becomes distorted, which is not good.
[0088] (b) In cases such as those shown in Figures 4C and 4D, it is not possible to draw a perpendicular line from point H_old to line segment V1_newV2_new.
[0089] <Method D2> The distance between the vanishing point and point H is maintained as in FIG. 4E. Of V1 and V2, the one with the least change in position on the rendering plane 100 is designated Vm, and the other is designated Vn. Vm before and after the change in vanishing point position are designated Vm_old and Vm_new, respectively. Vn after the change in vanishing point position is designated Vn_new. Vm_oldH_old = Vm_newH_new However, this method has the following problems.
[0090] (c) If the length V1_newV2_new becomes too short, as in Figure 4F, it becomes impossible to take point H_new on the line segment V1_newV2_new.
[0091] <Method D3> Maintain the ratio of the distance between the vanishing point and point H as follows: The positions of V1 and V2 before the position change are V1_old and V2_old, respectively, and the positions of V1 and V2 after the position change are V1_new and V2_new, respectively. V1_oldH_old:H_oldV2_old=V1_newH_new:H_newV2_new Define H_new so that
[0092] As described above, Pc exists on the circumference of a semicircle with V1V2 as a diameter on a plane that includes the line segment V1V2 and is perpendicular to the rendering plane 100. Therefore, once H_new is determined, the relative positional relationship between the rendering plane 100 and the camera Pc can be obtained. Thereafter, the position and orientation of the camera coordinate system with respect to the reference coordinate system 300 are obtained using a technique similar to that used in the three-point perspective view.
[0093] <Axial direction inversion> The following points can be noted as characteristics of a case where a vanishing point exists at infinity. When the coordinate axes of the reference coordinate system 300 are parallel to the drawing plane 100, the vanishing points of those coordinate axes exist at infinity in two directions corresponding to the positive and negative directions of those coordinate axes. Therefore, depending on the specifications of the user interface for the vanishing point movement operation, when the vanishing point of a certain coordinate axis is moved to infinity, the vanishing point of that coordinate axis may appear on the opposite side.
[0094] In this case, from the viewpoint of geometric continuity, the vanishing vanishing point and the emerging vanishing point correspond to opposite sides of the coordinate axis. For example, if a vanishing point corresponding to the positive direction of the X-axis of the reference coordinate system 300 is moved to infinity and disappeared, a vanishing point corresponding to the negative direction of the X-axis will appear on the opposite side.
[0095] However, this behavior is not necessarily desirable for users, so it is necessary to make a vanishing point appear on the same side as the vanishing point. Therefore, the following method is used.
[0096] <Method E1> When you start an operation to move a vanishing point (such as dragging the mouse), the positive and negative axial directions of each vanishing point are recorded, and while the operation continues (for example, while you are dragging the mouse), the recorded positive and negative directions are used when a vanishing point disappears at infinity and then reappears.
[0097] <Method of substituting another point for the origin O> Instead of the origin O of the reference coordinate system 300, a point Q whose position coordinates in the reference coordinate system 300 are known may be used. In this case, a new reference coordinate system 301 that satisfies the following two conditions can be defined and used (FIG. 5). (Condition q1) Point Q is the origin. (Condition q2) The orientation of each coordinate axis is the same as that of each coordinate axis of the original reference coordinate system 300.
[0098] As described above, the group of parallel straight lines have the same vanishing point. Therefore, the position of the vanishing point of each coordinate axis of the new reference coordinate system 301 is the same as the position of the vanishing point of each coordinate axis of the original reference coordinate system 300. Therefore, by using point Q and the new reference coordinate system 301, the method of using the origin of the reference coordinate system 300 described above can be applied as is.
[0099] FIG. 11 is a diagram showing the hardware configuration of the embodiment.
[0100] The hardware configuration of the embodiment includes a CPU 4001, a ROM 4002 in which the program and data of the embodiment can be stored, a RAM 4003, a network interface 4005, an input interface 4006, a display interface 4007, and an external memory interface 4008. These pieces of hardware are connected to each other by a bus 4004.
[0101] The network interface 4005 is connected to a network 4015. The network 4015 may be a wired LAN, a wireless LAN, the Internet, a telephone network, or the like. The input interface 4006 is connected to an input unit 4016. The display interface 4007 is connected to a display unit 4017. The display unit 4017 may be realized by a plurality of display devices. The external memory interface 4008 is connected to a storage medium 4018. The storage medium 4018 may be a RAM, a ROM, a CD-ROM, a DVD-ROM, a hard disk, a memory card, a USB memory, or the like.
[0102] The steps of the method or program of the illustrated embodiment may be rearranged as long as there is no contradiction. Furthermore, one illustrated step may be executed multiple times at different times as long as there is no contradiction. Furthermore, multiple steps may be executed simultaneously as long as there is no contradiction. Furthermore, not all steps are essential, and some steps may not exist or may not be executed as long as there is no contradiction.
[0103] The above points also apply to the constituent elements of the method defined in the claims. That is, the order of the constituent elements can be changed as long as there is no contradiction. Also, multiple constituent elements can be implemented simultaneously as long as there is no contradiction. The implementation of these constituent elements also falls within the technical scope defined in the claims.
[0104] Also, each procedure may be executed by an operating system or hardware. Also, the program may be distributed in a state stored in a non-transitory medium.
[0105] The program and method for realizing the above-described embodiment may be executed by a computer having the hardware configuration shown in Fig. 11. That is, the program of the embodiment may be implemented as a method for causing a computer to execute the program. The program may be stored in the storage medium 4018, the ROM 4002, or the RAM 4003. Each embodiment may be implemented as a hardware device having a program installed thereon. [Explanation of symbols]
[0106] 4004 Bus 4005 Network Interface 4006 Input Interface 4007 Display Interface 4008 External Memory Interface 4015 Network 4016 Input section 4017 Display section 4018 Storage medium
Claims
1. A method for generating an image of a three-dimensional object by projecting a three-dimensional object existing in a virtual three-dimensional space onto a drawing plane by perspective projection using a virtual camera disposed in the three-dimensional space, the method comprising: A plurality of vanishing points corresponding to infinity on the coordinate axes of a known Cartesian coordinate system existing in the three-dimensional space are present on a drawing plane, and in response to a change in the position of at least one of the plurality of vanishing points, a position and / or a posture of the virtual camera is updated; generating an image of the three-dimensional object based on the updated position and / or orientation of the virtual camera; having The updating step comprises: modifying the position and / or orientation of the virtual camera by applying a process having a property that, when the position of the modified vanishing point is returned to the position of the vanishing point before the modification of the position of at least one of the plurality of vanishing points, the position and / or orientation of the updated virtual camera is returned to the position and / or orientation of the virtual camera before the modification of the position of at least one of the plurality of vanishing points. method.
2. updating a position and / or an orientation of the virtual camera based on a position of at least one predetermined point in the Cartesian coordinate system projected onto the drawing plane by the virtual camera; The method of claim 1.
3. maintaining a position of a point where one of the predetermined points is projected onto the drawing plane by the virtual camera unchanged before and after the change in the position of at least one of the plurality of vanishing points; The method of claim 2 further comprising:
4. determining a position of a point at which one of the predetermined points is projected onto the drawing plane by the virtual camera after the change in position of at least one of the plurality of vanishing points based on the positions of the plurality of vanishing points after the change in position of at least one of the plurality of vanishing points; The method of claim 2 further comprising:
5. There are two predetermined points in the Cartesian coordinate system, The updating step comprises: a ratio between a length from a point Po_old, obtained by projecting one of the two specified points onto the drawing plane, to a point Ps_old, obtained by projecting the other of the two specified points onto the drawing plane, and a length from the point Po_old to a vanishing point Vs_old on the drawing plane corresponding to infinity on a straight line connecting the two specified points, before changing the position of at least one of the multiple vanishing points, and a ratio between a length from a point Po_new, obtained by projecting one of the two specified points onto the drawing plane, to a point Ps_new, obtained by projecting the other of the two specified points onto the drawing plane, and a length from the point Po_new to a vanishing point Vs_new on the drawing plane corresponding to infinity on a straight line connecting the two specified points, after changing the position of at least one of the multiple vanishing points, are made equal; The method of claim 2 further comprising:
6. There are two predetermined points in the Cartesian coordinate system, The updating step comprises: a length from a point Po_old, obtained by projecting one of the two specified points onto the drawing plane, to a point Ps_old, obtained by projecting the other of the two specified points onto the drawing plane, before the change in the position of at least one of the plurality of vanishing points, is equal to a length from a point Po_new, obtained by projecting one of the two specified points onto the drawing plane, to a point Ps_new, obtained by projecting the other of the two specified points onto the drawing plane, after the change in the position of at least one of the plurality of vanishing points; The method of claim 2 further comprising:
7. There is one predetermined point O in the orthogonal coordinate system, The updating step comprises: determining the position Pc_new such that a length from the position Pc_old of the virtual camera to the point O before changing the position of at least one of the plurality of vanishing points is equal to a length from the position Pc_new of the virtual camera to the point O after changing the position of at least one of the plurality of vanishing points; The method of claim 2 further comprising:
8. There is one predetermined point O in the orthogonal coordinate system, The updating step comprises: determining the position Pc_new such that a component of a length from the position Pc_new of the virtual camera to the point O before changing the position of at least one of the plurality of vanishing points in the optical axis direction of the virtual camera is equal to a component of a length from the position Pc_new of the virtual camera to the point O after changing the position of at least one of the plurality of vanishing points; The method of claim 2 further comprising:
9. There is one predetermined point O in the orthogonal coordinate system, The updating step comprises: determining the position Pc_new such that a ratio of a length from the position Pc_old of the virtual camera to the point O and a length from the position Pc_old to a point Po_old at which the point O is projected by the virtual camera onto the drawing plane before changing the position of at least one of the plurality of vanishing points is equal to a ratio of a length from the position Pc_new of the virtual camera to the point O and a length from the position Pc_new to a point Po_new at which the point O is projected by the virtual camera onto the drawing plane after changing the position of at least one of the plurality of vanishing points; The method of claim 2 further comprising:
10. There are two predetermined points in the orthogonal coordinate system.
3. The method of claim 2, wherein one of the two predetermined points is the origin of the Cartesian coordinate system, and the other of the two predetermined points is a point lying on any of three orthogonal axes of the Cartesian coordinate system.
11. There are two predetermined points in the orthogonal coordinate system. The method according to claim 2 , wherein the two specified points are two points whose direction from one to the other in the coordinate system of the virtual camera does not change before and after a change in the position of at least one of the vanishing points.
12. The updating step comprises: If the number of vanishing points on the drawing plane after changing the position of at least one of the plurality of vanishing points is two, on the drawing plane, the virtual camera after the change in the position of at least one of the plurality of vanishing points is located on a perpendicular line erected on the drawing plane from the foot of a perpendicular line drawn from the virtual camera to the drawing plane before the change in the position of at least one of the plurality of vanishing points, to a line segment connecting two vanishing points after the change in the position of at least one of the plurality of vanishing points; The method of claim 1 further comprising:
13. The updating step comprises: If the number of vanishing points on the drawing plane after changing the position of at least one of the plurality of vanishing points is two, Of the two vanishing points, the one whose position has changed less on the rendering plane is designated Vm, and the other is designated Vn, Vm before and after the change in position of at least one of the multiple vanishing points is designated Vm_old and Vm_new, respectively, Vn after the change in position of at least one of the multiple vanishing points is designated Vn_new, the foot of a perpendicular line drawn from the virtual camera to the rendering plane before the change in position of at least one of the multiple vanishing points is designated H_old, and a point H_new on a line segment Vm_newVn_new, Vm_newH_new = Vm_oldH_old the virtual camera after changing the position of at least one of the plurality of vanishing points is located on a perpendicular line erected from H_new to the drawing plane, the perpendicular line being determined so as to satisfy the following condition: The method of claim 1 further comprising:
14. The updating step comprises: If the number of vanishing points on the drawing plane after changing the position of at least one of the plurality of vanishing points is two, The two vanishing points are V1 and V2. The positions of the two vanishing points V1, V2 before the change in the position of at least one of the multiple vanishing points are defined as V1_old and V2_old, respectively, the positions of the two vanishing points V1, V2 after the change in the position of at least one of the multiple vanishing points are defined as V1_new and V2_new, respectively, the foot of a perpendicular line drawn from the virtual camera to the drawing plane before the change in the position of at least one of the multiple vanishing points is defined as H_old, and a point H_new on a line segment V1_newV2_new, V1_oldH_old:H_oldV2_old=V1_newH_new:H_newV2_new the virtual camera after changing the position of at least one of the plurality of vanishing points is located on a perpendicular line erected from H_new to the drawing plane, the perpendicular line being determined so as to satisfy the following condition: The method of claim 1 further comprising:
15. The updating step comprises: When one of a plurality of vanishing points moves to infinity and the vanishing point once disappears and then reappears, a vanishing point corresponding to the same side of the coordinate axis of the orthogonal coordinate system as the vanishing point reappears; The method of claim 1 further comprising:
16. The updating step comprises: When a triangle formed by three vanishing points in three-point perspective becomes an obtuse triangle, the position and / or orientation of the virtual camera is not updated. The method of claim 1.
17. A program causing a computer to execute the method according to any one of claims 1 to 16.
Citation Information
Patent Citations
Perspective generation supporting method
JP1997147149A
Model arrangement program, model arrangement method and model arrangement device
JP2018180803A
How to display the perspective ruler
JP7305241B1