{"id":2526,"date":"2020-09-19T13:47:04","date_gmt":"2020-09-19T05:47:04","guid":{"rendered":"http:\/\/blog.coolcoding.cn\/?p=2526"},"modified":"2020-09-19T18:53:27","modified_gmt":"2020-09-19T10:53:27","slug":"3d%e7%be%8e%e6%9c%af%e5%ae%9e%e6%97%b6%e6%b8%b2%e6%9f%93%e6%9c%80%e4%bd%b3%e5%ae%9e%e8%b7%b56%ef%bc%9a%e7%ba%b9%e7%90%86","status":"publish","type":"post","link":"https:\/\/blog.coolcoding.cn\/?p=2526","title":{"rendered":"3D\u7f8e\u672f\u5b9e\u65f6\u6e32\u67d3\u6700\u4f73\u5b9e\u8df5(6)\uff1a\u7eb9\u7406"},"content":{"rendered":"\n<p>\n\n\u539f\u6587\u6863\uff1a<strong>Arm\u00ae Guide\u5f00\u53d1\u4eba\u5458\u6307\u5357 V4.1 \u2013 \u79fb\u52a8\u5e73\u53f0\u6e38\u620f\u56fe\u5f62\u4f18\u5316<\/strong><\/p>\n\n\n\n<p>\u56fe\u96c6\u3001\u91c7\u6837\u3001Mipmap\u56fe\u96c6\uff08 Texture atlas, filtering, and mipmap texture atlas \uff09<\/p>\n\n\n\n<table class=\"wp-block-table is-style-stripes\"><tbody><tr><td> A texture atlas is an image that contains data from several smaller images that have been packed together. Instead of having one texture for one mesh, you have a larger texture that several meshes share.<br> A texture atlas can be created before making the asset, which means the asset is UV unwrapped according to the texture atlas. This requires some early planning when creating the texture.<br> The texture atlas can also be created after the asset is finished by merging textures in painting software.<br> However, this also means that the UV islands must be rearranged according to the texture. <\/td><\/tr><\/tbody><\/table>\n\n\n\n<p> A UV island is a connected group of polygons in a texture map.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"830\" height=\"324\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-23.png\" alt=\"\" class=\"wp-image-2531\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-23.png 830w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-23-300x117.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-23-768x300.png 768w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-23-70x27.png 70w\" sizes=\"(max-width: 830px) 100vw, 830px\" \/><figcaption>the image highlights which 3D objects use one texture set<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e3a\u4ec0\u4e48\u8981\u4f7f\u7528\u56fe\u96c6<\/h2>\n\n\n\n<p>\u56fe\u96c6\u53ef\u4ee5\u4e3a\u5171\u4eab\u8be5\u56fe\u96c6\u548c\u76f8\u540c\u6750\u8d28\u7684\u9759\u6001\u5bf9\u8c61\u8fdb\u884c\u5408\u6279\uff0c\u5408\u6279\u51cf\u5c11\u4e86DrawCall\u4e2a\u6570\uff0c\u5f53\u6e38\u620f\u662fCPU-bound\u65f6\uff0c\u8f83\u5c11\u7684DrawCall\u53ef\u63d0\u9ad8\u6027\u80fd\u3002Unity\u5f15\u64ce\u53ef\u4ee5\u5c06\u5bf9\u8c61\u6807\u8bb0\u9759\u6001\u5408\u6279\uff0c\u65e0\u9700\u624b\u52a8\u5408\u5e76\u5bf9\u8c61\u3002\u7531\u4e8e\u7eb9\u7406\u88ab\u6253\u5305\u5728\u4e00\u8d77\uff0c\u56e0\u6b64\u5728\u6e38\u620f\u5185\u90e8\u9700\u8981\u7684\u7eb9\u7406\u4e5f\u66f4\u5c11\u3002\u901a\u8fc7\u538b\u7f29\uff0c\u8fd9\u6709\u52a9\u4e8e\u964d\u4f4e\u7eb9\u7406\u51e0\u5b58<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mipmapping<\/h2>\n\n\n\n<p>Mipmap\u662f\u4ee5\u8f83\u4f4e\u5206\u8fa8\u7387\u4fdd\u5b58\u7684\u526f\u672c\u3002\u56e0\u6b64\u53ef\u4ee5\u5c06mipmapping\u89c6\u4e3a\u201c\u7ec6\u8282\u7ea7\u522b\uff08LOD\uff09\u201d\uff0c\u57fa\u4e8e\u7247\u5143\u9636\u6bb5\u5360\u7528\u591a\u5c11\u7eb9\u7406\u5927\u5c0f\uff0c\u9009\u62e9\u9002\u5f53\u7684\u7ea7\u522b\u8fdb\u884c\u91c7\u6837\u3002\u5f53\u7269\u4f53\u79bb\u6444\u50cf\u673a\u8f83\u8fdc\u65f6\uff0c\u5c06\u5e94\u7528\u8f83\u4f4e\u5206\u8fa8\u7387\u7684\u7eb9\u7406\u3002\u5f53\u7269\u4f53\u79bb\u76f8\u673a\u66f4\u8fd1\u65f6\uff0c\u5c06\u5e94\u7528\u66f4\u9ad8\u5206\u8fa8\u7387\u7684\u7eb9\u7406\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"658\" height=\"312\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-24.png\" alt=\"\" class=\"wp-image-2533\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-24.png 658w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-24-300x142.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-24-70x33.png 70w\" sizes=\"(max-width: 658px) 100vw, 658px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u6700\u4f73\u5b9e\u8df5<\/h2>\n\n\n\n<p>\u786e\u4fdd\u4f7f\u7528mipmapping\uff0c\u56e0\u4e3a\u5b83\u53ef\u4ee5\u63d0\u9ad8\u6027\u80fd\u548c\u8d28\u91cf\u3002 Mipmapping\u53ef\u4ee5\u63d0\u9ad8GPU\u7684\u6027\u80fd\uff0c\u56e0\u4e3aGPU\u5728\u6e32\u67d3\u8fdc\u79bb\u76f8\u673a\u7684\u7269\u4f53\u65f6\uff0c\u4e0d\u9700\u8981\u5728\u5c4f\u5e55\u4e0a\u6e32\u67d3\u5168\u5206\u8fa8\u7387\u7eb9\u7406\u3002&nbsp;<\/p>\n\n\n\n<p>Mipmapping\u8fd8\u53ef\u4ee5\u51cf\u5c11\u7eb9\u7406\u6df7\u53e0\u5e76\u63d0\u9ad8\u6700\u7ec8\u56fe\u50cf\u8d28\u91cf\u3002<br>\u7eb9\u7406\u6df7\u53e0\u4f1a\u5728\u8ddd\u79bb\u76f8\u673a\u66f4\u8fdc\u7684\u533a\u57df\u4e0a\u4ea7\u751f\u95ea\u70c1\u6548\u679c\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"289\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-25.png\" alt=\"\" class=\"wp-image-2535\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-25.png 692w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-25-300x125.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-25-70x29.png 70w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u7eb9\u7406\u5927\u5c0f<\/h2>\n\n\n\n<p>Textures can be different sizes. Reducing the size of certain textures that require less detail, helps to reduce bandwidth levels. For example, the diffuse texture can be set to 1024&#215;1024 and the roughness, or metallic, map to 512&#215;512.<br>\u51cf\u5c11\u7ec6\u8282\u5c11\u7684\u7eb9\u7406\u5927\u5c0f\uff0c\u6709\u52a9\u4e8e\u51cf\u5c11\u5e26\u5bbd<br>\u4f8b\u5982\u6f2b\u53cd\u5c04\u7eb9\u7406\u53ef\u8bbe\u4e3a1024&#215;1024\uff0c\u7c97\u7cd9\u5ea6\u6216\u91d1\u5c5e\u5ea6\u53ef\u8bbe\u4e3a512&#215;512<\/p>\n\n\n\n<p>Selectively reduce the texture size and check if any of the visuals have been degraded afterwards.<br>\u9009\u62e9\u6027\u5730\u51cf\u5c0f\u7eb9\u7406\u5927\u5c0f\uff0c\u7136\u540e\u68c0\u67e5\u662f\u5426\u6709\u4efb\u4f55\u89c6\u89c9\u6548\u679c\u4e0b\u964d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u989c\u8272\u7a7a\u95f4<\/h2>\n\n\n\n<p>Use diffuse textures in the sRGB color space.<br>Textures that are not processed as color must not be in the sRGB color space. Examples include, but are not limited to: metallic, roughness, and normal maps.<br>The reason being that maps are used as data, not color.<br>Using sRGB in these maps results in the wrong look, or visual, on the material.<\/p>\n\n\n\n<p>\u63a8\u8350\u5c1d\u8bd5\u4ee5\u4e0b\u64cd\u4f5c\uff1a&nbsp;<br>\u2022\u6f2b\u53cd\u5c04\u7eb9\u7406\u5728sRGB\u989c\u8272\u7a7a\u95f4\u4e2d\u5904\u7406\uff1b&nbsp;<br>\u2022\u975e\u989c\u8272\u7684\u7eb9\u7406\u4e0d\u5f97\u5728sRGB\u7a7a\u95f4\u4e2d\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a\u91d1\u5c5e\u8d34\u56fe\uff0c\u7c97\u7cd9\u5ea6\u8d34\u56fe\u3001\u6cd5\u7ebf\u8d34\u56fe\u3002\u7406\u7531\uff1a<br>1\u3001\u5b83\u4eec\u662f\u88ab\u6620\u5c04\u7528\u4e8e\u6570\u636e\uff0c\u800c\u975e\u989c\u8272<br>2\u3001\u5728\u8fd9\u4e9b\u8d34\u56fe\u4e2d\u4f7f\u7528sRGB\u4f1a\u5bfc\u81f4\u6750\u8d28\u7684\u5916\u89c2\u6216\u8005\u89c6\u89c9\u9519\u8bef<\/p>\n\n\n\n<p>\u8bf7\u6ce8\u610f\uff1a\u4e0d\u8981\u5728Unity\u7684Inspector\u7a97\u53e3\u4e2d\uff0c\u4e3a\u7c97\u7cd9\u5ea6\u3001\u91d1\u5c5e\u8d34\u56fe\u3001\u6cd5\u7ebf\u7b49\u6570\u636e\u8d34\u56fe\u8bbe\u7f6e\u4e3asRGB\uff01<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u5c4f\u5e55\u622a\u56fe\u663e\u793a\u4e86\u5c06sRGB\u9519\u8bef\u5730\u5e94\u7528\u4e8e\u8fd9\u6837\u7684\u7eb9\u7406\u65f6\u4f1a\u53d1\u751f\u4ec0\u4e48\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"309\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-26.png\" alt=\"\" class=\"wp-image-2542\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-26.png 829w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-26-300x112.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-26-768x286.png 768w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-26-70x26.png 70w\" sizes=\"(max-width: 829px) 100vw, 829px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u7eb9\u7406\u538b\u7f29<\/h2>\n\n\n\n<table class=\"wp-block-table\"><tbody><tr><td>Texture compression is an image compression that is applied to reduce texture data size, while minimizing the loss in visual quality. In development, we export textures using a common format, such as TGA, or PNG. These formats are more convenient to use and major image software programs support them. These formats must not be used in final rendering because they are slower to both access and sample, when compared to specialized image formats. For Android, there are several options such as Adaptive Scalable Texture Compression (ASTC), Ericsson Texture Compression (ETC) 1, or ETC2. <\/td><\/tr><\/tbody><\/table>\n\n\n\n<p><strong>\u6700\u4f73\u5b9e\u8df5<\/strong><\/p>\n\n\n\n<p> We recommend that you use the ASTC technology that Arm created. Here several reasons as use ASTC:<br> \u5efa\u8bae\u4f7f\u7528Arm\u521b\u5efa\u7684ASTC\u6280\u672f\u3002\u8fd9\u91cc\u6709\u51e0\u4e2a\u4f7f\u7528ASTC\u7684\u539f\u56e0\uff1a <\/p>\n\n\n\n<p> \u2022ASTC\u5177\u6709\u4e0eETC\u76f8\u540c\u7684\u5185\u5b58\u5927\u5c0f\uff0c\u53ef\u4ee5\u63d0\u4f9b\u66f4\u597d\u7684\u8d28\u91cf<br> \u2022ASTC\u63d0\u4f9b\u76f8\u540c\u8d28\u91cf\u7684\u7eb9\u7406\u8981\u6bd4ETC\u5c0f\u5f97\u591a<br> \u2022ASTC\u6bd4ETC\u9700\u8981\u66f4\u957f\u7684\u7f16\u7801\u65f6\u95f4\uff0c\u5e76\u4f7f\u6e38\u620f\u6253\u5305\u8fc7\u7a0b\u66f4\u957f\u3002\u5982\u679c\u8fd9\u662f\u4e00\u4e2a\u95ee\u9898\uff0c\u90a3\u4e48\u6700\u597d\u5728\u6e38\u620f\u7684\u6700\u7ec8\u5305\u88c5\u4e2d\u4f7f\u7528ASTC\u3002<br> \u2022\u901a\u8fc7\u5141\u8bb8\u8bbe\u7f6e\u5757\u5927\u5c0f\uff0cASTC\u53ef\u4ee5\u5728\u8d28\u91cf\u65b9\u9762\u8fdb\u884c\u66f4\u591a\u63a7\u5236\u3002\u867d\u7136\u6ca1\u6709\u6700\u4f73\u7684\u5757\u5927\u5c0f\u9ed8\u8ba4\u503c\uff0c\u4f46\u662f\u5c06\u5757\u5927\u5c0f\u8bbe\u7f6e\u4e3a5&#215;5\u62166&#215;6\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u503c\u3002 <\/p>\n\n\n\n<p>\u6709\u65f6\uff0c\u5982\u679c\u5fc5\u987b\u5728\u8bbe\u5907\u4e0a\u5feb\u901f\u90e8\u7f72\u6e38\u620f\uff0c\u5219\u4f7f\u7528ETC\u8fdb\u884c\u5f00\u53d1\u53ef\u80fd\u4f1a\u66f4\u5feb\u3002\u53ef\u4ee5\u5c06ASTC\u4e0e\u5feb\u901f\u538b\u7f29\u8bbe\u7f6e\u4e00\u8d77\u4f7f\u7528\u6765\u907f\u514d\u90e8\u7f72\u65f6\u95f4\u7684\u589e\u52a0\u3002&nbsp;\u7f16\u7801\u65f6\uff0c\u53ef\u4ee5\u9009\u62e9\u6743\u8861\u901f\u5ea6\u548c\u8d28\u91cf\u3002\u5bf9\u4e8e\u6700\u7ec8\u7248\u672c\uff0c\u5c31\u89c6\u89c9\u8d28\u91cf\u548c\u6587\u4ef6\u5927\u5c0f\u4e4b\u95f4\u7684\u5e73\u8861\u800c\u8a00\uff0cASTC\u662f\u6700\u4f73\u9009\u62e9\u3002\u6253\u5305\u65f6\uff0c\u5f15\u64ce\u4f1a\u5904\u7406\u7eb9\u7406\u538b\u7f29\u3002\u53ef\u4ee5\u9009\u62e9\u4f7f\u7528\u54ea\u4e2a\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u5c4f\u5e55\u622a\u56fe\u663e\u793a\u4e86\u5728Unity\u4e2d\u6784\u5efaAndroid\u8f6f\u4ef6\u5305\u65f6\u5728\u54ea\u91cc\u9009\u62e9ASTC\uff1a&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"825\" height=\"232\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-27.png\" alt=\"\" class=\"wp-image-2550\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-27.png 825w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-27-300x84.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-27-768x216.png 768w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-27-70x20.png 70w\" sizes=\"(max-width: 825px) 100vw, 825px\" \/><\/figure>\n\n\n\n<p>\u4e0b\u56fe\u663e\u793a\u4e86ETC\u548cASTC\u538b\u7f29\u4e4b\u95f4\u7684\u8d28\u91cf\u5dee\u5f02\u4ee5\u53ca\u76f8\u5e94\u7684\u6587\u4ef6\u5927\u5c0f\uff1a&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"685\" height=\"244\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-28.png\" alt=\"\" class=\"wp-image-2552\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-28.png 685w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-28-300x107.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-28-70x25.png 70w\" sizes=\"(max-width: 685px) 100vw, 685px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">UV\u5c55\u5f00<\/h2>\n\n\n\n<p>\u6700\u597d\u7684\u529e\u6cd5\u662f\u4fdd\u6301UV islands\u5c3d\u53ef\u80fd\u5730\u76f4<br><br> A UV island is a connected group of polygons in a texture map.<br>The reasons for this are:<br>UV island\u662f\u7eb9\u7406\u56fe\u4e2d\u76f8\u8fde\u7684\u4e00\u7ec4\u591a\u8fb9\u5f62<\/p>\n\n\n\n<p> \u2022 It makes packing UV islands easier and less space is wasted.<br>\u5b83\u4f7f\u5f97UV islands\u66f4\u5bb9\u6613\uff0c\u6d6a\u8d39\u66f4\u5c11\u7684\u7a7a\u95f4<\/p>\n\n\n\n<p> \u2022 A straight UV helps reduce the staircase effect happening on textures.<br>\u76f4\u7684UV\u6709\u52a9\u4e8e\u51cf\u5c11\u7eb9\u7406\u53d1\u751f\u9636\u68af\u6548\u7387<\/p>\n\n\n\n<p> \u2022 On mobile platforms, texture space is limited as the texture size is usually smaller than on a games console or a PC. Good UV packing ensures that you get the most resolution from your texture.<br>\u5728\u79fb\u52a8\u5e73\u53f0\u4e0a\uff0c\u7eb9\u7406\u7a7a\u95f4\u6709\u9650\uff0c\u7eb9\u7406\u5927\u5c0f\u901a\u5e38\u5c0f\u4e8e\u4e3b\u673a\u6216\u8005PC\uff0c\u826f\u597d\u7684UV\u586b\u5145\u53ef\u4ee5\u786e\u4fdd\u4ece\u7eb9\u7406\u4e2d\u83b7\u5f97\u6700\u9ad8\u7684\u5206\u8fa8\u7387<br><\/p>\n\n\n\n<p> \u2022 It might be worth having a slightly distorted UV by keeping the UV straight for better quality texture overall.<br>\u901a\u8fc7\u4fdd\u6301UV\u7b14\u8bb0\u4ee5\u83b7\u5f97\u603b\u4f53\u4e0a\u66f4\u597d\u7684\u8868\u73b0\uff0c\u53ef\u80fd\u503c\u5f97\u7a0d\u7a0d\u626d\u66f2UV<\/p>\n\n\n\n<p>Place UV seams in places that make them not too visible. This is for visual quality purposes, as the texture seam can look bad on a model. Therefore, split UV islands where the edges are sharp and have a small space between the UV islands. This helps later on to create better normal maps through the baking process.<br>\u5c06UV\u63a5\u7f1d\u653e\u7f6e\u5728\u4e0d\u592a\u660e\u663e\u7684\u4f4d\u7f6e\u3002\u8fd9\u662f\u51fa\u4e8e\u89c6\u89c9\u7684\u76ee\u7684\uff0c\u56e0\u4e3a\u7eb9\u7406\u63a5\u7f1d\u5728\u6a21\u578b\u4e0a\u770b\u8d77\u6765\u53ef\u80fd\u4e0d\u597d\u3002\u56e0\u6b64\uff0c\u5728\u8fb9\u7f18\u8f83\u5c16\u9510\u4e14\u5728UV islands\u4e4b\u95f4\u5177\u6709\u8f83\u5c0f\u95f4\u8ddd\u7684\u62c6\u5206UV islands\u3002\u8fd9\u6709\u52a9\u4e8e\u4ee5\u540e\u5728\u70d8\u7119\u8fc7\u7a0b\u4e2d\u521b\u5efa\u66f4\u597d\u7684\u6cd5\u7ebf\u8d34\u56fe<\/p>\n\n\n\n<p> \u4e0b\u56fe\u663e\u793a\u4e86UV\u5c55\u5f00\u5982\u4f55\u6700\u5927\u5316\u7eb9\u7406\u7a7a\u95f4 <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"702\" height=\"777\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-29.png\" alt=\"\" class=\"wp-image-2557\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-29.png 702w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-29-271x300.png 271w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-29-45x50.png 45w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u89c6\u89c9\u51b2\u51fb<\/h2>\n\n\n\n<p> Make sure that you only create details that can be seen. Phone screens are small, therefore fine grained detail is not visible. Take this into account when creating textures. For example, you do not need a 4K texture with lots of details for a chair that is barely visible in the corner of the room.<br> The following screenshot shows an example of a small texture on a soldier that has only the required amount of detail needed:<br>\u786e\u4fdd\u53ea\u521b\u5efa\u53ef\u4ee5\u770b\u5230\u7684\u7ec6\u8282\u3002\u7535\u8bdd\u5c4f\u5e55\u5f88\u5c0f\u56e0\u6b64\u770b\u4e0d\u5230\u7ec6\u8282\u3002\u521b\u5efa\u7eb9\u7406\u65f6\u8981\u8003\u8651\u5230\u8fd9\u4e00\u70b9\u3002\u4f8b\u5982\uff0c\u60a8\u4e0d\u9700\u8981\u5728\u623f\u95f4\u4e00\u89d2\u51e0\u4e4e\u770b\u4e0d\u5230\u7684\u6905\u5b50\u4e0a\u6709\u5f88\u591a\u7ec6\u8282\u76844K\u7eb9\u7406\u3002&nbsp;<br>\u4ee5\u4e0b\u5c4f\u5e55\u622a\u56fe\u663e\u793a\u4e86\u4e00\u4e2a\u58eb\u5175\u7684\u5c0f\u7eb9\u7406\u793a\u4f8b\uff0c\u8be5\u7eb9\u7406\u4ec5\u5177\u6709\u6240\u9700\u7684\u8be6\u7ec6\u4fe1\u606f\u91cf\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"495\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-30-1024x495.png\" alt=\"\" class=\"wp-image-2558\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-30-1024x495.png 1024w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-30-300x145.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-30-768x371.png 768w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-30-70x34.png 70w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-30.png 1034w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In certain cases, you need to exaggerate and highlight the edges and shading to improve shape readability. Bear in mind that mobile platforms generally use smaller textures. So, it might be hard to capture all of the detail that is needed within this small texture.<br>\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u9700\u8981\u5938\u5927\u5e76\u7a81\u51fa\u663e\u793a\u8fb9\u7f18\u548c\u9634\u5f71\u4ee5\u63d0\u9ad8\u8868\u73b0\u3002\u6ce8\u610f: \u79fb\u52a8\u5e73\u53f0\u901a\u5e38\u4f7f\u7528\u8f83\u5c0f\u7684\u7eb9\u7406\u3002\u56e0\u6b64\uff0c\u53ef\u80fd\u5f88\u96be\u83b7\u5f97\u8fd9\u4e2a\u5c0f\u7eb9\u7406\u5185\u6240\u9700\u7684\u6240\u6709\u7ec6\u8282\u3002 <\/p>\n\n\n\n<p>\u4f7f\u7528\u8f83\u5c11\u7684\u7eb9\u7406\uff0c\u5e76\u5c06\u6240\u6709\u5176\u4ed6\u7ec6\u8282\u70d8\u7119\u5230\u4e00\u4e2a\u7eb9\u7406\u4e2d\u3002\u8fd9\u5f88\u91cd\u8981\uff0c\u56e0\u4e3a\uff1a <\/p>\n\n\n\n<p> \u2022  \u624b\u673a\u5c4f\u5e55\u5f88\u5c0f\uff0c\u6700\u597d\u5c06\u67d0\u4e9b\u7ec6\u8282\u70d8\u7119\u5230\u6f2b\u53cd\u5c04\u7eb9\u7406\u672c\u8eab\u4e0a\uff0c\u4ee5\u786e\u4fdd\u8fd9\u4e9b\u7ec6\u8282\u53ef\u89c1\u3002 <\/p>\n\n\n\n<p><br> \u2022 \u53ef\u4ee5\u70d8\u7119\u8bf8\u5982\u73af\u5883\u5149\u906e\u6321\u548c\u5c0f\u7684\u955c\u9762\u53cd\u5c04\u9ad8\u5149\u4e4b\u7c7b\u7684\u5143\u7d20\uff0c\u7136\u540e\u5c06\u5176\u6dfb\u52a0\u5230\u6f2b\u53cd\u5c04\u7eb9\u7406\u4e2d\u3002 <br>\u8fd9\u79cd\u65b9\u6cd5\u610f\u5473\u7740\u60a8\u4e0d\u5fc5\u592a\u4f9d\u8d56Shader\u548c\u548c\u5f15\u64ce\u6765\u83b7\u5f97\u955c\u9762\u548c\u73af\u5883\u5149\u906e\u6321\u3002 <br><br> \u4ee5\u4e0b\u5c4f\u5e55\u622a\u56fe\u663e\u793a\u4e86\u5982\u4f55\u5c06\u7ec6\u8282\u70d8\u7119\u5230\u7eb9\u7406\u4e2d\u7684\u793a\u4f8b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"827\" height=\"352\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-31.png\" alt=\"\" class=\"wp-image-2562\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-31.png 827w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-31-300x128.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-31-768x327.png 768w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-31-70x30.png 70w\" sizes=\"(max-width: 827px) 100vw, 827px\" \/><figcaption> \u5c06\u7ec6\u8282\u70d8\u7119\u5230\u7eb9\u7406\u4e2d\u7684\u793a\u4f8b <\/figcaption><\/figure>\n\n\n\n<p>\u5982\u679c\u53ef\u80fd\uff0c\u4f7f\u7528\u5728Shader\u7740\u8272\u7070\u5ea6\u7eb9\u7406\u3002\u8fd9\u6837\u53ef\u8282\u7701\u7eb9\u7406\u5185\u5b58\uff0c\u4f46\u8981\u4ee5\u521b\u5efa\u81ea\u5b9a\u4e49Shader\uff0c&nbsp;\u4f46\u4f7f\u7528\u6b64\u65b9\u6cd5\u5e76\u975e\u6240\u6709\u5bf9\u8c61\u770b\u8d77\u6765\u90fd\u5f88\u597d\u3002\u5c06\u5176\u5e94\u7528\u4e8e\u5177\u6709\u5747\u5300\u6216\u76f8\u4f3c\u989c\u8272\u7684\u5bf9\u8c61\u4f1a\u66f4\u597d\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528RGB\u8499\u7248\uff0c\u7136\u540e\u5e94\u7528\u57fa\u4e8e\u8499\u7248\u989c\u8272\u8303\u56f4\u7684\u7eb9\u7406\u6765\u5b8c\u6210\u3002<\/p>\n\n\n\n<p>\u4e0b\u56fe\u5c55\u793a\u4e86\u5c06\u7070\u5ea6\u56fe\u5e94\u7528\u5230\u6709\u8272\u67f1\u5b50\u7684\u793a\u4f8b<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"443\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-32.png\" alt=\"\" class=\"wp-image-2563\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-32.png 749w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-32-300x177.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-32-70x41.png 70w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><figcaption>\u7070\u5ea6\u56fe\u793a\u4f8b<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u7eb9\u7406\u901a\u9053\u6253\u5305<\/h2>\n\n\n\n<p>1\u3001\u7eb9\u7406\u901a\u9053\u6253\u5305\u6709\u52a9\u4e8e\u8282\u7701\u5185\u5b58\uff0c\u56e0\u4e3a3\/4\u54081\uff0c\u53ef\u5728Shader\u4e2d\u53ef\u4ee5\u51cf\u5c11\u91c7\u6837<br>2\u3001\u8fd9\u79cd\u7eb9\u7406\u901a\u5e38\u7528\u4e8e\u5c06\u7c97\u7cd9\u5ea6\u6216\u5149\u6ed1\u5ea6\u3001\u91d1\u5c5e\u5ea6 \u653e\u5230\u4e00\u4e2a\u7eb9\u7406\u4e2d<br>3\u3001\u4f7f\u7528\u7eff\u8272\uff08G\uff09\u901a\u9053\u5b58\u50a8\u66f4\u91cd\u8981\u7684\u8499\u7248\u3002\u7eff\u8272\u901a\u9053\u901a\u5e38\u5177\u6709\u66f4\u591a\u4f4d\uff08\u4f8b\u5982RGB565\uff09\u3002\u8fd9\u662f\u7531\u4e8e\u6211\u4eec\u7684\u773c\u775b\u5bf9\u7eff\u8272\u66f4\u654f\u611f\u800c\u5bf9\u84dd\u8272\u4e0d\u90a3\u4e48\u654f\u611f\u3002<br>4\u3001\u7c97\u7cd9\u5ea6\u6216\u5149\u6ed1\u5ea6\u8d34\u56fe\u901a\u5e38\u6bd4\u91d1\u5c5e\u8d34\u56fe\u5177\u6709\u66f4\u591a\u7684\u7ec6\u8282\uff0c\u653e\u7f6e\u5728\u7eff\u8272\u901a\u9053\u4e2d<br>5\u3001\u5c06\u901a\u9053\u6253\u5305\u7684\u7eb9\u7406\u5728Inspector\u7a97\u4f53\u4e2d\uff0c\u8bbe\u7f6e\u4e3a\u7ebf\u6027\u6216RGB\uff0c\u800c\u4e0d\u662fsRGB\u989c\u8272\u7a7a\u95f4<\/p>\n\n\n\n<p><br>\u6253\u5305\u793a\u4f8b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"691\" height=\"802\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-33.png\" alt=\"\" class=\"wp-image-2566\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-33.png 691w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-33-258x300.png 258w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-33-43x50.png 43w\" sizes=\"(max-width: 691px) 100vw, 691px\" \/><figcaption>\u7eb9\u7406\u901a\u9053\u6253\u5305\u793a\u4f8b<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Alpha\u901a\u9053\u548c\u6cd5\u7ebf\u56fe\u6700\u4f73\u5b9e\u8df5<\/h2>\n\n\n\n<p> \u4f7f\u7528A\u901a\u9053<br>1\u3001\u5982\u975e\u5fc5\u8981\uff0c\u4e0d\u8981\u5f00\u542fA\u901a\u9053\uff0c\u56e0\u4e3a\u8fd9\u4f1a\u589e\u52a0\u5e26\u5bbd\uff0c\u9664\u975e\u4f60\u4e00\u5b9a\u8981\u7528\u5b83<br>2\u3001\u5b58\u50a8Alpha\u901a\u9053\u7684\u53e6\u4e00\u79cd\u65b9\u6cd5\u662f\u5728\u7c97\u7cd9\u5ea6\u6216\u91d1\u5c5e\u7eb9\u7406\u4e2d\u4f7f\u7528\u989d\u5916\u7684\u901a\u9053\u3002\u5728Unity\u4e2d\uff0c\u6b64\u7eb9\u7406\u6709\u65f6\u4f7f\u7528\u4e09\u4e2a\u901a\u9053\u4e2d\u7684\u4e24\u4e2a\uff0c\u5373\u7c97\u7cd9\u5ea6\uff08G\uff09\u548c\u91d1\u5c5e\uff08B\uff09\uff0c\u4f7f\u60a8\u53ef\u4ee5\u81ea\u7531\u4f7f\u7528\uff08R\uff09\u901a\u9053\u3002 <br>3\u3001 \u5b58\u50a8A\u901a\u9053\u7684\u53e6\u4e00\u79cd\u65b9\u6cd5\u662f\u5728\u7c97\u7cd9\u5ea6\u6216\u91d1\u5c5e\u7eb9\u7406\u4e2d\u4f7f\u7528\u989d\u5916\u7684\u901a\u9053\u3002\u5728Unity\u4e2d\uff0c\u6b64\u7eb9\u7406\u6709\u65f6\u4f7f\u7528\u4e09\u4e2a\u901a\u9053\u4e2d\u7684\u4e24\u4e2a\uff0c\u5373\u7c97\u7cd9\u5ea6\uff08G\uff09\u548c\u91d1\u5c5e\uff08B\uff09\uff0c\u4f7f\u60a8\u53ef\u4ee5\u81ea\u7531\u4f7f\u7528\uff08R\uff09\u901a\u9053\u3002&nbsp; <br>4\u3001\u901a\u8fc7\u4f7f\u7528\u5269\u4f59A\u901a\u9053\u5b58\u50a8Alpha\u8499\u7248\uff0c\u53ef\u4ee5\u5c06\u6f2b\u53cd\u5c04\u7eb9\u7406\u4fdd\u6301\u572816\u4f4d\uff0c\u4ece\u800c\u5c06\u6587\u4ef6\u5927\u5c0f\u51cf\u534a\u3002\u901a\u5e38\u53ef\u4ee5\u5728diffuse\u7eb9\u7406\u4e2d\u70d8\u7119\u73af\u5883\u5149AO\u8d34\u56fe\u3002 <\/p>\n\n\n\n<p>\u4e0b\u56fe\u5c55\u793a\u4e86\u5728R\u901a\u9053\u4e2d\u5b58\u50a8\u4e0d\u900f\u660e\u901a\u9053<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"606\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-34.png\" alt=\"\" class=\"wp-image-2571\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-34.png 800w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-34-300x227.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-34-768x582.png 768w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-34-66x50.png 66w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u6cd5\u7ebf\u56fe\u6700\u4f73\u5b9e\u8df5<\/h2>\n\n\n\n<p>A normal map is a good way to make a 3D object appear to have more detail. It is best used to add smaller details such as wrinkles, bolts, and other details that need lots of triangles to model. The usage of normal mapping can depend on the type and art direction of a game.<br>\u6cd5\u7ebf\u8d34\u56fe\u8ba93D\u6a21\u578b\u66f4\u6709\u7ec6\u8282\u3002\u6700\u597d\u7528\u6765\u6dfb\u52a0\u5c0f\u7ec6\u8282\uff0c\u6bd4\u5982\u76b1\u7eb9\u3001\u87ba\u6813\u548c\u5176\u4ed6\u9700\u8981\u5927\u91cf\u4e09\u89d2\u5f62\u8fdb\u884c\u5efa\u6a21\u7684\u7ec6\u8282\u3002\u6cd5\u7ebf\u8d34\u56fe\u7684\u4f7f\u7528\u53d6\u51b3\u4e8e\u6e38\u620f\u7684\u7c7b\u578b\u548c\u98ce\u683c\u3002<\/p>\n\n\n\n<p>\u5728\u5927\u591a\u6570\u5185\u90e8\u9879\u76ee\u4e2d\uff0c\u4f7f\u7528\u6cd5\u7ebf\u8d34\u56fe\u6027\u80fd\u6ca1\u6709\u660e\u663e\u7684\u4e0b\u964d\u3002\u7531\u4e8e\u5927\u591a\u6570\u6f14\u793a\u4e2d\u90fd\u9488\u5bf9\u9ad8\u7aef\u8bbe\u5907\uff0c\u56e0\u6b64\u4f4e\u7aef\u8bbe\u5907\u53ef\u80fd\u4f1a\u6709\u4e0d\u540c\u7684\u7ed3\u679c\u3002 <\/p>\n\n\n\n<p>\u5373\u4f7f\u6210\u672c\u5f88\u5c0f\uff0c\u4f7f\u7528\u6cd5\u7ebf\u56fe\u4e5f\u6709\u6210\u672c\uff1a<br>1\u3001\u6cd5\u7ebf\u56fe\u662f\u989d\u5916\u7684\u7eb9\u7406\uff0c\u9700\u8981\u66f4\u7684\u5e26\u5bbd<br>2\u3001\u4f4e\u7aef\u8bbe\u5907\uff0c\u8bf7\u8c28\u614e\u4f7f\u7528\u6cd5\u7ebf\u56fe\uff1b<br>\u4f46\u5982\u679c\u56e0\u4e3a\u4f7f\u7528\u4e86\u6cd5\u7ebf\u56fe\u53ef\u4ee5\u51cf\u5c11\u4e09\u89d2\u5f62\u6570\u91cf\uff0c\u5219\u662f\u63d0\u9ad8\u4e86\u6027\u80fd<\/p>\n\n\n\n<p>\u4e0b\u56fe\u5c55\u793a\u4e86\u5e94\u7528\u6cd5\u7ebf\u8d34\u56fe\u53bb\u5c55\u793a\u7ec6\u8282<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"823\" height=\"289\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-35.png\" alt=\"\" class=\"wp-image-2574\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-35.png 823w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-35-300x105.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-35-768x270.png 768w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-35-70x25.png 70w\" sizes=\"(max-width: 823px) 100vw, 823px\" \/><figcaption> \u5e94\u7528\u6cd5\u7ebf\u8d34\u56fe\u5c55\u793a\u7ec6\u8282 <\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u6cd5\u7ebf\u56fe\u70d8\u7119\u6700\u4f73\u5b9e\u8df5<\/h2>\n\n\n\n<p><br>  Using a cage is a great way to always get a high-quality normal map, regardless of what type of surface you are baking. Most normal mapping software makes your cage automatically. If necessary, you can make a normal map from a copy of your low polygon model and then increasing the scale of it slightly.<br>\u65e0\u8bba\u8981\u70d8\u70e4\u54ea\u79cd\u7c7b\u578b\u7684\u8868\u9762\uff0c\u4f7f\u7528Cage\u90fd\u662f\u59cb\u7ec8\u83b7\u5f97\u9ad8\u8d28\u91cf\u6cd5\u7ebf\u56fe\u7684\u597d\u65b9\u6cd5\u3002\u5927\u591a\u6570\u6cd5\u7ebf\u56fe\u8f6f\u4ef6\u90fd\u4f1a\u81ea\u52a8\u751f\u6210Cage\u3002\u5982\u6709\u5fc5\u8981\uff0c\u53ef\u4ee5\u4ece\u4f4e\u591a\u8fb9\u5f62\u6a21\u578b\u7684\u526f\u672c\u5236\u4f5c\u6cd5\u7ebf\u8d34\u56fe\uff0c\u7136\u540e\u7a0d\u5fae\u589e\u52a0\u5176\u6bd4\u4f8b\u3002 <\/p>\n\n\n\n<table class=\"wp-block-table is-style-stripes\"><tbody><tr><td><strong> The cage is a larger version of the low polygon count model, and therefore the model appears pushed out. It must also physically cover the high polygon count model for the baking to work well.<\/strong><\/td><\/tr><\/tbody><\/table>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>The purpose of using the cage is for the program to change the direction that is used to calculate the normal when baking. This produces far better results on split-normal and hard edges, as shown in the following image:<br>\u4f7f\u7528Cage\u7684\u76ee\u7684\u662f\u4f7f\u7a0b\u5e8f\u53ef\u4ee5\u66f4\u6539\u70d8\u7119\u65f6\u8ba1\u7b97\u6cd5\u7ebf\u7684\u65b9\u5411\u3002\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u8fd9\u4f1a\u5728\u5206\u5272\u6cd5\u7ebf\u548c\u786c\u8fb9\u4e0a\u4ea7\u751f\u66f4\u597d\u7684\u7ed3\u679c <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"666\" height=\"521\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-36.png\" alt=\"\" class=\"wp-image-2578\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-36.png 666w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-36-300x235.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-36-64x50.png 64w\" sizes=\"(max-width: 666px) 100vw, 666px\" \/><figcaption>\u6709Cage\u548c\u6ca1\u6709Cage\u7684\u5bf9\u6bd4<\/figcaption><\/figure>\n\n\n\n<table class=\"wp-block-table is-style-stripes\"><tbody><tr><td> A mesh cage is used to limit the ray cast distance that is used during normal map baking. A cage can also solve problems with split-normal seams on the normal map, as demonstrated in the following image: <\/td><\/tr><\/tbody><\/table>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"386\" height=\"381\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-37.png\" alt=\"\" class=\"wp-image-2580\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-37.png 386w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-37-300x296.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-37-51x50.png 51w\" sizes=\"(max-width: 386px) 100vw, 386px\" \/><\/figure>\n\n\n\n<p>If the baking software supports it, bake by matching the mesh names. This mitigates the problem of creating a wrong normal map projection. When objects are too close with each other, they can unexpectedly project the normal map onto the wrong face. Using this method ensures that baking is only  done on the right surface, with a matching name.<br>\u5982\u679c\u70d8\u7119\u8f6f\u4ef6\u652f\u6301\uff0c\u8bf7\u901a\u8fc7\u5339\u914d\u7f51\u683c\u540d\u79f0\u8fdb\u884c\u70d8\u7119\u3002\u8fd9\u51cf\u8f7b\u4e86\u521b\u5efa\u9519\u8bef\u7684\u6cd5\u7ebf\u8d34\u56fe\u6295\u5f71\u7684\u95ee\u9898\u3002\u5f53\u5bf9\u8c61\u5f7c\u6b64\u4e4b\u95f4\u7684\u8ddd\u79bb\u592a\u8fd1\u65f6\uff0c\u5b83\u4eec\u53ef\u80fd\u4f1a\u610f\u5916\u5730\u5c06\u6cd5\u7ebf\u8d34\u56fe\u6295\u5f71\u5230\u9519\u8bef\u7684\u9762\u4e0a\u3002\u4f7f\u7528\u6b64\u65b9\u6cd5\u53ef\u786e\u4fdd\u4ec5\u5728\u6b63\u786e\u7684\u8868\u9762\u4e0a\u8fdb\u884c\u5339\u914d\u540d\u79f0\u7684\u70d8\u70e4\u3002<\/p>\n\n\n\n<p>Further information on matching meshes by name is available on the substance3d website along with the Marmoset Toolbag tutorial.<br>\u6709\u5173\u6309\u540d\u79f0\u5339\u914d\u7f51\u683c\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u53ef\u5728material3d\u7f51\u7ad9\u4ee5\u53ca\u201c Marmoset\u5de5\u5177\u5305\u201d\u6559\u7a0b\u4e2d\u627e\u5230 <\/p>\n\n\n\n<p>If you cannot match mesh names for baking, then explode the mesh. Exploding a mesh means that you move parts away from each other, so that the normal map does not project onto an unwanted surface.<br>\u5982\u679c\u65e0\u6cd5\u5339\u914d\u8981\u70d8\u7119\u7684Mesh\u540d\uff0c\u8bf7\u70b8\u5f00\u7f51\u683c\u3002\u70b8\u5f00\u7f51\u683c\u610f\u5473\u7740\u5c06\u90e8\u4ef6\u79fb\u5f00\uff0c\u8fd9\u6837\u6cd5\u7ebf\u56fe\u5c31\u4e0d\u4f1a\u6295\u5f71\u5230\u4e0d\u9700\u8981\u7684\u8868\u9762\u4e0a<\/p>\n\n\n\n<p>\u4e0b\u56fe\u5c55\u793a\u4e86\u5982\u4f55\u70b8\u5f00Mesh<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"414\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-38.png\" alt=\"\" class=\"wp-image-2582\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-38.png 677w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-38-300x183.png 300w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-38-70x43.png 70w\" sizes=\"(max-width: 677px) 100vw, 677px\" \/><\/figure>\n\n\n\n<p>A separate bake for ambient occlusion can sometimes be required with this solution. So split UVs on hard edges, as a continuous UV on hard edges causes visible seams. The general rule is to keep the angle less than 90 degrees, or set it as a different smoothing group. Coincide UV seams with different smoothing groups on the triangles.<br>\u6b64\u89e3\u51b3\u65b9\u6848\u6709\u65f6\u53ef\u80fd\u9700\u8981\u5355\u72ec\u70d8\u70e4\u4ee5\u8bbe\u7f6eAO\u3002\u56e0\u6b64\uff0c\u5728\u786c\u8fb9\u4e0a\u62c6\u5206UV\uff0c\u56e0\u4e3a\u5728\u786c\u8fb9\u4e0a\u8fde\u7eedUV\u4f1a\u5bfc\u81f4\u53ef\u89c1\u7684\u63a5\u7f1d\u3002\u4e00\u822c\u662f\u5c06\u89d2\u5ea6\u4fdd\u6301\u572890\u5ea6\u4ee5\u4e0b\uff0c\u6216\u5c06\u5176\u8bbe\u7f6e\u4e3a\u5176\u4ed6\u5149\u6ed1\u7ec4\u3002\u5728\u4e09\u89d2\u5f62\u4e0a\u91cd\u5408\u5177\u6709\u4e0d\u540c\u5149\u6ed1\u7ec4\u7684UV\u63a5\u7f1d <\/p>\n\n\n\n<p>  \u4e0b\u56fe\u5c55\u793a\u70d8\u7119\u786c\u8fb9\u65f6\u5982\u4f55\u6253\u788eUV<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"922\" src=\"http:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-39.png\" alt=\"\" class=\"wp-image-2584\" srcset=\"https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-39.png 700w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-39-228x300.png 228w, https:\/\/blog.coolcoding.cn\/wp-content\/uploads\/2020\/09\/image-39-38x50.png 38w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Unity Inspector\u4e2d\u7684 \u7eb9\u7406\u8bbe\u7f6e<\/h2>\n\n\n\n<p>  \u8fd9\u90e8\u5206\u5185\u5bb9\u6ca1\u6709\u8425\u517b\uff0c\u7565\u8fc7<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u6863\uff1aArm\u00ae Guide\u5f00\u53d1\u4eba\u5458\u6307\u5357 V4.1 \u2013 \u79fb\u52a8\u5e73\u53f0\u6e38\u620f\u56fe\u5f62\u4f18\u5316 \u56fe\u96c6\u3001\u91c7\u6837\u3001Mipmap\u56fe\u96c6\uff08  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[18],"_links":{"self":[{"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/posts\/2526"}],"collection":[{"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2526"}],"version-history":[{"count":41,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/posts\/2526\/revisions"}],"predecessor-version":[{"id":2586,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/posts\/2526\/revisions\/2586"}],"wp:attachment":[{"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}