Calculating Performant Levels of Detail (LOD)

General / 15 January 2025

For some time now, I’ve been exploring how to establish the most efficient method for rendering meshes on the screen. Instead of solely relying on mesh density, I’m aiming to determine the draw distance using a more scientific approach, considering the mesh’s size on the screen.

Level of Detail (LOD) is a crucial technique for optimizing graphics performance. It involves replacing a more expensive mesh with a cheaper one as the distance from the camera increases. Ideally, you want to see a high-resolution mesh up close, but as an asset becomes smaller on the screen, optimizing the mesh becomes more important. When executed correctly, you won’t notice any visual difference, and it’s also more cost-effective to render, creating a win-win situation.

Would it be practical to create an infinite number of LODs? Not really. 
They require additional storage space on disc, which can be a concern. Additionally, loading them into memory puts more strain on the CPU and GPU. It’s a delicate balance to keep in mind. Furthermore, at a certain point, the mesh becomes too small to be rendered on screen effectively, so it’s best to set the maximum asset draw distance at that threshold.

There are several methods to determine the maximum LOD distance. One method calculates the distance in units like centimeters or meters. The other option is based on screen size, which is more adaptable as it considers platform and render resolution. For instance, rendering for HD versus 4K displays depends on render resolution for detail visibility, while physical distance remains constant.

This approach ignores any mesh-related costs, such as pre-optimized triangles with maximum area triangulation or the initial mesh cost.

However, this method is not foolproof. Factors like mesh silhouette changes and unmatched normals per level of detail (LOD) can noticeably affect lighting between meshes.

The method outlined here is based on unit distance measured in meters and can be implemented in your Engine’s API or in Maya. I begin with the highest visual mesh level of detail (LOD), which is L0, and calculate the diagonal of the asset to provide a rough estimate of its size, although there are exceptions, such as more rectangular assets, where this method may not be entirely accurate. Nevertheless, I do this because the draw distance needs to be effective from various visible angles.

Here’s an example of asset sizes (in percentage terms) that can be displayed on a screen.

To determine the maximum draw distance, we input the diagonal and the target size on screen (in percentage). For the L0, I set the display size to 90%; you could say 100%, but that would trigger the L1 if the asset is visible from top to bottom of your screen, which is extremely close. The 90% provides some breathing room.

The L0 is always set at 0 meters since it’s the closest to the camera. However, we want to switch to the L1 mesh at a specific distance, and that’s where the ‘maximum draw distance value’ comes into play. This value determines the distance at which we transition to a lower LOD. We continue this process until we reach the lowest LOD in the set.

A bounding box that encapsulates the dimensions (height, width, and depth) is required for our calculations. 

Using trigonometry, I can calculate the distance of the asset to the camera at a given percentage by utilizing the diameter.

pseudo code

diagonal = ∛(0.075² + 0.157² + 0.167²) = 0.387m

CalculateDistance(inSize=diagonal, inScreenSpacePercentage=100, inFovDegrees=45.0, inVerticalResolution=1080):
   ratio = inVerticalResolution / 1080 # compensate for 4k or FullHD screens

   # distance to see the asset, top to bottom
   distance_to_object = (inSize * 0.5) / (tan(inFovDegrees * 0.5))
   distance_by_screensize = distance_to_object * 100 / inScreenSpacePercentage
   max_distance = distance_by_screensize * ratio
   
   return max_distance


What about the other LODs, you might ask? 

With appropriate reductions, I aim for a 50% triangle reduction with each LOD step. Therefore, if I multiply the calculated distance times two, it mostly works. However, there are always odd cases when the poly count is already too low, which can break the silhouette or the normals, and this approach won’t hold up completely.

You might be wondering why you should bother learning how to calculate it yourself when Simplygon or Unreal can do it for you?
In my opinion, you should be aware of the following points:

  • Understanding the underlying principles allows you to troubleshoot issues when automated tools don’t produce the desired results.
  • By knowing how to calculate it yourself, you can tailor the process to fit specific project requirements, which might not be fully supported by generic tools.
  • Relying on your own skills ensures you’re not limited by the availability, cost, or licensing of specific tools like Simplygon.

To estimate the draw distance based on the cost of the GPU, you can calculate the distance using the shortest edge lengths of the asset. This means you collect all the edge lengths of the LOD mesh, calculate the average length, and then adjust the distance based on the target platform’s requirements. For instance, if the average length of an asset at a 5-meter distance is 1 centimeter, the mesh is likely too dense, and you’d need to reduce the distance to avoid it becoming a bottleneck.

Are there any flaws? I’m sure there are. But please feel free to comment and discuss or provide your feedback.

Tips on Landing a Job as Technical Artist

General / 06 October 2023

Introduction

As a child, I developed an interest in games, despite being limited to playing older games due to my outdated PC. This sparked my curiosity and I began exploring the world of gaming. I came across a book for modding and level design in Half-Life 2 which gave me insight of pursuing a career in this field. I made the decision to enroll in a game art course where I could further develop my skills and explore potential career paths.

I began my professional journey in the videogames industry as a 3D environment artist, initially focusing on texturing and shaders. As I progressed in my professional career, I learned the importance of understanding shaders, which sparked my interest in learning to code. This curiosity led me to explore the technical aspects of game development and delve into the world of technical art.

My passion for game development extends beyond a specific role or area of expertise. I have a broad interest in all aspects of game development, which has driven me to continuously expand my knowledge and skills. I am always eager to learn and understand how different processes work and I actively seek opportunities to deepen my understanding in areas where I may have knowledge gaps.

One of the key factors that has contributed to my success as a technical artist is my willingness to help others and make their lives easier. I strive to find ways to improve workflows, streamline processes and implement tools or techniques that enhance efficiency. By staying updated with the latest developments in technology, I can identify opportunities for innovation and contribute forward-thinking ideas to make development smoother, faster and more organized.

Securing my current position at Bend Studio (and my previous position at Guerrilla) involved a combination of factors. Apart from honing my technical art skills, I actively engaged in networking events, conferences and workshops. These platforms allowed me to connect with industry professionals and showcase my work, which in turn opened doors to new opportunities. Additionally, I maintained a portfolio that demonstrated my growth as an artist and effectively communicated my abilities to potential employers.

I think, my success as an artist in the game industry can be attributed to my continuous learning mindset, my dedication to technical art and my commitment to improving processes and assisting others. By staying curious, adaptable and proactive, I think, aspiring game artists can increase their chances of breaking into the industry and building successful careers.

Secrets of Success

For environment artists, it is essential to focus on developing traditional art skills such as composition, color theory and scale. These skills contribute to creating visually appealing and cohesive environments. Additionally, gaining a solid understanding of the technical workflows involved in environment creation, such as high-to-low poly modeling and baking and texturing assets is crucial. Building complete environments from start to finish helps getting familiarized with the entire process, even if in some studios, specific tasks may be assigned. It is important to comprehend how all the different parts work together and the significance of each component.

On the other hand, for technical artists, having a comprehensive understanding of various aspects is vital. This includes not only 3D-modeling and texturing assets but also importing them into the game engine. Learning to program small tasks or writing scripts is invaluable for automating repetitive processes and streamlining workflows. Basic programming knowledge in popular languages like Python or C can empower technical artists to accomplish a wide range of tasks, provided the engine or tools support it.

Regardless of the specific artistic discipline, it is beneficial for game industry artists to develop a deep understanding of the backend workings of their chosen game engine. This knowledge helps artists make informed decisions and optimize their work to achieve the desired visual and technical results.

Staying Up to Date

To stay up-to-date with the latest techniques and technologies in game art, I use a variety of strategies. One of my go-to resources is ArtStation, which offers a wealth of tutorials on its marketplace and it’s Learning section (with a subscription). These tutorials provide valuable insights into artists' workflows and processes, allowing me to gain inspiration and grow as an artist. Learning from the experiences and techniques of other artists is an effective way to improve our own skills.

Another valuable platform for staying informed is YouTube. There are numerous channels dedicated to game art that provide in-depth videos, tutorials and discussions. Additionally, in recent years, the Game Developers Conference (GDC) has made many of its sessions freely available on YouTube, featuring industry professionals sharing their expertise and insights.

For high-quality tutorials that are curated by professionals, Gumroad and Gnomon are excellent resources to consider. These platforms offer tutorials and courses that meet a certain quality standard, ensuring that you're learning from reputable sources.

Apart from these specific resources, I highly recommend actively participating in the game art community. Joining forums, engaging in discussions on social media platforms and attending industry events or conferences can provide valuable networking opportunities and expose you to the latest trends and advancements in the field. Connecting with other artists, sharing knowledge and seeking feedback can greatly contribute to your growth and relevance as a game artist.

Lastly, it's essential to keep an eye on industry publications, blogs and websites that focus on game art. These sources often publish articles, interviews and case studies that delve into the latest techniques, technologies and industry insights.

By leveraging these strategies and resources, aspiring game artists can stay informed, continuously improve their skills and remain relevant in the rapidly evolving field of game art.

Creating an Effective Portfolio

Creating a strong portfolio is crucial for aspiring game artists who want to impress game studios and secure a job in the industry. For technical artists, including completed tools in your portfolio is essential. It's better to have a simple but functional tool than a cluttered one that doesn't work properly. Be prepared to explain the purpose and functionality of your tools or scripts and demonstrate them effectively. The ability to showcase your problem-solving approach and the reasoning behind your design choices is important.

Demonstrate your growth in skill set. Showcasing your progression over time is valuable. Highlight new techniques, software proficiency, or artistic styles you have learned and implemented. This demonstrates your adaptability and dedication to continuous improvement.

Focus on quality over quantity. Curate your portfolio to showcase your best work. It's better to have a smaller selection of high-quality pieces than a large collection of mediocre ones. Pay attention to detail and ensure that your work is polished and professional.

Provide clear and concise documentation for your projects. This includes descriptions, breakdowns and explanations of your process. Effective documentation helps reviewers understand your work and the thought process behind it. Although it may be time-consuming, investing in thorough documentation is worthwhile in the long run. As time passes, it becomes easy to forget the specific details of your project, so it would be unfortunate if you couldn't demonstrate them anymore. Additionally, consider writing a reflection report to evaluate both the successes and challenges you encountered during the project.

Using Social Media

Personally, I have found the landscape of visibility for artists to have changed significantly over the years. While platforms like Polycount.com were popular in the past, I have found that being active on ArtStation, Twitter, LinkedIn and participating in select Discord channels has been most effective for me.

ArtStation is a dedicated platform for artists, allowing you to showcase your work and connect with other professionals in the industry. It offers a built-in audience that appreciates and understands the artistry behind game development. Twitter, on the other hand, provides a broader reach and allows you to engage with a wider gaming community, including developers, enthusiasts and potential employers. LinkedIn is useful for establishing a professional presence and connecting with industry professionals and recruiters.

Regularly share your artwork, progress and insights into your creative process. Engage with the community by following and interacting with other artists and game developers. Actively participate in discussions, share valuable resources and provide constructive feedback to others. Building a positive and supportive presence can help you gain visibility and establish meaningful connections.

Job Search Websites

To find job listings for game studios, it is advisable to check the websites of game developers as they are usually the most up-to-date source maintained by the recruitment teams. Additionally, websites like 80.LV and Artstation showcase numerous open positions in the industry. Another valuable resource is GameDev Discord channels, where you can connect with others to discover available opportunities and directly communicate with developers. It's worth noting that positions may become available through these channels before being officially posted online. 

Furthermore, consider sending out open applications to game studios to explore potential opportunities. By utilizing these websites and resources, staying proactive and maintaining a professional network within the game industry, you can increase your chances of finding job opportunities.


Advice

Breaking into the game industry and building a successful career as a game artist requires dedication, continuous learning and a few key principles that have helped me succeed. 

It is important to prioritize the development of a strong foundation in traditional art skills like drawing, composition, color theory, sculpting and/or anatomy. These skills will be fundamental to your artistic abilities and will play a crucial role in creating visually impressive game assets. Plus, they can be valuable when presenting and showcasing your ideas and pitches.

If you aspire to work for a specific game company and want to increase your chances, I would advise to research their current and past projects. Focus on creating a project that aligns with their game type or art style. By doing so, you can demonstrate your skills and abilities in a way that directly relates to the work the company is involved in. This not only helps you grow as an artist but also showcases to potential future employers that you are capable of handling the specific requirements of their ongoing projects.

The game industry is constantly evolving and it's crucial to stay up-to-date with the latest techniques, tools and technologies. Invest time in learning new software, studying industry trends and exploring different art styles. Attend workshops, conferences and the before mentioned online courses to expand your knowledge.

Actively seek feedback from fellow artists, mentors and industry professionals. Constructive criticism helps you grow and improve your work. Be open to feedback, iterate on your designs and constantly strive for excellence.

Embrace adaptability and problem-solving skills to overcome obstacles and find creative solutions. And accept the iterative nature of game development and be open to exploring different approaches to achieve the desired results.

Concept art

General / 16 March 2018
I've been working on a spare time project - however I haven't touched it in almost a year and finally decided to revisit it and finalize my project :) It's  somewhat inspired by the God of War reboot.

Photobash concept - by me


First blockout pass


Latest WIP shot in UE4

Horizon: Zero Dawn - Artstation Artblast

General / 09 May 2017





High Poly Brick Sculpting

General / 29 August 2014
Since my last post I've been working on these bricks while I was working on a different personal project. Kinda helped me to keep fresh eyes on the project by doing something else once every few days.

I was building a small library of different types of wall bricks.

Two bricks from the previously shown set of bricks but with polypaint to test a bit of lookdev. 

Textured Concrete Pillar

General / 02 July 2014
I've been working for a bit on this sculpt and decided to texture it. There are still a few tweaks but I feel I'll keep it like this, been working the low poly/texturing for a few evenings.

Cheers,


Stefan Groenewoud
Environment artist 

[Click to enlarge]

Fabric sculpting

General / 18 May 2014
After a few months I finally got around to sculpt some fabric in Zbrush in my spare time to improve my workflow and simply get everything done in one program. Unfortunately I did have to do a bit of blocking out and fixing model issues outside of Z.

I also got some other projects going but they're not at a stage that it's ready to show yet ;).

Cheers!