DOTA 2 WORKSHOP CONTRIBUTIONS
Decompiling Character Models To Use As Reference
Valve's Character Art Guide
Valve's Texture Guide
Info from Opethrockr55:
o hero+items: 6-7k for the portrait and 3-4k triangles in the game
o Good rule of thumb is to always stay on the lower end of the budget
o 2 LODs required, LOD0 is used in the portrait view, LOD1 is in-game
o lod0: hero lod0+item1 lod0+item2 lod0+...<7k
o lod1: hero lod1+item1 lod1+item2 lod1+...<3k
• Item dimensions
o should be approximately the same as default items - hero bounding(hit) boxes don't change with items.
o most hero items are created on top of bare hero, e.g. bracers sit on top of the forearms which are not removed, e.g. hero head is inside the helmet
• Averaged mesh normals only/1 smoothing group! Break edges by hand if you absolutely need to!
o models should be named "slot name"+"_"+"item/set name"+"_"+"n"+"_"+"lod0 or lod1", e.g. "helmet_viking_1_lod0", "weapon_ogreclub_2_lod1", "cape_lordofdance_12_lod0" etc. No need to add hero name to it, since items are in folders by hero, e.g. models\items\axe\
• Hero+items: 1024x512 is maximum in-game texture size. It is automagically combined of hero and his equipped items textures when item changes
• Hero texture page doesn't contain any of his default items and is never bigger than 512x512 in game. That leaves 512x512 for all of hero's items. Depending on hero design the hero texture can be smaller - more items lead to a smaller hero texture and vice versa. Some heroes have main texture of 512x256, which leaves more space for items(512x256+512x512)
• E.g. Furion's hero page is 512x256:
o his default items add up to less than 512x512 - weapon 256x256, cape 256x256, horns 256x256, beard 256x128, shoulders 256x128, bracer 128x64.
o This leaves space for new items textures to be of different size
o if default bracer was replaced with bracer_celtic with 256x256 texture it all still adds up to less than 1024x512.
o example of what combined texture looks like - texture_page_example.jpg
• item textures should be as big as necessary and as small as possible. Items and hero textures should all add up to 1024x512 or less
• texture density of an item should approximately be the same as the rest of the hero
• if non-square texture needed, use long (e.g. 256x128) not tall textures(not 128x256)
• overlapping uvs are ok, many heroes and items are symmetrical
• texture seams - but better kept to minimum since it breaks up the vertices and adds to vert count
• you can push items uv shells to the texture borders closer than usual, since they get all added up to one page
• Include the source textures, PSDs, TGAs are preferable. Source textures are usually 4 times larger than in-game ones for painting and promotional purposes - e.g. furion psd file is 2048x1024 but gets scaled down to 512x256 when compiled.
• Types of textures
o create all the textures even if you are not using some of them, it is required by model/texture combiner.
o all textures for an item should have the same resolution
o _color - 24 or 32 bit(32 if alpha needed for opacity)
o _normal - 24bit, 3dsmax format (red channel - left; green is up; blue - top). Use flat normal color(128,128,255) if you aren't creating custom normal map
o _mask1 - 32 bit, every channel is used:
1. R - detail map mask
2. G - diffuse and fresnel warp mask
3. B - metalness mask; controls where color and fresnel are suppressed
4. A - selfillum mask; color is drawn from _color. *Always put something in here, even if you are no using selfillum. This is done in order for texture compiler to keep this channel. If its black - it gets thrown out and then shader thinks it's pure white and your item will be full bright
o _mask2 - 32 bit, every channel is used:
1. R - spec intensity
2. G - rimlight intensity
3. B - tint spec by base color, INVERTED! black=tint by base color, white = uses specular color
4. A - scale factor of specular exponent from shader. e.g. if spec. exp set to 16 then this channel values 0...255 will control exponent values from 0...16. Look at hero specular exponent number to get good idea what values to use in this channel for your item.
• All shader settings for all of hero items will be derived from hero material. Model combiner will create a single model out of hero and his current items and assign single shader to everything. So item shader different from hero shader isn't supported, e.g. additive item on solid hero isn't supported, but the hero material is very powerful and supports a range of effects so there is almost always a way to achieve desired look
• simple process - copy hero material file into item material file and replace his texture names with item texture names.
• we do not support double-sided ($nocull) materials - create geometry where backside is needed
• an alternate skin for a hero can be created as a separate item. As a special case an item can change hero's main texture too
• items should be skinned to the referenced hero skeleton from his _model maya file. This is done in order for us to easily integrate and export the item file into our file structure
• additional bones can be added for the items as long as they share root with one of the joints in the hero skeleton - TBD example/tutorial
• cloth simulation is available on joints - TBD example/tutorial
• particle FX are doable on the items - TBD example/tutorial
• hero and his items are exported as separate models and in-game model/texture combiner merges them into one mdl and remaps to one texture page
• maya is recommended software to have if you want to use our assets in native format and create animations and cloth
• keep our file structure, it makes things go faster
o models - \content\dota\models\items\heroname\maya\
o textures - \content\dota\materialsrc\models\items\heroname\
• TBD - automatic tool which will check all hero items texture and geometry combinations and tell you if anything breaks the budgets
• always check the items from in-game perspective
• very busy designs with a lot of high-frequency detail usually don't work well
• normal maps work best in combination with high specular and other masks
• avoid pure white and black color
I'll update this thread as tutorials/resources related to contributing to Dota2 are created.
I know a few Polycounters were contacted by Valve and already have some items in game. Post them here! I'll be working on a few item sets over the next few weeks and will post them up when I have something to show.