AVSim/simulation-package
Simulation runtime: the third-party half of the AVSim data generation package This repository holds the third-party runtime of the Simulation data generation package, version 3: the pieces the pipeline needs that were not written by the authors. It contains no code and no data of the authors. It is not usable on its own: the private half of the package, AVSim/simulation, downloads this repository into the same directory at a pinned revision with its fetch_runtime.sh script and… See the full description on the dataset page: https://huggingface.co/datasets/AVSim/simulation-package.
03.7k
1/******************************************************************************2 * Copyright 2024 NVIDIA Corporation. All rights reserved. *3 ******************************************************************************4 5Permission is hereby granted by NVIDIA Corporation ("NVIDIA"), free of charge,6to any person obtaining a copy of the sample definition code that uses our 7Material Definition Language (the "MDL Materials"), to reproduce and distribute8the MDL Materials, including without limitation the rights to use, copy, merge,9publish, distribute, and sell modified and unmodified copies of the MDL 10Materials, and to permit persons to whom the MDL Materials is furnished to do11so, in all cases solely for use with NVIDIA's Material Definition Language,12subject to the following further conditions:13 141. The above copyright notices, this list of conditions, and the disclaimer15that follows shall be retained in all copies of one or more of the MDL16Materials, including in any software with which the MDL Materials are bundled,17redistributed, and/or sold, and included either as stand-alone text files,18human-readable headers or in the appropriate machine-readable metadata fields19within text or binary files as long as those fields can be easily viewed by the20user, as applicable.212. The name of NVIDIA shall not be used to promote, endorse or advertise any 22Modified Version without specific prior written permission, except a) to comply23 with the notice requirements otherwise contained herein; or b) to acknowledge24the contribution(s) of NVIDIA.25 26THE MDL MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS27OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,28FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,29TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR 30ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, 31INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF 32CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE33THE MDL MATERIALS OR FROM OTHER DEALINGS IN THE MDL MATERIALS.34*/35 36 37mdl 1.5;38 39import ::anno::*;40import ::base::*;41import ::df::*;42import ::math::*;43import ::state::*;44import ::tex::*;45import ::nvidia::core_definitions::blend_colors;46import ::nvidia::core_definitions::dimension;47 48 49const string COPYRIGHT = 50" Copyright 2024 NVIDIA Corporation. All rights reserved.\n"51" MDL MATERIALS ARE PROVIDED PURSUANT TO AN END USER LICENSE AGREEMENT,\n"52" WHICH WAS ACCEPTED IN ORDER TO GAIN ACCESS TO THIS FILE. IN PARTICULAR,\n" 53" THE MDL MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n"54" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n"55" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF\n" 56" COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL NVIDIA\n"57" CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY\n"58" GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN\n"59" AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR\n"60" INABILITY TO USE THE MDL MATERIALS OR FROM OTHER DEALINGS IN THE MDL MATERIALS.\n";61 62const string DESCRIPTION = "Versatile glass material with features such as ceramic frit, coating, dirt and smudges.";63 64 65export enum unit_scale66[[67 ::anno::hidden()68]]69{70 unit_mm = 1,71 unit_cm = 2,72 unit_m = 373};74 75struct volume_info76[[77 ::anno::hidden()78]]{79 color absorption_coefficient;80 color scattering_coefficient;81};82 83 84 85// simplified volume coefficients86// This function takes a transmittance value and and albedo and translates it into meaningful87// scattering and volume coefficients that are userfriendly88//89volume_info volume_transmittance_albedo(90 uniform float density_scale = 1.0,91 uniform color transmittance = color(0.5f), // transmittance color after unit distance92 uniform color albedo = color(1.0f)93)94{95 color sigma_t = -::math::log(::math::saturate(transmittance)) * density_scale;96 color sigma_s = sigma_t * ::math::saturate(albedo);97 return volume_info(98 scattering_coefficient: sigma_s,99 absorption_coefficient: sigma_t - sigma_s);100}101 102// This function calculates the apropriate scattering and volume coefficients103// for a material of a given thickness. 104// The user specifies the thickness of the material, e.g. 3mm and the amount 105// of light passing through. The rest is automatically calculated for the material106// and the material_volume is returned.107volume_info custom_volume_transmittance(108 uniform unit_scale unit_scale_select = unit_mm,109 uniform float absorption_thickness = 3.0f,110 uniform color transmittance = color(0.5f),111 uniform color albedo = color(0.0f)112)113{114 absorption_thickness = (absorption_thickness <= 0.0f) ? 0.00001 : absorption_thickness;115 float scalefactor;116 switch(unit_scale_select){117 case unit_mm: scalefactor = 0.001f; break;118 case unit_cm: scalefactor = 0.01f; break;119 case unit_m: scalefactor = 1.0f; break;120 default: scalefactor = 1.0f;121 }122 123 124 125 volume_info vol_coefficients = volume_transmittance_albedo(126 density_scale: 1.0f/(absorption_thickness * scalefactor),127 transmittance: transmittance,128 albedo: albedo129 );130 131 return vol_coefficients;132}133 134 135float3 srgb2rgb(float3 val)136{137 return ::math::pow(::math::max(val, float3(0.0f)), 2.2);138}139 140 141float uint2float(int x)142{143 return float(x & 0x7FFFFFFF) + (x < 0 ? 2147483648.0 : 0.0);144}145 146int lowbias32(int x)147{148 x ^= x >>> 16;149 x *= 0x7feb352d;150 x ^= x >>> 15;151 x *= 0x846ca68b;152 x ^= x >>> 16;153 return x;154}155 156float2 rnd22(int2 p) {157 float2 ret_val = float2(158 uint2float(lowbias32(p[0] + lowbias32(p[1]))) / 4294967296.f,159 uint2float(lowbias32(p[0] + 32000 + lowbias32(p[1]))) / 4294967296.f160 );161 return ret_val;162} 163 164 165::base::texture_coordinate_info transform_coordinate_2(166 float4x4 transform 167 [[ ::anno::description("A transformation to be applied to the source coordinates. rotation_translation_scale() is a suggested means to compute the transformation matrix.") ]],168 ::base::texture_coordinate_info coordinate = ::base::texture_coordinate_info()169 [[ ::anno::description("Coordinate, typically sourced from coordinate_source or coordinate_projection.") ]]170) [[ 171 ::anno::description("Transform a texture coordinate by a matrix.") ,172 ::anno::noinline()173 ]]174{175 float4 r_position = float4(coordinate.position.x,coordinate.position.y,coordinate.position.z,1)* transform;176 float4 r_tangent_u = float4(coordinate.tangent_u.x,coordinate.tangent_u.y,coordinate.tangent_u.z,1)* transform;177 float4 r_tangent_v = float4(coordinate.tangent_v.x,coordinate.tangent_v.y,coordinate.tangent_v.z,1)* transform;178 return ::base::texture_coordinate_info(179 float3(r_position.x,r_position.y,r_position.z),180 float3(r_tangent_u.x,r_tangent_u.y,r_tangent_u.z), // orthogonalization181 float3(r_tangent_v.x,r_tangent_v.y,r_tangent_v.z));// orthogonalization182}183 184 185// Takes the standard input that every material has. It combines a couple of186// functions in one convenience function.187::base::texture_coordinate_info vmat_transform(188 float2 translation = float2(0.0, 0.0),189 float rotation = 0.0, // rotation in degrees190 float2 scaling = float2(1.0, 1.0),191 uniform ::base::texture_coordinate_system system = ::base::texture_coordinate_uvw,192 uniform int uv_space = 0193)194{195 float rotation_rad = (rotation * 3.1415926535897932384626433832f) / 180.f;196 float4x4 scale =197 float4x4(1.0 /scaling.x, 0. , 0. , 0.,198 0. , 1.0 /scaling.y , 0. , 0.,199 0. , 0. , 1.0, 0.,200 translation.x , translation.y , 0.0, 1.);201 202 float s = ::math::sin(rotation_rad);203 float c = ::math::cos(rotation_rad);204 float4x4 rotate =205 float4x4( c , -s , 0.0 , 0.0,206 s , c , 0.0 , 0.0,207 0.0, 0.0 , 1.0 , 0.0,208 0. , 0.0 , 0.0 , 1.);209 210 return transform_coordinate_2(scale*rotate, ::base::coordinate_source(system, uv_space));211}212 213float2x2 invert_2x2(float2x2 M)214{215 float det = M[0][0]*M[1][1] - M[0][1]*M[1][0];216 //https://www.chilimath.com/lessons/advanced-algebra/inverse-of-a-2x2-matrix/217 return (1.0 / det) * float2x2(M[1][1], -M[0][1], -M[1][0], M[0][0]);218}219 220float3 nonrepeat_lookup(221 uniform texture_2d texture = texture_2d(),222 ::base::texture_coordinate_info uvw = ::base::coordinate_source(),223 float texture_scale = 1.0,224 float3 average_color = float3(0.5),225 float patch_size = 8.0226)227{228 229 float2 uv_in = float2(uvw.position[0], uvw.position[1]) * texture_scale;230 float Z = patch_size; // patch scale inside example texture231 float CON = 1.0f;232 233 float3 O = float3(0.f);234 float2x2 M0 = float2x2(1.f,0.f, 0.5f, ::math::sqrt(3.f)/2.f);235 float2x2 M = invert_2x2(M0); // transform matrix <-> tilted space236 237 float2 U = uv_in;238 float2 V = M * uv_in; //pre-tilted hexa coordinates239 int2 I = int2(::math::floor(V)); // hexa-tile id240 241 // The mean color needs to be determined in Photoshop then to make the242 // average color work out, take the float value and calculate the apropriate243 // mean value as (value^(1/2.2))244 245 float3 m = average_color;246 247 float3 F = float3(::math::frac(V)[0], ::math::frac(V)[1], 0.f), W;248 F[2] = 1.0 - F[0] - F[1]; // local hexa coordinates249 250 if( F[2] > 0.f )251 252 O = (W[0] = F[2]) * (( ::tex::lookup_float3(texture, U/Z-rnd22(I))) - m*float(CON))253 + (W[1] = F[1]) * (( ::tex::lookup_float3(texture, U/Z-rnd22(I+int2(0,1)))) - m*float(CON))254 + (W[2] = F[0]) * (( ::tex::lookup_float3(texture, U/Z-rnd22(I+int2(1,0)))) - m*float(CON));255 else256 O = (W[0] = -F[2]) * (( ::tex::lookup_float3(texture, U/Z-rnd22(I+int2(1)))) - m*float(CON))257 + (W[1] = 1.f - F[1]) * (( ::tex::lookup_float3(texture, U/Z-rnd22(I+int2(1, 0)))) - m*float(CON))258 + (W[2] = 1.f - F[0]) * (( ::tex::lookup_float3(texture, U/Z-rnd22(I+int2(0, 1)))) - m*float(CON));259 O = m + O/::math::length(W);260 O = ::math::clamp( (O), 0.0, 1.0);261 262 return float3(O);263}264 265 266float remap_xy_to_0_1(float input, float x, float y)267{268 return (input - x)/(y - x);269}270 271float histogram_scan_big(float input, float width, float position)272{273 return ::math::clamp(274 remap_xy_to_0_1(input,275 ::math::lerp(-width, 1.0, position),276 ::math::lerp(0.0, 1.0 + width, position)),277 0.0,278 1.0);279}280 281color endless_texture(282 uniform texture_2d texture = texture_2d(),283 ::base::texture_coordinate_info uvw = ::base::coordinate_source(),284 float texture_scale = 10.0,285 float3 average_color = float3(0.5, 0.5, 1.0),286 float patch_size = 8.0,287 bool gamma_correct_lookup = true288)289{290 return gamma_correct_lookup ? color(srgb2rgb(291 nonrepeat_lookup (292 texture: texture,293 uvw: uvw,294 texture_scale: texture_scale,295 average_color: average_color,296 patch_size: patch_size297 ))298 ) : color(nonrepeat_lookup (299 texture: texture,300 uvw: uvw,301 texture_scale: texture_scale,302 average_color: average_color,303 patch_size: patch_size304 ));305}306 307 308 309 310// 5.1311 312// Glass_V1313 314export material Glass_Optical(315// Appearance316 uniform bool infinite_tiling = false [[317 ::anno::description("Enables infinite tiling feature which removes repeating texture patterns. Note that depending on the material this feature changes the appearance of the material slightly."),318 ::anno::display_name("Infinite Tiling"),319 ::anno::in_group("Appearance")320 ]],321 uniform bool thin_walled = false [[322 ::anno::description("Makes the material thin-walled. This changes the behavior of the material in a way that light attenuation is not calculated volumetrically as light travels through the geometry but at the light surface level. Thin walled geometry mustbe modeled as a single sheet without any volume."),323 ::anno::display_name("Thin Walled"),324 ::anno::in_group("Appearance")325 ]],326 uniform float ior = 1.55447f [[327 ::anno::description("Index of refraction."),328 ::anno::display_name("IOR"),329 ::anno::in_group("Appearance"),330 ::anno::soft_range(0.f, 0.f),331 ::anno::hard_range(0.f, 20.f)332 ]],333 uniform float abbe_number = 63.23f [[334 ::anno::description("Dispersion in relation to index of refraction."),335 ::anno::display_name("Abbe Number"),336 ::anno::in_group("Appearance"),337 ::anno::soft_range(0.f, 100.f)338 ]],339 float roughness = 0.f [[340 ::anno::description("Creates a frosted look of the glass."),341 ::anno::display_name("Roughness"),342 ::anno::in_group("Appearance"),343 ::anno::hard_range(0.f, 1.f)344 ]],345 uniform unit_scale units_absorption_thickness = unit_cm [[346 ::anno::description("Chooses the units that are used for setting the absorption thickness. Can be meters, centimeters or millimeters."),347 ::anno::display_name("Units Absorption Thickness"),348 ::anno::enable_if("thin_walled == false"),349 ::anno::in_group("Appearance")350 ]],351 uniform float absorption_thickness = 1.f [[352 ::anno::description("The thickness for which the transmittance (color) is set. Example: If thickness is set to 3mm and transmittance to 0.8, then 80% of the light will pass through a 3mm thick material."),353 ::anno::display_name("Absorption Thickness"),354 ::anno::enable_if("thin_walled == false"),355 ::anno::in_group("Appearance"),356 ::anno::soft_range(0.f, 10.f)357 ]],358 uniform color transmittance = color(1.0f) [[359 ::anno::description("The transmittance sets the amount of light that is left after light has travelled through a given material thickness which can be set with the parameter \"absorption thickness\". The transmittance can be set for RGB components separately to achieve a tinted appearance of the material."),360 ::anno::display_name("Transmittance"),361 ::anno::in_group("Appearance")362 ]],363 364 365 366// Coating367 float coating_reflectivity = 0.0f [[368 ::anno::description("Adjusts the reflectivity of the coating - the amount of light that gets reflected before it transfers through the glass surface."),369 ::anno::display_name("Coating Reflectivity"),370 ::anno::in_group("Appearance", "Coating"),371 ::anno::hard_range(0.f, 1.f)372 ]],373 color coating_tint = color(1.f, 1.f, 1.f) [[374 ::anno::display_name("Coating Tint"),375 ::anno::description("Adds a color to the coating layer."),376 ::anno::enable_if("coating_reflectivity > 0.0"),377 ::anno::in_group("Appearance", "Coating")378 ]],379 380// Frit381 uniform float frit_weight = 0.0f [[382 ::anno::description("Controls the weight of the frit layer."),383 ::anno::display_name("Frit Layer Weight"),384 ::anno::in_group("Appearance", "Frit"),385 ::anno::hard_range(0.f, 1.f)386 ]],387 color frit_color = color(0.5f) [[388 ::anno::display_name("Frit Color"),389 ::anno::enable_if("frit_weight > 0.0"),390 ::anno::in_group("Appearance", "Frit")391 ]], 392 float frit_size = 0.4f [[393 ::anno::description("Controls the size of the frit circles."),394 ::anno::display_name("Frit Size"),395 ::anno::enable_if("frit_weight > 0.0"),396 ::anno::in_group("Appearance", "Frit"),397 ::anno::hard_range(0.f, 1.f)398 ]],399 float frit_roughness = 0.286f [[400 ::anno::description("Controls the roughness of the frit layer."),401 ::anno::display_name("Frit Roughness"),402 ::anno::enable_if("frit_weight > 0.0"),403 ::anno::in_group("Appearance", "Frit"),404 ::anno::hard_range(0.f, 1.f)405 ]],406 float2 frit_scale = float2(1.f) [[407 ::anno::description("Larger numbers increase the size."),408 ::anno::display_name("Frit Scale"),409 ::anno::enable_if("frit_weight > 0.0"),410 ::anno::in_group("Appearance", "Frit"),411 ::anno::soft_range(float2(0.f), float2(2.f))412 ]],413 float reflection_transmission_balance = 0.f [[414 ::anno::description("Makes the frit translucent."),415 ::anno::display_name("Frit Translucency"),416 ::anno::enable_if("frit_weight > 0.0"),417 ::anno::in_group("Appearance", "Frit"),418 ::anno::hard_range(0.f, 1.f)419 ]],420 421// Dirt422 uniform float dirt_layer_weight = 0.0f [[423 ::anno::description("Controls the visibility of the dirt layer."),424 ::anno::display_name("Dirt Layer Weight"),425 ::anno::in_group("Appearance", "Dirt"),426 ::anno::hard_range(0.f, 1.f)427 ]],428 float dirt_brightness = 0.75f [[429 ::anno::description("Sets the brightness of the dirt."),430 ::anno::display_name("Dirt Brightness"),431 ::anno::enable_if("dirt_layer_weight > 0.0"),432 ::anno::in_group("Appearance", "Dirt"),433 ::anno::hard_range(0.f, 1.f)434 ]],435 float dirt_weight_1 = 0.9f [[436 ::anno::description("Dirty dried droplets."),437 ::anno::display_name("Dirt 1 Amount"),438 ::anno::enable_if("dirt_layer_weight > 0.0"),439 ::anno::in_group("Appearance", "Dirt"),440 ::anno::hard_range(0.f, 1.f)441 ]],442 float dirt_weight_2 = 0.3f [[443 ::anno::description("Dirt with the appearance of a dust layer."),444 ::anno::display_name("Dirt 2 Amount"),445 ::anno::enable_if("dirt_layer_weight > 0.0"),446 ::anno::in_group("Appearance", "Dirt"),447 ::anno::hard_range(0.f, 1.f)448 ]],449 float dirt_weight_3 = 0.f [[450 ::anno::description("Dirt which shows some driet water flow stains."),451 ::anno::display_name("Dirt 3 Amount"),452 ::anno::enable_if("dirt_layer_weight > 0.0"),453 ::anno::in_group("Appearance", "Dirt"),454 ::anno::hard_range(0.f, 1.f)455 ]],456 float dirt_balance = 0.374f [[457 ::anno::description("Controls the balance of the dirt textures. A low value makes the dirt more visible, higher values make it less visible while maintaining its contours."),458 ::anno::display_name("Dirt Balance"),459 ::anno::enable_if("dirt_layer_weight > 0.0"),460 ::anno::in_group("Appearance", "Dirt"),461 ::anno::hard_range(0.f, 1.f)462 ]],463 float2 dirt_scale = float2(1.f) [[464 ::anno::description("Larger numbers increase the size."),465 ::anno::display_name("Dirt Scale"),466 ::anno::enable_if("dirt_layer_weight > 0.0"),467 ::anno::in_group("Appearance", "Dirt"),468 ::anno::soft_range(float2(0.f), float2(2.f))469 ]],470 471// Smudges472 uniform float smudges_weight = 0.0f [[473 ::anno::description("Controls the visibility of the smudge layer."),474 ::anno::display_name("Smudge Layer Weight"),475 ::anno::in_group("Appearance", "Smudges"),476 ::anno::hard_range(0.f, 1.f)477 ]],478 float smudges_1_weight = 0.95f [[479 ::anno::description("Adjusts the weight of the primary smudges."),480 ::anno::display_name("Smudges 1 Weight"),481 ::anno::enable_if("smudges_weight > 0.0"),482 ::anno::in_group("Appearance", "Smudges"),483 ::anno::hard_range(0.f, 1.f)484 ]],485 float smudges_2_weight = 0.3f [[486 ::anno::description("Adjusts the weight of the secondary smudges."),487 ::anno::display_name("Smudges 2 Weight"),488 ::anno::enable_if("smudges_weight > 0.0"),489 ::anno::in_group("Appearance", "Smudges"),490 ::anno::hard_range(0.f, 1.f)491 ]],492 float smudge_balance = 0.2f [[493 ::anno::description("Balances the coverage of the smudges. A low value makes them more visible, higher make leave only stronger smudges visible."),494 ::anno::display_name("Smudge Balance"),495 ::anno::enable_if("smudges_weight > 0.0"),496 ::anno::in_group("Appearance", "Smudges"),497 ::anno::hard_range(0.f, 1.f)498 ]],499 float2 smudge_scale = float2(1.f) [[500 ::anno::description("Larger numbers increase the size."),501 ::anno::display_name("Smudge Scale"),502 ::anno::enable_if("smudges_weight > 0.0"),503 ::anno::in_group("Appearance", "Smudges"),504 ::anno::soft_range(float2(0.f), float2(2.f))505 ]],506 507 508//Transform509 float2 texture_translate = float2(0.f) [[510 ::anno::description("Controls the position of the texture."),511 ::anno::display_name("Texture Translate"),512 ::anno::in_group("Transform")513 ]],514 float texture_rotate = 0.f [[515 ::anno::description("Rotates angle of the texture in degrees."),516 ::anno::display_name("Texture Rotate"),517 ::anno::in_group("Transform"),518 ::anno::soft_range(0.f, 360.f)519 ]],520 float2 texture_scale = float2(1.f) [[521 ::anno::description("Larger numbers increase the size."),522 ::anno::display_name("Texture Scale"),523 ::anno::in_group("Transform"),524 ::anno::soft_range(float2(0.f), float2(2.f)),525 ::nvidia::core_definitions::dimension(float2(1.0f, 1.0f))526 ]],527 528 529// Advanced530 uniform int uv_space_index = 0 [[531 ::anno::description("uses the selected UV space index."),532 ::anno::display_name("UV Space Index"),533 ::anno::in_group("Advanced"),534 ::anno::soft_range(0, 4)535 ]],536 float3 normal = ::state::normal() [[537 ::anno::description("Override this input to provide a custom normal for the material."),538 ::anno::display_name("Normal"),539 ::anno::in_group("Advanced")540 ]]541)542[[543 ::anno::author("NVIDIA vMaterials"),544 ::anno::display_name("Glass Clear - Master Material"),545 ::anno::description("Master template material. This material should be hidden. "546 "If you see this material, the integration is not hiding it correctly."),547 ::anno::copyright_notice(COPYRIGHT),548 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical.png"),549 ::anno::key_words(string[]("glass", "master", "layered", "optics", "optical", "PSK", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown")),550 ::anno::hidden()551]]552 = 553 let {554 bool tmp0 = thin_walled;555 material_surface tmp1(556 smudges_weight > 0.f ? ::df::weighted_layer(::math::pow(::math::max(float3(infinite_tiling ? endless_texture(texture_2d("./textures/glass_smudges_clouds_multi.jpg", ::tex::gamma_linear), vmat_transform(texture_translate, texture_rotate, texture_scale * smudge_scale, ::base::texture_coordinate_uvw, uv_space_index), 10.f, float3(0.0590000004f, 0.050999999f, 0.125f), 8.f, false) : ::base::file_texture(texture_2d("./textures/glass_smudges_clouds_multi.jpg", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, texture_scale * smudge_scale, ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).tint)[0] * smudges_1_weight, float3(infinite_tiling ? endless_texture(texture_2d("./textures/glass_smudges_clouds_multi.jpg", ::tex::gamma_linear), vmat_transform(texture_translate, texture_rotate, texture_scale * smudge_scale, ::base::texture_coordinate_uvw, uv_space_index), 10.f, float3(0.0590000004f, 0.050999999f, 0.125f), 8.f, false) : ::base::file_texture(texture_2d("./textures/glass_smudges_clouds_multi.jpg", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, texture_scale * smudge_scale, ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).tint)[1] * smudges_2_weight), ::math::lerp(1.f, 3.f, smudge_balance)) * smudges_weight, ::df::microfacet_ggx_smith_bsdf(0.275000006f, 0.275000006f, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), dirt_layer_weight > 0.f ? ::df::weighted_layer(::math::pow(::math::max(::math::max(dirt_weight_1 * float3(infinite_tiling ? endless_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), 8.f, float3(0.0370000005f, 0.0759999976f, 0.0189999994f), 8.f, false) : ::base::file_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).tint)[0], dirt_weight_2 * float3(infinite_tiling ? endless_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), 8.f, float3(0.0370000005f, 0.0759999976f, 0.0189999994f), 8.f, false) : ::base::file_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).tint)[1]), dirt_weight_3 * float3(infinite_tiling ? endless_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), 8.f, float3(0.0370000005f, 0.0759999976f, 0.0189999994f), 8.f, false) : ::base::file_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).tint)[2]), ::math::lerp(1.f, 4.f, dirt_balance)) * dirt_layer_weight, ::df::weighted_layer(0.603000045f, ::df::diffuse_transmission_bsdf(::nvidia::core_definitions::blend_colors(color(0.00309600006f, 0.00284500001f, 0.00266300002f), color(0.522521973f, 0.43264699f, 0.373656988f), ::base::color_layer_blend, dirt_brightness, true).tint, ""), ::df::diffuse_reflection_bsdf(::nvidia::core_definitions::blend_colors(color(0.00309600006f, 0.00284500001f, 0.00266300002f), color(0.522521973f, 0.43264699f, 0.373656988f), ::base::color_layer_blend, dirt_brightness, true).tint, 0.f, ""), ::state::normal()), ::df::weighted_layer(coating_reflectivity, ::df::specular_bsdf(coating_tint, ::df::scatter_reflect, ""), frit_weight > 0.f ? ::df::weighted_layer(histogram_scan_big(::base::file_texture(texture_2d("./textures/glass_frit_dist.png", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, texture_scale * (frit_scale * 0.00999999978f), ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).mono, 0.0199999996f, 1.f - frit_size * 0.870000005f) * frit_weight, ::df::weighted_layer(reflection_transmission_balance * 0.400000006f, ::df::diffuse_transmission_bsdf(color(1.f, 1.f, 1.f), ""), ::df::custom_curve_layer(0.0580000021f, 1.f, 5.f, 1.f, ::df::microfacet_ggx_smith_bsdf(frit_roughness * frit_roughness, frit_roughness * frit_roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::diffuse_reflection_bsdf(frit_color, 0.f, ""), ::state::normal()), ::state::normal()), thin_walled ? ::df::fresnel_layer(ior, 1.f, ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, transmittance, ::state::texture_tangent_u(0), ::df::scatter_transmit, ""), ::state::normal()) : ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect_transmit, ""), ::state::normal()) : thin_walled ? ::df::fresnel_layer(ior, 1.f, ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, transmittance, ::state::texture_tangent_u(0), ::df::scatter_transmit, ""), ::state::normal()) : ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect_transmit, ""), ::state::normal()), ::state::normal()) : ::df::weighted_layer(coating_reflectivity, ::df::specular_bsdf(coating_tint, ::df::scatter_reflect, ""), frit_weight > 0.f ? ::df::weighted_layer(histogram_scan_big(::base::file_texture(texture_2d("./textures/glass_frit_dist.png", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, texture_scale * (frit_scale * 0.00999999978f), ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).mono, 0.0199999996f, 1.f - frit_size * 0.870000005f) * frit_weight, ::df::weighted_layer(reflection_transmission_balance * 0.400000006f, ::df::diffuse_transmission_bsdf(color(1.f, 1.f, 1.f), ""), ::df::custom_curve_layer(0.0580000021f, 1.f, 5.f, 1.f, ::df::microfacet_ggx_smith_bsdf(frit_roughness * frit_roughness, frit_roughness * frit_roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::diffuse_reflection_bsdf(frit_color, 0.f, ""), ::state::normal()), ::state::normal()), thin_walled ? ::df::fresnel_layer(ior, 1.f, ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, transmittance, ::state::texture_tangent_u(0), ::df::scatter_transmit, ""), ::state::normal()) : ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect_transmit, ""), ::state::normal()) : thin_walled ? ::df::fresnel_layer(ior, 1.f, ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, transmittance, ::state::texture_tangent_u(0), ::df::scatter_transmit, ""), ::state::normal()) : ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect_transmit, ""), ::state::normal()), ::state::normal()) : dirt_layer_weight > 0.f ? ::df::weighted_layer(::math::pow(::math::max(::math::max(dirt_weight_1 * float3(infinite_tiling ? endless_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), 8.f, float3(0.0370000005f, 0.0759999976f, 0.0189999994f), 8.f, false) : ::base::file_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).tint)[0], dirt_weight_2 * float3(infinite_tiling ? endless_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), 8.f, float3(0.0370000005f, 0.0759999976f, 0.0189999994f), 8.f, false) : ::base::file_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).tint)[1]), dirt_weight_3 * float3(infinite_tiling ? endless_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), 8.f, float3(0.0370000005f, 0.0759999976f, 0.0189999994f), 8.f, false) : ::base::file_texture(texture_2d("./textures/glass_dirt_multi_mask.jpg", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, dirt_scale * texture_scale, ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).tint)[2]), ::math::lerp(1.f, 4.f, dirt_balance)) * dirt_layer_weight, ::df::weighted_layer(0.603000045f, ::df::diffuse_transmission_bsdf(::nvidia::core_definitions::blend_colors(color(0.00309600006f, 0.00284500001f, 0.00266300002f), color(0.522521973f, 0.43264699f, 0.373656988f), ::base::color_layer_blend, dirt_brightness, true).tint, ""), ::df::diffuse_reflection_bsdf(::nvidia::core_definitions::blend_colors(color(0.00309600006f, 0.00284500001f, 0.00266300002f), color(0.522521973f, 0.43264699f, 0.373656988f), ::base::color_layer_blend, dirt_brightness, true).tint, 0.f, ""), ::state::normal()), ::df::weighted_layer(coating_reflectivity, ::df::specular_bsdf(coating_tint, ::df::scatter_reflect, ""), frit_weight > 0.f ? ::df::weighted_layer(histogram_scan_big(::base::file_texture(texture_2d("./textures/glass_frit_dist.png", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, texture_scale * (frit_scale * 0.00999999978f), ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).mono, 0.0199999996f, 1.f - frit_size * 0.870000005f) * frit_weight, ::df::weighted_layer(reflection_transmission_balance * 0.400000006f, ::df::diffuse_transmission_bsdf(color(1.f, 1.f, 1.f), ""), ::df::custom_curve_layer(0.0580000021f, 1.f, 5.f, 1.f, ::df::microfacet_ggx_smith_bsdf(frit_roughness * frit_roughness, frit_roughness * frit_roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::diffuse_reflection_bsdf(frit_color, 0.f, ""), ::state::normal()), ::state::normal()), thin_walled ? ::df::fresnel_layer(ior, 1.f, ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, transmittance, ::state::texture_tangent_u(0), ::df::scatter_transmit, ""), ::state::normal()) : ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect_transmit, ""), ::state::normal()) : thin_walled ? ::df::fresnel_layer(ior, 1.f, ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, transmittance, ::state::texture_tangent_u(0), ::df::scatter_transmit, ""), ::state::normal()) : ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect_transmit, ""), ::state::normal()), ::state::normal()) : ::df::weighted_layer(coating_reflectivity, ::df::specular_bsdf(coating_tint, ::df::scatter_reflect, ""), frit_weight > 0.f ? ::df::weighted_layer(histogram_scan_big(::base::file_texture(texture_2d("./textures/glass_frit_dist.png", ::tex::gamma_linear), color(0.f, 0.f, 0.f), color(1.f, 1.f, 1.f), ::base::mono_average, vmat_transform(texture_translate, texture_rotate, texture_scale * (frit_scale * 0.00999999978f), ::base::texture_coordinate_uvw, uv_space_index), float2(0.f, 1.f), float2(0.f, 1.f), ::tex::wrap_repeat, ::tex::wrap_repeat, false).mono, 0.0199999996f, 1.f - frit_size * 0.870000005f) * frit_weight, ::df::weighted_layer(reflection_transmission_balance * 0.400000006f, ::df::diffuse_transmission_bsdf(color(1.f, 1.f, 1.f), ""), ::df::custom_curve_layer(0.0580000021f, 1.f, 5.f, 1.f, ::df::microfacet_ggx_smith_bsdf(frit_roughness * frit_roughness, frit_roughness * frit_roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::diffuse_reflection_bsdf(frit_color, 0.f, ""), ::state::normal()), ::state::normal()), thin_walled ? ::df::fresnel_layer(ior, 1.f, ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, transmittance, ::state::texture_tangent_u(0), ::df::scatter_transmit, ""), ::state::normal()) : ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect_transmit, ""), ::state::normal()) : thin_walled ? ::df::fresnel_layer(ior, 1.f, ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect, ""), ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, transmittance, ::state::texture_tangent_u(0), ::df::scatter_transmit, ""), ::state::normal()) : ::df::microfacet_ggx_smith_bsdf(roughness * roughness, roughness * roughness, color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect_transmit, ""), ::state::normal()),557 material_emission(emission: edf(), intensity: color(0.f, 0.f, 0.f), mode: intensity_radiant_exitance));558 material_surface tmp2 = material_surface(scattering: bsdf(), emission: material_emission(emission: edf(), intensity: color(0.f, 0.f, 0.f), mode: intensity_radiant_exitance));559 color tmp3 = ::base::abbe_number_ior(ior, abbe_number);560 material_volume tmp4 = thin_walled ? material_volume(scattering: vdf(), absorption_coefficient: color(0.f, 0.f, 0.f), scattering_coefficient: color(0.f, 0.f, 0.f)) : material_volume(vdf(), custom_volume_transmittance(units_absorption_thickness, absorption_thickness, transmittance, color(0.f, 0.f, 0.f)).absorption_coefficient, custom_volume_transmittance(units_absorption_thickness, absorption_thickness, transmittance, color(0.f, 0.f, 0.f)).scattering_coefficient);561 material_geometry tmp5(562 float3(0.f),563 1.f,564 normal);565 } in566 material(567 thin_walled: tmp0,568 surface: tmp1,569 backface: tmp2,570 ior: tmp3,571 volume: tmp4,572 geometry: tmp5);573 574 575 576 577// ------------------------------- 6. Optical Glass ------------------------------- 578// All Optical glasses are completely transparent but have appropriate settings for579// their IOR and abbe numbers580 581// 6.1 582export material Glass_Optical_PSK(*)583[[584 ::anno::author("NVIDIA vMaterials"),585 ::anno::display_name("Glass Clear - Phosphate Dense Crown"),586 ::anno::description(DESCRIPTION),587 ::anno::copyright_notice(COPYRIGHT),588 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_PSK.png"),589 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown")),590 ::anno::hidden()591]] = Glass_Optical592(593 infinite_tiling: false,594 thin_walled: false,595 ior: 1.5544f,596 abbe_number: 63.23f,597 roughness: 0.f,598 units_absorption_thickness: unit_m ,599 absorption_thickness: 1.f,600 transmittance: color(1.0f),601// Coating 602 coating_reflectivity: 0.0f,603 coating_tint: color(1.f, 1.f, 1.f),604// Frit 605 frit_weight: 0.f,606 frit_color: color(.5f),607 frit_size: 0.3f,608 frit_roughness: 0.286f,609 frit_scale: float2(1.f),610 reflection_transmission_balance: 0.f,611// Dirt 612 dirt_layer_weight: 0.0,613 dirt_brightness: 0.75f,614 dirt_weight_1: 0.9f,615 dirt_weight_2: 0.3f,616 dirt_weight_3: 0.f,617 dirt_balance: 0.374f,618 dirt_scale: float2(1.f),619// Smudges 620 smudges_weight: 0.0f,621 smudges_1_weight: 0.95f,622 smudges_2_weight: 0.4f,623 smudge_balance: 0.2f,624 smudge_scale: float2(1.f),625//Transform 626 texture_translate: float2(0.f),627 texture_rotate: 0.f,628 texture_scale: float2(1.f),629// Advanced 630 uv_space_index: 0,631 normal: ::state::normal()632);633 634 635// 6.2636export material Glass_Optical_FK(*)637[[638 ::anno::author("NVIDIA vMaterials"),639 ::anno::display_name("Glass Clear - Flourine Crown"),640 ::anno::description(DESCRIPTION),641 ::anno::copyright_notice(COPYRIGHT),642 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_FK.png"),643 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown"))644]] = Glass_Optical645(646 infinite_tiling: false,647 thin_walled: false,648 ior: 1.48914f,649 abbe_number: 70.23f,650 roughness: 0.f,651 units_absorption_thickness: unit_cm ,652 absorption_thickness: 1.f,653 transmittance: color(1.0f),654// Coating 655 coating_reflectivity: 0.0f,656 coating_tint: color(1.f, 1.f, 1.f),657// Frit 658 frit_weight: 0.f,659 frit_color: color(.5f),660 frit_size: 0.3f,661 frit_roughness: 0.286f,662 frit_scale: float2(1.f),663 reflection_transmission_balance: 0.f,664// Dirt 665 dirt_layer_weight: 0.0,666 dirt_brightness: 0.75f,667 dirt_weight_1: 0.9f,668 dirt_weight_2: 0.3f,669 dirt_weight_3: 0.f,670 dirt_balance: 0.374f,671 dirt_scale: float2(1.f),672// Smudges 673 smudges_weight: 0.0f,674 smudges_1_weight: 0.95f,675 smudges_2_weight: 0.4f,676 smudge_balance: 0.2f,677 smudge_scale: float2(1.f),678//Transform 679 texture_translate: float2(0.f),680 texture_rotate: 0.f,681 texture_scale: float2(1.f),682// Advanced 683 uv_space_index: 0,684 normal: ::state::normal()685);686 687 688// 6.3689export material Glass_Optical_PK(*)690[[691 ::anno::author("NVIDIA vMaterials"),692 ::anno::display_name("Glass Clear - Phosphate Crown"),693 ::anno::description(DESCRIPTION),694 ::anno::copyright_notice(COPYRIGHT),695 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_PK.png"),696 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown"))697]] = Glass_Optical698(699 infinite_tiling: false,700 thin_walled: false,701 ior: 1.53019,702 abbe_number: 76.58f,703 roughness: 0.f,704 units_absorption_thickness: unit_cm ,705 absorption_thickness: 1.f,706 transmittance: color(1.0f),707// Coating 708 coating_reflectivity: 0.0f,709 coating_tint: color(1.f, 1.f, 1.f),710// Frit 711 frit_weight: 0.f,712 frit_color: color(.5f),713 frit_size: 0.3f,714 frit_roughness: 0.286f,715 frit_scale: float2(1.f),716 reflection_transmission_balance: 0.f,717// Dirt 718 dirt_layer_weight: 0.0,719 dirt_brightness: 0.75f,720 dirt_weight_1: 0.9f,721 dirt_weight_2: 0.3f,722 dirt_weight_3: 0.f,723 dirt_balance: 0.374f,724 dirt_scale: float2(1.f),725// Smudges 726 smudges_weight: 0.0f,727 smudges_1_weight: 0.95f,728 smudges_2_weight: 0.4f,729 smudge_balance: 0.2f,730 smudge_scale: float2(1.f),731//Transform 732 texture_translate: float2(0.f),733 texture_rotate: 0.f,734 texture_scale: float2(1.f),735// Advanced 736 uv_space_index: 0,737 normal: ::state::normal()738);739 740 741// 6.4742export material Glass_Optical_BK(*)743[[744 ::anno::author("NVIDIA vMaterials"),745 ::anno::display_name("Glass Clear - Boron Crown"),746 ::anno::description(DESCRIPTION),747 ::anno::copyright_notice(COPYRIGHT),748 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_BK.png"),749 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown"))750]] = Glass_Optical751(752 infinite_tiling: false,753 thin_walled: false,754 ior: 1.51872f,755 abbe_number: 63.96f,756 roughness: 0.f,757 units_absorption_thickness: unit_cm ,758 absorption_thickness: 1.f,759 transmittance: color(1.0f),760// Coating 761 coating_reflectivity: 0.0f,762 coating_tint: color(1.f, 1.f, 1.f),763// Frit 764 frit_weight: 0.f,765 frit_color: color(.5f),766 frit_size: 0.3f,767 frit_roughness: 0.286f,768 frit_scale: float2(1.f),769 reflection_transmission_balance: 0.f,770// Dirt 771 dirt_layer_weight: 0.0,772 dirt_brightness: 0.75f,773 dirt_weight_1: 0.9f,774 dirt_weight_2: 0.3f,775 dirt_weight_3: 0.f,776 dirt_balance: 0.374f,777 dirt_scale: float2(1.f),778// Smudges 779 smudges_weight: 0.0f,780 smudges_1_weight: 0.95f,781 smudges_2_weight: 0.4f,782 smudge_balance: 0.2f,783 smudge_scale: float2(1.f),784//Transform 785 texture_translate: float2(0.f),786 texture_rotate: 0.f,787 texture_scale: float2(1.f),788// Advanced 789 uv_space_index: 0,790 normal: ::state::normal()791);792 793 794// 6.5795export material Glass_Optical_LAK(*)796[[797 ::anno::author("NVIDIA vMaterials"),798 ::anno::display_name("Glass Clear - Lanthanum Crown"),799 ::anno::description(DESCRIPTION),800 ::anno::copyright_notice(COPYRIGHT),801 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_LAK.png"),802 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown"))803]] = Glass_Optical804(805 infinite_tiling: false,806 thin_walled: false,807 ior: 1.65425,808 abbe_number: 58.26f,809 roughness: 0.f,810 units_absorption_thickness: unit_cm ,811 absorption_thickness: 1.f,812 transmittance: color(1.0f),813// Coating 814 coating_reflectivity: 0.0f,815 coating_tint: color(1.f, 1.f, 1.f),816// Frit 817 frit_weight: 0.f,818 frit_color: color(.5f),819 frit_size: 0.3f,820 frit_roughness: 0.286f,821 frit_scale: float2(1.f),822 reflection_transmission_balance: 0.f,823// Dirt 824 dirt_layer_weight: 0.0,825 dirt_brightness: 0.75f,826 dirt_weight_1: 0.9f,827 dirt_weight_2: 0.3f,828 dirt_weight_3: 0.f,829 dirt_balance: 0.374f,830 dirt_scale: float2(1.f),831// Smudges 832 smudges_weight: 0.0f,833 smudges_1_weight: 0.95f,834 smudges_2_weight: 0.4f,835 smudge_balance: 0.2f,836 smudge_scale: float2(1.f),837//Transform 838 texture_translate: float2(0.f),839 texture_rotate: 0.f,840 texture_scale: float2(1.f),841// Advanced 842 uv_space_index: 0,843 normal: ::state::normal()844);845 846 847// 6.6848export material Glass_Optical_SK(*)849[[850 ::anno::author("NVIDIA vMaterials"),851 ::anno::display_name("Glass Clear - Dense Crown"),852 ::anno::description(DESCRIPTION),853 ::anno::copyright_notice(COPYRIGHT),854 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_SK.png"),855 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown"))856]] = Glass_Optical857(858 infinite_tiling: false,859 thin_walled: false,860 ior: 1.59142,861 abbe_number: 61.02f,862 roughness: 0.f,863 units_absorption_thickness: unit_cm ,864 absorption_thickness: 1.f,865 transmittance: color(1.0f),866// Coating 867 coating_reflectivity: 0.0f,868 coating_tint: color(1.f, 1.f, 1.f),869// Frit 870 frit_weight: 0.f,871 frit_color: color(.5f),872 frit_size: 0.3f,873 frit_roughness: 0.286f,874 frit_scale: float2(1.f),875 reflection_transmission_balance: 0.f,876// Dirt 877 dirt_layer_weight: 0.0,878 dirt_brightness: 0.75f,879 dirt_weight_1: 0.9f,880 dirt_weight_2: 0.3f,881 dirt_weight_3: 0.f,882 dirt_balance: 0.374f,883 dirt_scale: float2(1.f),884// Smudges 885 smudges_weight: 0.0f,886 smudges_1_weight: 0.95f,887 smudges_2_weight: 0.4f,888 smudge_balance: 0.2f,889 smudge_scale: float2(1.f),890//Transform 891 texture_translate: float2(0.f),892 texture_rotate: 0.f,893 texture_scale: float2(1.f),894// Advanced 895 uv_space_index: 0,896 normal: ::state::normal()897);898 899 900// 6.7901export material Glass_Optical_SSK(*)902[[903 ::anno::author("NVIDIA vMaterials"),904 ::anno::display_name("Glass Clear - Extra Dense Crown"),905 ::anno::description(DESCRIPTION),906 ::anno::copyright_notice(COPYRIGHT),907 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_SSK.png"),908 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown"))909]] = Glass_Optical910(911 infinite_tiling: false,912 thin_walled: false,913 ior: 1.62508,914 abbe_number: 52.99f,915 roughness: 0.f,916 units_absorption_thickness: unit_cm ,917 absorption_thickness: 1.f,918 transmittance: color(1.0f),919// Coating 920 coating_reflectivity: 0.0f,921 coating_tint: color(1.f, 1.f, 1.f),922// Frit 923 frit_weight: 0.f,924 frit_color: color(.5f),925 frit_size: 0.3f,926 frit_roughness: 0.286f,927 frit_scale: float2(1.f),928 reflection_transmission_balance: 0.f,929// Dirt 930 dirt_layer_weight: 0.0,931 dirt_brightness: 0.75f,932 dirt_weight_1: 0.9f,933 dirt_weight_2: 0.3f,934 dirt_weight_3: 0.f,935 dirt_balance: 0.374f,936 dirt_scale: float2(1.f),937// Smudges 938 smudges_weight: 0.0f,939 smudges_1_weight: 0.95f,940 smudges_2_weight: 0.4f,941 smudge_balance: 0.2f,942 smudge_scale: float2(1.f),943//Transform 944 texture_translate: float2(0.f),945 texture_rotate: 0.f,946 texture_scale: float2(1.f),947// Advanced 948 uv_space_index: 0,949 normal: ::state::normal()950);951 952 953// 6.8954export material Glass_Optical_BAK(*)955[[956 ::anno::author("NVIDIA vMaterials"),957 ::anno::display_name("Glass Clear - Barium Crown"),958 ::anno::description(DESCRIPTION),959 ::anno::copyright_notice(COPYRIGHT),960 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_BAK.png"),961 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown"))962]] = Glass_Optical963(964 infinite_tiling: false,965 thin_walled: false,966 ior: 1.57125f,967 abbe_number: 55.7f,968 roughness: 0.f,969 units_absorption_thickness: unit_cm ,970 absorption_thickness: 1.f,971 transmittance: color(1.0f),972// Coating 973 coating_reflectivity: 0.0f,974 coating_tint: color(1.f, 1.f, 1.f),975// Frit 976 frit_weight: 0.f,977 frit_color: color(.5f),978 frit_size: 0.3f,979 frit_roughness: 0.286f,980 frit_scale: float2(1.f),981 reflection_transmission_balance: 0.f,982// Dirt 983 dirt_layer_weight: 0.0,984 dirt_brightness: 0.75f,985 dirt_weight_1: 0.9f,986 dirt_weight_2: 0.3f,987 dirt_weight_3: 0.f,988 dirt_balance: 0.374f,989 dirt_scale: float2(1.f),990// Smudges 991 smudges_weight: 0.0f,992 smudges_1_weight: 0.95f,993 smudges_2_weight: 0.4f,994 smudge_balance: 0.2f,995 smudge_scale: float2(1.f),996//Transform 997 texture_translate: float2(0.f),998 texture_rotate: 0.f,999 texture_scale: float2(1.f),1000// Advanced 1001 uv_space_index: 0,1002 normal: ::state::normal()1003);1004 1005 1006 1007// 6.91008export material Glass_Optical_BALF(*)1009[[1010 ::anno::author("NVIDIA vMaterials"),1011 ::anno::display_name("Glass Clear - Barium Light Flint"),1012 ::anno::description(DESCRIPTION),1013 ::anno::copyright_notice(COPYRIGHT),1014 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_BALF.png"),1015 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "flint"))1016]] = Glass_Optical1017(1018 infinite_tiling: false,1019 thin_walled: false,1020 ior: 1.58212,1021 abbe_number: 53.59f,1022 roughness: 0.f,1023 units_absorption_thickness: unit_cm ,1024 absorption_thickness: 1.f,1025 transmittance: color(1.0f),1026// Coating 1027 coating_reflectivity: 0.0f,1028 coating_tint: color(1.f, 1.f, 1.f),1029// Frit 1030 frit_weight: 0.f,1031 frit_color: color(.5f),1032 frit_size: 0.3f,1033 frit_roughness: 0.286f,1034 frit_scale: float2(1.f),1035 reflection_transmission_balance: 0.f,1036// Dirt 1037 dirt_layer_weight: 0.0,1038 dirt_brightness: 0.75f,1039 dirt_weight_1: 0.9f,1040 dirt_weight_2: 0.3f,1041 dirt_weight_3: 0.f,1042 dirt_balance: 0.374f,1043 dirt_scale: float2(1.f),1044// Smudges 1045 smudges_weight: 0.0f,1046 smudges_1_weight: 0.95f,1047 smudges_2_weight: 0.4f,1048 smudge_balance: 0.2f,1049 smudge_scale: float2(1.f),1050//Transform 1051 texture_translate: float2(0.f),1052 texture_rotate: 0.f,1053 texture_scale: float2(1.f),1054// Advanced 1055 uv_space_index: 0,1056 normal: ::state::normal()1057);1058 1059 1060// 6.101061export material Glass_Optical_K(*)1062[[1063 ::anno::author("NVIDIA vMaterials"),1064 ::anno::display_name("Glass Clear - Crown"),1065 ::anno::description(DESCRIPTION),1066 ::anno::copyright_notice(COPYRIGHT),1067 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_K.png"),1068 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown"))1069]] = Glass_Optical1070(1071 infinite_tiling: false,1072 thin_walled: false,1073 ior: 1.52458f,1074 abbe_number: 59.22f,1075 roughness: 0.f,1076 units_absorption_thickness: unit_cm ,1077 absorption_thickness: 1.f,1078 transmittance: color(1.0f),1079// Coating 1080 coating_reflectivity: 0.0f,1081 coating_tint: color(1.f, 1.f, 1.f),1082// Frit 1083 frit_weight: 0.f,1084 frit_color: color(.5f),1085 frit_size: 0.3f,1086 frit_roughness: 0.286f,1087 frit_scale: float2(1.f),1088 reflection_transmission_balance: 0.f,1089// Dirt 1090 dirt_layer_weight: 0.0,1091 dirt_brightness: 0.75f,1092 dirt_weight_1: 0.9f,1093 dirt_weight_2: 0.3f,1094 dirt_weight_3: 0.f,1095 dirt_balance: 0.374f,1096 dirt_scale: float2(1.f),1097// Smudges 1098 smudges_weight: 0.0f,1099 smudges_1_weight: 0.95f,1100 smudges_2_weight: 0.4f,1101 smudge_balance: 0.2f,1102 smudge_scale: float2(1.f),1103//Transform 1104 texture_translate: float2(0.f),1105 texture_rotate: 0.f,1106 texture_scale: float2(1.f),1107// Advanced 1108 uv_space_index: 0,1109 normal: ::state::normal()1110);1111 1112 1113// 6.111114export material Glass_Optical_KF(*)1115[[1116 ::anno::author("NVIDIA vMaterials"),1117 ::anno::display_name("Glass Clear - Crown Flint"),1118 ::anno::description(DESCRIPTION),1119 ::anno::copyright_notice(COPYRIGHT),1120 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_KF.png"),1121 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "crown", "flint"))1122]] = Glass_Optical1123(1124 infinite_tiling: false,1125 thin_walled: false,1126 ior: 1.52588f,1127 abbe_number: 51.26f,1128 roughness: 0.f,1129 units_absorption_thickness: unit_cm ,1130 absorption_thickness: 1.f,1131 transmittance: color(1.0f),1132// Coating 1133 coating_reflectivity: 0.0f,1134 coating_tint: color(1.f, 1.f, 1.f),1135// Frit 1136 frit_weight: 0.f,1137 frit_color: color(.5f),1138 frit_size: 0.3f,1139 frit_roughness: 0.286f,1140 frit_scale: float2(1.f),1141 reflection_transmission_balance: 0.f,1142// Dirt 1143 dirt_layer_weight: 0.0,1144 dirt_brightness: 0.75f,1145 dirt_weight_1: 0.9f,1146 dirt_weight_2: 0.3f,1147 dirt_weight_3: 0.f,1148 dirt_balance: 0.374f,1149 dirt_scale: float2(1.f),1150// Smudges 1151 smudges_weight: 0.0f,1152 smudges_1_weight: 0.95f,1153 smudges_2_weight: 0.4f,1154 smudge_balance: 0.2f,1155 smudge_scale: float2(1.f),1156//Transform 1157 texture_translate: float2(0.f),1158 texture_rotate: 0.f,1159 texture_scale: float2(1.f),1160// Advanced 1161 uv_space_index: 0,1162 normal: ::state::normal()1163);1164 1165 1166// 6.121167export material Glass_Optical_LASF(*)1168[[1169 ::anno::author("NVIDIA vMaterials"),1170 ::anno::display_name("Glass Clear - Lanthanum Dense Flint"),1171 ::anno::description(DESCRIPTION),1172 ::anno::copyright_notice(COPYRIGHT),1173 ::anno::thumbnail("./.thumbs/Glass_Optical.Glass_Optical_LASF.png"),1174 ::anno::key_words(string[]("glass", "layered", "optics", "optical", "abbe", "measured", "lens", "shiny", "AEC", "transparent", "clear", "smooth", "refractive", "reflective", "flint"))1175]] = Glass_Optical1176(1177 infinite_tiling: false,1178 thin_walled: false,1179 ior: 1.83935,1180 abbe_number: 37.04f,1181 roughness: 0.f,1182 units_absorption_thickness: unit_cm ,1183 absorption_thickness: 1.f,1184 transmittance: color(1.0f),1185// Coating 1186 coating_reflectivity: 0.0f,1187 coating_tint: color(1.f, 1.f, 1.f),1188// Frit 1189 frit_weight: 0.f,1190 frit_color: color(.5f),1191 frit_size: 0.3f,1192 frit_roughness: 0.286f,1193 frit_scale: float2(1.f),1194 reflection_transmission_balance: 0.f,1195// Dirt 1196 dirt_layer_weight: 0.0,1197 dirt_brightness: 0.75f,1198 dirt_weight_1: 0.9f,1199 dirt_weight_2: 0.3f,1200 dirt_weight_3: 0.f,