|
I had some discussions with the submitter of the issue on the comment list, which resulted in a proposed resolution. I will search for it.
I just realized that I entered my comment to the wrong issue. It was for
As for this issue: I'm not a 3D expert, but I think the descriptions are meaningful. But that's,my personal opinion. I think the problem is that "lathe object" is not defined anywhere, so what does it mean for it to be "open" or "closed"? Also, reference to "smaller values" and "bigger values" is vague. Also when we say "take into account" is loose language. Also terms like "extruded", "back plane", etc.
Maybe we just need an intro paragraph that says "A lathe objected is used to ..... , etc., When it does X this is called "extrusion". A lathe is open when... and closed when.... A back plane is a...that.... When a back plane is present then... In other words, clarify the concepts we're working with and then state the requirements. Of course, if there is an external reference we can cite that explains these concepts, that would be fine as well. Some suggestion (from our 3D graphic expert Armin Le Grand):
1. change 'lathe' to '3D rotation object' (in the full specification) 2. change ''extrude' to '3D extrude object' (in the full specification) 3. What "open" and "closed" means should become clear in 15.22.8 if the changes 1. and 2. have been applied. 4. The terms "smaller values" and "bigger values" refer the 360 angle mentioned before. We may clarify that by saying "values smaller than 360" and "value larger than 360". 5. The description of 9.4.5 Extrude may be amended as follows: The <dr3d:extrude> element represents a three-dimensional extrude object based on the given polygon. The 3D geometry is formed by extruding the polygon perpendicular to the polygon by a depth (see <dr3d:depth>, 15.22.6), thus creating a front plane, a back plane and side planes. The side planes are formed by connecting all corresponding single edges of the front and back plane. When no depth is given, the polygon forms a plane without depth. The existence of a front plane depends on <dr3d:close-front> (15.22.9). The existence of a back plane depends on <dr3d:close-back> (15.22.9). The size of the back plane can be relative to the size of the front plane when <dr3d:back-scale> is used. 6. The description of 9.4.5 Rotate may be amended as follows: The <dr3d:rotate> element represents a three-dimensional rotation shape based on the given polygon. The 3D geometry is formed by rotating the polygon around it's Y-Axis by a number of steps (see <dr3d:horizontal-segments> 15.22.1). The side planes are formed by connecting all corresponding single edges of a neighbored pair of rotated polygons. By default, the rotation uses a full rotation (360 degrees, see <dr3d:end-angle> 15.22.8). In that case the 3D geometry is implicitly closed and no front plane or back plane is created. If the rotation is different, a front plane is created using the first, unrotated polygon and a back plane is created using the last rotated polygon. The existence of a front plane also depends on <dr3d:close-front> (15.22.9) and back plane on <dr3d:close-back> (15.22.9). The size of the back plane can be relative to the size of the front plane when <dr3d:back-scale> is used. Correction will appear in OpenDocument-v1.2-part-1-cd03-rev03.
THESE COMMENTS ALL APPLY TO THE ERRATA CD04 STATEMENT OF CORRECTIONS FOR THIS DEFECT-REPORT ITEM.
In the correction to 9.4.5 Extrude, the mentions of <dr3d:depth>, <dr3d:close-front>, <dr3d:close-back>, and <dr3d:back-scale> should be for attributes (e.g., dr3d:depth), not elements. The reference to dr3d:close-back should be to (15.22.10), not (15.22.9). A reference for dr3d:back-scale is (15.22.5). In the correction to 9.4.6 Rotate, the mentions of <dr3d:horizontal-segments>, <dr3d:end-angle>, <dr3d:close-front>, <dr3d:close-back>, and <dr3d:back-scale> should be for attributes, not elements. The phrase "around it's Y-Axis" should be "around its Y-Axis" (no apostrophe in "its"). The reference to dr3d:close-back should be to (15.22.10), not 15.22.9. A reference for dr3d:back-scale is (15.22.5). *** ISSUE *** In the 9.4.5 and 9.4.6 descriptions, speaking of the front and back planes as existing or not is peculiar. The plane is always there. I think the question is whether or not the polygon on the front or back plane is considered to have an opaque interior surface or not. It would appear that there is no control over the opacity of the side planes. Or is the open-/closed-distinction something else entirely? *** ISSUE *** Nowhere is it described what the direction of rotation is with respect to the assumed position of a viewer in the coordinate system of the rotated object. It is clear that rotation is in only one direction (the angles must be non-negative numbers). It is not stated in 9.4.6 how the Y-Axis that the object is rotated about is determined. (In searching for where rotation might be defined further, I note that the interaction of rotation with extrusion and other impact of section 9.5 is not accounted for either.) *** iSSUE *** *** ISSUE *** The description of dr3d:back-scale does not specify that it is applicable to <dr3d:rotate>. If it *is* applicable, how is the change from front scale to back scale adapted to in any intermediate steps of the polygon rotation? There is still a mention of lathe objects in 15.22.5. In the correction to 15.22.8 End Angle, the replacement leaves the final (Example) paragraph, with its mention of a lathe object, unchanged. *** ISSUE *** In 15.22.9, with or without this change, the wording suggest that the dr3d:close-front="true" causes the front to be open, and any other case, including absence of the attribute, causes the front to be closed. This seems very contradictory and not helpful in undrstanding the mentions of this attribute in the replacements for 9.4.5 and 9.4.6. This should be corrected to state what the true and false cases are and which is the default when the attribute is absent. *** ISSUE *** In 15.22.10 there is the same problem concerning the settings and defaults as for 15.22.9. Also, an ellipse is not a great example. The question is, what is the difference between what is visible through the front and/or back when it is open versus when it is closed? @Dennis: Thanks for the detailed review. Based on your feed-back, I have changed the following so far:
1) Corrected section numbers and removed brackets on attributes from 9.4.5 Extrude & 9.4.6 Rotate. 2) Replaced 'lathe object' with '3D rotation object' in 15.22.5 End Angle. Updated the resolution in the issue accordingly. Still I have some questions to our graphic experts that will return on Tuesday. I will comment your further sub-comments after consulting them. In addition to the previous resolution we changed by:
9.4 "3D Shapes" Add: "3D Shapes are used to define geometry inside coordinate systems. All used coordinate systems are right-handed. Each 3D Shape is a member of a 3D Scene where the outmost defines the world coordinate system. A 3D Shape defines a local coordinate system and maybe transformed relative to it's containing 3D Scene." Add into the existing change of 9.4.5 Extrude (see updated issue Resolution) "The 3D geometry is defined by rotating the polygon on the XZ-Axis around the Y-Axis of the local coordinate system. This rotation is done linearly interpolated in the given number of steps (see dr3d:horizontal-segments) around the given angle (see dr3d:end-angle)." Exchanged new text for 15.22.9 Close Front with "The dr3d:close-front property specifies whether a front plane shall be generated. When set to false, generation of a front surface may be suppressed. This will only have an effect when the provided geometry is closed and thus would produce a surface." Exchanged new text for 15.22.10 Close Back with "The dr3d:close-back property describes if a back plane shall be generated. When set to false, generation of a back surface may be suppressed. This will only have an effect when the provided geometry is closed and thus would produce a surface." With respect to the added paragraph at the beginning of 9.4, I think there are some additional difficulties. First, 3D Scenes are 3D Shapes, so Scenes can be nested in other Scenes. This impacts the way this is described.
"3D Shapes are used to defined geometry inside coordinate systems." seems to have something missing. I think what is being said is something like: """ 3D Scenes consist of geometrical shapes, including interior 3D Scenes, drawn in the three-dimensional coordinate system that is established in the outermost 3D Scene. Each interior 3D Shape is defined in terms of a local coordinate system that may be transformed relative to the coordinate system of the 3D Scene that contains the 3D Shape. All coordinate systems used are right-handed with respect to rotations about a specified axis. The viewpoint of the presentation is established with the outermost 3D Scene. """ I don't think that the right-hand rule is defined adequately enough unless we can say more about the presumed orientation of the axes at any local level. The situation and orientation of the outermost 3D Scene axes is also important. For example, without knowing what the presumed orientations of +X, +Y, and +Z unit vectors are at the (0,0,0) origin in the outermost 3D Scene, it is not clear how motion of any interior shape is understood with respect to a translation that follows a rotation in the outermost 3D Scene. [edited to come at the anchoring of coordinates around which right-handed is determined more clearly] Finally, considering how substantive all of this information is, I wonder if we can safely accomplish this by an errata in ODF 1.0? I don't fancy the alternative, but it is not clear to me that we can nail down all of these particulars by an Errata so easily. With respect to the replacement text of 9.4.5, there are additional questions that need to be answered.
Since the depth is a signed length, it is not clear which is the front or back surface based on the respective orientations. Is the one that we start with always the front and the one we end at always the back? We need to know the normal to the polygon to know which direction the depth goes. Also, does the depth go with the normal direction or against the normal direction from the starting surface? If we know whether we are starting at the front or at the back we have the answer to this question, once we know the orientatioh of the +X, +Y, and +Z axes relative to the viewpoint. Finally, the planes always exist. The question is whether or not there are open or closed surfaces defined by the shapes polygonal intersection with a plane at a beginning or ending of the translation-determined 3D Shape. There is an ambiguity with regard to the side surfaces and whether visible edges are drawn when neither of the surfaces having the common edge are closed. I will assume that the side surfaces are always closed. [added 2010-07-15T18:07Z On further reflection, I have used the notion of open and closed surfaces, rather than opacity. An open surface is never opaque, a closed surface might be rendered as translucent based on other provisions for the 3D Scene. The open/closed-surface nomenclature is a little awkward, because it doesn't completely relate to what we usually mean by open and closed shapes in a space. I don't have any better nomenclature to offer, and it gets even trickier when an end surface is an opening in a closed surface to which the shape being created (by extrusion or rotation) is embedded.] With respect to 9.4.6, we need to be clear that it is a plane that is rotated around one of its own axes. It does nothing to rotate the XZ plane around the Y axis. You could also rotate the space around a single axis. It needs to be clear which is the case. The second is more general since it doesn't depend on what plain, if any, passes through all points of the initial polygon. However, it appears that the polygon is expected to be a plane polygon, although the second approach is still more general even in that case.
Also, when the axis of rotation passes through the polygon, and the rotation is incomplete, the front and back surfaces intersect each other on the axis of rotation and the effect is that there are four surfaces determined, two from the front polygon and two from the back polygon. Also, even for full rotation, if the front and back surfaces are not the same size, the presence of the surfaces is revealed, whether open or closed, if the junction of the two surfaces is in view. [added 2010-07-15T17:40Z It is not precisely correct to say the XZ plane is rotated. In general terms, a plane relative to which the polygon is oriented is rotated about some axis. This can even make sense when the axis is parallel to the polygon's orientation plane or normal to the polygon's orientation plane. I suspect that there are not so many degrees of freedom in the 3D Shape Rotation, but that is even more reason for the specification to be more rigorous in establishing exactly what are the constraints on possible rotations. I don't think the ODF 1.0 specification proves that level of precision (and doubt it for ODF 1.2 as well), making it likely that we are going to have to find out how to leave some of this implementation-dependent for now. The alternative would be to find out what implementations of ODF 1.0/1.1 that support 3D Shapes actually provide for, which is a matter of adopting an implementation-defined case for the specification. This seems like way too much effort for an ODF 1.0 Errata.] With respect to 15.22.8, I have the following observations:
This text goes too far. The improvedd description of 3D rotation contradicts this. It probably should simply be said in 15.22.8 what the attribute is and what the default is without explaining anything more. It would be worthwhile to mention that the value is a non-negative integer expressing the rotation as an exact number of degrees. The observation about greater than 360-degree rotations is odd anyhow, since technically the back wil vanish somewhere around the corner inside the large end of the shape at some point and any additional rotation is irrelevant. The "For example" statement in the original text still refers to "the lathe object" and should be deleted. [added 2010-07-15T17:56Z with typos corrected too: I didn't consider, when writing this comment, the case where the plane of the polygon is rotated about an axis that is orthogonal to that plane. In that case, the result is still a plane figure, but there is no front and back as much as a first (defining the trailing edges of the result) and last (defining the leading edges of the result). Such figures are particularly interesting when drawn as wire frames, but other interesting closed planar surfaces can be obtained. A consistent way of visualizing this is that it is the axis of rotation that rotates, and it takes the plane with it, whatever its fixed orientation relative to that axis happens to be.] Re: 15.22.5 resolution and correction in CD04-rev07 resolution
changes the first sentence but leaves the following example text: "For example, with a back scale of 50%, the background plane of an extrude object is half the size of the foreground plane." The failure is to introduce the change to refer to back face and front face and not use the incorrect (and undefined) language "background plane" and "foreground plane." I do not propose correcting this in ODF 1.0 Errata, but we should consider it for ODF 1.1 Errata created on behalf of the IS 26300:2006 alignment. We also need to ensure that ODF 1.2 is at least consistent with this, if not even better. Updated 15.22.10 resolution to replace "gets generated" with "is generated" in the replacement text, reflecting the adjustment made in CD04-rev07.
Updated the 15.22.9 resolution to replace "gets generated" with "is generated" in the replacement text, reflecting the adjustment that was made in CD04-rev07.
In the resolution of 9.4.6, "different to" is replaced by "different than" in the last sentence of the replacement text, as adjusted in CD04-rev07.
Resolution for 9.4.5 is adjusted
(1) to have the replacement text say that "When no depth is given, the polygon forms a shape without depth" rather than "forms a plane without depth." (2) The last sentences previously given for the replacement text: "The creation of the front face depends on dr3d:close-front (15.22.9). The creation of the back face depends on dr3d:close-back (15.22.10). The size of the back face can be relative to the size of the front face when dr3d:back-scale (15.22.5) is used. The side faces defined by the extrusion of the shape are always created." are adjusted to read "The closing of the front face depends on dr3d:close-front (15.22.9). The closing of the back face depends on dr3d:close-back (15.22.10). The size of the back face can be relative to the size of the front face when dr3d:back-scale (15.22.5) is used. The side faces defined by the extrusion of the shape are always closed." These reflect adjustments that appear in CD04-rev07. In the added paragraph in the resolution of 9.4, the phrase
""" with scenes being special case of shape" """ is adjusted to read """ with scene being a special case of shape" as adjusted in CD04-rev07. Errata 02 - ODF 1.2 Reconciliation:
The Errata 02 changes to 15.22.5, 15.22.9, and 15.22.10 are reflected by consistent text in ODF 1.2 sections 20.68, 20.71, and 20.70, respectively. There remain some questions of consistency, especially with respect to close/not-closed figures. For other situations involving consistency and other considerations, the first four subtasks here are applicable. Additional issue Additional issue |
|||||||||||||||||||||||||||||||||||||||||||||||||
Also an issue of whether these descriptions are meaningful as a standard for those who work with 3D graphics?