TSW Builds : To Elite or Not?

After posting my Auxiliary Weapons extension to my TSW build analysis, in my How many builds are there? thread on the TSW forums, Novarind brought up the point that my analysis assumes everyone will want to use an Elite skill in both their Active and Passive selections. This may or may not be the case; so the question was raised how choosing NOT to select an Elite Ability affects the number of build choices.

I’ve updated my spreadsheet to allow you to choose not to select an Elite ability then ran the numbers for four scenarios.

Here is how things breakdown…

No Elites: 2,508,577,928 “viable” builds
Passive Only: 2,164,937,116 “viable” builds
Active Only: 4,476,090,029 “viable” builds
Active & Passive: 3,862,927,011 “viable” build

I guess what you can infer from this is that choosing a Passive Elite actually limits the different ways to build your character (by 14%), however Unlocking and adding in the Active Elites actually increases your choices by 78%. Choosing to do both still adds 54% more build options; so the positive addition vis-a-vis the Active Elites outweighs the limiting factor of the Passive Elites.

Also keep in mind that this is purely math / statistical analysis. The specific effects of the abilities drastically changes how viable each build combination would be.

Updated Spreadsheet: tsw-skillbuilds-auxiliary

TSW Builds Update – Auxiliary Weapons

So a LONG time ago now, I posted my “final” review of TSW Builds

However, since that time, Funcom introduced Auxiliary Weapons. Someone the other day pinged me about how my numbers were way off since auxiliary weapons (of which there are current 5 to choose from) multiply the build diversity. So, factoring in Auxiliary Weapons, there would be a theoretical build diversity of…

4,549,195,450,800

Passive Combinations

x 16,982,901,936

Active Combinations

x 5

Auxiliary Weapons

= 386,292,701,143,169,000,000,000

Theoretical Builds

x 0.00000000000001

1 millionth of 1 percent

= 3,862,927,011

Potential Viable Builds

And an update to my spreadsheet as well: tsw-skillbuilds-auxiliary

SWTOR: Confessions of an altaholic

Star Wars: The Old Republic

Just for background info: SW:TOR has been my game of choice (again) lately. I played for a few months right around the launch time, but lost interest as I burned out on alts (my fault) and the guild I was part of exploded in nasty ways. I wasn’t there for the “Free to Play” choice, and I don’t play “free” now either. I play on The Ebon Hawk server and I consider myself primarily a roleplayer, although I have enjoyed PvE and PvP content in the game as well. My main characters this go around have been on the Imperial side.

What I wanted to talk about here is how I approach alternate characters. I consider SWTOR to be an alt friendly game (to an extent). The main storylines are interesting and playing through at least all 8 of the main stories can be fun. Considering advanced classes (16) and that you could choose both male/female and light/dark side potentially you could play 64 times, although you get less and less variety with each choice. Advanced classes don’t matter to the stories, just to the playing style. Male/Female change romantic options, but not anything major about the main storyline. And playing Light or Dark makes some dialog choices different, but the end results of the story missions are largely the same.

The Problem

The main problem with playing multiple characters in SWTOR is that it can be a bit repetitive. Although the main story missions change, those don’t make up the bulk of what you do on each planet. Most of your missions on a planet will be so-called “side missions”. So if you play a Bounty Hunter and go to Balmorra, then play a Sith Warrior, you’ll also go to Balmorra, and 90% of the content there will the exact same as the last time you ran through that world. Maybe that is ok for 2 characters, but get to 4 (or more) and you’ll start to be like the vets who whine “Oh, I can’t WAIT to get OFF of this planet!”

My Solutions

I have a couple of ways that I approach this “burnout” issue. The point of this blog article is to describe what I do. Hopefully 1 or more of them may resonate with you and help you enjoy your journey in the “Galaxy Far Far Away” more.

Focus First

First let me encourage you to focus on getting one character all the way through the game (at least through the main storyline if not all the way through to level 55). You are going to help yourself SO much if you do this. By focusing on one character, then the next time you have to go back and do missions on Dromund Kaas or Coruscant you won’t feel as much like “Wasn’t I just here?”

Playing for Both Teams

Second let me encourage you to experience the quests and playing experience from both sides of the galactic conflict. By alternating characters between Imperial and Republic factions, you’ll cut WAY back on how much you feel like you’re repeating things. I started my original run at SWTOR thinking I was going to play all 8 Republic Advanced Classes. Big mistake. This was a major part of my burnout. It also didn’t let me see the awesome stories on the “Evil Empire” side of the game either. You may feel drawn to one side or the other, but trust me that an altaholic like me will be well served by swapping back and forth.

Just keep in mind that in some cases, the character classes aren’t THAT different in playing style. A Sith Warrior plays very much like a Jedi Knight. There are differences, and the true masters at the classes can point those out. But in many cases the Republic and Imperial classes mirror each other. So if you want to maximize your differences, don’t follow leveling your Sith Juggernaut with a Jedi Guardian. On the other hand, if you wanted to experience the story without needing to relearn how to play, using the mirrored classes would work to your advantage.

Mapping the Journey

The primary way that I’ve found to avoid burnout is by mapping which planets each of my characters will focus on. For instance, I might say “This character is going to do everything they can on Coruscant, but I’m going to blitz through Balmorra.” There are some exceptions that I make for this. For instance, I really enjoy the Imperial missions on Taris, but I can’t stand Tatooine. So I tend to make Taris a “must see” and always tend to blitz Tatooine. Don’t even get me started on Belsavis. Too big, too many walls/chokepoints, too many tunnels, not enough fast travel locations.

Space Mission Grinding

One way that the above planet mapping works for me is by using the Space Missions (not talking about Galactic Starfighter, but the old style “space combat on rails” missions). I like to use those to gain additional XP so that I can overlevel the planets that I want to skip through. I’m not someone who needs every encounter in the game to be challenging to the point of frustration. So by ensuring that I’m about 2-3 levels above the minimum recommendation for each planet I give myself more flexibility as to which missions I want to complete.

Growing Through PvP

I wanted to put out a quick “shout out” to the option of using PvP as an alternative leveling mechanism. It is (theoretically) possible to level to 55 doing nothing but PvP activities. It will be a LONG grind, but it is possible. As an alternative, you could use the PvP system in place of what I said above about Space Mission Grinding. Gaining a few levels via PvP would also help break up some of the monotony of the planet side missions. Although depending on your playing style/preferences, it could be a case of replacing one grind with another. :)

Kuat Drive Yards (KDY)

If all you are really interested in is playing a different style of play, and don’t care as much about the story missions, then the Kuat Drive Yards (KDY) may be a good choice for you. You have to first reach level 15 on your own, however once you do that, you can join the flashpoint. In KDY, you are automatically bolstered to level 55 / rating 186 gear as far as your stats go. You’ll still only have access to level appropriate skills and skill tree of course. KDY is often used in conjunction with double XP weekends / weeks to quickly level alts to the level cap. You can then go back and do the story missions on each planet to advance the story, get your full complement of companions.

I have done a few KDY runs, but on the whole I would only recommend them for people who are leveling an alt where they don’t care about the character’s story. Veterans with several level 55 characters find KDY to be a nice alternative to re-running plantside missions that they’ve already done dozens of times.

Summary

SWTOR can feed the cravings of an altaholic. However, without careful thought and planning, it is easy to get burned out on the leveling grind and become bored with the game. I hope the above tips and ideas I’ve provided help some of you as you plan out your Star Wars journey. Please feel free to comment / ask questions, I’ll do my best to answer them.

Wrong blog

If anyone got a weird update on their subscription notice … I posted to the wrong blog. :( That was intended for Daeyong’s blog instead of this one.

League of Angels – Overview

League of Angels is a free-to-play browser based MMO(RPG). While far from perfect, I find it to be more enjoyable than some games I’ve paid to play. The following are some of my general observations about the game as a whole.

General Gist

The game is set in a fantasy world where the guardian angels of various lands have been imprisoned. Your job as the hero in the story is to free these angels who then promise to aid you as you help their sisters. Honestly, most LoA players would probably be hard pressed to tell you anything about the story. It just isn’t that important.

In addition to the angels, you are able to recruit other party members to round out your party. They have fairly traditional roles based on their primary skills. Tanks, Melee DPS, Ranged DPS and Support characters are available. Depending on which Angel you’re using, and what level she has obtained, you can have up to 6 members in your part (including your main character).

Game play mostly consists of a string of “mini-games” which range from fun to frustrating. The main storyline and main side quests are run via a pretty simple point-and-click system. There isn’t anything to the combat once the battle starts. The decisions you make before that (see below) have a lot more to do with how the battle ends than anything else.

A list of the ways in which you play League of Angels:

  • Main Storyline Quest – the main story that moves you through various areas in the LoA world. Something you have to do, but it won’t be enough on its own to progress your characters.
  • Side Quests – there are a few side quests in each area, but once you’re done with them they don’t come back; so similar to the main quest, they are worth doing for money / xp but not enough on their own.
  • Aegis Quests – Angels don’t really have “gear”. Instead, they have Aegis which give them different abilities. Unlocking those abilities and then gathering Aegis shards which are used to upgrade the abilities are an important part of managing your angels
  • Blitzing – One thing that I do like (see The Good below) is blitzing missions. Blitzing allows you to automate the process of grinding for xp. You basically say “I want to run this dungeon 30 times” and the game starts doing it. Useful for xp/gold farming.
  • Gemology – A little ‘match 3′ game (think Bejeweled) that rewards you with gems which are used to upgrade your equipment. It’s not too awful, but wouldn’t rival Candy Crush for fun or anything. :)
  • Arena – In the Arena, players are divided into different groups, in each group you compete in 1 : 1 duels to get enough ranking points to move to the top of the leaderboard. Because of how combat works (see The Bad below), your opponent doesn’t have to be online. You’re also awarded Arena Badges which can be used to buy gear and skill upgrades.
  • Clash of Might – similar to the Arena, the Clash pits you against your fellow players. However in this case the only way you rank up is by beating someone higher than you. And you can be ranked down if you get defeated. Also, the pool of participants is everyone on the server. So Clash is more representative of the relative strength of your party.
  • Tidal Pool – By far my least favorite mini-game. You shoot nets into a “tidal pool” to capture fish. These fish reward you with random loot ranging from gold to Gems to Herosouls (used to upgrade your NPC member’s skills). The problem is that it seems very random as to whether you catch the fish you’re aiming the net at.
  • Team Arena – You and two friends (or strangers who may become friends?) fight against another team of 3. One difference here is that the opponents are from other servers.
  • Team Dungeons – Another team game where you join 2 other players. In this case, you fight through a dungeon together (similar to how the Main and Side quest dungeons work). The dungeons are tiered by level and reward your team for finishing them quickly.
  • Guild Games – Games like Gauntlet where you try to keep 15 waves of monsters from killing the angel you’re protecting and Twilight Clash where you have a “capture the flag” fight against another guild. They are nice for the rewards they give and to give you and your guildmates something to do together.

The Good

Beyond the “Gotta catch them all!” collector aspect, probably the best part of the game is the level at which you can customize the attributes of your characters, NPCs, and angels.

Main Character

Your main character starts with a base class (familiar to any RPG player). However, from there you can specialize (my fighter became a Paladin – Tank, but could have been a Beserker – Damage). Your character also has skills which can be upgraded. Some are passive (like a boost to your HP) some are active like special attacks which can trigger during fights. Part of the customization is picking which triggered skills your character is going to use.

NPCs

For your NPCs, they also have skills that can be upgraded (using a different resource than the Main character). However in their case you can’t select different triggered skills, they use their best skills on their own. They also have “partner” skills. In this case each NPC is partnered with another one. When you have both of them in your party at once, they will provide benefits to each other during the battle.

Angels

Your angel’s biggest way to grow is through her level. Leveling your angel is vital as the higher level, more powerful angels enable you to bring more NPC characters with you. Also, I mentioned the Aegis up above. The Aegis is how you can change what special attack your angel uses in battle. Leveling the Aegis makes it stronger and provides additional passive buffs to your angel’s abilities as well.

Equipment

Both Main and NPC characters wear 6 units of equipment (weapon, helmet, chest, ring, legs, boots). Equipment has both vertical and horizontal advancement. Vertically, equipment levels up providing more benefits to your character’s abilities. Horizontally, equipment can carry up to 5 gems. These gems provide additional benefits to your character. There are 12 different types of gems, and each piece of equipment can only carry a single gem of each type. So picking and choosing your gem types can have a significant effect on battle effectiveness. Gems can also be leveled up, improving their buffs.

More Depth to Come

I’ve only scratched the surface here in regards to what levels of detail you can add to your characters. And they do make a HUGE difference. Your party is given a battle rating (BR)  based on the levels of the characters, gear, and gems. But choosing how those complement each other is also important. My current BR is around 155,000. However I have lost battles to people with as low a BR as 115,000 and have beaten others who were as high as 180,000. This depth is the primary thing that I like about League of Angels.

The Bad

Ok, there are definitely some things that I don’t like.

Combat

The combat system could use some significant attention. Right now, once the battle starts, the player is an observer. There isn’t anything you can do to affect the outcome. That makes doing some of the things like the quests and even arena battles a great deal less interesting.

Pay-to-Win

You can play LoA for free. And never have to pay a single cent, and you can still accomplish everything in the game. That is my definition of a true “free to play” game. However, paying money does help. In some cases quite a bit. Rather than taking time to gather all the resources you need to improve your characters, you can buy packages of them for real money. In most cases, all this does is to reduce the time that you would need to spend gathering the resources yourself. If that player spends $100 now and never spends another dime, I will eventually catch up to him.

The one case where someone can legitimately pay to win is in the large scale PvP battles. For instance in the capture the flag game (Twilight Clash), players can pay 50 diamonds ($0.50) to resurrect right away instead of waiting out the 30 second resurrection timer. That can be a significant advantage. it won’t make a small, low powered guild the top dawg or anything. But in an evenly matched battle, it can make a lot of difference.

The Ugly

Ok, maybe not “ugly”, but LoA has followed in the footsteps of some other similar games when it comes to how they advertise. I actually saw a side-banner video ad the other day where this is this girl walking toward a bathtub. Her robe drops off suggestively (without really showing anything) and then it ends with the League of Angels logo and a link to the game. That has ZERO to do with the game and is clearly just intended to get young male players to click on the link.

Is it Fun?

That’s the only real question that matters when we’re talking about a game, right?

Yes, I think it is. I have had a good time playing so far and now that I’m getting into the details of systems like the Gem slotting system, it is also interesting to find ways to optimize my builds. Will it continue to hold my attention now that I’m getting to the steeper part of the levelling curve? Maybe. There are so many areas to improve that I can see having goals for quite some time. It may be a couple of days to get a new level on my main character, but other smaller progression is taking place.

Hair Rendering – Current State

I’ve been doing quite a bit of research lately about how to render hair in a Renderman compliant rendering engine. As I’ve gathered data from several sources, I thought I’d create a post that summarized what I’ve found so far. Hopefully anyone else who decides to research this crazy topic can benefit by not needing to find everything on their own.

Stephen Marschner

While there are other predecessors to the idea about how to render hair in computer graphics (most notably Kajiya and Kay in 1989), most serious work begins with the paper by Stephen Marschner, et. al. titled “Light scattering from human hair fibers” published in 2003.

Marschner noted that light interacting with hair is actually a very complicated model. When light strikes the surface of a strand of hair, it does 3 different things. Part of it is reflected back into the environment, part of it is refracted and transmitted to objects behind the hair, and part of it reflects within the hair strand, re-exiting the hair at another point further down the strand.

Marschner's model showing the interaction between light and hair

Marschner’s model showing the interaction between light and hair

Side Note: It may be interesting to notice that Marschner is also the primary author on the Subsurface Scattering paper that I linked over in my Additional SSS Information article.

Intermediate Works

Following Marschner’s article, several other researchers worked on refining his model. Which, in academic terms, really means trying to show what’s wrong with that model. Improvements were made to reduce some of the computational complexity as well as to fix issues common to shading models such as energy conservation.

Side Note: Energy conservation in computer graphics terms means that an object should not reflect / transmit more light energy than strikes it. Some shaders can be very bad about this and it can result in unintended effects.

One of the best papers in this category (in my opinion) is “Dual Scattering Approximation for Fast Multiple Scattering in Hair” by Arno Zinke, et. al. in 2008. In this paper, they note that to be fully implemented, Marschner’s model requires that all light striking the hair needs to be fully calculated. It also does not account for an effect in curly hair where the angle of the light striking the curl has a significant factor in how the light is transmitted or refracted. Instead, they use a sampling model for the scattering that allows you to only consider the effect at the shading point. Also, the eccentricity of the hair fiber (i.e. the tightness of the curl) is taken into effect.

Side Note: The researchers at the University of Bonn have done a lot of very interesting work in the area of computer graphics and the modeling / rendering of hair.

Artist Friendly

In 2010, 3D artists from Disney Studios (Iman Sadeghi and Heather Pritchett) and a couple of professors from the University of California at San Diego (Henrik Wann Jensen and Rasmus Tamstorf) brought forward the idea that while these mathematical models are quite interesting, they aren’t very friendly for artists to work with. Most of them require a deep understanding of the math involved in order to provide inputs that produce predictable results.

Disney in particular was finding that often they spent more time testing lights and such than they did actually working on the scenes they were creating. Therefore in 2010 they proposed what they termed an “An Artist Friendly Hair Shading System”.

In this system, the parameters provided to the artist are more familiar terms such as the curliness and coarseness of the hair being rendered rather than details such as eccentricity, cuticle angles and cross-section measurements.

Also, since the goal for Disney Studios is not to create the most physically accurate model of human hair, they take some liberties with the math so that the result is artistically more pleasing, if not quite as mathematically perfect.

This Is My State

So, this is where I stand on the research. I’m working on a shader for hair in DAZ Studio which uses this Artist friendly approach to create a shader model which will produce better results. My goal is to make it friendly for transparency mapped hair. Most of the models reference above expect the objects they are rendering to be cylinders. So I am working on a modification to the model with works with planes, but simulates many small cylinders for the hair.

I’ve finally gotten to the point where I understand enough of the math to begin working on the implementation. Further updates as situations warrant.

Acknowledgement

I would be remiss if I didn’t mention a thesis paper from a graduate student at Bournemouth University. Sarah Invernizzi wrote “On Physically Based Hair Rendering” for her Master of Science degree in Computer Animation and Visual Effects. Her paper did a lot for me in terms of providing the history of this topic and does a good job of making things a little be clearer for those of us who aren’t as versed in the mathematics.

Additional points about SSS

Since I opened the discussion about subsurface scattering (SSS) with my Light and SSS and SSS – Why Should I Care? posts, I’ve received some good feedback / additional information. I wanted to capture those here.

Other Uses

First, the point has been made that although we think of SSS as adding realism to surfaces which don’t reflect 100% of the light that strikes them, the effect of SSS can be used for other purposes. It can add some depth to the surfaces for toon style rendering, and can even completely change the look of an object. For some examples, see the following product pages at the DAZ 3D store.

Note: I don’t get any commission if you choose to buy any of these products. :) I’m actually referencing them because they have example images that show the effects.

DAZ Studio – SSS Shader

We’ve had a couple of good discussions about the Subsurface Shader Base that is available for free for DAZ Studio. These discussions have largely been about how the shader works. It was actually one of these discussions which spawned my initial blog posts. I wanted to capture a couple of important points here.

Pre or Post?

The first point was asking for some clarification about how the selection of either Pre or Post processing of the SSS effect changes the resulting calculations. Age of Armour (Will) was kind enough to provide us with some information in this thread on the DAZ 3D forums.

The choice to Pre or Post application of the SSS effect has to do with how the surface values are calculated. For the Pre option, the calculation is:

(
(Diffuse map * Diffuse Color * Diffuse strength)
* Lighting
) +
(Subsurface Calculation * Lighting)

This basically means that the Diffuse surface color is calculated, then the SSS effect is added to the result.

When chosing the Post option for the SSS effect, the calculation looks significantly different.

(
(Subsurface Calculation * Lighting)
* (Diffuse map * Diffuse Color)
) +
(
(Diffuse Map * Diffuse Color * Diffuse strength)
* Lighting
)

In this case, there are two calculations that use the Diffuse surface settings. In the first part, the SSS effect is multiplied by the diffuse color. Note that the diffuse strength is not factored in at this point, it is simply creates a version of the diffuse color which is tinted by the subsurface effect. The second part of that equation is a standard diffuse surface calculation. The two diffuse colors are then added together to arrive at the final color for the surface.

The Origins of SSS

The ideas and concepts around subsurface scattering for the purpose of computer graphics were first described in a paper titled “A Practical Model for Subsurface Light Transport” presented to the ACM Siggraph conference by Henrik Wann Jensen, Stephen R. Marschner, Marc Levoy, and Pat Hanrahan. Warning for those who seek to understand SSS at that level, this is NOT trivial mathematics by any stretch. I cannot be held responsible for any damage to your brain from trying to read the paper.

SSS – Why Should I Care?

Markus Ba (one of the members of our DAZ Studio Artists group on Facebook) raised a question following the posting of my SSS and Light tutorial. “This is interesting, but why should I care about this?” It’s valid question and one that I’ll try to address here. But, first several caveats!

You Might Not Care!

I can’t tell you for certain that you should care about subsurface scattering. Depending on the visual style you are shooting for, the content you are using, etc. adding SSS effects to your surface shaders may not help your final image at all.

However, for accurate representation of surfaces other than hard plastic or metal, subsurface scattering is an important part of how the material interacts with light. Standard surface shaders using only diffuse, specular and ambient surface values ignore an important part of how real world materials work.

As I mentioned in the above referenced article, the primary reason for using subsurface scattering is to acknowledge that some light which strikes a surface is transmitted through the surface and exits at some other point on the surface. This scattered transmission of light is most closely associated with human skin, however many other surfaces do this as well. Examples include cloth, soft plastics / rubber, milk, clay, etc.

Cue the Lights

Before I talk about how SSS affects your surfaces (and therefore your final images), I want to mention that much of SSS is highly dependent on the lighting in your scene. Your lights do not necessarily have to be complicated, but very simple lights (e.g. a single distant light) may not provide enough light at the proper angles to get the most out of your SSS enabled shaders.

Texture Dependencies

One of the struggles with figuring out whether or not your image will benefit from SSS or not is how dependent the results can be on the texture maps that you have to work with. For the most realistic skin rendering using SSS, you should have the following texture maps.

  • Diffuse Map – showing what we think of as the visible skin surface (see note below)
  • Specular Map – skin is not universally shiny, a good specular map which acknowledges the differences makes a big difference
  • Subsurface Map – your skin does not have a constant color for it’s subsurface, ideally the creator of the skin you’re using understands this and has prepared a map. VERY complicated skin shaders go to the level of mapping the veins and arteries in your skin.
  • Subsurface Strength – Even if the color is constant, the shader should understand that the strength of the scattering is also not constant across your entire body.

How Diffuse Is It?

One problem that I’ve seen with many skins that we use in Poser and DAZ Studio is that they are based off photos of actual skins. “Why is that a problem?” you ask. Because the camera is recording the final result of the light interacting with the model’s skin. This includes the effect of light scattering in the subsurface.

So, if you add SSS to a skin which has already captured the SSS effect in the real world, you’re going to end up with skin that looks too orange/red. This is why you often see shader presets for skins multiply the texture by a light blue color. This (roughly) removes the SSS from the captured texture, with the expectation that the remaining calculations will add it back in correctly for your purposes.

The best diffuse map would be one where the original texture was captured with a very flat light. It should also have been just enough light as required to get the image without adding a lot of strong subsurface scattering to the image that the camera recorded.

Given that the artist doesn’t really have a choice of how the original texture is captured, the second best would be that you modify the texture in an image editing tool (e.g. Photoshop, GIMP, etc.) and remove some of the red at that level. I can’t really recommend specific filters since so much is going to depend on the image you’re starting with, the tools available in your editor, etc.

You Haven’t Answered Me!

Ok, now that I’m a page and a half into this description, it is probably time to address the original question about why should you care.

Usually the first example of where you will see the SSS effect is in the translucence that you see in certain parts of the body. The most common area is around the ears, or the fingers; however it can be seen anywhere that light is shining at an angle where it would transmit through the surface toward the camera.

The effect that it has is typically a soft translucent glow on the surface. Below I show a couple of simple images showing how SSS adds to the surface of Victoria’s head.

{Images to be inserted}

While SSS is most often associated with skin, it also is an effect on many other soft surfaces where light is partially absorbed and partially scattered (transported) through the surface. Surfaces like cloth, clay, rubber, etc. also have an SSS quality to their surface. The question of whether using an SSS enabled shader for objects in your scene which have a material like this will improve the image will end up being a matter of taste.

And, even then, there may be some cases where you decide that the additional level of realism for the surface is not worth the added rendering time that it takes.

Oh, you say I forgot to mention that part? Well, when you consider the extra calculations required to determine light absorption, scattering, translucence, fresnel effects, etc. the rendering time for an image where SSS is used extensively can be significantly higher than without.

Shader Tuning

One thing that I can’t really address here is how tuning the values of your SSS enabled shader will affect your final results. As I mentioned at the beginning, the results of an SSS enabled shader rely so much on lighting, textures, even the distance that the camera is from the subject have a big effect on the end result.

For DS users, there are several tutorial resources about how to get the best out of shaders like UberSurface, the Subsurface Base Shader, etc. Take a look at the links on my Other Tutorials page for information on where to find these sorts of tutorials.

Light and SSS Surfaces

This question came up on the DAZ 3D forums ( link ). Since there is considerable text to write, I figured I would post it here as well. Note that this discussion is about how light interacts with a surface that has subsurface scattering (SSS), not about how to get the best effects from an SSS enabled surface shader.

SSSay What?

First, briefly what subsurface scattering is all about.

One thing that is sometimes difficult to remember is that a surface in 3D graphics has no actual depth. It is a set of polygons which have length and width, but the depth is effectively zero. So our surface shaders that define the characteristics of the surface often have to fake the fact that in the real world, not everything that happens with light and surfaces happens on the very top layer of the material. This is especially true for surfaces like your skin.

When light strikes the surface of your skin, it does one of three things.

  1. It reflects – Most of the light just bounces off the outer layer of your skin and reflects into the rest of the world. This is exactly like every other surface.
  2. It is absorbed – Some of the light passes through that outer layer of skin and is absorbed into the layers beneath never to be seen again.
  3. It scatters and comes back out – Some of the light bounces around in the layers of your skin and eventually exits the skin again. This light can be seen. The easiest way to see this is when you press a small flashlight or laser pointer on your skin surface and the surrounding area “glows” with a reddish light.

Technically, unless they are a perfect mirror, all surfaces reflect and absorb light. That is the simple effect that we simulate by having the diffuse layer in our shader. Those settings are basically saying “When white light hits this part of the surface, this is the part of the spectrum which is reflected back into the rest of the environment.” The rest (by extrapolation) must have been absorbed by the surface.

SSScattering

So then what the SSS enabled shader needs to account for that isn’t already in the calculation is the scattering of the light within the surface and (eventually) the re-transmission of that light back into the rest of the world. While it could be possible to actually simulate the bouncing of the light within your skin, calculating the point where that light exits the skin again, and casting new rays of light, most shaders take a more simplistic view.

The biggest assumption that they make is that the point where they are calculating the surface values is very similar to the points that are close by. So, rather than calculating the effect of the light bouncing, one can make the assumption that the light which is hitting the point where you are sampling the effect is the same as the light that is nearby; so we can assume that some light from somewhere else is going to have been scattered and will be exiting the surface at our sampling point.

The perfectionists in us might cringe at this broad assumption, but when you consider the very tiny distances that are usually involved in this calculation, it isn’t as bad as you might think. We can also help out sometimes by fine tuning parameters in the rendering engine like pixel sampling or shader sampling levels.

SSShow Me?

Some of you are probably visual learners; so I’ve created a couple of simple diagrams to show what I mean.

SSStandard Surfaces

First, a diagram of light reflecting from a normal 3D surface. Note that in this case I’m assuming a white light source with a white diffuse surface setting; so all light that hits the surface is reflected back from it.

Standard 3D surface reflecting light

Standard 3D surface reflecting light

SSS Surfaces

When we add subsurface scattering, we need to account for at least the scattering aspect, and if we’re doing it well, the absorption factor is figured in too.

Light Interacting with a 3D Surface with Subsurface Scattering

Light Interacting with a 3D Surface with Subsurface Scattering

Notice that I included the second light ray that is assumed to exist that is adding the scattered light to the reflected light, giving us a result that is somewhat “warmer” than the pure white light that was provided.

SSSerious Skin

Some SSS enabled shaders can be further tweaked with additional settings. For instance, there is typically a setting for the strength of the scattering effect. Ideally this setting should allow you to provide a grayscale map which adjusts the strength of the scattering at various locations on the surface. Others will allow you to control which parts of the spectrum are absorbed and/or scattered by providing color controls for those settings.

Note: I have scene articles in both artistic and scientific oriented 3D journals which go so far as to simulate multiple portions of both the epidermis and dermis layers of the skin. That is hardcore!

SSScatter Pre or Post?

One challenge that can sometimes arise for SSS enabled shaders is how to combine it with the diffuse color values which define the color of the top layer of the surface. The decision typically comes down to whether the light that enters the surface to be scattered should be filtered by the diffuse color of the surface, or should that part be considered to be white and the controls on the scattering part of the shader control how the light exiting the skin should look?

In the subsurface shader included in DAZ Studio, you can choose whether to apply the diffuse layer to the surface prior (Pre) to the subsurface scattering or after (Post) the scattering process. Will (aka Age of Armour), the author of that shader, has an excellent video tutorial ( Subsurface Shader Basics ) available which describes in much greater detail how to get better results from using that shader.

SSSigning Off

I hope this helped a little with understanding what the subsurface scattering effect is all about and what the shaders that support it are trying to simulate for you. And I hope you don’t hate me for starting all my sections sounding like a sssilly sssnake. :)

Tutorial Links

Just a VERY quick post to note that I’ve added a page to the blog where I will track other 3D tutorials from around the Internet which I have found to be helpful.

Additional Tutorials

« Older entries
Follow

Get every new post delivered to your Inbox.