{"id":65,"date":"2018-02-16T18:00:25","date_gmt":"2018-02-17T00:00:25","guid":{"rendered":"http:\/\/www.chroniclesoftright.com\/blog\/?p=65"},"modified":"2018-02-16T09:51:58","modified_gmt":"2018-02-16T15:51:58","slug":"i-may-be-stalling","status":"publish","type":"post","link":"https:\/\/www.chroniclesoftright.com\/blog\/2018\/02\/16\/i-may-be-stalling\/","title":{"rendered":"I may be stalling"},"content":{"rendered":"<p>The truth is that I really don&#8217;t want to dig into the camera controls for the game.\u00a0 Since I&#8217;m using a <a href=\"http:\/\/doc.babylonjs.com\/classes\/3.1\/followcamera\" target=\"_blank\" rel=\"noopener\">FollowCamera<\/a> it does a lot of the work for me but also sort of hides most of the details.\u00a0 For instance, I was trying to do some very basic mouse event capture and was getting weird results.\u00a0 I can only assume this is because <a href=\"http:\/\/babylonjs.com\" target=\"_blank\" rel=\"noopener\">BabylonJS<\/a> is capturing mouse events as part of the FollowCamera, but I don&#8217;t really know.\u00a0 What&#8217;s happening is probably well documented somewhere but I haven&#8217;t taken the time to dig in and find out yet, so for now it&#8217;s a little frustrating.\u00a0 I didn&#8217;t really get anything done last night because there was a car wreck at the entrance to the neighborhood where I live and it took out the power for a big chunk of the night.<\/p>\n<p>So, a distraction.\u00a0 The game needed some grass.<a href=\"http:\/\/www.chroniclesoftright.com\/blog\/wp-content\/uploads\/2018\/02\/grass001.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-66\" src=\"http:\/\/www.chroniclesoftright.com\/blog\/wp-content\/uploads\/2018\/02\/grass001-300x225.png\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.chroniclesoftright.com\/blog\/wp-content\/uploads\/2018\/02\/grass001-300x225.png 300w, https:\/\/www.chroniclesoftright.com\/blog\/wp-content\/uploads\/2018\/02\/grass001-768x576.png 768w, https:\/\/www.chroniclesoftright.com\/blog\/wp-content\/uploads\/2018\/02\/grass001.png 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Isn&#8217;t that maybe the most realistic grass you&#8217;ve ever seen in your life, including times you&#8217;ve seen actual grass with your actual eyeballs?\u00a0 It&#8217;s 24 triangles and, of course, no collider.\u00a0 So I can add a ton of these to the game without affecting performance much.\u00a0 Why, you ask, not just use a texture on a plane?\u00a0 After all, that&#8217;s just 2 triangles.\u00a0 True, but I&#8217;m trying to stick to a &#8220;materials only&#8221; style for performance reasons.\u00a0 This model is actually a solid object with volume.\u00a0 I may try to make some other grass that&#8217;s just a double-sided flat mesh.\u00a0 I know BabylonJS can handle double-sided materials, but I&#8217;m not 100% sure how to tell it in <a href=\"http:\/\/blender.org\" target=\"_blank\" rel=\"noopener\">Blender<\/a> that&#8217;s what I want.\u00a0 Also, I may eventually make an exception to the no textures rule for simple elements like this since I can keep the texture sizes very small.\u00a0 We&#8217;ll see.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The truth is that I really don&#8217;t want to dig into the camera controls for the game.\u00a0 Since I&#8217;m using a FollowCamera it does a lot of the work for me but also sort of hides most of the details.\u00a0 For instance, I was trying to do some very basic mouse event capture and was&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,4],"tags":[],"class_list":["post-65","post","type-post","status-publish","format-standard","hentry","category-asset-spotlight","category-feature-development"],"_links":{"self":[{"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/posts\/65","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/comments?post=65"}],"version-history":[{"count":1,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/posts\/65\/revisions"}],"predecessor-version":[{"id":67,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/posts\/65\/revisions\/67"}],"wp:attachment":[{"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/media?parent=65"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/categories?post=65"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.chroniclesoftright.com\/blog\/wp-json\/wp\/v2\/tags?post=65"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}