{"id":219,"date":"2008-11-22T22:39:03","date_gmt":"2008-11-22T22:39:03","guid":{"rendered":"http:\/\/localhost:8000\/?p=219"},"modified":"2008-11-22T22:39:03","modified_gmt":"2008-11-22T22:39:03","slug":"svg-lives-the-3d-graphics-claim","status":"publish","type":"post","link":"https:\/\/blog.gwadej.org\/programmer-musings\/2008\/11\/svg-lives-the-3d-graphics-claim\/","title":{"rendered":"SVG Lives: the 3D Graphics Claim"},"content":{"rendered":"<p>This is the next in a series of posts refuting some recurring claims about the death of <abbr title=\"Scalable Vector Graphics\">SVG<\/abbr>, In the <a target=\"_blank\" rel=\"noopener\" href=\"\/programmer_musings\/2008\/11\/reports-of-svgs-death-exaggerated\/\">first post<\/a>, I gave a brief overview of <abbr title=\"Scalable Vector Graphics\">SVG<\/abbr>. Each subsequent post takes a claim and refutes it.<\/p>\n<h2 class=\"subhead\">The Claim<\/h2>\n<blockquote><p><abbr title=\"Scalable Vector Graphics\">SVG<\/abbr> is useless because it doesn&#8217;t support even basic 3D features<\/p><\/blockquote>\n<p>This claim makes a little more sense than the previous one, but not much. The focus of <abbr title=\"Scalable Vector Graphics\">SVG<\/abbr> was on <em>2 dimensional vector graphics<\/em>. It is obviously possible to render 3D objects by projecting them onto a 2D representation. After all, that&#8217;s how 3D graphics are always displayed on a monitor. You can use <abbr title=\"Scalable Vector Graphics\">SVG<\/abbr> as the 2D representation. However, <abbr title=\"Scalable Vector Graphics\">SVG<\/abbr> does not provide any particular help for projections or 3D objects, because its focus is 2D graphics.<\/p>\n<p>All of the image manipulation supported by <abbr title=\"Scalable Vector Graphics\">SVG<\/abbr> is designed to support 2D vector graphics. This means that there is no support for perspectives or non-linear transforms. The painting model does not support explicit z-ordering. There is no support for 3D coordinates. None of these things are required for 2D vector graphics, so they do not exist in <abbr title=\"Scalable Vector Graphics\">SVG<\/abbr>.<\/p>\n<p>There are some separate projects that target 3D vector formats (<abbr title=\"Virtual Reality Modeling Language\">VRML<\/abbr> and X3D are probably the most complete). X3D has even been written with a goal of being compatible with <abbr title=\"Scalable Vector Graphics\">SVG<\/abbr>.<\/p>\n<p>The fact that <abbr title=\"Scalable Vector Graphics\">SVG<\/abbr> doesn&#8217;t support 3D does not reduce its utility as a 2D vector image format. Despite this claim, <abbr title=\"Scalable Vector Graphics\">SVG<\/abbr> is still alive and well.<\/p>\n<p>Next time: <a target=\"_blank\" rel=\"noopener\" href=\"\/programmer_musings\/2008\/11\/svg-lives-the-video-audio-claim\/\">The Video\/Audio Claim<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the next in a series of posts refuting some recurring claims about the death of SVG, In the first post, I gave a brief overview of SVG. Each subsequent post takes a claim and refutes it. The Claim SVG is useless because it doesn&#8217;t support even basic 3D features This claim makes a\u2026 <span class=\"read-more\"><a href=\"https:\/\/blog.gwadej.org\/programmer-musings\/2008\/11\/svg-lives-the-3d-graphics-claim\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[28,153,322],"_links":{"self":[{"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/posts\/219"}],"collection":[{"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/comments?post=219"}],"version-history":[{"count":0,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/posts\/219\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/media?parent=219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/categories?post=219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/tags?post=219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}