{"id":141,"date":"2013-05-02T19:01:39","date_gmt":"2013-05-02T17:01:39","guid":{"rendered":"http:\/\/divide-studio.co.uk\/blogs\/ionutcava\/?p=141"},"modified":"2013-05-02T19:03:32","modified_gmt":"2013-05-02T17:03:32","slug":"may-update-and-current-development-path","status":"publish","type":"post","link":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/may-update-and-current-development-path\/","title":{"rendered":"May Update and Current Development path"},"content":{"rendered":"<p>After pushing a few revisions to the trunk since I got to the UK, I really started working on my dissertation project. But one thing led to another and now, updating the SVN will be postponed for a few more days. Revision 149 also presented a small bug that causes performance to slow down to a crawl after a while. The fix is simple. Cut the double bind check as it was horrid and I was exhausted when I wrote it. I&#8217;ll add a better version later.<\/p>\n<p>Change some things in FrameBufferObject.cpp (Hardware\/Video\/Buffers\/FrameBufferObject)<\/p>\n<p>[code lang=&#8221;cpp&#8221;]<\/p>\n<p>void FrameBufferObject::Bind(U8 unit, U8 texture){<\/p>\n<p>    &#8230;&#8230;<\/p>\n<p>}<\/p>\n<p>[\/code]<\/p>\n<p>to<\/p>\n<p>[code lang=&#8221;cpp&#8221;]<br \/>\nvoid FrameBufferObject::Bind(U8 unit, U8 texture){<br \/>\n    return;<br \/>\n}<\/p>\n<p>[\/code]<\/p>\n<p>and<\/p>\n<p>[code lang=&#8221;cpp&#8221;]<br \/>\nvoid FrameBufferObject::Unbind(U8 unit) {<br \/>\n    &#8230;&#8230;<br \/>\n    _fixedPipeline = false;<br \/>\n}<br \/>\n[\/code]<\/p>\n<p>to<\/p>\n<p>[code lang=&#8221;cpp&#8221;]<br \/>\nvoid FrameBufferObject::Unbind(U8 unit) {<br \/>\n    _fixedPipeline = false;<br \/>\n}<br \/>\n[\/code]<\/p>\n<p>Another issue is with terrain rendering. To get 10x better performance, just change the &#8220;chunkSize&#8221; in TerrainLoader.cpp (Environment\/Terrain) when building the Quadtree. 256 will give 40+FPS in Debug if the baseline was 4-5 (like my laptop).<\/p>\n<p>[code lang=&#8221;cpp&#8221;]<br \/>\nU32 chunkSize = 256;\/\/&amp;lt;Was 16. 128 is also ok. This will be edited in XML descriptors<br \/>\n_terrainQuadtree-&gt;setParentShaderProgram(&#8230;);<br \/>\n_terrainQuadtree-&gt;Build(&#8230;.);<br \/>\n[\/code]<\/p>\n<p>Also, experimental code that would allow VAO&#8217;s to send less data to the GPU during depth rendering (shadows, ssao, dof, etc) is added but will probably be disabled in the next revision.<\/p>\n<p>The dissertation part includes the complete integration of the ReCast library and PhysX for each scene. Both are complete, but data passing between SceneGraph &lt;-&gt; ReCast and SceneGraph &lt;-&gt; PhysX isn&#8217;t yet complete.<\/p>\n<p>Another big point in the next update will be the proper usage of a ThreadPool and the change made to the Event class (now called Task) that allows better and safer multithreading.<\/p>\n<p>TL;DR: Big updates, testing takes time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After pushing a few revisions to the trunk since I got to the UK, I really started working on my dissertation project. But one thing led to another and now, updating the SVN will be postponed for a few more days. Revision 149 also presented a small bug that causes performance to slow down to &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/may-update-and-current-development-path\/\">Continue reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-141","post","type-post","status-publish","format-standard","hentry","category-general-stuff","item-wrap"],"_links":{"self":[{"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/posts\/141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/comments?post=141"}],"version-history":[{"count":10,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/posts\/141\/revisions"}],"predecessor-version":[{"id":150,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/posts\/141\/revisions\/150"}],"wp:attachment":[{"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/media?parent=141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/categories?post=141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/divide-studio.co.uk\/blogs\/ionutcava\/wp-json\/wp\/v2\/tags?post=141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}