# data[].attributes.attachment_link.description
Get Started with the Core Features of ZBrush

# data[].attributes.attachment_link.readable_text
Free and Open Source

Blender is a public project hosted on blender.org, licensed as GNU GPL, owned by its contributors.

For that reason Blender is Free and Open Source software, forever. Learn more

Part of the industry

Blender is a member of ASWF, Khronos, Linux Foundation and OIN. It's also well supported by major hardware vendors such as AMD, Apple, Intel, and NVIDIA.

It's about people.

Designers, developers, engineers, artists. All driven by passion. All using Blender to make an impact.

The Ecosystem

Countless communities and thriving businesses are built around Blender.

Together, these tutorial makers and content creators, add-on developers and global marketplaces form an ever-expanding ecosystem.
Find Blender Communities
Everything You Need

Cycles is Blender's built-in powerful unbiased path-tracer engine that offers stunning ultra-realistic rendering.

· Real-time viewport preview

· CPU & GPU rendering

· PBR shaders & HDR lighting support

· VR rendering support

Blender's comprehensive array of modeling tools make creating, transforming and editing your models a breeze.

· Full N-Gon support

· Edge slide, inset, grid and bridge fill, and more

· Advanced sculpting tools and brushes

· Multi-resolution and Dynamic subdivision

· 3D painting with textured brushes and masking

· Python scripting for custom tools and add-ons

VFX professionals say: "Probably the best tracker in the market". Blender includes production ready camera and object tracking. Allowing you to import raw footage, track the footage, mask areas and see the camera movements live in your 3D scene. Eliminating the need to switch between programs.

· Auto and Manual tracking

· Powerful camera reconstruction

· Real-time preview of your tracked footage and 3D scene

· Support for Planar tracking and Tripod solvers

Thanks to the high quality rigging and animation tools, Blender is being used for numerous short films, advertisements, TV series and feature films now.

· Envelope, skeleton and automatic skinning

· B-spline interpolated bones

· Curve editor and dope sheets

· Custom bone shapes for fast input

· Sound synchronization

Story Art, Drawing 2D in 3D

Really! Drawing directly in a 3D viewport makes a lot of sense. It opens unsurpassed workflow freedom for story-boarders and 2D artists.

· Combine 2D with 3D right in the viewport

· Full Animation Support with Onion Skinning

· Layers & Colors for Stroke and Fill

· Sculpt brush strokes & Parent to 3D objects

Blender has a flexible Python controlled interface. Layout, colors, size and even fonts can be adjusted. Use hundreds of add-ons by the community or create your own using Blender's accessible Python API.

· Customize the interface layout and colors

· Hi-res/Retina screen support

· Create your own tools and add-ons

· Draw over the OpenGL viewport

· Connect with Blender's Render API

# data[].attributes.attachment_link.title
blender.org - Home of the Blender project - Free and Open 3D Creation Software

# data[].attributes.attachment_link.readable_text
THE STUDIO

Our Studio team can help you leverage the power of AR for your brand. With experience navigating projects from entertainment and tourism to CPG, we can help you deliver experiences above and beyond every brief - whatever you want to build, we'll make it happen. Our expertise includes:

Subscribe to our AR newsletter

# data[].attributes.attachment_link.title
Augmented Reality (AR) Company | Blippar

# data[].attributes.attachment_link.description
Blippar provides augmented reality solutions and provides you with easy to use tools to build it yourself.

# data[].attributes.attachment_link.readable_text
Get Unreal Engine today!

Get the world's most open and advanced creation tool.
With every feature and full source code access included, Unreal Engine comes fully loaded out of the box.

# data[].attributes.attachment_link.title
Unreal Engine | The most powerful real-time 3D creation platform

# data[].attributes.attachment_link.description
Get the world's most open and advanced creation tool. With every feature and full source code access included, Unreal Engine comes fully loaded out of the box.

# data[].attributes.attachment_link.readable_text
Bring production-level models to your mobile! Emb3D now features the brand new Unlimit3D Technology, thanks to which hi-poly 3D models with tens of millions of triangles and per-vertex color can be rendered at full resolution on mobile devices.

As a result of state-of-the-art research in Computer Graphics, Unlimit3D pushes the amount of pure detail you can visualize far beyond the limits of currently available mobile 3D viewers, without relying on decimation or normal maps. And with the new MatCap material, modelers can get the feel of professional desktop and workstation tools, enjoying a smooth interactive experience even with movie production assets.

# data[].attributes.attachment_link.description
Bring production-level models to your mobile! Emb3D now features the brand new Unlimit3D Technology, thanks to which hi-poly 3D models with tens of millions of triangles and per-vertex color can be rendered at full resolution on mobile devices.

# data[].attributes.attachment_link.readable_text
Engage with the Sketchfab community and explore millions of models in 3D, VR, and AR on your mobile device.

Sketchfab's app might be the best way to try ARKit.
- TechCrunch

Millions of VR models at your fingertips

Like and leave comments and share the experiences with your friends.

The largest AR library on the planet

Publish and share to AR without writing a single line of code.

Join the Sketchfab Community

Follow your favorite creators, create and subscribe to collections, and engage with our community of millions of creators.

Enter new dimensions

# data[].attributes.attachment_link.description
Engage with the Sketchfab community and explore millions of models in 3D, VR, and AR on your mobile device. - TechCrunch Like and leave comments and share the experiences with your friends. Publish and share to AR without writing a single line of code.

# data[].attributes.attachment_link.readable_text
680 public domain PBR textures. And counting...

The library is growing constantly. There is usually a new texture every day, here are the latest creations:

Show all assets

Among all the new releases of the last 30 days these have gained new downloads particularly fast.

All assets released on CC0Textures.com fall under the Creative Commons CC0 license. You can use them for any purpose, for free, forever. There is no need to give credit.

There is no registration, no daily download limit or other restrictions!

CC0Textures.com is funded via Patreon! Patrons of CC0 Textures get some exclusive bonuses:

Early and automated access via Google Drive.

Faster access to some "behind-the-scenes"-material, including tutorials.

Ability to vote on new textures via Trello.

Support CC0 Textures!

CC0 Textures is being used by thousands of people around the world:

~80.000 total unique visitors per month.

~200.000 downloads per month

Check out the gallery of community creations
(I know that many of you don't like Pinterest, feel free to suggest alternatives)

Explore the library by category

# data[].attributes.attachment_link.description
680 public domain PBR textures. And counting... The library is growing constantly. There is usually a new texture every day, here are the latest creations: Show all assets Among all the new releases of the last 30 days these have gained new downloads particularly fast.

# data[].attributes.attachment_link.readable_text
Licensing & Purchase Info

License Types:

Freelance/Academic

If you're not holding a corporate credit card in your hand, this is likely for you. This license is for freelancers, hobbyists, students, and educators. It is suitable for both non-commercial and commercial use.

Studio

If you are purchasing on behalf of a business that is producing commercial content, this is the license for you. These license seats are owned by businesses for team use rather than individual users.

Upgrade Discounts!

As a Toolbag 2 license owner, you qualify for a discount on Toolbag 3. Select the appropriate "Upgrade" version from the menu and add it to your shopping cart. Once you're on the "Checkout" page, enter your Marmoset ID in the appropriate text box.

Important: In order for the upgrade discount to be granted, you must enter the same email address/Marmoset ID currently assigned to your Toolbag 2 license.

License Activation

Standard Installation

Once your order is complete and you've received your order confirmation email, run Toolbag 3 and log in on the welcome screen using your Marmoset ID.

Installation from Disc Image

Run Toolbag 3 on the imaged drive, then activate your license on that machine by logging into Toolbag 3 using your Marmoset ID and with the activation option "Authorize everyone on this computer" enabled. Once that image is deployed, this setting will make sure multiple user accounts per machine are authorized for use, and no manual activation is needed per client, per user account.

What is my "Marmoset ID"?

Marmoset's software utilizes the end user's email address as their Marmoset ID. No passwords or license keys are required, simply log into the software with your ID to get yourself up and running!

Licensing Terms

All Marmoset software and asset packs are subject to the usage terms and conditions specified in the End User License Agreement (EULA) included with each product download. Generally speaking these agreements don't contain anything surprising, but please don't hesitate to contact us with any questions.

Support Terms

All Marmoset customers receive complimentary email support for both trial and paid licenses. If you have any questions, feedback, or recommendations, we want to hear from you at support@marmoset.co. Marmosets don't bite (usually).

Volume Discounts

All multi-seat license purchases are eligible for volume discounts. These discounts will be automatically applied to your order once you 'Add to Cart' and adjust the item to the appropriate quantity.

Are wire payments available?

Yes, but we ask that any purchases under $1,000 USD be placed online through our standard web checkout. If your institution or client requires offline payment, please provide a purchase order for the necessary licensing, sent to info@marmoset.co. We'll be glad to follow-up with an invoice for payment.

May I gift a license?

Absolutely! Proceed through our web checkout entering your billing information as usual, and enter the license recipient's name and email address in the appropriate "Marmoset ID" boxes. This will assign the license to the appropriate end user, while delivering the email receipt only to you.

Do you work with resellers?

We do not have official reseller partners, nor do we offer specific reseller discounts, however volume discounts do apply (see above). If you are a reseller looking to purchase on behalf of a client, please proceed through our web checkout and assign the licenses to the appropriate end user by entering their name and email address in the "Marmoset ID" boxes on the checkout page.

All license information and receipts will be delivered to the purchaser. It is then the purchaser's responsibility to pass along the necessary download links and/or licensing details to the client.

May I receive a price quote?

Without a doubt. If you require a formal price quote for purchase approval, please contact us at info@marmoset.co with your licensing request, and we'll be glad to prepare one for you right away.

Additional Questions?

Please contact us at support@marmoset.co.

# data[].attributes.attachment_link.title
Marmoset Toolbag 3 | 3D Real-time Rendering, Lookdev, and Production Tools

# data[].attributes.attachment_link.description
License Types: Freelance/Academic If you're not holding a corporate credit card in your hand, this is likely for you. This license is for freelancers, hobbyists, students, and educators. It is suitable for both non-commercial and commercial use. Studio If you are purchasing on behalf of a business that is producing commercial content, this is the license for you.

# data[].attributes.attachment_link.readable_text
Unity creators can deploy their projects to 20+ platforms²

downloads per month of Made with Unity applications³

of the top 1,000 games are using Unity to grow their games⁴

When created, when played, every game will be touched by AI. See how Unity Muse can transform the way you create.

Success stories

See how creators and studios around the world have achieved remarkable success with Unity's solutions and services.

Deep resources, dynamic community

Subscription plans

Personal

Bring your vision to life with free access to the most widely used game engine in the world.

Pro

Unlock your team's potential with the tools professionals use to create hit games across devices and platforms.

Enterprise

Manage complex real-time 3D projects with expert support and creation tools that scale for teams of any size.

Disclaimers

1. Creator credits: Bleak Sword DX, More8bit, Devolver Digital | GTFO, 10 Chambers | Laika: Aged Through Blood, Brainwash Gang, Headup Publishing | Muhammad Ali, Showmax Game Changers, Chocolate Tribe | Sea of Stars, Sabotage Studios | BattleBit Remastered, SgtOkiDoki, Vilaskis, TheLiquidHorse

2. As of September 2023. Source: Derived from internal Unity resources.

3. As of September 2023. Source: Internal Unity sources, Data.ai Steam DB. Disclaimer: Downloads number is a combined figure of 3.56 billion mobile downloads based on data.ai data plus an internal estimate of 98 million downloads based on Steam data.

4. Source: data.ai. Disclaimer: Top 1,000 games is top 1,000 gaming apps by downloads in last 4 weeks from data.ai as of February 2023.

Copyright © 2023 Unity Technologies

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere ( more info here). Other names or brands are trademarks of their respective owners.

# data[].attributes.attachment_link.title
Unity Real-Time Development Platform | 3D, 2D, VR & AR Engine

# data[].attributes.attachment_link.description
Create and grow real-time 3D games, apps, and experiences for entertainment, film, automotive, architecture, and more. Get started with Unity today.

# data[].attributes.attachment_link.readable_text
Keyboard ALT + g to toggle grid overlay

Maya overview (video 3.05 min.)

Create expansive worlds, complex characters and dazzling effects

Bring believable characters to life with engaging animation tools.

Shape 3D objects and scenes with intuitive modelling tools in Maya® software.

Create realistic effects - from explosions to cloth simulation.

Create effects, build custom graphs (video: 1.57 min.)

NEW | Create serious effects procedurally with Bifrost for Maya

A new visual programming environment using dynamic solvers enables you to create blockbuster-worthy effects quickly.

Build custom graphs using the Bifrost Graph Editor.

Create stunning effects - from snow and sand to dust storms and explosions - with ready-to-use graphs.

Render your most complex projects with Arnold

Arnold is built to manage complex characters, scenery and lighting challenges.

Arnold is integrated with Maya, so you can see high-quality previews and iterate changes quickly.

Save time with Arnold's artist-friendly UI and simple, intuitive controls.

See how people are using Maya

BLUE SKY STUDIOS

Pushing boundaries in animation

Learn how this animation film studio speeded up its pipeline with new technology and worked with Autodesk to improve Cached Playback.

Ferdinand Copyright 2017 Twentieth Century Fox. All Rights Reserved.

METHOD STUDIOS

Creating the Mind Flayer in Stranger Things

James Kirk, FX lead for season 2 of Stranger Things, discusses how Method Studios created the Mind Flayer.

Image courtesy of Method Studios

# data[].attributes.attachment_link.title
Maya | Computer Animation & Modelling Software | Autodesk

# data[].attributes.attachment_link.description
Keyboard ALT + g to toggle grid overlay Maya overview (video 3.05 min.) Create expansive worlds, complex characters and dazzling effects Bring believable characters to life with engaging animation tools. Shape 3D objects and scenes with intuitive modelling tools in Maya® software. Create realistic effects - from explosions to cloth simulation.

# data[].attributes.attachment_link.readable_text
JavaScript is not enabled. Please enable JavaScript in your browser or contact your system administrator for assistance.

BIG-IP can not find session information in the request. This can happen because your browser restarted after an add-on was installed. If this occurred, click the link below to continue. This can also happen because cookies are disabled in your browser. If so, enable cookies in your browser and start a new session.

Thank you for using UDO.

# data[].attributes.attachment_link.description
JavaScript is not enabled. Please enable JavaScript in your browser or contact your system administrator for assistance. BIG-IP can not find session information in the request. This can happen because your browser restarted after an add-on was installed. If this occurred, click the link below to continue.

# data[].attributes.attachment_link.description
Unity Learn provides award-winning free tutorials, sample projects, and full courses for mastering real-time 3D development skills with Unity Learn to make video games, VR, AR, and more.

# data[].attributes.attachment_link.readable_text
When a game model uses a single texture sheet ( Texture atlas) the image will have areas that are used for the textures and blank areas between them. The used areas are often called UV shells, and the blank areas are often called gutters.

When a game engine renders a scene it uses Texture filtering to smoothly render the texture, in a process called downsampling. If the gutters have colors that are significantly different from the colors inside the shells, then those colors can "bleed" creating seams on the model. The same thing happens when neighboring shells have different colors; as the texture is downsampled eventually those colors start to mix.

To avoid this, edge padding should be added in the gutters between each UV shell. Edge padding duplicates the pixels along the inside of the UV edge and spreads those colors outward, forming a skirt of similar colors.

When the UV layout is created, the spacing between the shells should be done with edge padding in mind. If the gutters between the UV shells aren't wide enough, there won't be enough edge padding to prevent bleeding.

Filtering Examples

A 512x512 texture with no edge padding. White pixels are the used areas (shells), black pixels are the unused parts (gutters), and the UV shapes are shown in pink. As the texture is downsampled, pixels from the gutters bleed into the shells.

With a 4 pixel edge pad, less bleeding occurs. Eventually the unpadded empty areas will bleed too; avoid this by filling all empty areas with a similar background color, or using enough edge padding to fill all the gutters.

Gutter width is also important, it should be 2x the padding width. When neighboring shells have different colors (exaggerated here for clarity) then thin gutters will bleed sooner (white arrows). The last to bleed are the gutters that are 8 pixels wide; a 512x512 should have at least 4 pixels of edge padding around each shell.

Minimum Padding

Here are suggested amounts of edge padding to use for different size textures:

It works best when the padding is extended to fill all empty areas (or the empties are flood-filled with a similar background color).

Note: These guidelines apply differently depending on the engine, filtering type, and Mip mapping mode.

Visual Packing Guide

If you want a visual guide when creating your UVs, one easy way to see the spacing is to use a checker as the background image in your UV editor, with each checker square set to the padding width.

For example to get a 4-pixel-wide checker on a 512x512 image, tile the checker image 64 times... if you calculate that the checker image has 2 checker squares across it, then the checkers bitmap should be 8 pixels across for a 512 image, and 8 pixels goes 64 times into 512, so that means it needs to be tiled 64 times across your UV square. Remember though, that if your UV space isn't square, then the checker tiling needs to be adjusted.

Padding Tools

Texture-baking tools usually have an edge padding feature.

3ds Max > Render To Texture > Padding

Maya > Transfer Maps > Fill Texture Seams

Substance Share > Dilate: Color by Bradford Smith

Xnormal > Edge Padding

Photoshop has several methods for edge padding:

Solidify. Solidify is a free filter that pads out the edge pixels and blurs them together.

Filter > Other > Maximum. Before running the filter, fill the empty areas with black, and make a non-anti-aliased selection of the empty areas. Beware that when the padding overlaps itself, it does so additively, over-brightening the pad colors.

Xnormal has a Dilation filter that works well. Before running the filter, make sure the UV shells are together on a single RGB layer, and the gutters are transparent (deleted).

# data[].attributes.attachment_link.description
When a game model uses a single texture sheet ( Texture atlas) the image will have areas that are used for the textures and blank areas between them. The used areas are often called UV shells, and the blank areas are often called gutters.

# data[].attributes.attachment_link.description
High Quality Digital Textures for Free. Exclusive content made by Textures4Photoshop. All textures are free for commercial use with attribution.

# data[].attributes.attachment_link.readable_text
A: xNormal™ is a free app to bake texture maps ( like normal maps and ambient occlusion ).

Q: Which are the minimum requisites to execute the application?
A: 4Gb of RAM, a x86_64 CPU, DirectX® 10-compatible GPU and Windows® 7 (or above).

Q: Where can I download the program?
A: Here! Please, select the version, OS and mirror and then click over the "Download file" button.

After that, just run the .exe installer and follow the intructions on the screen.

Q: How can I contact you?
A: Please, write an email to

v1.0.11

Cookies policy Legal info

# data[].attributes.attachment_link.description
A: xNormal™ is a free app to bake texture maps ( like normal maps and ambient occlusion ). Q: Which are the minimum requisites to execute the application? A: 4Gb of RAM, a x86_64 CPU, DirectX® 10-compatible GPU and Windows® 7 (or above). Q: Where can I download the program?

# data[].attributes.attachment_link.title
Substance Share " The Free Exchange Platform "

# data[].attributes.attachment_link.description
Substance Share " The Free Exchange Platform "

# data[].attributes.attachment_link.readable_text
By Jeff Russell

Physically-based rendering (PBR) is an exciting, if loosely defined, trend in real time rendering lately. The term is bandied about a lot, often generating confusion as to what exactly it means. The short answer is: "many things", and "it depends", which is rather unsatisfying, so I have taken it upon myself to try to explain at some length what PBR represents and how it differs from older rendering methods. This document is intended for non-engineers (artists most likely), and will not present any mathematics or code.

Much of what makes a physically-based shading system different from its predecessors is a more detailed reasoning about the behavior of light and surfaces. Shading capabilities have advanced enough that some of the old approximations can now be safely discarded, and with them some of the old means of producing art. This means both the engineer and the artist should understand the motivations for these changes.

We'll have to start with some of the basics so that they are well defined before we begin to highlight what is new, but if you'll bear with me through the parts you may already know I think you'll find it well worth the read. You may then want to also check out our own Joe Wilson's article on creating PBR artwork.

Diffusion & Reflection

Diffusion and reflection - also known as "diffuse" and "specular" light respectively - are two terms describing the most basic separation of surface/light interactions. Most people will be familiar with these ideas on a practical level, but may not know how they are physically distinct.

When light hits a surface boundary some of it will reflect - that is, bounce off - from the surface and leave heading in a direction on the opposing side of the surface normal. This behavior is very similar to a ball thrown against the ground or a wall - it will bounce off at the opposite angle. On a smooth surface this will result in a mirror-like appearance. The word "specular", often used to describe the effect, is derived from the latin for "mirror" (it seems "specularity" sounds less awkward than "mirrorness").

Not all light reflects from a surface, however. Usually some will penetrate into the interior of the illuminated object. There it will either be absorbed by the material (usually converting to heat) or scattered internally. Some of this scattered light may make its way back out of the surface, then becoming visible once more to eyeballs and cameras. This is known by many names: "Diffuse Light", "Diffusion", "Subsurface Scattering" - all describe the same effect.

The absorption and scattering of diffuse light are often quite different for different wavelengths of light, which is what gives objects their color (e.g. if an object absorbs most light but scatters blue, it will appear blue). The scattering is often so uniformly chaotic that it can be said to appear the same from all directions - quite different from the case of a mirror! A shader using this approximation really just needs one input: "albedo", a color which describes the fractions of various colors of light that will scatter back out of a surface. "Diffuse color" is a phrase sometimes used synonymously.

Translucency & Transparency

In some cases diffusion is more complicated - in materials that have wider scattering distances for example, like skin or wax. In these cases a simple color will usually not do, and the shading system must take into account the shape and thickness of the object being lit. If they are thin enough, such objects often see light scattering out the back side and can then be called translucent. If the diffusion is even lower yet (in for example, glass) then almost no scattering is evident at all and entire images can pass through an object from one side to another intact. These behaviors are different enough from the typical "close to the surface" diffusion that unique shaders are usually needed to simulate them.

Energy Conservation

With these descriptions we now have enough information to draw an important conclusion, which is that reflection and diffusion are mutually exclusive. This is because, in order for light to be diffused, light must first penetrate the surface (that is, fail to reflect). This is known in shading parlance as an example of "energy conservation", which just means that the light leaving a surface is never any brighter than that which fell upon it originally.

This is easy to enforce in a shading system: one simply subtracts reflected light before allowing the diffuse shading to occur. This means highly reflective objects will show little to no diffuse light, simply because little to no light penetrates the surface, having been mostly reflected. The converse is also true: if an object has bright diffusion, it cannot be especially reflective.

Energy conservation of this sort is an important aspect of physically-based shading. It allows the artist to work with reflectivity and albedo values for a material without accidentally violating the laws of physics (which tends to look bad). While enforcing these constraints in code isn't strictly necessary to producing good looking art, it does serve a useful role as a kind of "nanny physicist" that will prevent artwork from bending the rules too far or becoming inconsistent under different lighting conditions.

Metals

Electrically conductive materials, most notably metals, are deserving of special mention at this point for a few reasons.

Firstly, they tend to be much more reflective than insulators (non-conductors). Conductors will usually exhibit reflectivities as high as 60-90%, whereas insulators are generally much lower, in the 0-20% range. These high reflectivities prevent most light from reaching the interior and scattering, giving metals a very "shiny" look.

Secondly, reflectivity on conductors will sometimes vary across the visible spectrum, which means that their reflections appear tinted. This coloring of reflection is rare even among conductors, but it does occur in some everyday materials (e.g. gold, copper, and brass). Insulators as a general rule do not exhibit this effect, and their reflections are uncolored.

Finally, electrical conductors will usually absorb rather than scatter any light that penetrates the surface. This means that in theory conductors will not show any evidence of diffuse light. In practice however there are often oxides or other residues on the surface of a metal that will scatter some small amounts of light.

It is this duality between metals and just about everything else that leads some rendering systems to adopt "metalness" as a direct input. In such systems artists specify the degree to which a material behaves as a metal, rather than specifying only the albedo & reflectivity explicitly. This is sometimes preferred as a simpler means of creating materials, but is not necessarily a characteristic of physically-based rendering.

Fresnel

Augustin-Jean Fresnel seems to be one of those old dead white guys we are unlikely to forget, mainly because his name is plastered on a range of phenomena that he was the first to accurately describe. It would be hard to have a discussion on the reflection of light without his name coming up.

In computer graphics the word Fresnel refers to differing reflectivity that occurs at different angles. Specifically, light that lands on a surface at a grazing angle will be much more likely to reflect than that which hits a surface dead-on. This means that objects rendered with a proper Fresnel effect will appear to have brighter reflections near the edges. Most of us have been familiar with this for a while now, and its presence in computer graphics is not new. However, PBR shaders have made popular a few important corrections in the evaluation of Fresnel's equations.

The first is that for all materials, reflectivity becomes total for grazing angles - the "edges" viewed on any smooth object should act as perfect (uncolored) mirrors, no matter the material. Yes, really - any substance can act as a perfect mirror if it is smooth and viewed at the right angle! This can be counterintuitive, but the physics are clear.

The second observation about Fresnel properties is that the curve or gradient between the angles does not vary much from material to material. Metals are the most divergent, but they too can be accounted for analytically.

What this means for us is that, assuming realism is desired, artist control over Fresnel behavior should generally be reduced, rather than expanded. Or at the very least, we now know where to set our default values!

This is good news of a sort, because it can simplify content generation. The shading system can now handle the Fresnel effect almost entirely on its own; it has only to consult some of the other pre-existing material properties, such as gloss and reflectivity.

A PBR workflow has the artist specify, by one means or another, a "base reflectivity". This provides the minimum amount and color of light reflected. The Fresnel effect, once rendered, will add reflectivity on top of the artist specified value, reaching up to 100% (white) at glancing angles. Essentially the content describes the base, and Fresnel's equations take over from there, making the surface more reflective at various angles as needed.

There is one big caveat for the Fresnel effect - it quickly becomes less evident as surfaces become less smooth. More information on this interaction will be given a bit later on.

Microsurface

The above descriptions of reflection and diffusion both depend on the orientation of the surface. On a large scale, this is supplied by the shape of the mesh being rendered, which may also make use of a normal map to describe smaller details. With this information any rendering system can go to town, rendering diffusion and reflection quite well.

However, there is one big piece still missing. Most real-world surfaces have very small imperfections: tiny grooves, cracks, and lumps too little for the eye to see, and much too small to represent in a normal map of any sane resolution. Despite being invisible to the naked eye, these microscopic features nonetheless affect the diffusion and reflection of light.

Microsurface detail has the most noticeable effect on reflection (subsurface diffusion is not greatly affected and won't be discussed further here). In the diagram above, you can see parallel lines of incoming light begin to diverge when reflected from a rougher surface, as each ray hits a part of the surface with a different orientation. The analog in the ball/wall analogy would be a cliffside or something similarly uneven: the ball is still going to bounce off but at an unpredictable angle. In short, the rougher the surface gets, the more the reflected light will diverge or appear "blurry".

Unfortunately, evaluating each microsurface feature for shading would be prohibitive in terms of art production, memory use, and computation. So what are we to do? It turns out if we give up on describing microsurface detail directly and instead specify a general measure of roughness, we can write fairly accurate shaders that produce similar results. This measure is often referred to as "Gloss", "Smoothness", or "Roughness". It can be specified as a texture or as a constant for a given material.

This microsurface detail is a very important characteristic for any material, as the real world is full of a wide variety of microsurface features. Gloss mapping is not a new concept, but it does play a pivotal role in physically-based shading since microsurface detail has such a big effect on light reflection. As we will soon see, there are several considerations relating to microsurface properties that a PBR shading system improves upon.

Energy Conservation (Again)

As our hypothetical shading system is now taking microsurface detail into account, and spreading reflected light appropriately, it must take care to reflect the correct amount of light. Regrettably, many older rendering systems got this wrong, reflecting too much or too little light, depending on the microsurface roughness.

When the equations are properly balanced, a renderer should display rough surfaces as having larger reflection highlights which appear dimmer than the smaller, sharper highlights of a smooth surface. It is this apparent difference in brightness that is key: both materials are reflecting the same amount of light, but the rougher surface is spreading it out in different directions, whereas the smoother surface is reflecting a more concentrated "beam":

Here we have a second form of energy conservation that must be maintained, in addition to the diffusion/reflection balance described earlier. Getting this right is one of the more important points required for any renderer aspiring to be "physically-based".

All Hail Microsurface

And it is with the above knowledge that we come to a realization, a big one actually: microsurface gloss directly affects the apparent brightness of reflections. This means an artist can paint variations directly into the gloss map - scratches, dents, abraded or polished areas, whatever - and a PBR system will display not just the change in reflection shape, but relative intensity as well. No "spec mask"/reflectivity changes required!

This is significant because two real world quantities that are physically related - microsurface detail and reflectivity - are now properly tied together in the art content and rendering process for the first time. This is much like the diffusion/reflection balancing act described earlier: we could be authoring both values independently, but since they are related, the task is only made more difficult by attempting to treat them separately.

Further, an investigation of real world materials will show that reflectivity values do not vary widely (see the earlier section on conductivity). A good example would be water and mud: both have very similar reflectivity, but since mud is quite rough and the surface of a puddle is very smooth, they appear very different in terms of their reflections. An artist creating such a scene in a PBR system would author the difference primarily through gloss or roughness maps rather than adjusting reflectivity, as shown below:

Microsurface properties have other subtle effects on reflection as well. For example, the "edges-are-brighter" Fresnel effect diminishes somewhat with rougher surfaces (the chaotic nature of a rough surface 'scatters' the Fresnel effect, preventing the viewer from being able to clearly resolve it). Further, large or concave microsurface features can "trap" light - causing it to reflect against the surface multiple times, increasing absorption and reducing brightness. Different rendering systems handle these details in different ways and to different extents, but the broad trend of rougher surfaces appearing dimmer is the same.

Conclusion

There is of course much more to say on the topic of physically-based rendering; this document has served only as a basic introduction. If you haven't already, read Joe Wilson's tutorial on creating PBR artwork. For those wanting more technical information, I could recommend several readings:

If there are any burning questions still left unanswered, I can usually be reached on twitter.

# data[].attributes.attachment_link.title
Basic Theory of Physically-Based Rendering

# data[].attributes.attachment_link.description
By Jeff Russell Physically-based rendering (PBR) is an exciting, if loosely defined, trend in real time rendering lately. The term is bandied about a lot, often generating confusion as to what exactly it means.

# data[].attributes.attachment_link.readable_text
By Joe "EarthQuake" Wilson

This tutorial will cover the basics of art content creation, some of the reasoning behind various PBR standards (without getting too technical), and squash some common misconceptions. Jeff Russell wrote an excellent tutorial on the Theory of Physically Based Rendering, which I highly recommend reading first.

Additional help from Jeff Russell, Teddy Bergsman, and Ryan Hawkins. Special thanks to Wojciech Klimas and Joeri Vromman for the extra insight and awesome art.

Contents

A New Standard

Fast becoming a standard in the games industry due to increased computing power and the universal need for art content standardization, physically based rendering aims to redefine how we create and render art.

Physically based rendering (PBR) refers to the concept of using realistic shading/lighting models along with measured surface values to accurately represent real-world materials.

PBR is more of a concept than a strict set of rules, and as such, the exact implementations of PBR systems tend to vary. However, as every PBR system is based on the same principal idea (render stuff as accurately as possible) many concepts will transfer easily from project to project or engine to engine. Toolbag 2 supports most of the common inputs that you would expect to find in a PBR system.

Beyond rendering quality, consistency is the biggest reason to use measured values. Having consistent base materials takes the guess work out of material creation for individual artists. It also makes it easier from an art direction perspective to ensure that content created by a team of artists will look great in every lighting condition.

PBR FAQs

Before we get started, it's important to cover common questions that usually pop up when people talk about PBR.

1) I don't know how to use a PBR system, will I need to re-learn how to create art content?

In most cases, no. If you have experience with previous generation shaders which use dynamic per-pixel lighting you already possess much of the knowledge necessary to create content for a PBR system. Terminology tends to be one of the biggest stumbling blocks for artists, so I have written a section on various terms and translations below. Most of the concepts here are simple and easy to pick up.

If your experience lies mostly with hand painted/mobile work, learning the new techniques and workflows outlined here may be more of a challenge. However, likely not more difficult than picking up a traditional normal map based workflow.

2) Will artists need to capture photographic reference with a polarized camera system for every material they wish to create?

No, generally you will be provided with reference for common materials by your studio. Alternatively, you can find known values from various 3rd party sources, like Quixel's Megascans service. Creating your own scan data is a very technical and time consuming process, and in most cases not necessary.

3) If I use a PBR shader does that mean my artwork is physically accurate?

Not necessarily; simply using a PBR shader does not make your artwork physically accurate. A PBR system is a combination of physically accurate lighting, shading, and properly calibrated art content.

4) Do I need to use a metalness map for it to be PBR?

No, a metalness map is just one method of determining reflectivity and is generally not more or less physically accurate than using a specular color/intensity map.

5) Do I need to use index of refraction (IOR) for it to be PBR?

No, similar to the metalness map input, IOR is simply an alternate method to define reflectivity.

6) Is specular no longer a thing?

Not quite. Specular reflection intensity, or reflectivity is still a very important parameter in PBR systems. You may not have a map to directly set reflectivity (e.g. with a metalness workflow) but it is still required in a PBR system.

7) Do gloss maps replace specular maps?

No, gloss or roughness maps define the microsurface of the material (how rough or smooth it is), and do not replace a specular intensity map. However, if you're not used to working with gloss maps, it may be somewhat of an adjustment to put certain detail in the gloss map that you would otherwise add to the specular map.

8) Can a PBR system be used to create stylized art?

Yes, absolutely. If your goal is to create a fantastical, stylized world, having accurate material definition is still very important. Even if you're creating a unicorn that farts rainbows, you still generally want that unicorn to obey the physics of light and matter.

A great example of this is Pixar's work, which is very stylized, yet often on the cutting edge of material accuracy. Here is a great article about PBR in Monsters University: fxguide feature on Monsters University

Inputs and Terminology

Artists who are unfamiliar with the concept of PBR systems often assume that content creation is drastically different, usually because of the terminology that is used. If you've worked with modern shaders and art creation techniques you already have experience with many of the concepts of a physically based rendering system.

Figuring out what type of content to create, or how to plug your content into a PBR shader can be confusing, so here are some common terms and concepts to get started.

Energy Conservation

The concept of energy conservation states that an object can not reflect more light than it receives.

For practical purpose, more diffuse and rough materials will reflect dimmer and wider highlights, while smoother and more reflective materials will reflect brighter and tighter highlights.

Albedo

Albedo is the base color input, commonly known as a diffuse map.

An albedo map defines the color of diffused light. One of the biggest differences between an albedo map in a PBR system and a traditional diffuse map is the lack of directional light or ambient occlusion. Directional light will look incorrect in certain lighting conditions, and ambient occlusion should be added in the separate AO slot.

The albedo map will sometimes define more than the diffuse color as well, for instance, when using a metalness map, the albedo map defines the diffuse color for insulators (non-metals) and reflectivity for metallic surfaces.

Microsurface

Microsurface defines how rough or smooth the surface of a material is.

Here we see the how the principles of energy conservation are affected by the microsurface of the material, rougher surfaces will show wider, but dimmer specular reflections while smoother surfaces will show brighter, but sharper specular reflections.

Depending on what engine you're authoring content for, your texture may be called a roughness map instead of a gloss map. In practice there is little difference between these two types, though a roughness map may have an inverted mapping, ie: dark values equal glossy/smooth surfaces while bright values equal rough/matte surfaces. By default, Toolbag expects white to define the smoothest surfaces while black defines roughest surfaces, if you're loading a gloss/roughness map with an inverted scale, click the invert check box in the gloss module.

Reflectivity

Reflectivity is the percentage of light a surface reflects. All types of reflectivity (aka base reflectivity or F0) inputs, including specular, metalness, and IOR, define how reflective a surface is when viewing head on, while Fresnel defines how reflective a surface is at grazing angles.

Its important to note how narrow the range of reflectivity is for insulative materials. Combined with the concept of energy conservation it's easy to conclude that surface variation should generally be represented in the microsurface map, not the reflectivity map. For a given material type, reflectivity tends to remain fairly constant. Reflection color tends to be neutral/white for insulators, and colored only for metals. Thus, a map specifically dedicated to reflectivity intensity/color (commonly called a specular map) may be dropped in favor of a metalness map.

When using a metalness map, insulative surfaces - pixels set to 0.0 (black) in the metalness map - are assigned a fixed reflectance value (linear: 0.04 sRGB: 0.22) and use the albedo map for the diffuse value. For metallic surfaces - pixels set to 1.0 (white) in the metalness map - the specular color and intensity is taken from the albedo map, and the diffuse value is set to 0 (black) in the shader. Gray values in the metalness map will be treated as partially metallic and will pull the reflectivity from the albedo and darken the diffuse proportionally to that value (partially metallic materials are uncommon).

Again, a metalness map is not more or less physically accurate than a standard specular map. It is, however, a concept that may be easier to understand, and a metalness map can be packed into a grayscale slot to save memory. The drawback to using a metalness map over a specular map is a loss of control over the exact values for insulative materials

Traditional specular maps offer more control over the the specular intensity and color, and allow greater flexibility when trying to reproduce certain complex materials. The main drawback to a specular map is that it generally will be saved as a 24 bit file resulting in more memory use. It also requires artists to have a very good understanding of physical material properties to get the values right, which can be a positive or negative depending on your perspective.

PROTIP: Metalness maps should use values of 0 or 1 ( some gradation can be okay for transitions). Materials like painted metal should not be set to metallic as paint is an insulator. The metalness value should represent the top layer of the material.

IOR is another way to define reflectivity, and is equivalent to the specular and metalness inputs. The biggest difference from the specular input is that IOR values are defined with a difference scale. The IOR scale determines how fast light travels through a material in relation to a vacuum. An IOR value of 1.33 (water) means that light travels 1.33 times slower through water than it does the empty vacuum of space. You can find more measured values in the Filmetrics Refractive Index Database.

For insulators, IOR values do not require color information, and can be entered into the index field directly, while the extinction field should be set to 0. For metals that have color reflections,you will need to enter a value for the red, green and blue channels. This can be done with an image map input (where each channel of the map contains the correct value). The extinction value will also need to be set for metals, which you can usually find in libraries that contain IOR values.

Using IOR as opposed to specular or metalness input is generally not advised, as it is not typically used in games, and getting the correct value in a texture with multiple material types is difficult. IOR input is supported in Toolbag 2 more for scientific purposes than practical.

Fresnel

Fresnel is the percentage of light that a surface reflects at grazing angles.

Fresnel generally should be set to 1 (and is locked to a value of 1 with the metalness reflectivity module) as all types of materials become 100% reflective at grazing angles. Variances in microsurface which result in a brighter or dimmer Fresnel effect are automatically accounted for via the gloss map content.

Note: Toolbag 2 does not currently support a texture map to control Fresnel intensity.

Fresnel, in Toolbag 2 and most PBR systems, is approximated automatically by the BRDF, in this case Blinn-Phong or GGX, and usually does not need an additional input. However, there is an extra control for Fresnel for the Blinn-Phong BRDF, which is meant for legacy use as it can result in non physically accurate results.

Ambient Occlusion

Ambient occlusion(AO) represents large scale occluded light and is generally baked from a 3d model.

Adding AO as a separate map as opposed to baking it into the albedo and specular maps allows the shader to use it in a more intelligent way. For instance, the AO function only occludes ambient diffuse light (the diffuse component of the image based lighting system in Toolbag 2), not direct diffuse light from dynamic lights or specular reflections of any kind.

AO should generally not be multiplied on to specular or gloss maps. Multiplying AO onto the specular map may have been a common technique in the past to reduce inappropriate reflections (e.g. the sky reflecting on an occluded object) but these days local screen space reflections do a much better job of representing inter-object reflections.

Cavity

A cavity map represents small scale occluded light and is generally baked from a 3d model or a normal map.

A cavity map should only contain the concave areas (pits) of the surface, and not the convex areas, as the cavity map is multiplied. The content should be mostly white with darker sections to represent the recessed areas of the surface where light would get trapped. The cavity map affects both diffuse and specular from ambient and dynamic light sources.

Alternatively, a reflection occlusion map can be loaded into the cavity slot, but be sure to set the diffuse cavity value to 0 when doing this.

Finding Material Values

One of the most difficult challenges when working with a PBR system is finding accurate and consistent values. There are a variety of sources for measured values on the internet, however, it can be a real pain to find a library with enough information to rely on.

Quixel's Megascan's service is really useful here, as they provide a large library of calibrated tiling textures scanned from real world data.

Material values from most libraries tend to be measured from raw materials in laboratory conditions, of which you rarely see in real life. Factors like pureness of material, age, oxidization, and wear may cause variation in the real world reflectance value for a given object.

While Quixel's scans are measured from real world materials, there is often variation even within the same material type depending on the various conditions described above, especially when it comes to gloss/roughness. The values in the chart above should be thought of as more of a beginning point, not a rigid/absolute reference.

Creating Texture Content

There are many ways to create texture content for PBR systems; the exact method you choose will depend on your personal preferences and what software you have available to you. Here is a quick recap of the method I used to create the lens above:

First, basic materials were created in Toolbag for each surface type using a combination of tiling textures from Megascans, measured data from known materials, and where lacking appropriate reference, logic and observation, to determine the values. Creating the base materials in Toolbag allows me to quickly adjust values and offers a very accurate preview of the end result. Often I assign base materials directly to my high poly model to get a clear idea of how the texture will come together before doing the final bakes.

After setting up my base materials I brought the values and textures into Photoshop and started layering them in a logical manner. Brass at the bottom, nickel plating, matte primer, semi-gloss textured paint, paint for the lettering, and finally the red glossy plastic. This layering setup provides an easy way to reveal the various materials below with simple masks.

Similar layering functionality can be achieved with applications such as dDo, Mari and Substance Designer.

After I have my base layers set up and blended together to represent various stages of wear, I added some extra details. First I used dDo to generate a dust and dirt pass, and then I finished it off with fine surface variation in the gloss map.

The exact method you use to create content for a PBR system is much less important than the end result, so feel free to experiment and figure out what works best for your needs. However, you should void tweaking materials values to look more interesting in a specific lighting environment. Using sound base values for your materials can greatly simplify the process, increase consistency and asset reuse on larger projects, and will ensure that your assets always look great no matter how you light them.

Artist Q&As

We've been very impressed with the work shown since Toolbag 2 has been released, and would like to take the opportunity to highlight some exceptional pieces and ask the creators a few questions related to PBR.

Wojciech Klimas

Wojciech Klimas is an artist from Poland who works at DNV, currently working on the Survey Simulator project. Wojceich also does freelance work. Check out his portfolio here: www.wklimas.weebly.com

Q: What was the most difficult aspect of adapting to a PBR workflow?

A: I think the most difficult thing to remember is to maintain accurate albedo, reflectance, and roughness values. You can always cheat and adjust values to look good in one specific lighting condition, but this may look bad in other lighting conditions. If you do this correctly, with physically accurate values, it will look good in all conditions, as nothing looks better than reality. 🙂

At the beginning I had Photoshop on one screen and reference charts with reflectance values of different materials on the other, however as you gain experience it becomes easier, and you don't need to check values as often.

Q: How do you decide which values to use for your materials?

A: By researching values from the internet. Measuring myself is way out of my reach, but I would like to try this myself, as I feel like I could learn a lot.

Q: Can you share a tip for being awesome?

A: This is a hard question. The best advice I can give is to learn physics. 🙂 It really helps to understand why materials behave the way they do. There is no shortcut to being awesome, you just have to practice, practice, practice.

Joeri Vromman

Joeri Vromman is an artist from Belguim who is going to school at DAE, and is also available for freelance work between his studies. See more of work here: www.joerivromman.com

Q: What was the most difficult aspect of adapting to a PBR workflow?

A: The hardest part was piecing together information from various sources, being a single artist I did not have access to the tools and resources that many studios have, which seemed very overwhelming at first. However, once you dive in, and become more familiar with the process, it comes together quite quickly. With experience, it became apparent that the step wasn't all that big, and that making textures for a physically based shader can be a lot faster.

Q: How do you decide which values to use for your materials?

A: The way I like to work consists of the following steps:

Gather reference for each material type/part of the object

Start by doing a rough block in for each material type, this doesn't have to be exact but should be close enough so that you have a good base to start tweaking from.

For each material I start with the reflectance value, these can be found in various charts online, if I can't find a reflectance value for a certain material, I try to determine it with logical reasoning (ie, worn out rubber will be less reflective, brass is a mix of copper and zinc, etc).

Reflectance values are the easiest to start off with, and give you a good base for the other maps. For insulators, its important to keep to keep the values within the small range that non-metals typically reflect. For metals, its important to make the diffuse black first, and then find the appropriate reflectance value. After this I will assign a quick roughness value, usually by just sorting materials into 3 categories (shiny, middle or rough). Then I pick an albedo color, paying attention here to keep things consistent and not too dark. I also toggle through various skies to make sure the materials are consistent in a variety of lighting conditions. Once this initial stage is over I fall back on observation for the fine tuning these values, since every material is different, keeping in mind the concepts of PBR. At this point I like to add a basic overlay to the normal map for materials that have a strong surface variation, such as bumpy plastic.

Its important to remember that values in the reflectance map only change when there is an actual change in material.

Q: Can you share a tip for being awesome?

A: In my opinion, although certain things have gotten a bit easier (like reflectance values to pick from), it doesn't mean you can rely solely on those. The key to getting believable materials is still observation, and being able to convincingly translate what you see into the final texture.

References

# data[].attributes.attachment_link.title
Physically-Based Rendering, And You Can Too!

# data[].attributes.attachment_link.description
By Joe "EarthQuake" Wilson This tutorial will cover the basics of art content creation, some of the reasoning behind various PBR standards (without getting too technical), and squash some common misconceptions. Jeff Russell wrote an excellent tutorial on the Theory of Physically Based Rendering, which I highly recommend reading first.

# data[].attributes.attachment_link.description
Free digital sculpting software from the makers of ZBrush, the world's leading digital sculpting application.

# data[].attributes.attachment_link.readable_text
ZBRUSH ARTIST :: JULIEN DESROY

Pixologic has created a library full of amazing Alpha materials from ZBrush artists who wish to share their work with the ZBrush community. This library gives you one unique location to view, download, and begin sculpting using any of the alphas found in this library. See what ZBrush can do with your alphas. Enjoy the search.
Terms of Use

# data[].attributes.attachment_link.description
ZBRUSH ARTIST :: JULIEN DESROY Pixologic has created a library full of amazing Alpha materials from ZBrush artists who wish to share their work with the ZBrush community. This library gives you one unique location to view, download, and begin sculpting using any of the alphas found in this library.

# data[].attributes.attachment_link.description
Download millions of free and premium photoshop resources instantly.

# data[].attributes.attachment_link.title
Textures for 3D, graphic design and Photoshop!