Boston VR Newsletter - November 2024 Edition
Monthly Socials, Crowdsourcing with VR, Crafter's Corner, MIT xPro, QQs, and More...
Monthly Socials!
The organizers and volunteers of Boston VR are continuing our monthly socials at TimeOut Market.
The next social event is on December 2nd at 7 pm.
Click here to RSVP!
Featured Audiobook Track: How to Amp- Up Crowdsourcing with VR and Augmented Reality
by Casey Armstrong
Click here to listen!
New England Visionaries-November at Microsoft’s NERD Conference Center November 25th 6-9pm
New England Visionaries is a community for Vision Pro aficionados, developers, and anyone interested in the future of spatial computing.
RSVP Here:
Crafter’s Corner – Crafting what you see in VR-Part 2
Welcome back to the Crafter’s Corner, the part of the VR newsletter that focuses on the tools and practices to build content for VR. In the previous installment, we kicked off the discussion of Blender as one of the more popular and free 3D art creation tools on the market today. In that article we reviewed the concept of meshes and topology as the fundamental building block of 3D models, and how meshes are themselves composed of vertices, edges, and faces. We discussed how to use Blender’s modeling and sculpting mode to build complex shapes in Blender, and how crafters need to be careful not to create models that use too many faces if they would like their application to run well on devices with limited amounts of GPU processing power like the Quest headsets
Today we will look into other Blender capabilities that crafters use to build their models in preparation for exporting to use in their game engine of choice. Of these, the most important aside from the mesh itself are “materials”. Up until now, everything we’ve discussed has been related to the shape of the mesh, but visually the mesh is still only a flat gray color. This is because materials have yet to be added to the mesh. Materials can be thought of as 2D imagery that will be stretched across the shape of your model to define how it will look in your experience. This is what provides color, reflectivity of light, and sometimes even subtle height differences to your model when it is shown by the game engine in the experience you place your model in.
This 2D imagery is often stored in files called “textures” that can be loaded into Blender, and later into the game engine, to describe what the model looks like over its surface. Since these textures are 2D images, they can be created in standard 2D art programs like Photoshop or Krita (a newer Photoshop competitor that is free and feature-rich). However, due to the nature of how the images are stretched over the model, if you look at these files in a 2D art program they may look heavily distorted. The textures of 3D faces in 2D textures is a common (and disturbing) example of this.
When using files to store the texture images, often more than one file is used. Different files are used to store different information. The simplest–color–is what we are most used to seeing and is typically the primary file used for texture information. In the industry, the file that stores color is also called the “albedo map”. Other types of files that might be used are “normal maps” and “height maps” that store height details for the model that aren’t part of the mesh itself, “roughness maps” and “metallic maps” which tell the engine how shiny and reflective to make each part of the mesh, and more. The use of all these files and the types of content each contain is part of a standard called PBR or “Physically Based Rendering”. Because it’s a standard, you can use these files in Blender and your game engine of choice will also understand what each one represents.
In addition to texture files, Blender supports building the textures for materials in Blender itself under the “Shading” section of Blender. These are called “procedural textures” because rather than reading from a file, you build a graph in Blender that describes how to create these textures procedurally. However, since procedural textures are not part of the PBR standard, if you use procedural textures you will need to either “bake” them, which turns them into texture files, or wait until you are working in the game engine. Each game engine has its own way to build textures procedurally, which we will discuss when we get to the different engine deep dives.
One final note before we move on from the topic of textures, each engine will render textures on meshes differently, so you should expect your models to look different in your game engine than they look in Blender. Be prepared for some surprises when you move your model over to your game engine, and you may need to go back and make some texture changes once you see how they look in the engine. For that reason, it’s a good idea not to spend too much time on textures until you have your experience ready to load your model into the engine so you’ll be able to see what it will look like to your users and make changes from there.
The final topic we’ll cover today is the concept of “UVs”. A UV describes exactly how the textures will “stretch” over the body of the mesh. The name “UV” comes from the fact that textures use a two-dimensional coordinate system, so the letters “u” and “v” are used to distinguish from the “x”, “y”, “z” values of the three-dimensional coordinate system used for meshes. Blender provides a “UV Editing” tab which is where the UV for the model is defined. When in UV Editing mode, you’ll be able to see both the model in 3D on one side of the screen and how it stretches–called “unwrapping”--over the 2D textures being used for the model.
Modern 3D modeling systems are still not very good at guessing how to unwrap models for UVs by default, so typically a crafter will need to go into UV Editing mode, and tell Blender exactly where to “cut” their mesh when Blender unwraps it by adding what are called “seams” to the mesh. This shows where the mesh can best be split apart when unwrapping it over the texture. These seams will show as distortions in the model when shown in the engine, since one side of the seam will be on a different part of the texture than the other side, so seams are best placed where they will not be seen by the user in the experience, such as the bottom or back of the mesh, or where the mesh will be covered with something else, or where the texture is simple and does not have a pattern. Once all the seams are put into place, the final step is to tell Blender to redo the unwrapping, at which point you’ll be able to see how the texture fits onto the mesh on the 3D side of the screen.
All this information can be transferred from Blender to the game engine, so it is safe to do all this work inside of Blender, with the caveat mentioned earlier that the textures will likely look somewhat different in the engine, so crafters should regularly check their changes in the engine as well to make sure everything still looks as expected. Keep in mind that crafting models for VR is complicated work, and far too complicated to go into everything here. If you take these concepts and do some internet searching, you’ll be able to find tons of great tutorials on how to learn more.
Next time we’ll finish our tour of Blender with a look into how to use Blender to bring a model to life with rigging and animation. See you then.
Justin is a long-time software engineer who specializes in cloud and VR development. Ask him questions or tell him what you’d like to see in this series. He can be reached at https://archmag.us, justin@archmag.us or on Bluesky at https://bsky.app/profile/archmag.us
Interested in an MIT xPro Certificate in Virtual Reality and Augmented Reality? Th next Cohort starts on November 21st.
I just finished the program with the last cohort. If you have any questions about the experience, feel free to email me at chris@bostonvr.org. -Chris
More info can be found here:
QQs=Quality Questions (worth pondering)
What if augmented reality were the only way to truly feel at home in your own space?
If an “Oasis metaverse” existed as in the novel, Ready Player One, and every person could create a planet with others through a shared theme, community, and mission, what would be the experience like on your planet that would make your world unique?
If you own a VR headset, what is an innovative way you can use it to stretch your creative thinking muscles and ignite original ideas that you haven’t tried before for ___________________?
-Chris
For more QQs to enrich and enhance your creative thinking, follow me on X @letsaskqqs
Stay tuned for our next newsletter for more updates, highlights, and community stories. Let's keep exploring the infinite possibilities of extended reality together!
Boston VR is committed to fostering a welcoming and innovative community for XR enthusiasts and professionals.
Whether you're a developer, creator, researcher, or just plain curious, we're excited to explore the future of XR with you.
For more detailed discussions and to share your thoughts or experiences, don't hesitate to join us at our next meetup or reach out through our community channels.
See you in the virtual world!
Join the Boston VR Slack
To join, click here
Would you like to spotlight your VR project to inspire creativity in our community? Email Chris at chris@bostonvr.org with a short description of your project and why it should be included in the newsletter.
Interested in Volunteering with Boston VR?
Email Casey We need help with marketing, event planning, dev jams, sponsorship, and more!
Thank you to our Premium Sponsor, AMXRA!
AMXRA is the premier medical society advancing the science and practice of medical extended reality, https://amxra.org/.
AMXRA has generously committed to being a premium sponsor for Boston VR over the coming years. We are immensely grateful for their support and partnership in exploring the forefront of XR technology.