{"id":1388,"date":"2017-01-26T22:12:52","date_gmt":"2017-01-26T22:12:52","guid":{"rendered":"http:\/\/avastar.online\/?page_id=1388"},"modified":"2017-01-26T22:12:52","modified_gmt":"2017-01-26T22:12:52","slug":"welding-normals","status":"publish","type":"page","link":"https:\/\/avalab.org\/avastar\/279\/knowledge\/welding-normals\/","title":{"rendered":"Welding Normals"},"content":{"rendered":"<h2><image src=\"\/avastar\/279\/wp-content\/uploads\/2019\/07\/approve_logo_250.png\" style=\"width:120px;vertical-align:middle;margin-left:0px;margin-right:10px;\"><\/image> Welding Normals<\/h2>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>When you look at the Avastar Character you might have noticed that\u00a0 the entire avatar looks like it was made of one mesh. There are no seams between head, upper body and lower body.<\/p>\n<p>But actually the Avastar body is made of 3 meshes. And normally one would expect to see seams between the meshes. So what is the trick here?<\/p>\n<p>The answer is: We use Blender&#8217;s Data Transfer Modifier for welding the edge Normals of adjacent objects.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image329.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1390\" src=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image329.png\" alt=\"Image329\" width=\"331\" height=\"468\" srcset=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image329.png 331w, https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image329-212x300.png 212w\" sizes=\"auto, (max-width: 331px) 100vw, 331px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<h3>The Data Transfer Modifier<\/h3>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>You have to make 4 settings here:<\/p>\n<ol>\n<li>Define the Target Mesh (Upper Body here)<\/li>\n<li>Enable Face Corner Data<\/li>\n<li>Enable Custom Normals<\/li>\n<li>Set the Max Distance of influence to a low value<\/li>\n<\/ol>\n<p>I explain below in more detail what the 4 settings do<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image331.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1391\" src=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image331.png\" alt=\"Image331\" width=\"422\" height=\"395\" srcset=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image331.png 422w, https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image331-300x281.png 300w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<h4>Define the Target Mesh<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>We want the Normals of the head (where the Data transfer Modifier has been added) to be aligned to the Normals of the the Adjacent Upper Body (the target mesh)<\/p>\n<p>You see in the image that the Normals of the adjacent mesh vertices do not point in the same direction. Hence you usually get visual seams at these locations.<\/p>\n<ul>\n<li><span style=\"color: #993300;\">The Target Mesh is the UpperBodyMesh<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image332.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1392\" src=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image332.png\" alt=\"Image332\" width=\"495\" height=\"221\" srcset=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image332.png 495w, https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image332-300x134.png 300w\" sizes=\"auto, (max-width: 495px) 100vw, 495px\" \/><\/a><\/div>\n<\/div>\n<h4>Enable Face Corner Data<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>I must admit that i do not know exactly what the term Face Corner Data means in this context, but this enables the modifier to copy the Normals from the other object<\/p>\n<ul>\n<li><span style=\"color: #993300;\">Enable Face Corner Data<\/span><\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\">\n<p>\u00a0<a href=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image334.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1394\" src=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image334.png\" alt=\"Image334\" width=\"422\" height=\"59\" srcset=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image334.png 422w, https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image334-300x42.png 300w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<h4>Enable Custom Normals<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Normally Blender takes full control over the Normals of its meshes. But the Data Transfer modifier attempts to modify the Normals by adjusting them to the target mesh. This setting prepares Blender to maintain those modified custom Normals<\/p>\n<ul>\n<li><span style=\"color: #993300;\">Enable Custom Normals<\/span><\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\">\n<p>\u00a0<a href=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image334.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1394\" src=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image334.png\" alt=\"Image334\" width=\"422\" height=\"59\" srcset=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image334.png 422w, https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image334-300x42.png 300w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<h4>Set the Max Distance of influence to a low value<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>By default the Modifier attempts to modify all Normals of the active Mesh. However in our case we only want to adjust the Normals on the edges. So we can reducethe modifier influence range to a minimum. You get the best match of course when the adjacent objects have vertices at the exact same locations.<\/p>\n<p>In that case the range of influence can be set to a minimum<\/p>\n<ul>\n<li><span style=\"color: #993300;\">Set the Max Distance of influence to a low value (0.01)<br \/>\n<\/span><\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\">\n<p><strong><span style=\"color: #ff6600;\">Important:<\/span> <\/strong>By default the range of influence is disabled. You can enable it by clicking on the icon on the right side of the button<\/p>\n<p><a href=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image335.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1393\" src=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image335.png\" alt=\"Image335\" width=\"422\" height=\"86\" srcset=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image335.png 422w, https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image335-300x61.png 300w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/a><\/p>\n<p><strong><span style=\"color: #ff6600;\">Note:<\/span><\/strong> Please always enable this option. Otherwise the Normals do not get exported.<\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>And the final result is a set of nicely welded Normals that make the two adjacent meshes look like only one single object. Mischief accomplished.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image336.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1396\" src=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image336.png\" alt=\"Image336\" width=\"495\" height=\"221\" srcset=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image336.png 495w, https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2017\/01\/Image336-300x134.png 300w\" sizes=\"auto, (max-width: 495px) 100vw, 495px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<div class=\"symple-box  black center \" style=\"text-align:left;\"> The Data Transfer Modifier copies the Normals over. It does not average the Normals! This may be important to know when you for example try to combine your mesh head with the Mesh body of another creator!<\/p>\n<p>Avastar hs its own welding function that can be enabled during Exporting of the meshes. This welding function is averaging the Normals instead of copying them. In some cases you might prefer the averaging over the copy as done by the Data transfer modifier.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Welding Normals When you look at the Avastar Character you might have noticed that\u00a0 the entire avatar looks like it was made of one mesh. There are no seams between head, upper body and lower body. But actually the Avastar body is made of 3 meshes. And normally one would expect to see seams between [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1390,"parent":381,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-1388","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/pages\/1388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/comments?post=1388"}],"version-history":[{"count":0,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/pages\/1388\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/pages\/381"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/media\/1390"}],"wp:attachment":[{"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/media?parent=1388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/categories?post=1388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/tags?post=1388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}