{"id":234,"date":"2006-09-11T11:00:17","date_gmt":"2006-09-11T11:00:17","guid":{"rendered":"http:\/\/cb.nowan.net\/wblog\/?p=234"},"modified":"2006-09-11T11:00:17","modified_gmt":"2006-09-11T11:00:17","slug":"scene-graphs-just-say-no","status":"publish","type":"post","link":"http:\/\/cb.nowan.net\/blog\/2006\/09\/11\/scene-graphs-just-say-no\/","title":{"rendered":"&quot;Scene Graphs &#8211; just say no&quot;"},"content":{"rendered":"<p>Here&#8217;s an interesting point of view by <a href=\"http:\/\/home.comcast.net\/~tom_forsyth\/\">Tom Forsyth<\/a>, a game developper working at <a href=\"http:\/\/www.radgametools.com\/\">Rad Game Tools<\/a>, entitled <a href=\"http:\/\/home.comcast.net\/~tom_forsyth\/blog.wiki.html#%5B%5BScene%20Graphs%20-%20just%20say%20no%5D%5D\">&#8220;Scene Graphs &#8211; just say no&#8221;<\/a>. <\/p>\n<p>&#8220;The world is not a big tree &#8211; a coffee mug on a desk is not a child of the desk, or a sibling of any other mug, or a child of the house it&#8217;s in or the parent of the coffee it contains or anything &#8211; it&#8217;s just a mug. It sits there, bolted to nothing. (&#8230;) Fundamentally of course you do have to resolve a traversal order somehow &#8211; the objects need rendering, and there&#8217;s some sort of mostly-optimal way to do it. But you&#8217;re just never going to get that ordering by just traversing a single tree\/graph according to some rules.<\/p>\n<p>(..) <br \/>\n1. Typically, a graphics-card driver will try to take the entire state of the rendering pipeline and optimise it like crazy in a sort of &#8220;compilation&#8221; step. In the same way that changing a single line of C can produce radically different code, (&#8230;) <br \/>\n2. Because of this, the number of state changes you make between rendering calls is not all that relevant any more. (&#8230;) <br \/>\n3. On a platform like the PC, you often have no idea what sort of card the user is running on. (&#8230;) <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here&#8217;s an interesting point of view by Tom Forsyth, a game developper working at Rad Game Tools, entitled &#8220;Scene Graphs &#8211; just say no&#8221;. &#8220;The world is not a big tree &#8211; a coffee mug on a desk&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[205],"_links":{"self":[{"href":"http:\/\/cb.nowan.net\/blog\/wp-json\/wp\/v2\/posts\/234"}],"collection":[{"href":"http:\/\/cb.nowan.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/cb.nowan.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/cb.nowan.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/cb.nowan.net\/blog\/wp-json\/wp\/v2\/comments?post=234"}],"version-history":[{"count":0,"href":"http:\/\/cb.nowan.net\/blog\/wp-json\/wp\/v2\/posts\/234\/revisions"}],"wp:attachment":[{"href":"http:\/\/cb.nowan.net\/blog\/wp-json\/wp\/v2\/media?parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/cb.nowan.net\/blog\/wp-json\/wp\/v2\/categories?post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/cb.nowan.net\/blog\/wp-json\/wp\/v2\/tags?post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}