3D Texture Optimization Guide by Category
18 min
ㅣ✔️ compliance with pot (power of two) specifications enforce power of two resolutions all texture assets on the platform must precisely meet the power of two resolution specifications (256×256 or 512×512) for hardware acceleration optimization do not use npot if you use images that are not powers of two (npot), the gpu will internally convert the image to the nearest power of two size and copy it to memory, which can result in double the memory usage ㅣ✔️ consistent texture density and uv layout uniform resolution distribution you must prevent situations where specific areas appear particularly pixelated or blurry when an avatar is wearing clothing to do this, please maintain a uniform “texel density” across the entire asset the ratio between the actual surface area of the 3d model and its size on the uv map must be consistent to ensure that the image remains uniformly sharp in game without distortion in any area applying visual priorities allocate a larger uv area for detailed sections that require high resolution, and optimize the uv area by reducing it for less visible areas such as the bottom or lining ㅣ✔️ one texture per category is allowed the maximum size for a single texture is 512x512 the use of 1024 is prohibited texture size is calculated based on the area (number of pixels) in both the horizontal and vertical directions 512 × 512 = 262,144 pixels 1024 × 1024 = 1,048,576 pixels (exactly 4 times 512) although the numbers appear to be only double, the data traffic and capacity that the 3d engine and smartphone graphics memory (vram) must handle skyrocket to four times the original amount even when using the compression plugin , the fourfold difference in memory usage remains unchanged the maximum resolution of 512 maximizes data transmission efficiency, allowing even users with poor network conditions to enjoy the game smoothly smartphone screens are much smaller than pc monitors or tvs on a small screen, the actual pixel area occupied by the top or bottom your avatar is wearing isn’t very large if you’re worried about a drop in image quality, you should utilize “ texel density ” instead of increasing the texture size by boldly reducing uv space in areas that aren’t visible—such as linings or the bottom of garments—and allocating uv space to detailed areas like logos and buttons through effective “visual priority allocation,” you can create sharp, high quality outfits even at a 512 resolution ㅣ✔️ dr (single outfit) category exception two textures allowed for the single outfit (dr) category only, you may use up to 2 textures with a resolution of 512×512 ㅣ✔️ shader & material optimization material limit assets submitted in each category must use a maximum of 1 material the dr (complete outfit) category, which allows up to 2 textures, permits the use of up to 2 materials use 1 material by default, and use additional materials only when using shaders with different properties , such as transparent or fur do not use multiple materials per texture the use of separate materials is prohibited for multiple materials with identical properties (such as transparent or fur), please represent the texture using a channel mask map please use rgba channel maps for the metallic, smoothness, and ambient occlusion textures to represent the texture channel packed data description red metallic the closer the value is to 1 (white), the more metallic it is; the closer it is to 0 (black), the more non metallic it is green ambient occlusion (ao) rendering of structural shading and fixed shadows in recessed areas blue x x alpha smoothness control the smoothness of the surface ㅣ ⚠️ the real reason you must follow optimization guidelines when testing a single asset in a local environment, the impact of minor blend shape data or texture resolutions that exceed the guidelines on system performance may seem negligible however, it is essential to keep in mind that zepeto is a “real time, multi platform environment” where countless users participate simultaneously in a virtual space cumulative increase in 3d resource computation load data replication and multiple loading loads assuming 30 players enter a single world and each avatar wears an average of 5–6 parts (clothing, hair, accessories, etc ), the number of independent asset data sets that must be processed in real time on a single screen reaches the hundreds cumulative overhead a slight overspecification that a single creator compromises on is amplified hundreds of times as it passes through many players, placing a load on the system while the app is running exceeding system thresholds and hardware bottlenecks overall performance degradation when individually minor factors—such as an increase in draw calls, vram waste due to uneven texel density, and complex pixel shader calculations—accumulate in a single space, they instantly exceed the mobile device’s threshold excessive computation causes extreme overheating and rapid battery drain on mobile devices, resulting in critical frame lag throughout zepeto app forced to close due to oom (out of memory) fatal system crash among system resources, an overflow of memory (ram/vram) does not simply result in frame drops that slow down the screen the moment available memory is exceeded, the mobile operating system (ios/android) forcibly terminates the zepeto app process entirely (crash) to protect the device this is the most critical cause of failure, destroying service reliability and the user experience optimization is a technical courtesy that fosters mutual growth within the virtual ecosystem the category specific data limit specifications provided by zepeto studio are not regulations intended to restrict creators’ artistic expression they are minimal technical safeguards designed to build a comfortable runtime environment that accommodates all users, including those using low spec mobile devices, and to ensure that creators’ high quality assets run stably in game at their intended quality without distortion or bugs note) category specific data for item optimization all data is based on the maximum limit all categories are based on 1 texture map, except for dr (one piece) max triangle count (tris) recommended / max max texture resolution (map size) recommended / max max material (additional shaders allowed per attribute) dr one piece outfit 10,000 512x512 (2 images) 4(recommended) top top 6,000 512x512 3(recommended) otr outerwear 6,000 512x512 3(recommended) btm pants, skirts 5,000 512x512 3(recommended) sox socks 3,500 / 4500 256x256 / 512x512 3(recommended) sh shoes 4,000 256x256 / 512x512 3(recommended) f hair women's hair 10,000 256x256 / 512x512 3(recommended) m hair men's hair 10,000 256x256 / 512x512 3(recommended) headwear headwear 4,000 256x256 / 512x512 3(recommended) shoulder shoulder 5,000 512x512 3(recommended) glasses glasses 2,000 256x256 / 512x512 3(recommended) bracelet bracelet 2,000 256x256 / 512x512 3(recommended) necklace necklace 2,000 256x256 / 512x512 3(recommended) earring earrings 2,000 256x256 / 512x512 3(recommended) bag bag 4,500 256x256 / 512x512 3(recommended) glove glove 4,500 256x256 / 512x512 3(recommended) ring ring 2,000 256x256 / 512x512 3(recommended) nail nail art 1,500 / 2000 256x256 / 512x512 3(recommended) eyemask mask 3,000 512x512 3(recommended) wing wing 4,000 512x512 3(recommended) mask special face shapes 5,000 512x512 3(recommended) body special body types 10,000 512x512 3(recommended) tail tail 2,000 / 3000 256x256 / 512x512 3(recommended)
