{"id":575,"date":"2010-09-30T18:21:31","date_gmt":"2010-10-01T00:21:31","guid":{"rendered":"http:\/\/www.philhassey.com\/blog\/?p=575"},"modified":"2010-09-30T18:21:31","modified_gmt":"2010-10-01T00:21:31","slug":"dynamite-day-4-visual-effects","status":"publish","type":"post","link":"https:\/\/www.philhassey.com\/blog\/2010\/09\/30\/dynamite-day-4-visual-effects\/","title":{"rendered":"Dynamite: Day 4 &#8211; Visual Effects"},"content":{"rendered":"<p>First off, I did a bit of bug fixing.  I improved my panning by mouse drag code a bit by using gluUnProject (the same code I&#8217;m using to pick a tile with the mouse.)  Before I was just kinda guessing how to pan so it wasn&#8217;t very accurate.<\/p>\n<p>Next off I noticed in yesterday&#8217;s screenshot that all the tiles had lines between them.  I found that this was because I&#8217;m using a 256&#215;256 texture which I&#8217;ve now added to a texture atlas.  So when GL mipmaps it down to a smaller size, the blank area between textures is getting used a bit.  This <a href=\"http:\/\/www.opengl.org\/discussion_boards\/ubbthreads.php?ubb=showflat&#038;Number=247099\">forum thread<\/a> seems to cover a number of options I have.  The simplest solution for right now was to move the &#8220;wall&#8221; texture out of the atlas, and just leave the sprites in the atlas.<\/p>\n<p>Updated screenshot.  I have the walls set at 0.5 height for the moment, but it shows the fixed textures.  I also added variation in the darkness of the tiles to give it all a dirtier look.<\/p>\n<p><a href=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz003.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz003.png\" alt=\"DynamiteScreenSnapz003\" title=\"DynamiteScreenSnapz003\" width=\"512\" height=\"406\" class=\"aligncenter size-full wp-image-576\" srcset=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz003.png 512w, https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz003-300x237.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/p>\n<p>Due to high demand, I decided to work on the textures a bit more.  I found that <a href=\"http:\/\/www.cgtextures.com\/\">www.cgtextures.com<\/a> provides a huge library of textures!  I&#8217;m using a few of these to give the game some pizzaz.  Here&#8217;s an updated screen shot:<\/p>\n<p><a href=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz004.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz004.png\" alt=\"DynamiteScreenSnapz004\" title=\"DynamiteScreenSnapz004\" width=\"512\" height=\"406\" class=\"aligncenter size-full wp-image-578\" srcset=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz004.png 512w, https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz004-300x237.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/p>\n<p>And with wall textures and ceiling textures ..<\/p>\n<p><a href=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz006.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz006.png\" alt=\"DynamiteScreenSnapz006\" title=\"DynamiteScreenSnapz006\" width=\"512\" height=\"406\" class=\"aligncenter size-full wp-image-582\" srcset=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz006.png 512w, https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz006-300x237.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/p>\n<p>And now with windows!<\/p>\n<p><a href=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz007.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz007.png\" alt=\"DynamiteScreenSnapz007\" title=\"DynamiteScreenSnapz007\" width=\"512\" height=\"406\" class=\"aligncenter size-full wp-image-584\" srcset=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz007.png 512w, https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz007-300x237.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/p>\n<p>And now with a guy trapped in a box!  This is actually the cursor, so when you are trying to walk to some destination this shows you where your mouse or finger is hovering.<\/p>\n<p><a href=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz008.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz008.png\" alt=\"DynamiteScreenSnapz008\" title=\"DynamiteScreenSnapz008\" width=\"512\" height=\"406\" class=\"aligncenter size-full wp-image-589\" srcset=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz008.png 512w, https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz008-300x237.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/p>\n<p>And now with some always-on shadows for the pillars so they look attached to the floor.  I considered having dynamic shadows for everything all the time based on the other in-room lighting, but that would get more complex than I care to deal with and doesn&#8217;t seem overly necessary.<\/p>\n<p><a href=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz009.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz009.png\" alt=\"DynamiteScreenSnapz009\" title=\"DynamiteScreenSnapz009\" width=\"512\" height=\"406\" class=\"aligncenter size-full wp-image-592\" srcset=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz009.png 512w, https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz009-300x237.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/p>\n<p>And NOW with multiple lighting sources!  I turned off some of the shadow features for the moment, but I&#8217;ll probably try and figure out how to re-enable those later.<\/p>\n<p><a href=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz011.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz011.png\" alt=\"DynamiteScreenSnapz011\" title=\"DynamiteScreenSnapz011\" width=\"512\" height=\"406\" class=\"aligncenter size-full wp-image-597\" srcset=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz011.png 512w, https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2010\/09\/DynamiteScreenSnapz011-300x237.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/p>\n<p>.. and that&#8217;s about all I can manage for one day!  Thanks everyone for the feedback, the encouragement to go after the visuals a bit seems to have paid off nicely!<\/p>\n<p>-Phil<\/p>\n","protected":false},"excerpt":{"rendered":"<p>First off, I did a bit of bug fixing. I improved my panning by mouse drag code a bit by using gluUnProject (the same code I&#8217;m using to pick a tile with the mouse.) Before I was just kinda guessing how to pan so it wasn&#8217;t very accurate. Next off I noticed in yesterday&#8217;s screenshot [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[116],"tags":[],"class_list":["post-575","post","type-post","status-publish","format-standard","hentry","category-dynamite"],"_links":{"self":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/posts\/575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/comments?post=575"}],"version-history":[{"count":17,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/posts\/575\/revisions"}],"predecessor-version":[{"id":601,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/posts\/575\/revisions\/601"}],"wp:attachment":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/media?parent=575"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/categories?post=575"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/tags?post=575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}