![]() ![]() I also knew of a relatively popular technique to further reduce the cost of blurring by cleverly utilizing linear texture sampling. If you exploit the separability of an image filter, it’s possible to achieve the same or similar result (blurring, in this case) with much less cost. I first noticed that the existing fog of war rendering code was not performing a separable blur. Unfortunately, they are not so easily thwarted. We were already performing a Gaussian blur over the 128x128 source data before rendering it to the scene as the fog of war, so I wondered if increasing the blur might hide the ugly jaggies. I started to mull over a way to improve the situation with the same underlying data. A refactor of the code would have been a really fun challenge, but we simply didn’t have enough slack in our schedule to do a proper job. However, while investigating this option I realized the relevant code wasn’t performant-even a modest doubling of the resolution to 256x256 would have incurred an unacceptable performance hit in the form of a quadrupled CPU cost. One obvious solution was simply to increase the resolution of the fog of war. In the case of the fog of war, the entire map was covered by a 128x128 grid. This was intentional-specific pieces of the game, such as shadows and visual effects, are often stored at a lower resolution to save resources and allow the game to be run on less performant hardware. The underlying problem arose from the low resolution of the data that comprises League’s visibility system. Unfortunately, smoothing the fog of war edges to remove the jaggies was not nearly as straightforward to resolve. Removing the distracting gradient was a no brainer-I removed the concept of a discrete gradient in favor of a simple visibility flag. (As an aside, note how much the final map was improved and polished compared to the early work-in-progress above.) Before SRU, these issues were much less observable due to high-frequency details in the environment. Notice the jaggies formed at the edges of poor Ahri’s vision and the discrete levels of gradation. Both are visually distracting from the gameplay experience. Old fog of war on a work-in-progress version of the new map #2 Old fog of war on a work-in-progress version of the new map Artists already knew that the fog of war had some visual fidelity difficulties, but against the crystallizing backdrop of the new map, it was downright ugly: ![]() Among them was the fog of war-the blanket of darkness that hides areas of the map until a team illuminates them with champions, abilities, or wards. What would the overall art direction and style be? Where could we tighten movement paths or add new features to the map? Where the heck did that river come from? As they began to refine the vision for the new map and play around with new assets, certain things stood out like a sore thumb. When the map team kicked off SRU, every feature, every idea, every late-night fever dream was on the table. In this article, I’ll present just one hurdle we overcame in the project: improving the fog of war. The map is more vibrant and engaging, and it better supports the competitive integrity of the game. Looking back, now more than a year after the launch of what we called the Summoner's Rift Update, or SRU, I think the team did an amazing job. It was an enormous task: not only did the team need to upgrade the map’s look and feel while preserving the bits that players loved, they needed to do it without increasing the minimum required hardware spec. In late 2013, Riot’s map team started to work full-tilt on updating Summoner’s Rift, the flagship map for League of Legends.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |