Talk:3D projection
From Wikipedia, the free encyclopedia
Archives |
---|
/Archive 1 |
Old discussion has been archived to: Talk:3D projection/Archive 1.
Stestagg 19:21, 11 September 2007 (UTC)
I replaced the article text, then grappled with the copybot some, then replaced it again. Below are the unresolved criticisms of the new text from before it was put on the article page:
- This article is far to difficult for newcomers, and now when I direct new programmers here they no longer come back feeling like they have gained anything. And rather than give the rotation matrix, why not give the (much more intuitive) UVN vector system. Cearn also has a wonderful (beginner friendly) description of vector maths ( http://www.coranac.com/tonc/text/matrix.htm ), maybe take a page out of his book. 82.23.55.86 07:26, 4 October 2007 (UTC)
- Yes, there should be more information about different ways to express the orientation. Nobody uses Euler angles like this. Feel free to describe how to use vectors instead. Probably we also should mention quaternions. You can try and look for some information yourself, else it might be some time until someone else gets around to it. It's how Wikipedia works. (But keep in mind Wikipedia:What_Wikipedia_is_not - e.g. there should not be a tutorial how to do 3D programming with DirectX and OpenGL, that's something which should go to Wikibooks instead of Wikipedia.) --Allefant 10:48, 4 October 2007 (UTC)
- I think, we should concentrate on perspective projection here. There's already Graphical_projection, with apparently some kind of different bias compared to this article, so there might be overlap if we put everything here as well, just with a mathematical bias. Instead, I think your section below about orthographic projection would perfectly fit into the orthographic projection article, as an additional math section. Same for isometric projection. They woefully omit any mathematical information currently. For Perspective_projection on the other hand, it might be better to not include the mathematical aspects in detail in that article - so I guess it's what this very article could be for. And it should of course be like you started below, a general description of (perspective) 3d projection - as I think that info is currently missing in Wikipedia. --Allefant 11:07, 13 August 2007 (UTC)
- So, looking at a bigger picture, in the end, we'd end up with articles about different projections (perspective, orthographic, isometric..), describing each from different angles (math, computer, artists, ...). Should any of them ever try to achieve featured quality, I think that's the best way. And there's also lots of math articles already to back up the purely mathematical side (like Projection (linear algebra)). So, if you agree, I'd like to put the orthographic and isometric sections into their articles, they only need minor modifications for that I think (and maybe more detailed source information). And what you wrote for perspective projection definitely looks like it's going in the right direction. --Allefant 11:07, 13 August 2007 (UTC)
- I agree with you. Ideally, this page could just be a list of projections with links to individual pages. I will finish this article here as proposed, and then we can decide where to put the sections. It is important to me that someone who arrives at this page should easily be able to find formulae for the common projections, so good linking would be imperative.
--Stestagg 15:00, 13 August 2007 (UTC)
-
- Well, such a list of projections is already in Graphical projection, so probably we should consider that one the page where people "arrive". (We can always rename/redirect article names of course.) But yeah, just wanted you to be aware that there's already a few, somewhat unordered, articles related to this topic. And I'm only a very minor contributor myself, so once your text is ready to be moved into article space, others with different ideas may show up as well :) --Allefant 15:22, 14 August 2007 (UTC)
-
-
- I'll leave the page-structure up to people with a much better working-knowledge of Wiki guidelines. :), although perhaps the Graphical projection page should be about either n-dimentional projection, or about artistic projection. --Stestagg 16:57, 14 August 2007 (UTC)
-
- Why is the θy matrix flipped? —The preceding unsigned comment was added by 15.235.249.71 (talk) 23:07, August 21, 2007 (UTC)
- What do you mean? If you mean this one - it looks the same in my reference here - even if they do proceed a bit differently. --Allefant 15:48, 24 August 2007 (UTC)
Contents |
[edit] TODO
Some things which I think should be addressed:
- Overlap with other articles. For example isometric projection might be described in graphical projection, in orthographic projection, in axonometric projection, here, and in its own article. Basically, the whole field of descriptive geometry seems to be not in very good shape, as can be seen at the mother article itself (not a single reference, and some questionable statements scattered throughout the text).
- Expand contents. For example, for perspective projection, mention things like one-point/two-point/three-point perspective, and things like OpenGL or DirectX. For other types of projection, add missing ones, and better describe relations. But, depending on the first point, that all might go into the respective articles of those projections.
- Copyedit/clarify. Some things might be too detailed (do we really need a matrix multiplication multiplied out for the reader?), others way too short, and there's always style/formatting problems of course.. --Allefant 11:18, 25 September 2007 (UTC)
The two sets of equations for {b_x,b_y} are inconsistent. I think the matrix expression is wrong, the matrix appears transposed from what it should be. If I transpose it and multiply it out I get
f_x = d_x - e_x f_y = d_y - e_y f_z = d_z f_w = 1/e_z
then I can only recover the original {b_x,b_y} definitions with
b_x=f_x/(f_z*f_w) b_y=f_y/(f_z*f_w)
which doesn't really simplify anything ... perhaps the matrix version can just be removed. —Preceding unsigned comment added by 142.46.167.2 (talk) 21:33, 16 October 2007 (UTC)
- Indeed, I copied it from the paper by Carlbom which uses row vectors instead of column vectors for positions, and messed up the transposing :/ Instead of removing the matrix versions, I think it would be clearer to remove the non-matrix versions. Also, the non-matrix perspective equation I just calculated from the matrix in the paper, but I was confused by what they are doing with the 4th "w" coordinate.. so that also needs to be double checked. (I'm neither an expert on this nor do I know any maths except from other WP articles like e.g. matrix multiplication.. ) --Allefant 23:17, 16 October 2007 (UTC)
Please don't remove the non matrix versions ... that is my only usable reference. And they are un-obfuscated so to speak.
- Indeed, I included the non-matrix bit because I hate working with matrices unless I really have to, and I assume many other people share this feeling (or lack of understanding). I realise it is a bit of a pain to update, but, as you proved ( :) ), it is easy to get matrix multiplication wrong, even with Quaternions (:shudder:).
- I'm a little confused by the inclusion of the observer variable, it isn't really neccesary, and confuses things slightly, however if that is convention then I agree it makes sense to have it included.
- Stestagg 21:28, 20 October 2007 (UTC)
- Yes, we need more text describing what is going on. With the observer position, it should be clear how to change the field of view (and center of projection). There's likely other ways, and a good article should mention all of them (but observer variable is the only one I can think of right now). --Allefant 12:01, 21 October 2007 (UTC)
[edit] For non-mathematicians
This section should be called differently, e.g. "explanation", as the matrix multiplications aren't for mathematicians either (matrices are used by engineers/graphics programmers, because e.g. OpenGL and DirectX use them - mathematicians likely would not).
Also, why is it using different letters than the above section? That seems rather confusing - can it be changed to use the same ones? --Allefant (talk) 15:47, 25 November 2007 (UTC)
[edit] Perspective transform
I find the article about the perspective transform to be less than what one would hope for in present day Wiki. The topic is sufficiently complex as to warrant a 'gentle' introduction, with diagrams, and a mention of all the variations that one finds on the Net. For example, the description in: http://www.whisqu.se/per/docs/graphics91.htm derives a slightly different set of transform matrices. Since the topic is not intuitively obvious, the gently introduction can lead to an extensive article, in which homogeneous coordinates are clearly justified, the use of the rotational transformations explained, and I would suggest a numerical example.
Per Bj. Bro (talk) 01:21, 2 January 2008 (UTC)
- I agree. I hope the current matrices are correct insofar as they do exactly the same as the non-matrix versions given. There definitely needs to be more explanation, and it also should be mentioned that there are many more possible representations than the variables chosen here. I also agree that a numerical example would help, and ideally it would be combined with a diagram - the current one doesn't really seem to fit the text. Also actual pictures of the result might help, but we should avoid overlap with perspective (graphical). --Allefant (talk) 12:37, 7 January 2008 (UTC)
[edit] Text needs explenation
What does "the viewer position in camera space" actually mean? How does it differ from the camera position? 89.139.239.75 (talk) 19:27, 24 March 2008 (UTC)
- Yes, this article needs a lot of work. The and simply shift the whole image around, in a painting it would mean that the vanishing point is not in the center but at some other position (I think). The defines the field of view of the resulting image. A diagram would make it all clear I think. --Allefant (talk) 13:44, 27 March 2008 (UTC)
- Seconded. Everything was going swimmingly until I encounted e_x and e_y. Does e_* have anything to do with the near clip plane?82.3.69.123 (talk) 19:58, 2 April 2008 (UTC)
[edit] Merger proposal
- I propose moving the page from "3D projection" to "Planar Projection" as the page does not discuss all types of 3D projection. This way, the page can be placed more appropriately within the "Views" template.Kevmitch (talk) 13:20, 25 March 2008 (UTC)
- On second thought, maybe it would be better to merge the content on this page with the Orthographic projection and perspective (graphical) articles which are lacking in the mathematical context provided here. Since this would effectively merge this page out of existence, I think some discussion of the matter is warranted. Kevmitch (talk) 14:13, 25 March 2008 (UTC)
-
- Sounds good to me. --Allefant (talk) 13:38, 27 March 2008 (UTC)
- Hm, not much response so far. Myself, I guess the problem is deeper than just this one merger. One thing is overlap of different areas, like visual arts (Perspective (graphical)), math/linear algebra (Projection (linear algebra)), games (Top-down perspective), descriptive geometry... and then there's overlap within the topics itself, like "planar projection -> parallel projection -> orthographic projection -> axonometric projection -> isometric projection" - that's also bound to not really work out with one article for each level. So need to somehow work out a structure what topics should have how many articles here. And another problem is, no matter from which area you look at the topics, someone writing on them needs to be a bit of an expert in the field. Myself I came here from the article about isometric games... --Allefant (talk) 13:49, 14 April 2008 (UTC)
- Ok, so the main counter-argument, as I see it, to merging is quite subtle, but if this page were merged directly with Perspective/Orthographic Projection, there would be more of an argument for the content's complete removal, certainly people might call for the content to be made more terse, and less understandable for less-qualified mathematicians. The Perspective projection page is already long, and deals with the issue from an art-history perspective. A merger would broaden the scope of the article to the extent that some content from either article would, most likely, be [slowly] removed for the sake of article length. —Preceding unsigned comment added by Stestagg (talk • contribs) 14:18, 14 May 2008 (UTC)
[edit] Homography?
3D projection and homographic projection are closely related. Would anyone care to explain how the two are different? —Ben FrantzDale (talk) 18:30, 10 May 2008 (UTC)
- A 3d projection is a transform that maps 3D points into 2d space. A Homograph is a transform that describes the difference between 2 [homographic] 3d projections.
- So, for example, to perform 3d rangefinding, you might have 2 cameras sitting, say, 1m apart. Each camera is performing a different, but homographically relative, perspective 3d-projection of the same scene, therefore the Homograph for these cameras can be calculated. So, now we identify a common point in both camera images(A,B). One feature of a homograph of 2 perspective projections is that the transformation of point A[x,y] to point B[x,y], where A and B are known is only possible at a particular range. So the distance from the cameras to the point can be inferred as a by-product of satisfying the Homograph that translates projection 1 onto projection 2.
- From what I can find out, the little-used term 'Homographic Projection' is not well defined. But 3-d rangefinding could be called 'homographic projection' in that it projects 2d points into a 3d volume.
- Also, Applying Transforming the points of a normal projection using a homograph could be described as 'a homographic projection'.
- Stestagg (talk) 13:58, 14 May 2008 (UTC)
- OK, that sounds about right. It seems like it would be accurate to say that a homography can be implemented in terms of 3D projection in that if I have a function that does arbitrary "3D projection", I could perform a homographic (re)projection on an image by putting it on a flat surface and using the 3D-projection function. Sound right? —Ben FrantzDale (talk) 00:44, 16 May 2008 (UTC)
- I hope I understand what you mean. A 2d image is already 'on a flat surface' in as much that all points lie on a 3d surface [usually a Plane]. The only way to reconstruct a 3d scene from a 2d image is either to have a second view on it, or if the original 3d points were [say] coplanar and you know what plane that was. Otherwise, you have to use a certain ammount of guesswork, and not homographs directly. Stestagg (talk) 21:15, 21 May 2008 (UTC)
- What I was trying to say is this: As I understand it, if I want to perform a homography on an image, one way to do it would be to consider it as a plane in 3D and perform a projection from 3D space through a point in 3D space to another plane in 3D space. In that sense, I feel like a homography and a 3D projection are almost the same thing. But I'm open to correction. —Ben FrantzDale (talk) 23:26, 21 May 2008 (UTC)
- I'm not so comfortable with the idea that the homograph and a 3-d projection are 'almost the same thing'. A 3-d projection deals with projecting 3-d points in 3-d space, into n-d points in n-d space. A [for example] 3-d homograph deals with projecting 2-d points into 2-d points, in 3-d space. It's similar to saying that a 'straight line' and a 'polynomial' are almost the same thing. 81.152.97.194 (talk) 10:13, 24 May 2008 (UTC)
- What I was trying to say is this: As I understand it, if I want to perform a homography on an image, one way to do it would be to consider it as a plane in 3D and perform a projection from 3D space through a point in 3D space to another plane in 3D space. In that sense, I feel like a homography and a 3D projection are almost the same thing. But I'm open to correction. —Ben FrantzDale (talk) 23:26, 21 May 2008 (UTC)
- I hope I understand what you mean. A 2d image is already 'on a flat surface' in as much that all points lie on a 3d surface [usually a Plane]. The only way to reconstruct a 3d scene from a 2d image is either to have a second view on it, or if the original 3d points were [say] coplanar and you know what plane that was. Otherwise, you have to use a certain ammount of guesswork, and not homographs directly. Stestagg (talk) 21:15, 21 May 2008 (UTC)
- OK, that sounds about right. It seems like it would be accurate to say that a homography can be implemented in terms of 3D projection in that if I have a function that does arbitrary "3D projection", I could perform a homographic (re)projection on an image by putting it on a flat surface and using the 3D-projection function. Sound right? —Ben FrantzDale (talk) 00:44, 16 May 2008 (UTC)