{"action":"created","issue":{"url":"https://api.github.com/repos/mrdoob/three.js/issues/9029","repository_url":"https://api.github.com/repos/mrdoob/three.js","labels_url":"https://api.github.com/repos/mrdoob/three.js/issues/9029/labels{/name}","comments_url":"https://api.github.com/repos/mrdoob/three.js/issues/9029/comments","events_url":"https://api.github.com/repos/mrdoob/three.js/issues/9029/events","html_url":"https://github.com/mrdoob/three.js/issues/9029","id":157379697,"number":9029,"title":"Object3D new viewable property","user":{"login":"verteAzur","id":3125827,"avatar_url":"https://avatars.githubusercontent.com/u/3125827?v=3","gravatar_id":"","url":"https://api.github.com/users/verteAzur","html_url":"https://github.com/verteAzur","followers_url":"https://api.github.com/users/verteAzur/followers","following_url":"https://api.github.com/users/verteAzur/following{/other_user}","gists_url":"https://api.github.com/users/verteAzur/gists{/gist_id}","starred_url":"https://api.github.com/users/verteAzur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/verteAzur/subscriptions","organizations_url":"https://api.github.com/users/verteAzur/orgs","repos_url":"https://api.github.com/users/verteAzur/repos","events_url":"https://api.github.com/users/verteAzur/events{/privacy}","received_events_url":"https://api.github.com/users/verteAzur/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2016-05-29T10:28:46Z","updated_at":"2016-06-01T07:04:37Z","closed_at":null,"body":"##### Description of the ehancement \r\nAdd a new member variable called \"viewable\" that is used to notify user if the object is in the camera frustum viewing planes. The variable is set automatically in the WebGLRenderer frustum culling process via the isObjectViewable function. The frustum culling is an expensive process, this new variable saves us time in not redoing the process. This small  property addition brings very valuable info to complement and personalize the  frustum culling functions.\r\n\r\nObject proposed change: https://github.com/verteAzur/three.js/commit/cf362721aed08ad718338b40cb182ed0c2232e35\r\n\r\nRenderer proposed change: https://github.com/verteAzur/three.js/commit/08baac0c29533dac73a6b5e2c2d1909bd35f16c0\r\n\r\n##### Three.js version\r\n- [x ] Dev\r\n- [x] All of them\r\n\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/mrdoob/three.js/issues/comments/222910347","html_url":"https://github.com/mrdoob/three.js/issues/9029#issuecomment-222910347","issue_url":"https://api.github.com/repos/mrdoob/three.js/issues/9029","id":222910347,"user":{"login":"verteAzur","id":3125827,"avatar_url":"https://avatars.githubusercontent.com/u/3125827?v=3","gravatar_id":"","url":"https://api.github.com/users/verteAzur","html_url":"https://github.com/verteAzur","followers_url":"https://api.github.com/users/verteAzur/followers","following_url":"https://api.github.com/users/verteAzur/following{/other_user}","gists_url":"https://api.github.com/users/verteAzur/gists{/gist_id}","starred_url":"https://api.github.com/users/verteAzur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/verteAzur/subscriptions","organizations_url":"https://api.github.com/users/verteAzur/orgs","repos_url":"https://api.github.com/users/verteAzur/repos","events_url":"https://api.github.com/users/verteAzur/events{/privacy}","received_events_url":"https://api.github.com/users/verteAzur/received_events","type":"User","site_admin":false},"created_at":"2016-06-01T07:04:37Z","updated_at":"2016-06-01T07:04:37Z","body":"Voilà the latest benchmarking results:\r\n![chart2](https://cloud.githubusercontent.com/assets/3125827/15700851/d5afd320-27d6-11e6-99b1-d8ab54b8d0ab.gif)\r\nWe can see a true performance gain with your latest function. Note, I have optimized the inline function and re-run the test with the same case scenario to make sure it was comparable on all criteria.\r\n\r\nupdated inline function:\r\n\r\n```\r\nisviewable: function(object){\r\n\t\tfor(var i=0,l=this.viewable.length;i<l;i++){\r\n\t\t\tif(this.viewable[i]===object.id){return true;}\r\n\t\t}\r\n\t\treturn false;\r\n \t}\r\n```\r\n\r\n"}}
{"actor":{"display_login":"verteAzur"}}