tag:blogger.com,1999:blog-70214325155039364382023-11-16T03:40:19.007-08:00Mike Pickton FMPA Third-Year Game Art student's Final Major ProjectMike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.comBlogger32125tag:blogger.com,1999:blog-7021432515503936438.post-29529050562615810032013-06-03T08:49:00.000-07:002013-06-09T08:50:05.728-07:00Conclusions<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdLiy_GcAfB0xTYWhx4_gzs4C1VSNBtam5O4QXnddlm_wXM-gj0VbEh3CC0ikUIJzni65Axesb_H3cDDhnsS2PniehGd_y9CDNO7my9ew3v6P2VouADkbZLoHD8Wopld-8Drohg3L_wDg/s1600/poster_large.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdLiy_GcAfB0xTYWhx4_gzs4C1VSNBtam5O4QXnddlm_wXM-gj0VbEh3CC0ikUIJzni65Axesb_H3cDDhnsS2PniehGd_y9CDNO7my9ew3v6P2VouADkbZLoHD8Wopld-8Drohg3L_wDg/s640/poster_large.jpg" width="640" /></a></div>
<br />
The level is now finished. I say "finished", but really what I mean is: I'm handing it in.<br />
<br />
Did i finish the level? Well examining my brief, I did meet all of the basic requirements, more or less. Regrettably, so much got rushed towards the end. I'd say my goals were ambitious, and due to external factors I spent about 70% of the time I thought I'd be able to on it, so it's not too surprising the level of polish is not quite as hoped.<br />
<br />
Let's examine the successes and failures of the project.<br />
<br />
<strong>Day/Night and Lighting</strong><br />
Success! I'm pretty happy with the result here. After much wrestling with the cascading shadow maps, I feel I've got pretty solid shadows. Regrettably, the global illumination approximations are extremely ghetto, relying on custom lighting, tweaked via matinee across a whole range of "ambient light" parameters (one for each material), with no occlusion approximations, except those painted by hand in the cave and a couple of other spots.<br />
<br />
Certainly, this is an area which would have hugely benefitted both in production time and final result, by using a more modern game engine with GI approximation (CryEngine and Unreal Engine 4 would have been excellent in this regard).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR7rX2N1AwJ6KJ1SF8EJvYKa6D4JbtEdrnKDCDCj48ck3-nL81T4QgyY30TjPREN9oUC1Q-mmKo_OlrBDH86iUKRO7RY9Qd-sq6pgjXSvcjaydD2TxGzy5_zvYmRpWIXBs5b8ylJysSqCC/s1600/poster_bottom_right_m.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR7rX2N1AwJ6KJ1SF8EJvYKa6D4JbtEdrnKDCDCj48ck3-nL81T4QgyY30TjPREN9oUC1Q-mmKo_OlrBDH86iUKRO7RY9Qd-sq6pgjXSvcjaydD2TxGzy5_zvYmRpWIXBs5b8ylJysSqCC/s400/poster_bottom_right_m.jpg" width="400" /></a></div>
<br />
<br />
<strong>Weather</strong><br />
Moderate failure. Although I do have rain particles and snow particles and the clouds and lighting and snow accumulation to support them, there were so many features of the weather that were not completed. Also, I wasn't able to drive the weather through parametric randomness, instead relying on the easy-to-implement fixed-matinee sequence. This means the weather is entirely predictable and consistent year-on-year, rather than being random.<br />
<br />
The rain does not feature puddles, splashes, ripples, wetness or speculars on surfaces as hoped. There simply wasn't time. I also really wanted to have lit-rain surrounding the torches, which I didn't get time for. The rain effect itself is nothing special, either, and would have been nice to create driving rain, and a greater sense of wind affecting the rain. Also, the lightning doesn't illuminate the sky, which would have been a really great effect.<br />
<br />
I'm very pleased with the accumulation and melt of snow, which accumulates evenly and melts in well-lit and well-walked areas first. The snow particles themselves are pretty generic, and I went with the easiest snowfall to do: the gentle drifting snow. It might have been nice to get a real blizzard going.<strong><br /></strong><br />
<br />
The fog is also super-simple. It would have been nice to do a bit more fantastical mist drifting about, and also slightly stylized fog, and had more effective sunlight through the fog.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRCr5bnqe5QFSz5XoQKoLvSA8x9fYua9W3F94gGykuyfsyBraFjciXb8-89_rKafWfMRaQwsUEvWWgIt-lW5zy9Es-6lN-fR12f6U1fc08JsBQzU2CsjLEsQhHWvzNkgpmrA9MLhSwL6v0/s1600/blog_snow_m.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRCr5bnqe5QFSz5XoQKoLvSA8x9fYua9W3F94gGykuyfsyBraFjciXb8-89_rKafWfMRaQwsUEvWWgIt-lW5zy9Es-6lN-fR12f6U1fc08JsBQzU2CsjLEsQhHWvzNkgpmrA9MLhSwL6v0/s400/blog_snow_m.jpg" width="400" /></a></div>
<br />
<br />
<b>Seasons</b><br />
Success! I'm happy enough with the seasons, though I noticed pretty late on that the snow sticks around far too late into spring, but the leaf colour changes, fall and regrowth work really well. The grass size changing is actually pretty unnoticeable, although in the snow it does look like the snow is covering the shortest grass, which is a nice little effect.<br />
<br />
Looking back at my reference, I don't feel I exaggerated the seasons as much as perhaps I should have. It would have been nice to do blossom, and I also didn't get time to do the leaves accumulating on the ground and drifting down-river, which would have really completed the autumnal feel, but generally, the seasons are working pretty well.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK6fyb8Wq95n_CO0kNPTf14Ec89J_lfzUQ72txNEmeLBi-rMIKGUADZMU2wTBa7Ck5W3dGXSqoekQcwsxT4PQJqk2OFX0j9vPON-Uvw-xii56fpqRRus1n7qfk5EeT248pXpZmZ4w6DM9T/s1600/blog_seasons_m.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK6fyb8Wq95n_CO0kNPTf14Ec89J_lfzUQ72txNEmeLBi-rMIKGUADZMU2wTBa7Ck5W3dGXSqoekQcwsxT4PQJqk2OFX0j9vPON-Uvw-xii56fpqRRus1n7qfk5EeT248pXpZmZ4w6DM9T/s400/blog_seasons_m.jpg" width="400" /></a></div>
<br />
<br />
<b>Foliage</b><br />
Moderate success. I think in the end, the trees turned out okay. They're horrifically expensive right now (I'm in the process of optimising them for the degree show, but this won't make the hand-in date)... but they look pretty good. I'm happy with the way the leaves move gently in the breeze, though I wasn't able to get a convincing gale-force wind.<br />
<br />
The grass worked out alright in the end too, though it looks a bit well-kept. It could really have benefitted from other small plants like dandelions and daisies. The same is true for a medium-sized plant - this would really have helped bridge the horticultural gap between the small grass and the large trees. I ended up using scaled-down branches clipping through the ground... which is a bit cheap and naff really.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRPtsGyrwk-HZGkcLdf9a5hIdoo79x-gi3hrs5JRhZQ9nZqr01UtVDk5T2z63F4BeBMrPVUEolKuJuJ4q2EYQ4Y6VcViR9ccYdSlj8EKmUB72UPID7Gz5xX7017koN3qdrcSElqEeCL8Up/s1600/blog_foliage_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRPtsGyrwk-HZGkcLdf9a5hIdoo79x-gi3hrs5JRhZQ9nZqr01UtVDk5T2z63F4BeBMrPVUEolKuJuJ4q2EYQ4Y6VcViR9ccYdSlj8EKmUB72UPID7Gz5xX7017koN3qdrcSElqEeCL8Up/s400/blog_foliage_2.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<b>Rocks</b><br />
Success! The rocks were probably the biggest soul-drainer, meeting artistic problems at every step. However, in the end (and with a lot of lost time), they worked out pretty well, I think.<br />
<br />
The moss and snow both work very nicely with the rocks (though at time the snow does appear to be a different brightness on rocks than on the ground, but its a pretty minor thing).<br />
<br />
The overall style of the rocks seems realistic and is fairly readbale and undistracting. There are a few cases that the rocks are a bit blobby and/or a bit uniform in their scale and arrangement, but this would be easily rectified with a bit better placement.<br />
<br />
The distant rocks aren't so strong. Scaling them up to be massive looks a bit cheap and really I should have spent more time creating another, very large rock asset, and worked the terrain into the rocks in the distance much better.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLRKaqESUM7sGRSQBxpLhJpbj4GRlsYfpXM0_iMbo-kCk9oSLXgDxb8MaeQiMS8uqI43GykXSvOzyT7aWLnZmgVdOlRVGKUWWDDP-x6i6LFgXmospQzqph8FCtwnbiTsseYW_Q2qCog-kZ/s1600/blog_rocks.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLRKaqESUM7sGRSQBxpLhJpbj4GRlsYfpXM0_iMbo-kCk9oSLXgDxb8MaeQiMS8uqI43GykXSvOzyT7aWLnZmgVdOlRVGKUWWDDP-x6i6LFgXmospQzqph8FCtwnbiTsseYW_Q2qCog-kZ/s400/blog_rocks.jpg" width="400" /></a></div>
<br />
<br />
<b>Architecture</b><br />
Moderate success. The architecture was very rushed, leaving in placeholder assets that I didn't have time to create properly. I also wanted to include tesselation to bring the silhouette of the stone blocks to life, but directx 11 (required for tesselation) hurt my frame rate too much before I even introduced the tesselation, so I had to abandon this hope.<br />
<br />
I was very pleased with the way the torches illuminated the architecture, and worked well with the baked-normals of the stone wall. Also the copper roofs, which were something of a gamble which looked to be a mistake for a long time, actually turned out pretty well once I'd done the vertex painting to get the balance between oxidised and clean copper.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUXoofHI02NO_c5OR_gynhXHHikPmTUKNLYrsxRh4GIK5huiv6GymGQiIKOrB4GLd3eLSlLEeeIywMKxmg5pulDl9CI3lzXLBJnRIQtVzXd9FDubZGaiePHq5oEkYBCacObnRGH9oIGCjo/s1600/poster_bottom_middle_m.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUXoofHI02NO_c5OR_gynhXHHikPmTUKNLYrsxRh4GIK5huiv6GymGQiIKOrB4GLd3eLSlLEeeIywMKxmg5pulDl9CI3lzXLBJnRIQtVzXd9FDubZGaiePHq5oEkYBCacObnRGH9oIGCjo/s400/poster_bottom_middle_m.jpg" width="400" /></a></div>
<br />
<br />
<b>Misc Effects</b><br />
Success! The river turned out great, with believable reflections and the illusion of depth with fresnel and the ebbing froth as the water travelled down. Although I didn't get to do the flow map, which would have enhanced the water further, I think I got away without it, and generally it isn't noticeable that the water sometimes flows from or into a hard surface.<br />
<br />
The waterfalls also came out well, despite not being as strong as I was originally planning (though this better matches the throughput of the river). The large waterfalls in the vista could have used their own shader and textures, but I didn't really get time for them, so they ended up looking a bit rushed (along with most stuff in the vista really).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4EOxJAa6OlT00sUrW5VJ4VZAsFSrXvYcuomct8Pv88LSKSWxvZRsNI-75xL37UdThRcIn4UQpqpDsbIRMImuYskeUjmqEKOMTOAjcGCQzWcrVqyvNaA1G1n-eIogOfdcP8b7sd7dOURxC/s1600/blog_waterfall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4EOxJAa6OlT00sUrW5VJ4VZAsFSrXvYcuomct8Pv88LSKSWxvZRsNI-75xL37UdThRcIn4UQpqpDsbIRMImuYskeUjmqEKOMTOAjcGCQzWcrVqyvNaA1G1n-eIogOfdcP8b7sd7dOURxC/s400/blog_waterfall.jpg" width="400" /></a></div>
<br />
<br />
The torches didn't use a flipbook as I'd have liked, but I think I got away with it. The licks of flame work particularly well, though the stacking one-on-top-another looks very "computer game" and not realistic. I would have really liked a glow effect around them, and also lit rain when it's raining, but (for probably the hundredth time in this post) I ran out of time.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyZh9T9cILYcinXmWklzAHK7xFk7cvOEaCCJiZBY34PG5ToTuhJqhn_WYDLBycfhINFMSRe8qu3AH_06J7XW-BpPurNAgN4Ns_g7XOjebZs_w6Es2nlRxBLQDOJWVV1ez9oG9ayTUTYGVI/s1600/blog_toches.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyZh9T9cILYcinXmWklzAHK7xFk7cvOEaCCJiZBY34PG5ToTuhJqhn_WYDLBycfhINFMSRe8qu3AH_06J7XW-BpPurNAgN4Ns_g7XOjebZs_w6Es2nlRxBLQDOJWVV1ez9oG9ayTUTYGVI/s400/blog_toches.jpg" width="400" /></a></div>
<br />
<b>Sky</b><br />
Failure. The biggest failure of the project was undoubtedly the sky. What's there doesn't look bad, but I didn't set out to make a project that "isn't bad", so my disappointment only really makes sense in the context of my hopes for the sky.<br />
<br />
Hope: Thunderous stormclouds, crowning over the horizon, bringing with them a deluge of rain and hurricane wind.<br />
<br />
Achieved: The entire sky fades linearly to overcast all at once, rain piddles down. the wind speed is unaffected.<br />
<br />
Hope: Procedural clouds, drifting softly, delicately layered and beautifully illuminated by the the moving and colour-changing sun.<br />
<br />
Achieved: Dotty-looking clouds, seemingly evenly lit and white at all times, irrespective of the light direction or colour.<br />
<br />
Hope: Moonlight dancing between the clouds; a striking visual landmark in the night sky.<br />
<br />
Achieved: I don't even have a moon. And the sun always draws in front of the clouds.<br />
<br />
...you get the idea. The saving grace really, what I have is only bad in the context of my ambitions, it's little worse than most skies we see in games.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh51LcAoaOKUAQFXZH3DYpIxBxqQPL6xMc6IQOWDrdeumz_jsBnhygWHQyGlUSz6sVUrZYwK4YfUmFcwJ2EAeicJJXWwBErJf7lPuA44DH43ykO6Oe-z2yCq-hHDV-kd2E_0AN5kYwnET2I/s1600/blog_sky.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh51LcAoaOKUAQFXZH3DYpIxBxqQPL6xMc6IQOWDrdeumz_jsBnhygWHQyGlUSz6sVUrZYwK4YfUmFcwJ2EAeicJJXWwBErJf7lPuA44DH43ykO6Oe-z2yCq-hHDV-kd2E_0AN5kYwnET2I/s400/blog_sky.jpg" width="400" /></a></div>
<br />
<br />
<b>Final Thoughts</b><br />
I'm really pleased with my choice for a final major project. It gave me heaps to do and challenges at every step. I regret I don't have any individually nice assets (plans for the statue by the waterfall were abandoned early on), but as a complete piece I'm pretty happy with the result. For a long time I was seriously worried that what I would finish with would actually be something of an embarrassment, but I'm delighted to say that I'm vaguely proud of it. ish.<br />
<br />
I'll probably do it all over again when a free Unreal Engine 4 developer kit is out. And I'll probably spend a year doing it. Then I'll have scratched my itch and finally be able to say: THIS is what I want a dynamic fantasy environment to look like!<br />
<br />
Please take a look at the flythrough video, showcasing the full environment and... most... of the season/weather/time of day combinations. :)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='600' height='400' src='https://www.youtube.com/embed/wOKxBlk7TPY?feature=player_embedded' frameborder='0'></iframe></div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com1tag:blogger.com,1999:blog-7021432515503936438.post-55804873156398058622013-06-01T15:51:00.000-07:002013-06-06T15:56:00.884-07:00SkyI had been putting off the sky because I really had no idea how long I would have available to work on it. It actually was at the point where I thought I would have to settle for entirely cloudless sky, but I really couldn't stand just relying on fog when it rained, So I had a quick go to see what I could do in a couple of days.<br />
<br />
I started by doing "dotty" clouds. I knew these wouldn't need clever lighting to look believable, and I had a few pictures which I could use for this purpose.<br />
<br />
By using two different sets of UV coordinates, I was able to use top-down style mapping for overhead clouds, as well as ring-style cylindrical mapping for horizon clouds. One of the channels was used to break up the obviousness of the repetition by tiling at a different amount. Combined with the existing fog, the result was pretty satisfying and much nicer than just a plain sky, albeit nothing fancy:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSn08pl43keus0WtPzCZWsSuwQ-LGphZ9lpeO5bnGriYj9m3G_b_8oRbJi14jATbu_KY2ogkfB_ZXt2-zJnRntQuGRPV7rLS0CswPIN-y9_-2sFtM4DRsS-AtuJPLuNSFN0dLVnD2CWQaM/s1600/dottyclouds.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSn08pl43keus0WtPzCZWsSuwQ-LGphZ9lpeO5bnGriYj9m3G_b_8oRbJi14jATbu_KY2ogkfB_ZXt2-zJnRntQuGRPV7rLS0CswPIN-y9_-2sFtM4DRsS-AtuJPLuNSFN0dLVnD2CWQaM/s320/dottyclouds.jpg" width="320" /></a></div>
<br />
<br />
For the overcast texture, I slapped and stitched together many different stormy and overcast cloud pictures. The fade in for this is simply linear, which is not very realistic, but I was in a bit of a rush at this point, so it had to do. I generated a normal map, which is mostly ineffective, but again... it had to do.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYy9CME-pbH93WzHCz5Kb2qgyrLwF7Tl9LZ432NQAIKZ77mh1B34xVL6FgzvLUw8t3uL522G-SpIntW68BO_pBOgf8hjAif64nc5iW0DU6F5c4o0mv8nAsEsKAAul0vWfO6p9mFgAKpgIY/s1600/overcast.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYy9CME-pbH93WzHCz5Kb2qgyrLwF7Tl9LZ432NQAIKZ77mh1B34xVL6FgzvLUw8t3uL522G-SpIntW68BO_pBOgf8hjAif64nc5iW0DU6F5c4o0mv8nAsEsKAAul0vWfO6p9mFgAKpgIY/s320/overcast.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
I would have loved the lightning to light up the sky, and I had the normal map to do that, but UDK wasn't immediately playing ball and I didn't any longer have the time to wrestle with it, so i just rolled over and let UDK win that round.<br />
<br />
At night, the clouds are very hard to make out (which is about right), and they block the stars (also, about right). I would have really loved to add a moon which lit up the clouds, but given my failure with getting the sun to light up the sky, I didn't even try for the moon.<br />
<br />
I set up a light function to give the appearance of the sun casting the shadows of clouds on the ground. The effect is very subtle (perhaps unnoticable? :S) but hopefully it gives that can't-put-a-finger-on-it extra dynamic "alive" feel to the lighting. This actually introduced an unexpected problem - because I had now started using the sun to light up the clouds, I was now casting the shadow of overhead clouds onto the clouds, which of course was nonsense. This actually meant I ended up duplicating the sun light without the cloud-shadow function and using that to light the sky instead.Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-55267689366135856232013-05-29T15:41:00.000-07:002013-06-06T15:42:20.846-07:00WaterfallsThe waterfalls needed to conform to the underlying rock, so I decided to rely on vertex painting to "stream" the water flow, and also to push it outward around the rocks as it cascaded down.<br />
<br />
The mesh for the waterfall was therefore fairly dense, and the vertex colours allowed me to paint in opacity and position offset.<br />
<br />
Although this worked okay for rolling down rocks, getting a natural looking curve where the water was seeming to bounce off the rock and then arc downward was a bit tricky using vertex painting, so I made a second, thinner mesh which was already arced.<br />
<br />
The overall effect ended up much less dense-flowing water than I had planned, but I actually think this is a little more practical, and I've warmed to the way it looks now.<br />
<br />
In the case of the enourmous waterfalls in the vista, I felt I needed them to block light to the rocks behind them, so I made a material which allowed me to paint blackness, which looked like moderately convincing soft shadows.<br />
<br />
At the bottom and top of the waterfall, a cloudy mist of water is created using a particle emitter. This was particularly hard to tone-adjust for night because the particle system was already adjusting the vertex colour in order to fade each particle over time, and UDK's material instance control through matinee (which is what I've been using to adjust the amount of light on materials so far) doesn't seem to play nice with emitters.<br />
<br />
I was able to find a workaround by allowing matinee to control a variable on an actor (i happened to use the brightness of a tiny out-of-level light, but I could have used anything). This is read ten times per second using kismet, and applied to all emitters. This was a pain to set up and is messy and probably highly non-optimal, but I really couldn't stand such bright water mist at night!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSE4lwp2hhi5qqmVVHijVDIiBDelVdCJ4rUh2E1OmxT6ObMbejxdmqzWzqvWO8rh3X-eZx2VzxwHw-hannZJ0KmL8nviSFGQS7L2GKbOhsKGYNc2cC9gkuuOcBm2JDxT-NsUGplCEYgndq/s1600/waterfall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSE4lwp2hhi5qqmVVHijVDIiBDelVdCJ4rUh2E1OmxT6ObMbejxdmqzWzqvWO8rh3X-eZx2VzxwHw-hannZJ0KmL8nviSFGQS7L2GKbOhsKGYNc2cC9gkuuOcBm2JDxT-NsUGplCEYgndq/s320/waterfall.jpg" width="320" /></a></div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-41307692179798026312013-05-24T15:27:00.000-07:002013-06-06T15:28:17.056-07:00Grass PerformanceMy level was really starting to run slowly. It was a real inconvenience to accurately measure the effect of objects on performance, but after installing FRAPS, I was able to see the framerate as I made adjustments to the level without having to jump in-game.<br />
<br />
It wasn't long before I had identified that in areas of poorest performance, the grass was taking about half the render time, which is far, far more than it should have been. I wasn't sure if it was getting drawn behind terrain which would later draw on top of it (overdraw). At this time the grass wasn't getting culled, so I figured I'd experiment a little there.<br />
<br />
What I noticed, however, was that changing the draw distance on the grass was not actually culling the grass. It turns out this is because UDK was clumping together the grass actors into batches in their hundreds, and wouldn't cull them unless none of these actors could be seen. With such enourmous clumps, this meant almost no culling, and almost guaranteed maximum overdraw. After adjusting the clump sizes to be in small clumps no wider than a dozen meters or so, my framerate improved from a low of 17 FPS to a low of 30FPS... a huge and really pleasing improvement in performance!Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-41457767533140691542013-05-23T15:20:00.000-07:002013-06-06T15:21:07.975-07:00Effects pt 2I've now modelled a torch bracket and done a flickering flame visual effect. It would have been nice to use a "proper" fire flipbook (series of images, like a 2d animation), but it wasn't practical to find time to record that for myself, so instead I photoshopped four photos of fire and used some shader trickery to make them look "alive".<br />
<br />
The flame effect is missing a couple of things, which I may get time to add later: it needs a glow effect (ideally one which has lit rain on it when its raining to give the impression the fire is lighting the rain drops), it needs a distortion effect, and also smoke.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwmR_sd8IUT7KUe6oa2Vt4mnoqjDVi49GtJ3bYK8_2WzP8XSwRwV7n5uXH6j-PENGaHldczmzkgoeipdON4-LlflRAnDaf1ZCK5f2n3KFLewM9I_VyVl4PsPXFq6zNoaeL39o6yATe_1AE/s1600/torch.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwmR_sd8IUT7KUe6oa2Vt4mnoqjDVi49GtJ3bYK8_2WzP8XSwRwV7n5uXH6j-PENGaHldczmzkgoeipdON4-LlflRAnDaf1ZCK5f2n3KFLewM9I_VyVl4PsPXFq6zNoaeL39o6yATe_1AE/s320/torch.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Since it featured heavily in my brief, I decided to rush together the rain and sky and drop much of the polish time I had allocated. This means that the rain will most likely be little more than clouds and rain particles, and I probably won't get time to do puddles, wet rocks or splashes. But I think its absence would have hurt the ambition of this project more than a little less polish. <br />
<br />
Here's what I've got so far for the rain. You'll notice I'm also reducing the direct light whenever its overcast. The sharp shadows during rain obviously weren't right, but this introduced the problem of a darker scene, so I decided to use postprocessing to compensate. I also introduce more fog during rain.<br />
<br />
I experimented with a ring around the player with rain falling on it, but I abandoned this in the end because it was too obvious that the rain moved with the player whenever the player strafed. It occurs to me now that I may be able to scroll the texture with the player strafing, but this may prove fiddly so I'll leave it for now.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfeQwBgmFkkWRfQC8hZ4up4Ojo4j-5kTOw1cKTsQyAO6xyGv2IS6H-c3B5y1b-t-UR0VWIhXt3l9sWhZnFL9ijrBB6a6OR9Qwq6xL7NVAOd0OwkHewYZoBOhj4n4YgWPVypZrA6RP0Y15A/s1600/rain.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfeQwBgmFkkWRfQC8hZ4up4Ojo4j-5kTOw1cKTsQyAO6xyGv2IS6H-c3B5y1b-t-UR0VWIhXt3l9sWhZnFL9ijrBB6a6OR9Qwq6xL7NVAOd0OwkHewYZoBOhj4n4YgWPVypZrA6RP0Y15A/s320/rain.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I tried out a really quick lightning system which basically just enables a light very briefly intermittently during a storm. This looks okay, though it is noticably absent in lighting up the sky at this time.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Snow works in much the same way as the rain, creating an overcast effect, reducing the direct light and generating particles. The fog is a little bit lighter and denser while snowing though.<br />
<br />
The snow particles drift down in a natural-looking manner, which I'm fairly pleased with. I would have liked to have gone for a stronger blizzard, but this would have required me fixing up something clever with the precipitation ring mentioned above, and/or using a lot, lot more particles, which I'm reluctant to do given the strain my level is already putting on the performance.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-QkWJyrxizdxBPLIeSc2zsw7_c548cyzfrjtVmpDgAPlnKjkYJdFnhPWzW33F13DgAk-gvHRUGPfbFxRomYO0-b5lu3F1i2gGpxQV1l3gXuf9SVZCs3Y4Oi21maaSwL13VzB31-sIP-cR/s1600/snow.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-QkWJyrxizdxBPLIeSc2zsw7_c548cyzfrjtVmpDgAPlnKjkYJdFnhPWzW33F13DgAk-gvHRUGPfbFxRomYO0-b5lu3F1i2gGpxQV1l3gXuf9SVZCs3Y4Oi21maaSwL13VzB31-sIP-cR/s320/snow.jpg" width="320" /></a></div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-10073506718438463032013-05-17T15:07:00.000-07:002013-06-06T15:29:27.798-07:00Effects pt 1<br />
<div class="MsoNormal">
There a lot of different effects and things, and the quick
ones I tend not to type up, but here are a few that I’ve done over the past
couple of weeks.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I’ve added leaves falling from trees. This uses a
mesh-emitter. I was not able to control the fall of the leaves as I would have
liked using UDK’s Cascade editor, so instead I made the material offset the
leaf as it falls.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSWUySi88EXBJ_JsyLbM43YeUvYXW0iCs2sAwnyPUFQj8GWMDoRxzeS_S1KtLg_uQeqm_PHDnZTV-hP4hbrfEzGnyLgv7nqr17yMpvZSgD07qgetGpNLTT3yiQtdwGpXgXDEa5czBCfpFk/s1600/leaves.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSWUySi88EXBJ_JsyLbM43YeUvYXW0iCs2sAwnyPUFQj8GWMDoRxzeS_S1KtLg_uQeqm_PHDnZTV-hP4hbrfEzGnyLgv7nqr17yMpvZSgD07qgetGpNLTT3yiQtdwGpXgXDEa5czBCfpFk/s320/leaves.jpg" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I’ve tone-balanced all the shaders to look correct during
the day and night. I also started work on the postprocessing effect. It colourises
the scene slightly based on time of day and time of year so that day is warmer,
night is colder, spring is greener, summer is yellower, autumn is oranger and
winter is bluer. These are obviously “fakes”, but help to give a bit of
atmosphere.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The postprocessing effect also now adds fog in the morning,
which is particularly dense during winter. For the moment this effect is
entirely in postprocessing, but I’d like to add ground mist throughout the
level to compliment the depth-based whiting.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqRPTZd5RSQXseFBMLSu1KhVJnxmepQQ5cq-hPYS_pztoX9XZTS14k_8lvyr5X-dly_QE4KiWmLRsgC4I_WpjdP_zHsZDh1kbkZY-ex31JRKMGw4455bK35phgAaXhYJfe3GzOxof6fYn6/s1600/fog.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqRPTZd5RSQXseFBMLSu1KhVJnxmepQQ5cq-hPYS_pztoX9XZTS14k_8lvyr5X-dly_QE4KiWmLRsgC4I_WpjdP_zHsZDh1kbkZY-ex31JRKMGw4455bK35phgAaXhYJfe3GzOxof6fYn6/s320/fog.jpg" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Also in postprocessing now is heat haze. This essentially
offsets the position of pixels based on depth and height. Although I couldn’t
get actual world height, I’m using screen position to fudge it, and I don’t
think most people will notice. To get the rippling effect I’m just using the
same normal map as my water texture, panning upwards, and it is the red and
green channels which drive the offset.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Relying entirely on the sun to cast the light makes
interesting lighting quite difficult, so I decided to add torches to the level.
I’m partway through making the torch and bracket model, but I’ve started
placing warm, flickering lights throughout the level and they really help to
add interest, particularly at night, and they contrast nicely with the cool
night-time tones. I’ll obviously need to make a flame visual effect, which I’m
looking forward to. I’m hoping to add a cool visual effect for the torchlight
bouncing off the rain if I have time to add rain, but rain is starting to look
like a low priority with all the stuff that *needs* to be done.</div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-10522176009011004412013-05-10T04:10:00.000-07:002013-05-25T04:10:53.296-07:00Grass revisited
<br />
<div class="MsoNormal">
I had another go at the grass. Last time it ended up very
“crazy” looking. It was doing lots of different things, in lots of different
colours, pointing lots of ways and generally being a real mess and bizarre. I
fell into this trap by trying to make a very small amount of grass look
interesting, and repeating it a lot. I also fell victim to trying to make
something as efficient as possible by prioritising performance bang-for-buck
with artistic decision-making. I therefore made patches too dense and just
generally tried to do too much with too little.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So this time around, my bakes were much simpler, and the
textures much less complicated – it doesn’t even have a normal texture. The
result is a much less remarkable-looking set of grass patches.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw9Gn6iSnBLE8ni-AlYFOUF0vuM-4ybiEupch2buHLzT7d5tGLHm8eGaKoqndmRsQdcEr9bdW-GwF24fc2-_iWFFgUzWwyZg5m5Dj7t2oQpTzCmPO9UvH679oREvqBKps6b4nBFI3Utsc_/s1600/01+grass+max.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw9Gn6iSnBLE8ni-AlYFOUF0vuM-4ybiEupch2buHLzT7d5tGLHm8eGaKoqndmRsQdcEr9bdW-GwF24fc2-_iWFFgUzWwyZg5m5Dj7t2oQpTzCmPO9UvH679oREvqBKps6b4nBFI3Utsc_/s320/01+grass+max.jpg" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I set about scattering them throughout the level by painting
them onto the landscape. By controlling their size and the density of
placement, I was able to make interesting patches of grass without them looking
quite so nuts as before.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWWA1VXG6zCbh6xpeNGBvctaXR3Ow9PTrv1AOGXOW3ApTShqH_TuWR1h1SYAdO2lH-zSDMm4O-TZ0ya_YY3OCQT-RRbuuxGDItwpLTvpGeVTzFb_FaLgBYozT2pwNF4PUKpj54qgJhvIWc/s1600/03+-+grass+final.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWWA1VXG6zCbh6xpeNGBvctaXR3Ow9PTrv1AOGXOW3ApTShqH_TuWR1h1SYAdO2lH-zSDMm4O-TZ0ya_YY3OCQT-RRbuuxGDItwpLTvpGeVTzFb_FaLgBYozT2pwNF4PUKpj54qgJhvIWc/s320/03+-+grass+final.jpg" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I added a gentle wind to the grass without the use of
texture lookups. Although it uses a lot of nodes, the instruction count isn’t
too high and it’s a lot cheaper than using a texture lookup. (incidentally, the
tree wind is done in a similar textureless way).</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The grass also grows and shrinks with the seasons. This is
done by making the grass both thinner and shorter using the texture.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It’s not the best grass in the world, but at least it isn’t
an eyesore any longer. If I get time, I’d like to add some more plants: daisies
and dandelions which will be most visible during spring and summer, but also
medium-sized plants to fill the size gap between the tiny grass and the large
trees. Edit: not going to have time :(</div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-19470374046416754472013-05-03T04:06:00.000-07:002013-05-25T04:07:23.125-07:00RiverSorry for the lack of updates. I've moved up to Newcastle to start a new job (Junior Technical Artist at Ubisoft) and didn't have access to the internet for a while. So here come a few updates at once, dated according to when i should have posted them!<br />
<br />
<br />
<div class="MsoNormal">
The river water represented something of a technical
challenge. I wanted realistic water which appeared to be flowing in the
direction of the river. I did some research on flow maps, but due to time and
software constraints, I would not be able to implement <a href="http://forums.epicgames.com/threads/939815-TUTORIAL-Water-Flow-For-UDK">flow maps as described here</a>. Instead I opted to rely on clever unwrapping, and some vertex painting to
indicate flow direction for the river edges.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrXohS7LNjGvQY1kxPSLIQ286UDQ9cS5lKJ1puVYhAXw5rcLJZOb48I5oXs_PW3n7Hu3IPOVybl70kHhcm_3IJxoK3YJNzYOltXPkNMatqIUVGFN90PgWMOFIYc_0Jb7WbUb1FF9oY-UPo/s1600/01+-+max.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrXohS7LNjGvQY1kxPSLIQ286UDQ9cS5lKJ1puVYhAXw5rcLJZOb48I5oXs_PW3n7Hu3IPOVybl70kHhcm_3IJxoK3YJNzYOltXPkNMatqIUVGFN90PgWMOFIYc_0Jb7WbUb1FF9oY-UPo/s400/01+-+max.jpg" width="400" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I decided to break the river into several sections using
rapids. Not only would the rapids look nice, but this would allow me to avoid
one large piece of geometry (which is generally advisable to avoid for various
technical reasons). This would also help if I needed to use several reflection
maps.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The normal map was made by height-painting over a photograph
of rippled, flowing water. This was then taken into max and baked down, and the
normal map was further tweaked in photoshop to ensure the ripples were
shallower on the trailing edge. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Utilising the flow-directed unwrap with the panning normal
maps and a scene-captured cube map gave a really pleasing result, which was a
great starting point. I added depth and Fresnel-based transparency (ensuring
the player could look down into the water). I’m still trying to figure out why
the distortion isn’t working, but I have faith I can get that done eventually.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
With just a reflection map and a bit of colour balance, I had a pretty good result:</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4cDigdNbH8SJQvKSUx8-CehgOYQHfZ-XjiMG4ehVHyyssaRxwf18mpPZRo3E1FoKstOAasyiVOsqMby9oRn1Tqzg85M3fJa4REdupc-VSo08LNbkZr_GIGZOMwURbYthc39g-Z0R5nQ-l/s1600/02+-+justreflection.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4cDigdNbH8SJQvKSUx8-CehgOYQHfZ-XjiMG4ehVHyyssaRxwf18mpPZRo3E1FoKstOAasyiVOsqMby9oRn1Tqzg85M3fJa4REdupc-VSo08LNbkZr_GIGZOMwURbYthc39g-Z0R5nQ-l/s400/02+-+justreflection.jpg" width="400" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The water looked a bit too pristine, so I decided to make it
darker and browner when looking down into the water, and I decided to add some
foam into the water. Although foam does split apart and can change in size, its
overall shape stays the same as it travels down water, so I added it simply
panning. It looked repetitive and static, so I overlaid it on top of itself to
break the repetition, and<span style="mso-spacerun: yes;"> </span>used a blurry
noise map to offset its UVs as it moved down the river. This meant that the
foam seems to move about and “wibble”, and looked pretty good in conjunction
with the ripples. Obviously the foam is not as reflective as the water, so I
changed that, but I was not able to get a nice diffuse effect on the ripples
since the water is a translucent shader and therefore does not receive shadows.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I started by using a realtime cube map capture (every 2
seconds) for the reflections, which had the benefit of automatically adjusting
to night lighting as the scene itself darkened. However, using just one
statically-positioned capture actor meant that only a small portion of the
river had accurate reflections. Placing several would be too costly, since they
would all need to be capturing at all times, so I tried attaching the actor to
the player, but found that to be too detrimental to the frame rate as well.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In consideration of the fact that my texture usage was still
very low, I chose to use multiple static cube map renders, captured “offline”. This
meant that although the reflections were actually showing summer daytime at all
times, I hoped that nobody would really notice so long as they were
tone-corrected for night. Because the river has been broken into five sections
by rocky rapids, I could use a different cube map for each section.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Finally, I added some "white turbulence" to help the water edges and rocky parts feel like the water was flowing at a higher pressure, and against the surrounding rocks. I have yet to do freezing water, water at low flow, or water levels rising and lowering, but I doubt I'll have time for any of that any longer.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-lJAFRN4_8FuPvuzXUfJLXk0v9AvXJWxeE65Q2XCzetBUNITGDEwEiMUBZO4jjMsdQ7td1rRpXIOBFKbdzPp3VArpGXvMl7-l9Ue_z_OqxqwNygyE8shnBUaUw64aArTn1YNt0EUDKPw1/s1600/03+-+final.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-lJAFRN4_8FuPvuzXUfJLXk0v9AvXJWxeE65Q2XCzetBUNITGDEwEiMUBZO4jjMsdQ7td1rRpXIOBFKbdzPp3VArpGXvMl7-l9Ue_z_OqxqwNygyE8shnBUaUw64aArTn1YNt0EUDKPw1/s400/03+-+final.jpg" width="400" /></a></div>
Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-67418849330363853362013-04-26T11:43:00.000-07:002013-04-26T11:46:42.810-07:00Snow!I've now added the snow to everything except the architecture.<br />
<br />
The snow fades in fairly evenly, but melts away with a sharper falloff, and remains congregated in the areas painted on the terrain (these are areas which are in shadow for most of the day)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw3chM91bcsz0HQ1ZylJ3vS5xvV9vLggdkbTMIYqwEw1YPZZ2tBysJWuwGQLMawWpPYPSWTGN3H7EtwxLa3FYb1JFxSfZ8MjIE2PE-N1B4xt0TxIYlaAHHF-qrS7Vripx_XthelTkciskR/s1600/01a+-+snow.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw3chM91bcsz0HQ1ZylJ3vS5xvV9vLggdkbTMIYqwEw1YPZZ2tBysJWuwGQLMawWpPYPSWTGN3H7EtwxLa3FYb1JFxSfZ8MjIE2PE-N1B4xt0TxIYlaAHHF-qrS7Vripx_XthelTkciskR/s400/01a+-+snow.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI5u7gGgPwdfVuGMihxuPiHkjMM6c1FYNsEg8ukVkKUetgTgH2cES0wwHwYG42w7MArhWjANdIuACtAUCA4LDgdtBeTHSAaE-6W1ROHB1Tib2MmVzvk2YjlWBOMzo_SqiJm_mpdl19Y3FZ/s1600/01b+-+snow.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI5u7gGgPwdfVuGMihxuPiHkjMM6c1FYNsEg8ukVkKUetgTgH2cES0wwHwYG42w7MArhWjANdIuACtAUCA4LDgdtBeTHSAaE-6W1ROHB1Tib2MmVzvk2YjlWBOMzo_SqiJm_mpdl19Y3FZ/s400/01b+-+snow.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
As you can see, the snow builds on the rocks and trees based on normal direction. The trees are also now linked up correctly to match other season effects.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The level is starting to come together, but this just makes whats missing even more obvious. In this case, falling leaves and snow are clearly missing as the trees shed leaves and snow builds on the ground!</div>
<br />
<br />
<br />
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-10934597729240075192013-04-22T10:16:00.001-07:002013-04-22T16:04:34.598-07:00Rocks - same-same but differentAlthough my rocks had looked okay in isolation, I was starting to feel that they were too noisy and fussy across the level. I simplified the overall look of the rocks by:<br />
<div>
</div>
<div>
<ul>
<li>reducing the number of normal map details</li>
<li>using a subtler diffuse texture with fewer details</li>
<li>enhancing the strength of the asset-specific curvaturecavity/occlusion</li>
<li>bringing the overall tonal balance between lit and unlit closer together</li>
</ul>
I also reduced the expense by:<br />
<div>
<ul>
<li>swapping out overlay blends for multiplies</li>
<li>removing the "texture rotates with asset rotation" stuff (since the textures were now rotation independent)</li>
<li>simplifying the top-down lighting stuff</li>
</ul>
I also improved their placement by increasing scale and using fewer pieces to simplify the shapes and create less "clutter".<br />
<br />
<div style="text-align: center;">
Before:</div>
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMOBX1a8hjaSORWRjhmj5bj8KAp5WLcqYvDRnYSsSixkZCuy3f00MEKAQEHzjMuuHFdnRupWaApoaRhZgTtOys3PnCU6FTmEKSTyGsQ0AqyLN1OoVawvMZ51Mv9jk3ti0EUBVW1504-XhK/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMOBX1a8hjaSORWRjhmj5bj8KAp5WLcqYvDRnYSsSixkZCuy3f00MEKAQEHzjMuuHFdnRupWaApoaRhZgTtOys3PnCU6FTmEKSTyGsQ0AqyLN1OoVawvMZ51Mv9jk3ti0EUBVW1504-XhK/s400/01.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHDLQoTS7jOVlhP08t3WrxEuUH1rNOfD8RtL9m-SFHSzcPo7FKLvj-Zs3NyeiZ2bZ-xXuApKhUkq74s1HbYCDXsxIsoXUToax8fIpE8xvM91SRIa0UlP3ziNjr93BlU3Rakh4VrrnMsNAG/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHDLQoTS7jOVlhP08t3WrxEuUH1rNOfD8RtL9m-SFHSzcPo7FKLvj-Zs3NyeiZ2bZ-xXuApKhUkq74s1HbYCDXsxIsoXUToax8fIpE8xvM91SRIa0UlP3ziNjr93BlU3Rakh4VrrnMsNAG/s400/03.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
After:</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPJ0HBEVoUMHDziBEWE__UyjAZ6E9olxhRU5ewsivHBOMRsMUENJgAK6WB-fXHZmGVr6A9gsXug3cs1_ozQmMHsNA5rNsmyg-M00P5z42K-4Px-KHlqP_kKCvWXN_ZosnHkUvLupMtghRE/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPJ0HBEVoUMHDziBEWE__UyjAZ6E9olxhRU5ewsivHBOMRsMUENJgAK6WB-fXHZmGVr6A9gsXug3cs1_ozQmMHsNA5rNsmyg-M00P5z42K-4Px-KHlqP_kKCvWXN_ZosnHkUvLupMtghRE/s400/02.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfYsJTUozjrBslNWmX0px4HBYwXTtY7FLg2Yh8BEWlu14PajutJ_G7tNzpmE3wvYrjTn4bua5HXn4ql872XdGVugHFSjrvbm8dK3U_yNZW-yC1cgGhLyHSi1ScUj5ZIRu8vo2o6KtmLFbu/s1600/04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfYsJTUozjrBslNWmX0px4HBYwXTtY7FLg2Yh8BEWlu14PajutJ_G7tNzpmE3wvYrjTn4bua5HXn4ql872XdGVugHFSjrvbm8dK3U_yNZW-yC1cgGhLyHSi1ScUj5ZIRu8vo2o6KtmLFbu/s400/04.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
You may also spot I've been toying with grassy/mossy decals. Still playing with those, I don't expect to leave them as-is.</div>
<br /></div>
Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-28686739971630815882013-04-14T16:02:00.001-07:002013-04-14T16:02:46.618-07:00Lens FlaresBeen working on the sun and sky a bit today. The sky still has a long way to go - right now it's just a clear blue sky at all times, but the lens flares for the sun have come a long way pretty quickly. They were a lot easier to do than I was expecting, which makes a pleasant change.<br />
<br />
Here's my reference... <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPN60nxCZI-sSIK9LlOXpzOMHraiAFWH6FVlQpV19qzzvF4BsC73RYIy58feFtLx-LmrUr08VHDnwoY146ql7v7PPTJWLtFinowc-nv-ouvlpc6UujB7Omcs2q5zQs54ORX4rZ0nMY3Bbv/s1600/01_Lens_Flare_small.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPN60nxCZI-sSIK9LlOXpzOMHraiAFWH6FVlQpV19qzzvF4BsC73RYIy58feFtLx-LmrUr08VHDnwoY146ql7v7PPTJWLtFinowc-nv-ouvlpc6UujB7Omcs2q5zQs54ORX4rZ0nMY3Bbv/s400/01_Lens_Flare_small.jpg" width="400" /></a></div>
<br /><br />
Obviously something as strong as this would be really distracting, so I went for something a little less strong.<br />
<br />
The system essentially allows you to specify a material, distance and size for each flare, which slide around your screen based on where you're looking and the distance value. By incorporating the distance from source into the materials I was able to do things like fade them as the player looks away, and increase their size or strength when looking straight-on. This is best demonstrated with motion, but here's a couple of screens anyway.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxCC4iNG_LyVp07NecgS4uRXUx53sGOSUxQ3Ec0b-LA0M3ALxA_QEfFPmzCdhwyfjo6Og5i-UOMntwqmX6CQF1oxz9x_uuEZ4RUUJgZNAgQXLUjzUIsH3YaFeVxX_rrjTnbotycgstjBXf/s1600/02_Lens_Flare_sky.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxCC4iNG_LyVp07NecgS4uRXUx53sGOSUxQ3Ec0b-LA0M3ALxA_QEfFPmzCdhwyfjo6Og5i-UOMntwqmX6CQF1oxz9x_uuEZ4RUUJgZNAgQXLUjzUIsH3YaFeVxX_rrjTnbotycgstjBXf/s400/02_Lens_Flare_sky.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJYvGVmDzFkAu_y0NUfEh0QpjNDV7W4G6bsnFCyiFyZXa2tB3N33f1KLxUSOOkXFCA3VskTXBrkQGxqOxgNA_r3N_A0g_gBhEKg1IM8bU2MjxPFeGhVEDGYkxBTYhP69FmGvy_rT9JX8Nv/s1600/03_Lens_Flare_rock.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJYvGVmDzFkAu_y0NUfEh0QpjNDV7W4G6bsnFCyiFyZXa2tB3N33f1KLxUSOOkXFCA3VskTXBrkQGxqOxgNA_r3N_A0g_gBhEKg1IM8bU2MjxPFeGhVEDGYkxBTYhP69FmGvy_rT9JX8Nv/s400/03_Lens_Flare_rock.jpg" width="400" /></a></div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-23623381351998537582013-03-28T19:13:00.004-07:002013-03-28T19:16:08.022-07:00Trees pt 4I've had a quick test now for performance with low alpha coverage (high overdraw) and been pretty happy with the performance impact. I've also had a go at seasonal variation for growing and shedding leaves and changing colour. All of that seems to be working fairly nicely though it has become clear that if I want my trees to blossom I will need another texture.<br />
<br />
I've moved on to the trunk model. I expect I'll need a few size variations, but I don't really want to add too many branches to them, since I can have more variation with relatively little work by having branch models which I can intersect with the main trunk geometry.<br />
<br />
My first stab at the trunk came out okay, but a little bland. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwDB_5YQrATokbMurZ_3JXcSPcF-U0qHEgSNuo54pPbs___dFRNUcZwOzOffLTm5eIKc8SuBAKq5twaQXQtMgmyvhTJBahvEKeBPNyo5lnewPQRmkdnaw6f0pxp6sz4R8T1GWdJFe-IGBw/s1600/01+-+boring.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwDB_5YQrATokbMurZ_3JXcSPcF-U0qHEgSNuo54pPbs___dFRNUcZwOzOffLTm5eIKc8SuBAKq5twaQXQtMgmyvhTJBahvEKeBPNyo5lnewPQRmkdnaw6f0pxp6sz4R8T1GWdJFe-IGBw/s400/01+-+boring.jpg" width="400" /></a></div>
<br />
I took a look at some more reference, and really liked this tree's style.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi1OmoG5JWOz9WIEXUyxdG66vqdtD0ESlBzbm1wGijap7H4eLt8O1pBV0SvEk5wtoBGoHFF01xHB9dIEsPBuLiPa6ItlyRcMRXtr-_hY7FKPYA3u1-C9UnmAfI5s_sHHTP50mHEkSn_3D5/s1600/00+-+ref.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi1OmoG5JWOz9WIEXUyxdG66vqdtD0ESlBzbm1wGijap7H4eLt8O1pBV0SvEk5wtoBGoHFF01xHB9dIEsPBuLiPa6ItlyRcMRXtr-_hY7FKPYA3u1-C9UnmAfI5s_sHHTP50mHEkSn_3D5/s400/00+-+ref.jpg" width="400" /></a></div>
<br />
I decided to work in mudbox to speedily try some more confident shapes.
Since this is a fantasy environment I don't really mind exagerrating some of teh features of trees to look a bit more interesting.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2utI2XEwyJ6GwLUV7kNCBDgBDSvLLqR6lu9JL2PJWRM-BPJ8uDkq3GnT7RuWIb1Tz1HgoKT9ZU9r_E3-4zMi3n5dVH5bEdNkeFG3CpFdYKs5tpTBcz8YwD2GUE9FcEvPJ-eIHUtbm86Hy/s1600/02+-+mudbox.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2utI2XEwyJ6GwLUV7kNCBDgBDSvLLqR6lu9JL2PJWRM-BPJ8uDkq3GnT7RuWIb1Tz1HgoKT9ZU9r_E3-4zMi3n5dVH5bEdNkeFG3CpFdYKs5tpTBcz8YwD2GUE9FcEvPJ-eIHUtbm86Hy/s400/02+-+mudbox.jpg" width="400" /></a></div>
<br />
I then retopologised in Max. This process is still pretty tedious - I expect I could do a faster job but I'm a real perfectionist when it comes to topology so it takes a long while.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxPrKNDmCnwKqqTe8lDbT_4mvYXQzKjDRPYaO-vzvnEOTaKg-10iSOkNfnaRZ5x5CQa3qTCK_NNlbKtANbL2t0s6xZ_DCWna3XHS2w4dn9K5X5r1W1J4zP9fAohS6Ei1uWeQACyayIluEF/s1600/03+-+retopod.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxPrKNDmCnwKqqTe8lDbT_4mvYXQzKjDRPYaO-vzvnEOTaKg-10iSOkNfnaRZ5x5CQa3qTCK_NNlbKtANbL2t0s6xZ_DCWna3XHS2w4dn9K5X5r1W1J4zP9fAohS6Ei1uWeQACyayIluEF/s400/03+-+retopod.jpg" width="400" /></a></div>
<br />
Clearly there are a few quite distinctive features, but I'm hoping that by rotating and scaling the trunks and by intersecting them through the floor at different heights, I expect the player won't notice every large tree has the same trunk... particularly given their branches will be in different positions.<br />
<br />
<br />
<br />
<br />
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-17154816583494022452013-03-25T17:13:00.001-07:002013-03-25T17:13:10.271-07:00Trees pt 3If there's one thing I'm getting used to on this project, it's being very disappointed with my assets when I first drop them in-engine.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_nCEd4Q9tJXhjo30tBbpwC5lDpjjmpDGnYaXfJt6znVk8SgFCFhCl2uz5f2FYQCauu8-MBhKG5n0RAAIkp9O0DJ84SvbmVxxXTcEB3ZyOBfDA3FdDiGjg4HQMwax7Ih0Os-Ks04pM_oDB/s1600/01+-+engine.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_nCEd4Q9tJXhjo30tBbpwC5lDpjjmpDGnYaXfJt6znVk8SgFCFhCl2uz5f2FYQCauu8-MBhKG5n0RAAIkp9O0DJ84SvbmVxxXTcEB3ZyOBfDA3FdDiGjg4HQMwax7Ih0Os-Ks04pM_oDB/s400/01+-+engine.jpg" width="400" /></a></div>
<br />
The above is my tree from before with a simple shader setup, using the "improved" vertex normals. After applying a custom lighting model and disabling mipmapping, the volume of the tree was a bit clearer and the opacity outline much sharper, but still wasn't looking good.<br />
<br />
I doubled up the number of branches and scaled them down and stopped using the vertex normals, to see if that improved things. Whilst it helped, I still didnt have what felt like bunches of leaves, with the outer leaves lit and the inner leaves shadowed. I tried frankensteining several of these trees together to form a much larger tree. This actually did a much better job of feeling like bunches of leaves:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgczYSurx8hbCntL_RQ9XvOA4RH18nPmzdngNBA7Qt0qC23rnHVnmbFnXMpBrdiZ_oORcvpJafAm4jNbfzRHWJqnQxPeM8sTGbBY4zVEj1wwoIE3h_LQPTpBEF_bK4thQUptVsS6pGPv_Kv/s1600/02+-+frankentree.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgczYSurx8hbCntL_RQ9XvOA4RH18nPmzdngNBA7Qt0qC23rnHVnmbFnXMpBrdiZ_oORcvpJafAm4jNbfzRHWJqnQxPeM8sTGbBY4zVEj1wwoIE3h_LQPTpBEF_bK4thQUptVsS6pGPv_Kv/s400/02+-+frankentree.jpg" width="400" /></a></div>
<br />
On the tree on the right, even in the small thumbnail it's clear to see a few bunches of leaves. This is a promising development, and I'll be striving to maximise this effect and compliment it with a nice lighting model. I was curious to see what the framerate hit would be, considering this tree is now standing at some 40,000 triangles and casting realtime shadows, but thanks to the fairly full planes, theres not *as* much overdraw as one might expect, and spamming the level with a bunch of them had an acceptable hit to framerate.<br />
<br />
It is worth noting that the framerate will become considerable worse during winter when the planes have fewer leaves and the overdraw rises exponentially. It's something I'll be sure to check before committing to such expensive trees. I may also consider some method of card shrinking to make the planes literally smaller during winter, to remove wasted blank space. That may be tricky to do unnoticably and without stretching though...<br />
<br />
Anyway, look how much atmosphere is added by having fullsize trees! I should really have done this in my blockout, but I'm very pleased with the vibe the big trees add...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkYYqlR521BxltCIiN0N45CiIStzcBXeIMozp7taZZQ0oGEOxQTJd_WetRS4pvSArV4dtgvCbSCEsdWNTdlp0oCAcVkg0p2WPnwn57zaGiXvFwYnlcA695dFNVeElxeCphKz7YhbqWMUNh/s1600/03+-+atmosphere.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkYYqlR521BxltCIiN0N45CiIStzcBXeIMozp7taZZQ0oGEOxQTJd_WetRS4pvSArV4dtgvCbSCEsdWNTdlp0oCAcVkg0p2WPnwn57zaGiXvFwYnlcA695dFNVeElxeCphKz7YhbqWMUNh/s400/03+-+atmosphere.jpg" width="400" /></a></div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-17942560913180569702013-03-24T20:52:00.000-07:002013-03-24T21:01:53.459-07:00Trees pt 2I added more leaves to the texture and rebaked. While the result was improved, it was still a bit spindly. Pruning some of the more adventurous parts helped give it a bit more bushiness, and clustering the branches into shapes gave it a more interesting form. I was also able to reduce the triangle count to 8500 as hoped. Here's my development of the tree:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlXCmdUunhUK8hKQEoH_8ccDSycG1EI9b4nfiQ8vmhWnedULz2-Eoj79GkTlZP1HcFf-YQiU0uoYTi3ZLDiRZ9NAq6o_yWmWQ_NI04NG1P9Xr7BXTXjoeT2dKvnlJhRJXMr8Kmzw-O6V-j/s1600/01+-+development.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlXCmdUunhUK8hKQEoH_8ccDSycG1EI9b4nfiQ8vmhWnedULz2-Eoj79GkTlZP1HcFf-YQiU0uoYTi3ZLDiRZ9NAq6o_yWmWQ_NI04NG1P9Xr7BXTXjoeT2dKvnlJhRJXMr8Kmzw-O6V-j/s400/01+-+development.jpg" width="400" /></a></div>
I then corrected the leaves' vertex normals to help with lighting. The shader will hopefully do a better job of lighting the tree, using a couple of tricks here and there. I'll be interested to see the performance implications of the tree receiving and casting shadows.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7wmyWnG_jwwb43lbd6WTAX669KgrPk0hPjB3SpEqak5RPoza4_Z1czjvCMEHfr_KeBl1_3MoPYtB2nl2tkGMVCYDJYEcfYhkzlXsXrDeZFToJj15sASIaJthQC7vvv1yuGvP9qPydOfcn/s1600/02+-+final.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7wmyWnG_jwwb43lbd6WTAX669KgrPk0hPjB3SpEqak5RPoza4_Z1czjvCMEHfr_KeBl1_3MoPYtB2nl2tkGMVCYDJYEcfYhkzlXsXrDeZFToJj15sASIaJthQC7vvv1yuGvP9qPydOfcn/s400/02+-+final.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Given that the tree actually looks pretty good using default normals (and a bit weird in the picture above), I'm considering calculating the vertex normals shown immediately above at runtime (unless I find a way to use a UVW channel to store them) so that the default normals and these normals can be used in conjunction with one another. I don't *think* averaging the two will work, but I may try that too.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I'm hoping to make a couple more trees using these branches. This one was intended to be a largish tree, but has come out pretty small/medium-sized, so I'm looking to make a larger one, a young sapling and a shrub-like version (may not look believable but worth a shot and might save me making an entirely new shrub). I may try using speedtree to make the variations to save me time.</div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-12853287497224822712013-03-23T19:02:00.000-07:002013-03-23T19:02:29.496-07:00Trees pt 1I'm basing my trees off maple trees because of the seasonal colour variation present in maple trees. I started by making a leaf model using a photo texture. I then placed this around a branch which was also based from a photo. This was baked down to create a new texture for my typical branch. Note that the leaf colour will be controlled through the shader.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQKInSmN-6uH8vQR5S0AXddfRtvnsdexgTYKBBnFU4yf0fOsOQAgd-CQC4hLpOw5nYshFtZxHUnleQzTGMTvpDglZlZrTJnN9Q1-VdA3nZXCi0MoACJgxo3FST_FDNu6yQXf5LtWDZVKBh/s1600/01+-+branch+bake.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQKInSmN-6uH8vQR5S0AXddfRtvnsdexgTYKBBnFU4yf0fOsOQAgd-CQC4hLpOw5nYshFtZxHUnleQzTGMTvpDglZlZrTJnN9Q1-VdA3nZXCi0MoACJgxo3FST_FDNu6yQXf5LtWDZVKBh/s320/01+-+branch+bake.jpg" width="320" /></a></div>
<br />
Baking offers me a few benefits, chiefly I have been able to apply random colour to the leaves as well as create a suitable texture for their growth. This will help me with my seasonal falling off and regrowing.<br />
<br />
I then applied this texture to a plane. I had arranged for gaps in the texture which allowed me to cut the plane up into sections to break the shape of the branch into something which looked good from a variety of angles.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTeKyB_J5Slpw6Nxbf6Np2pNdyXde7MRulojd-1Mj0_Ua6N0vTWBvmoADrbP6qfrI9MK2Wigd0PZ9fl5A7ZEwH1PWkj7pNL7hq_YXGp3sNJ3fXY_g1Ro6ZZDtdlLQFrEkgAse_kA6mLYFs/s1600/02+-+branch+modelled.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTeKyB_J5Slpw6Nxbf6Np2pNdyXde7MRulojd-1Mj0_Ua6N0vTWBvmoADrbP6qfrI9MK2Wigd0PZ9fl5A7ZEwH1PWkj7pNL7hq_YXGp3sNJ3fXY_g1Ro6ZZDtdlLQFrEkgAse_kA6mLYFs/s320/02+-+branch+modelled.jpg" width="320" /></a></div>
<br />
I then used a combination of hand-arranged groups and object painting to populate the following tree.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNWSoSqwRCkpkD8WLYSVmO1h-QbYhsjE2w2IfeqnptxYsUye-5rRfCFIhsc9e3v3hhx0cBcWzHrQeC7eVVmxcX8A3DRTI0zMC3UlFAdfG_HJ2wnebQH2kTWGi9feBK1H7ysQR0olX1zjDJ/s1600/03+-+tree+complete.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNWSoSqwRCkpkD8WLYSVmO1h-QbYhsjE2w2IfeqnptxYsUye-5rRfCFIhsc9e3v3hhx0cBcWzHrQeC7eVVmxcX8A3DRTI0zMC3UlFAdfG_HJ2wnebQH2kTWGi9feBK1H7ysQR0olX1zjDJ/s640/03+-+tree+complete.jpg" width="640" /></a></div>
<br />
It is only at this stage that I became aware that I would need more leaves on the texture. Sitting at 11,000 triangles, I cannot reasonably afford to populate the tree with more leaves by placing more planes. So I hope to add more leaves to make the tree seem fuller and reduce the triangle count to around 8,000. <br />
<br />
This will make the planes a little more obvious but should improve render time (by having more full cards, there will be less overdraw and fewer triangles so less alpha sorting and less overdraw)Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-66945552115080355722013-03-20T18:27:00.002-07:002013-03-21T18:55:20.546-07:00Grass PlanesI went about making the grass by modelling some blades of grass and baking them onto planes.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixSeplkCKAnskSuL6wZv1iyenaxcAdDbf5R8btZ8L_3SYe6YQpnqlm_ISYfbpdrFeVpazlnai6aKa1Ldpqg2Wtqcwe82w_oPtaxZx3fOPHUMOPRxWS1acnsHSK6e5yafE3r8NfvOrr4FCo/s1600/01+-+grassmodel.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixSeplkCKAnskSuL6wZv1iyenaxcAdDbf5R8btZ8L_3SYe6YQpnqlm_ISYfbpdrFeVpazlnai6aKa1Ldpqg2Wtqcwe82w_oPtaxZx3fOPHUMOPRxWS1acnsHSK6e5yafE3r8NfvOrr4FCo/s400/01+-+grassmodel.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
From there I assembled some patches to be placed in the level. The texture would be coloured in-engine.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-LtxJRQcaAovSvpCQOd3ttqbwMHSGctRiaqdTZcP_4YysTA4IoHKyTN-lNAmM0j7o2A_QIKXwTb31FwCua3Z_AMtmmfc_DWZLkYt16jLbUiYZSEe6OGD40_nJMyc8wwHH89vpyQGlQ3Uw/s1600/02+-+grassplanes.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-LtxJRQcaAovSvpCQOd3ttqbwMHSGctRiaqdTZcP_4YysTA4IoHKyTN-lNAmM0j7o2A_QIKXwTb31FwCua3Z_AMtmmfc_DWZLkYt16jLbUiYZSEe6OGD40_nJMyc8wwHH89vpyQGlQ3Uw/s400/02+-+grassplanes.jpg" width="400" /></a></div>
<br />
I brought it in engine and after a bunch of tweaking I ended up with the result below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKao2d9hLIgBjjsBkwneGkG7ZmBH9QHVCrTt5U9dClMmb10V5IZu_PJYIyJMzXMyQSykr1G_qR1xaxPh26ytxGk4LqRKbd1N2HD16od3gvVgOphDS9DUmam9ttyVN7XkHx-RJRMNU9niR7/s1600/03+-+grassUDK.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKao2d9hLIgBjjsBkwneGkG7ZmBH9QHVCrTt5U9dClMmb10V5IZu_PJYIyJMzXMyQSykr1G_qR1xaxPh26ytxGk4LqRKbd1N2HD16od3gvVgOphDS9DUmam9ttyVN7XkHx-RJRMNU9niR7/s400/03+-+grassUDK.jpg" width="400" /></a></div>
<br /><br />
I'm not at all pleased with the grass at this stage. After talking to some other students and looking at more reference, I realise I have made my texture too bunched and the grass too tufty. I'm going to give the grass a break for a bit to work on trees and terrain textures, but I hope to come back to the grass to improve it later.Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-77853840497046085892013-03-14T20:08:00.000-07:002013-03-14T20:12:06.978-07:00GrassI started on some grass today. I'm not entirely sure how well it'll work out, but I'm trying a technique whereby I bake the grass to generate both my grass alphas and also my grass terrain texture.<br />
<br />
The benefits of baking this from geometry rather than using a photo are mainly to ensure correct normals and height. This will be particularly important when I start to build up snow and leaves using the height, but will also help with the blend between grass and rocks and grass and dirt.<br />
<br />
I started by creating some grass pieces and a couple of small weeds:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5s4Gw4IzQ9XsaZgUQ-gBHtr_vJXMqcNS-zSIO5ZO7TlJOroDSA2KypaY5rvAQoVxyzXqvCKhwGIHe2M4bdXuGQy3b6bl2rgd6F3gC8qugqCGemn7FAMcb6tVVwCROEmrz1F6qRsEZqgUj/s1600/01+-+grasspieces.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5s4Gw4IzQ9XsaZgUQ-gBHtr_vJXMqcNS-zSIO5ZO7TlJOroDSA2KypaY5rvAQoVxyzXqvCKhwGIHe2M4bdXuGQy3b6bl2rgd6F3gC8qugqCGemn7FAMcb6tVVwCROEmrz1F6qRsEZqgUj/s320/01+-+grasspieces.jpg" width="320" /></a></div>
<br />
I then assembled these on top of a square using the scatter compound object:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvtl7TigXpwVMR1YcI1Nqtz9oh12-c4H2J2a3b-bFBNY2Neepf_2nBjPQ14SOFXFXB0vA1xhfCvlg0i0SL7u2cRuzSdvycjPZj5bzWHHVgUFwx_Wy-wAOUHHPWu7tiX2S3d8_sh3gcO847/s1600/02+-+modelforterrain.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvtl7TigXpwVMR1YcI1Nqtz9oh12-c4H2J2a3b-bFBNY2Neepf_2nBjPQ14SOFXFXB0vA1xhfCvlg0i0SL7u2cRuzSdvycjPZj5bzWHHVgUFwx_Wy-wAOUHHPWu7tiX2S3d8_sh3gcO847/s320/02+-+modelforterrain.jpg" width="320" /></a></div>
<br />
I had a few problems with the bakes, but they were resolved in Photoshop.<br />
<br />
Here's the result:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoPuoAVEo-gqomjdaJ_e3X8PU4rr0JM9ZOLfpeCACEOGmMdpbK9cssm067fMvaUke6aFWFXcvWOdOJj-itKnPpJ206Mw_LdBp_lc19UjoEpLAFCqlJRE_CSdficGHM-fuuXsEI6hpF4uf1/s1600/03+-+terrainresult.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoPuoAVEo-gqomjdaJ_e3X8PU4rr0JM9ZOLfpeCACEOGmMdpbK9cssm067fMvaUke6aFWFXcvWOdOJj-itKnPpJ206Mw_LdBp_lc19UjoEpLAFCqlJRE_CSdficGHM-fuuXsEI6hpF4uf1/s640/03+-+terrainresult.jpg" width="640" /></a></div>
I'll be placing grass planes on top of this, and breaking it up with dirt patches and loose rocks etc.<br />
<br />
Tomorrow I'll be baking for the grass planes.Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-54110846669760692172013-03-13T21:48:00.001-07:002013-03-13T21:50:19.210-07:00Horizontal unwrapping"Horizontal unwrapping" is something I've been wanting to do in UDK for a while now. The idea is that if you can perform simple unwraps in-engine based on world position, you can use that information to apply things like grunge really easily and ensure its the correct way up, even if your asset has been rotated. <br />
<br />
Theoretically, one could even apply that same grunge to all objects in the scene, and it would harmonize them by applying the same dollop of grunge to all objects in close proximity, a bit like a decal might.<br />
<br />
The problem I've always hit is that unwrapping based on world position is essentially planar mapping, and suffers all the same problems (stretching at oblique angles).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk9kmRkwMrhbHTk7suNVNnbZjHwGLM8k9K5viDEJXle-c89kjHTRvq-mWEdWG018u2BoblX8W_WBEVE217LkIP5zPSaqT1aT8d3RlWvaXEhw_pEaMS0fa-bGAYhDZwK8yC1fzYo-GN-Lcd/s1600/00+-+problem.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk9kmRkwMrhbHTk7suNVNnbZjHwGLM8k9K5viDEJXle-c89kjHTRvq-mWEdWG018u2BoblX8W_WBEVE217LkIP5zPSaqT1aT8d3RlWvaXEhw_pEaMS0fa-bGAYhDZwK8yC1fzYo-GN-Lcd/s400/00+-+problem.jpg" width="400" /></a></div>
<br />
<br />
<br />
I tried again to solve the problem by incorporating the user-unwrapped UVs, with no great success, and also by examining the direction of any given face to choose which direction to "project from". Also unsuccessful, resulting in weird stretching and squashing. This was the best result I could come up with, and it wasn't good enough to use:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYwKwAN6Ic5a2e_WKSJcjDBq-ixmHb7Y8rDeZg1Q-NlQ_aGkbAf3FOyyFFFDB-iasqvWn1YNZS1Ac-7UTOY1UGM5f18hGdpXQJdBBuq-opnFHHpBKTyxEmVFwwlKLOAoVXaVHav5u80lbU/s1600/01+-+best+effort.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYwKwAN6Ic5a2e_WKSJcjDBq-ixmHb7Y8rDeZg1Q-NlQ_aGkbAf3FOyyFFFDB-iasqvWn1YNZS1Ac-7UTOY1UGM5f18hGdpXQJdBBuq-opnFHHpBKTyxEmVFwwlKLOAoVXaVHav5u80lbU/s400/01+-+best+effort.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
However, when i settled with the following restrictions:</div>
<div>
<ul>
<li>unwrap must be user-unwrapped to be horizontal to begin with</li>
<li>objects no longer world-space unwrapped (no benefit of world-space harmony)</li>
</ul>
I was able to take on the problem from a different angle. Essentially, rotate the user's existing unwrap when the object is rotated, rather than generate a new one.<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL2dVOAh63Dbc3RJPMh2qIqvSJ2S178MWU0OyLUBMqoLoC2xpgaVUZLuX7rCt_Yo1ajPA5Hr01bXNWcidV21wqPvFG_Z5lgPcomE4cYtlCQ3iECZ20Eb4U3zyKCoCy2YjWlpUhzydXJgam/s1600/02+-+solution.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="364" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL2dVOAh63Dbc3RJPMh2qIqvSJ2S178MWU0OyLUBMqoLoC2xpgaVUZLuX7rCt_Yo1ajPA5Hr01bXNWcidV21wqPvFG_Z5lgPcomE4cYtlCQ3iECZ20Eb4U3zyKCoCy2YjWlpUhzydXJgam/s640/02+-+solution.jpg" width="640" /></a></div>
<br />
You may notice I'm using a new rock I made today. This time instead of using 3D Coat I used max to combine the objects. It would have been easier if ProBoolean hadn't been messing me around. grrr.<br />
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-82646120701107328172013-03-12T15:11:00.002-07:002013-03-12T15:12:54.797-07:00Rocks in-engineHaving been happy with the rocks in 3DS Max, I brought them into UDK and was very disappointed with the result. The textures seemed blurrier than I expected (despite the 1024 resolution) and the lighting felt flat and false:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5Tuf8xOzcLn0YWROFstXlbZueDyML1cUVtM9ZXOC0gDDr3E-zmJ3ewG2p5E5mV2DA38zdXePpslbt8aa-oKUsRjS-QpzNFt-vxo-FWtl0Mq_t1WBhitRSlGhSxwBoFoDkg6a3WPyQuJ3B/s1600/01+-+poor+in+engine.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5Tuf8xOzcLn0YWROFstXlbZueDyML1cUVtM9ZXOC0gDDr3E-zmJ3ewG2p5E5mV2DA38zdXePpslbt8aa-oKUsRjS-QpzNFt-vxo-FWtl0Mq_t1WBhitRSlGhSxwBoFoDkg6a3WPyQuJ3B/s400/01+-+poor+in+engine.jpg" width="400" /></a></div>
<br />
<br />
<br />
I decided to switch to an approach which treated only the large details of each rock asset as unique. the smaller details of the rock (the grain, lichen, cracks etc) would be added with a tiling texture (whilst hoping nobody notices the seams!)<br />
<br />
In addition to allowing me to downscale my asset's texture to 512 (although I now needed a couple more textures, but these would be shared across all my rock assets), it allowed much sharper detail, and I could make each rock unique using the object's position and even scale the detail with the scale of the rock.<br />
<br />
I also threw in vertex painting of moss to allow me to make the rocks near the waterfall a bit mossy.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw5MhLc4G7ghg7YsYs-iSQbVaSDRE978ZiAZveo9XCUzYmNOU_3bcAeERCWklOS2Oj2TyD1B2x_EF9Mm0m8COM2LWhkg_PlUVtbjlqH0v2bxNM9Y6u55oqywppyYDZTyT3hzqrTifCCfWD/s1600/02+-+positions+and+scales.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw5MhLc4G7ghg7YsYs-iSQbVaSDRE978ZiAZveo9XCUzYmNOU_3bcAeERCWklOS2Oj2TyD1B2x_EF9Mm0m8COM2LWhkg_PlUVtbjlqH0v2bxNM9Y6u55oqywppyYDZTyT3hzqrTifCCfWD/s400/02+-+positions+and+scales.jpg" width="400" /></a></div>
This was looking much sharper and more interesting now, and worked well in modularity, however I still felt the lighting was extremely flat and wasn't showing off the normals very well (note: the picture above already has the lighting fix below). Essentially, the rock was either lit or not lit. The lit section did not appear better-lit if directly facing the light, and the unlit portion (most of the rock) was lit evenly from the top and sides. Since my environment is in a valley, light from the sides is incorrect, and is boring anyway. I wanted a stronger bias to give a sense of topdown light.<br />
<br />
I used custom lighting to allow me to give more light variation in the lit area, and a topdown light bias in the indirectly-lit areas.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9WaExvs2lrRAfwS0eawb_wYDfHK00yakpCIyTnD5G3VKWoQdLn0KTJmbUkGxr9nouJHV6myt-LUOxDVESpIwvr0iVcgmARt22lMq07x9iXzaevA7yBUuU3Un0YIbA4LYFARZf_MRdHwU1/s1600/03+-+lighting+comparisons.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9WaExvs2lrRAfwS0eawb_wYDfHK00yakpCIyTnD5G3VKWoQdLn0KTJmbUkGxr9nouJHV6myt-LUOxDVESpIwvr0iVcgmARt22lMq07x9iXzaevA7yBUuU3Un0YIbA4LYFARZf_MRdHwU1/s400/03+-+lighting+comparisons.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I threw a few of them together to see what I could get with just this one rock asset. A good result, though I expect I'll need one or two more rock pieces for cliffs at least. And the moss is a bit nuts at the minute. Easily tweaked later!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXoyRdiK5PVBWnrikNxV_BOu85YXb0NIVzFZgtV1uCweNyel2wrrn8UA6gdRTFb17vzRiKOPIwDt81426fyiF0C9iSBSKzkfuIr4PcxUMgKt77huFsYKZdm1BlnJqCdNWkyNJULhB5izkB/s1600/04+-+collages.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXoyRdiK5PVBWnrikNxV_BOu85YXb0NIVzFZgtV1uCweNyel2wrrn8UA6gdRTFb17vzRiKOPIwDt81426fyiF0C9iSBSKzkfuIr4PcxUMgKt77huFsYKZdm1BlnJqCdNWkyNJULhB5izkB/s640/04+-+collages.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-26599213474310482292013-03-11T11:13:00.003-07:002013-03-11T11:13:49.671-07:00Rocks revisitedHaving felt somewhat defeated last time I tried rocks, I gave them another go.<br />
<br />
Again, I tried making small parts of rocks in mudbox:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgne0Pcqdj16FPWPTQdmASOAigyDI4ltJ9Y6X3qfGZpG39U7A3tlgcr5N5HjskljULeWYuF5KfPScHqsjHbBstufckosXzq6qW2lXVXk7pjnMzylf2szGqQrqS9foEOWTLMbZxd_FoptJaP/s1600/01+-+Mudbox.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgne0Pcqdj16FPWPTQdmASOAigyDI4ltJ9Y6X3qfGZpG39U7A3tlgcr5N5HjskljULeWYuF5KfPScHqsjHbBstufckosXzq6qW2lXVXk7pjnMzylf2szGqQrqS9foEOWTLMbZxd_FoptJaP/s320/01+-+Mudbox.jpg" width="320" /></a></div>
<br />
I made quite a few rock pieces, then loaded up 3D Coat. The plan here was to use their voxel-based sculpting to merge the several pieces together into one rock, so that they could then be sculpted together seamlessly.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNQLFLyYnCHtipSad5uHvP3UH4CjCm0KZoqHFci63vPdaU8N5azVm2O84abhM-srYLvfmF_GZ_-zxDMTlb5GwUMpDbLFF3QR7c9ihFptOqB8mkUdxoL3Ol1Iam_eZoc-OjJP2IGM9lLGz8/s1600/02+-+3D+Coat+models.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNQLFLyYnCHtipSad5uHvP3UH4CjCm0KZoqHFci63vPdaU8N5azVm2O84abhM-srYLvfmF_GZ_-zxDMTlb5GwUMpDbLFF3QR7c9ihFptOqB8mkUdxoL3Ol1Iam_eZoc-OjJP2IGM9lLGz8/s320/02+-+3D+Coat+models.jpg" width="183" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJF1PE83dX5qbJv4lWHbEIxy6fkUK4FFlvtqD8Ou4aA4Mcq74IH6VD2YojX3fwwQGntSvRuPphnsWIAuqzPHzCFGp6p5168znoeAAWx8sQfll4zSx8vN_GKKUgYLbfQ1WhrkfvglbL7tsr/s1600/02+-+3D+Coat.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJF1PE83dX5qbJv4lWHbEIxy6fkUK4FFlvtqD8Ou4aA4Mcq74IH6VD2YojX3fwwQGntSvRuPphnsWIAuqzPHzCFGp6p5168znoeAAWx8sQfll4zSx8vN_GKKUgYLbfQ1WhrkfvglbL7tsr/s320/02+-+3D+Coat.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
However, when i started to sculpt them together they ended up looking strange and I was not able to get what I thought might work nicely. However, with them apart worked nice enough so I fiddled some then brought them into max for the retopology and baking.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I started off retopologising by hand, but this was taking a long time so I tried using ProOptimizer, which did a decent (ish) job and after some cleanup and unwrapping, I was ready to bake.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I used my Autobakerrr script and slapped the same rock material texture as the stone wall underneath the rocks. I'm really pleased with how well Autobakerrr is working, its really saving me time and gets such a nice result. Up until I baked the textures and applied them to the model, I was unhappy with the work so far, but once they had texture on them, they looked a million times better, and now I'm fairly happy with the look of these rocks.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju6hx9QyYnd_LcMGhFoG1GiabB2Ca0oI19wWWGFGRV1hQvlRBguJBphcufh1npaC1mnmysVDEh227jkCin6Uu9vDtCxLe3Rs-9e9QgAHvyJ3dPQLoIkjsbAXUDIUswr5_O-cRqGqv_8F2R/s1600/03+-+rocks+finished.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju6hx9QyYnd_LcMGhFoG1GiabB2Ca0oI19wWWGFGRV1hQvlRBguJBphcufh1npaC1mnmysVDEh227jkCin6Uu9vDtCxLe3Rs-9e9QgAHvyJ3dPQLoIkjsbAXUDIUswr5_O-cRqGqv_8F2R/s640/03+-+rocks+finished.jpg" width="640" /></a></div>
<br />
I was a little concerned I had used too many tris, so as an experiment, I thought I'd make the low LODs to see how they came out. Surprisingly well is the answer! Also, bashing the same model together yielded a pretty nice result without obvious seams.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb-lOh3McavWnuwka7kz2qmeAdcrou6NEDS-SrpOn9gzRdnobGNrObtFZMUsgg1YnL5C194CaKJdc869G26Lmgrv884LFkJfFJEgECsBnw_UkEuIJfawZHi3zsoBV7R3VHPW3fnPo6BPQK/s1600/03+-+rock+LODs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb-lOh3McavWnuwka7kz2qmeAdcrou6NEDS-SrpOn9gzRdnobGNrObtFZMUsgg1YnL5C194CaKJdc869G26Lmgrv884LFkJfFJEgECsBnw_UkEuIJfawZHi3zsoBV7R3VHPW3fnPo6BPQK/s400/03+-+rock+LODs.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
My only concern at this time is that its using a 1024 texture. I may have to make a detail texture and scale it down to 512 for efficiency's sake, but we'll see.</div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-51843507817585550722013-03-11T05:39:00.001-07:002013-03-11T05:39:34.136-07:00Stone WallI've been tinkering with a stone wall texturing process. Although I may redo the texture, I'm very happy with the process and end result.<br />
<br />
I started with several boxes in 3ds Max, positioned so that they would tile horizontally and vertically:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMl2yL7-ylm3SpfExU9vGk6W7GacWA0hbYNsWZwYZw7VX7ivEBCsKisJWniiIYsBBmuCgBmNVjcKsTeKH6R2aBlnxlAg19rOCkIures3GZX3aj7WfvtyCNgoZYoJYzeFQIdqKh5Iaa2Ft_/s1600/00_pieces.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMl2yL7-ylm3SpfExU9vGk6W7GacWA0hbYNsWZwYZw7VX7ivEBCsKisJWniiIYsBBmuCgBmNVjcKsTeKH6R2aBlnxlAg19rOCkIures3GZX3aj7WfvtyCNgoZYoJYzeFQIdqKh5Iaa2Ft_/s320/00_pieces.jpg" width="320" /></a></div>
<br />
I then sculpted these in Mudbox, then brought them back into 3ds Max and repeated them for the bake:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Njo-mRpg6dmIrE5Xy1nj28wJAQNy0QTaHPdRjbsdH_A6a_8yFRtdAcJ7BJGOZmLu4TXoB9oo_Z9nHNYUZSiUUKx1GY7IaVnDKV_wFtra9n2wHwpXb-4Zpi5Ss3n4ovXbqGxbGOxJ_eWg/s1600/01_wallbake.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Njo-mRpg6dmIrE5Xy1nj28wJAQNy0QTaHPdRjbsdH_A6a_8yFRtdAcJ7BJGOZmLu4TXoB9oo_Z9nHNYUZSiUUKx1GY7IaVnDKV_wFtra9n2wHwpXb-4Zpi5Ss3n4ovXbqGxbGOxJ_eWg/s320/01_wallbake.jpg" width="320" /></a></div>
<br />
Using my Autobakerrr script and a little fiddling gave me this in about fifteen minutes:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBn7hiKWELYf2oUie9Q-Yve_Ei3J1bbgDMi3os5R0X_NgmFsrYiqPdB4E-wyMQlQj2qM2Mr2rIMkpztP_zYsnfsY0sNQXMlSu3ALMy9-Wy-M14oTdVgznbblxsoIm1MPieCR-BbgH4vcpF/s1600/02_wallbakeresulttexture.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBn7hiKWELYf2oUie9Q-Yve_Ei3J1bbgDMi3os5R0X_NgmFsrYiqPdB4E-wyMQlQj2qM2Mr2rIMkpztP_zYsnfsY0sNQXMlSu3ALMy9-Wy-M14oTdVgznbblxsoIm1MPieCR-BbgH4vcpF/s320/02_wallbakeresulttexture.jpg" width="320" /></a></div>
<br />
Slapping a tiling rock texture behind it, and making a few fairly quick adjustments gave me a pretty nice result using diffuse, specular and normal. In engine, I will also be able to use the height map to tesselate/pixel offset if I desire.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoDZClyVv0f52iQTbMXle7Wdfa8yW-jVT6Df6OMYDY9C1k7o0pq-GOK-CXnoVBJCKErIpS05HSjBDbOdNFPbUOWiX-ft40K6Zwub-KRD3r0YMYRL-dNRU03TbCBFwUF39AdHCMQey1ESGk/s1600/02_wallbakeresult.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoDZClyVv0f52iQTbMXle7Wdfa8yW-jVT6Df6OMYDY9C1k7o0pq-GOK-CXnoVBJCKErIpS05HSjBDbOdNFPbUOWiX-ft40K6Zwub-KRD3r0YMYRL-dNRU03TbCBFwUF39AdHCMQey1ESGk/s400/02_wallbakeresult.jpg" width="400" /></a></div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-27223018623459989162013-03-07T16:47:00.000-08:002013-03-07T16:54:39.565-08:00WIP Runthroughquick playthrough of the level so far.<br />
<br />
(again, lots of UDK stuff which isn't mine)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='640' height='400' src='https://www.youtube.com/embed/sLFzZR9d6t0?feature=player_embedded' frameborder='0'></iframe></div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-68630777287371054212013-03-06T09:48:00.000-08:002013-03-07T16:55:40.036-08:00MixescriptsI've found myself wanting Maxscripts I've written at home when I'm in the labs, and keeping a repository of the little script snippets I've done seemed like a good idea, so I thought I'd record them in a blog.<br />
<br />
<a href="http://mixescript.blogspot.co.uk/">http://mixescript.blogspot.co.uk/</a><br />
<br />
(Mike's Maxscripts... Mixescripts... geddit?)<br />
<br />
currently I've written scripts for the following:<br />
<div>
<ul>
<li>Flatten unwrap selected objects (for UDK lightmaps)</li>
<li>Make Planar per face (for fixing skewed polygons)</li>
<li>Bounding Box Dimensions (accurate even when object has been rotated)</li>
<li>Export Selection Individually (for exporting UDK tileset pieces)</li>
</ul>
</div>
Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-27202772129039740302013-03-05T05:04:00.000-08:002013-03-07T05:48:33.483-08:00Architectural TilesetSo I've been working out what pieces I need for the architecture. As I looked into what I wanted, I found more and more that I didn't really want heavily ruined architecture like I first imagined, and I leant more towards gothic architecture. In particular, flying buttresses and cathedrals. So I ended up with the following pieces:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh75Sdf1eAlVXIKD1M98i2tf5dp1fD2JvkXptS3brwmWoJiMLekxBMRfg8_T6ooRAozn4C-UrAHQWD_bw1lRp7WDkxfgTxlMI4oi27GLbpkmf_mVQUGV4KY5Jq-9409ddM7wAV-sNqF4a1t/s1600/archtileset00_pieces.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh75Sdf1eAlVXIKD1M98i2tf5dp1fD2JvkXptS3brwmWoJiMLekxBMRfg8_T6ooRAozn4C-UrAHQWD_bw1lRp7WDkxfgTxlMI4oi27GLbpkmf_mVQUGV4KY5Jq-9409ddM7wAV-sNqF4a1t/s400/archtileset00_pieces.jpg" width="400" /></a></div>
I developed these as I was placing them in the level. These are currently just placeholder. They are the exact dimensions of the final models, but I expect to make the final models with a bit more geometry to make them look nice.<br />
<br />
Here's what I put together so far (again, i have to stress, theres a lot of default UDK assets here still which arent mine):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7JXdALVA_hsluUby9Il3z7QwHRj-J6xeT6bEspmb_Nsmg3Ct13PbHXl9Zbk5dE72ycFGBRA6KNGBZGbGHO9azqEv0XyUJmq8yHqyBfHwZgg2AZpNpZmtl_346_AFeG0hGRwfMfuFoA3mr/s1600/archtileset01_church.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7JXdALVA_hsluUby9Il3z7QwHRj-J6xeT6bEspmb_Nsmg3Ct13PbHXl9Zbk5dE72ycFGBRA6KNGBZGbGHO9azqEv0XyUJmq8yHqyBfHwZgg2AZpNpZmtl_346_AFeG0hGRwfMfuFoA3mr/s640/archtileset01_church.jpg" width="640" /></a></div>
<br />
Bridge/platform and Tower:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZbFQEKU-NHey6ceq-wDwB7DbBn2hTSNJFbndJWD35h41WxW7qeOrU5grnWqGRsNkvIUiTdLn6ZDG_0F782siTmGaSNmRdIYAC7EiTaLg0GJLBqq2iJ4GPT-bQayOa3JdvzuG6fj9eEHTg/s1600/archtileset02_bridgeandtower.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZbFQEKU-NHey6ceq-wDwB7DbBn2hTSNJFbndJWD35h41WxW7qeOrU5grnWqGRsNkvIUiTdLn6ZDG_0F782siTmGaSNmRdIYAC7EiTaLg0GJLBqq2iJ4GPT-bQayOa3JdvzuG6fj9eEHTg/s640/archtileset02_bridgeandtower.jpg" width="640" /></a></div>
<br />Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0tag:blogger.com,1999:blog-7021432515503936438.post-5471502618529942013-03-02T04:38:00.000-08:002013-03-07T04:38:47.509-08:00Lighting FrustrationsThe lighting in UDK has been somewhat frustrating for me. The fundamental problem is that UDK has been set up expecting to use precomputed lighting. This works fine for indoor areas, but I need realtime light to allow me to do a full day/night cycle and as a result, I'm working against the grain of what UDK knows how to do.<br />
<br />
My various frustrations include:<br />
<div>
</div>
<div>
<ul>
<li>Although UDK can perform deferred shading in directX 11 mode, I do not have access to the normal, diffuse or specular buffers to make any adjustments nor do I have the ability to modify the cascaded shadow map before it is compared with the scene.</li>
<li>The results of the cascaded shadowing are not blurred or dithered and because of the above, I cannot make these adjustments myself. So the shadows are either pixellated or blurry, never how you'd want.</li>
<li>When rotating the light, updates to the cascaded shadow map appear to happen only when the light has rotated by more than (complete guess here) 0.1 degrees. Although this sounds like very little, it results in the jittery movement of shadows</li>
<li>Due to the way cascaded shadow maps work, their results as the light is rotated vary quite considerably, leaving jerkily updating shadows</li>
<li>Due to the way cascaded shadow maps work, I have to comprimise between undesirable self-shadowing across oblique angles (causing shadow striping), or "floating shadows" caused by an offset.</li>
<li>I am unable to use custom lighting on terrain to hide the undesirable self-shadowing at oblique angles.</li>
<li>I have been unable to find a way to interface with the baked lighting in any way</li>
<li>In the dumbest bug to date, when a light is rotated very slowly, if you're looking horizontally, it doesn't move. look up ot down to get it to carry on moving. just... what?!</li>
</ul>
All of the above appear to be pretty much unavoidable, and have to be hidden away and mitigated as best as possible. A couple of features which I may be able to implement but are not currently implemented in UDK are:<br />
<div>
</div>
<div>
<ul>
<li>The current post-processing chain built into UDK is very well-featured, and probably well-optimised, but is costing 5-10ms per frame... this is cutting frame rate by about 30%. I may have to live with that, but if I have time to implement my own post-processing solution I may be able to cut some of the features I don't need for a fairly substantial framerate boost.</li>
<li>UDK's out-of-the-box bloom does not feature bokeh (shaped) bloom (it does feature bokeh depth of field but that's not really what I want). This would be probably the hardest thing for me to implement, but I'd really like to give it a go if I have time at the end. It looks super-nice when water catches flecks of light and you get a bokeh effect on the highlights.</li>
<li>Post-processing parameters are not kismet or matinee-accessible, but can be adjusted in UnrealScript.</li>
</ul>
Don't get me wrong... I love UDK. With it, I can do all of the effects I want, and I'm hoping it'll pay dividends when I come to that part... But its frustrating when I see somebody create a new level in CryEngine and within minutes has a day/night cycle with none of the problems above. and it has bokeh bloom. and a better frame rate. And such pretty water...<br />
<br />
Really wish I was using Unreal Engine 4 to do this stuff. :(</div>
</div>
Mike Picktonhttp://www.blogger.com/profile/05966566871504020882noreply@blogger.com0