{"id":1465,"date":"2023-10-31T13:31:16","date_gmt":"2023-10-31T13:31:16","guid":{"rendered":"https:\/\/uneedtalk.com\/config\/tredword\/?page_id=1465"},"modified":"2023-12-01T13:17:24","modified_gmt":"2023-12-01T13:17:24","slug":"7-7-material-interface-class","status":"publish","type":"page","link":"https:\/\/radi-cal.org\/method\/7-7-material-interface-class\/","title":{"rendered":"7.7. Material-Interface class"},"content":{"rendered":"<div class=\"row\"  id=\"row-990700973\">\n<div class=\"col small-12 large-12\"  ><div class=\"col-inner\"  >\n<h2>7.7. Material-Interface class<\/h2>\n<p>Material interface objects are assigned to the surfaces of the imported 3D model. The assignment is based on the material identifier already present in the CAD file. However, the front side and the back side of the surface are generally assigned differently (see 7.3.2). The internal faces of opaque objects can be omitted, as no ray should impact there. This allows raising exception warnings if inner faces are still accessible, which would then indicate an error in the geometry<br \/>\nThe class definition of the TRCMaterialInterface is contained in the module TRCMaterial<\/p>\n<\/div><\/div>\n<div class=\"col small-12 large-12\"  ><div class=\"col-inner text-center\"  >\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_78540804\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"769\" height=\"361\" src=\"https:\/\/radi-cal.org\/method\/wp-content\/uploads\/2023\/10\/4-2.jpg\" class=\"attachment-original size-original\" alt=\"\" srcset=\"https:\/\/radi-cal.org\/method\/wp-content\/uploads\/2023\/10\/4-2.jpg 769w, https:\/\/radi-cal.org\/method\/wp-content\/uploads\/2023\/10\/4-2-768x361.jpg 768w\" sizes=\"(max-width: 769px) 100vw, 769px\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style scope=\"scope\">\n\n#image_78540804 {\n  width: 90%;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_430607512\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"636\" height=\"257\" src=\"https:\/\/radi-cal.org\/method\/wp-content\/uploads\/2023\/10\/5-2.jpg\" class=\"attachment-large size-large\" alt=\"\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style scope=\"scope\">\n\n#image_430607512 {\n  width: 85%;\n}\n<\/style>\n\t<\/div>\n\t\n<\/div><\/div>\n<div class=\"col small-12 large-12\"  ><div class=\"col-inner\"  >\n<p>As can be seen in the class definition, the material interface comprises the three main elements that allow the definition of a generic material based on the models discussed in Chapter 4 and depicted in the overview in Figure 103. The fundamental elements of the class are:<br \/>\n1. Fresnel module: the necessary parameters for the Fresnel approach are covered by the refractive index classes (TRIbaseclass) (section 4.6) of the two materials and any existing thinflims, as well as the m\u00fcller matrix component TMuMatMap.<br \/>\n2. Subsurface scattering: the RhoDiff encapsulates the desired model and relevant parameters to perform the diffuse sub-subsurface reflection (section 4.11).<br \/>\n3. Surface roughness: the microfacet roughness model (section 4.10) is simply defined by the parameters Rcorrelated, Ralpha_x and Ralpha_y.<br \/>\nThe method SetupMMM initialises the M\u00fcller matrix calculations (see section 4.9). For materials with high absorption, the Boolean parameter transparent can be set to true in order to absorb any rays transmitted below the surface immediately. Otherwise, the ray would be traced through the object and set to \u201cabsorbed\u201d only at the next collision point. Therefore, defining the material as transparent increases the efficiency of the algorithm. By utilizing these models, the TRCMaterialInterface is able to model a large variety of opaque or transparent materials with different roughness and subsurface scattering behaviours. A typical scattering profile for an opaque material, representing a rough painted surface, that combines surface-roughness and subsurface scattering is depicted in Figure 104.<\/p>\n<\/div><\/div>\n<div class=\"col small-12 large-12\"  ><div class=\"col-inner text-center\"  >\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_549073088\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"801\" height=\"324\" src=\"https:\/\/radi-cal.org\/method\/wp-content\/uploads\/2023\/10\/6-2.jpg\" class=\"attachment-original size-original\" alt=\"\" srcset=\"https:\/\/radi-cal.org\/method\/wp-content\/uploads\/2023\/10\/6-2.jpg 801w, https:\/\/radi-cal.org\/method\/wp-content\/uploads\/2023\/10\/6-2-800x324.jpg 800w, https:\/\/radi-cal.org\/method\/wp-content\/uploads\/2023\/10\/6-2-768x311.jpg 768w\" sizes=\"(max-width: 801px) 100vw, 801px\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style scope=\"scope\">\n\n#image_549073088 {\n  width: 89%;\n}\n<\/style>\n\t<\/div>\n\t\n<\/div><\/div>\n<div class=\"col small-12 large-12\"  ><div class=\"col-inner\"  >\n<p>As can be seen, the parameterized material model is able to generate typical BRDF functions, including specular and diffuse components. The Fresnel reflection on the microfacet surface results in a polarisation of the specularly reflected beam, while the diffuse subsurface reflection is unpolarised (see also section 4.3.3).<br \/>\nThe material interface class is primarily used to initialise the associated surface scattering TLSISroughPol module (see below). So far, the options provided by the combined model have been sufficiently versatile to model all relevant materials (coated surfaces, painted surfaces, metallic surface, coated and uncoated glasses). If necessary, alternative material interface definitions can be added in future versions of the raytracer.<\/p>\n<\/div><\/div>\n<\/div>\n<style>\n#menu-main li:nth-child(7) .sub-menu{display:block !important;}\n<\/style>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-right-sidebar.php","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/radi-cal.org\/method\/wp-json\/wp\/v2\/pages\/1465"}],"collection":[{"href":"https:\/\/radi-cal.org\/method\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/radi-cal.org\/method\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/radi-cal.org\/method\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/radi-cal.org\/method\/wp-json\/wp\/v2\/comments?post=1465"}],"version-history":[{"count":11,"href":"https:\/\/radi-cal.org\/method\/wp-json\/wp\/v2\/pages\/1465\/revisions"}],"predecessor-version":[{"id":1983,"href":"https:\/\/radi-cal.org\/method\/wp-json\/wp\/v2\/pages\/1465\/revisions\/1983"}],"wp:attachment":[{"href":"https:\/\/radi-cal.org\/method\/wp-json\/wp\/v2\/media?parent=1465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}