Team Ai
Datasetpublic

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.

sourceHugging Faceotherupdated 29d agoView on Hugging Face
0likes3.7kdownloads
Silk_Plain_Chiffon.mdl569 linesDownload Raw Back to Fabric
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 36mdl 1.7;37 38import ::anno::*;39import ::base::*;40import ::df::*;41import ::math::*;42import ::state::*;43import ::tex::*;44import ::nvidia::core_definitions::dimension;45import ::nvidia::core_definitions::blend_colors;46 47 48const string COPYRIGHT = 49" Copyright 2024 NVIDIA Corporation. All rights reserved.\n"50" MDL MATERIALS ARE PROVIDED PURSUANT TO AN END USER LICENSE  AGREEMENT,\n"51" WHICH WAS ACCEPTED IN ORDER TO GAIN ACCESS TO THIS FILE.  IN PARTICULAR,\n" 52" THE MDL MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n"53" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n"54" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF\n" 55" COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL NVIDIA\n"56" CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY\n"57" GENERAL, SPECIAL,  INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN\n"58" AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR\n"59" INABILITY TO USE THE MDL MATERIALS OR FROM OTHER DEALINGS IN THE MDL MATERIALS.\n";60 61const string DESCRIPTION = "A plain chiffon silk material with creases.";62					63annotation preview_scale( float f);64 65int lowbias32(int x)66{67    x ^= x >>> 16;68    x *= 0x7feb352d;69    x ^= x >>> 15;70    x *= 0x846ca68b;71    x ^= x >>> 16;72    return x;73}74 75float remap(float input, float low_1, float high_1, float low_2, float high_2)76{77	return low_2 + ((input - low_1) * (high_2 - low_2))/(high_1 - low_1);78}79 80float f_n(float n, float a,  float h, float l) {81	float k = ::math::fmod(n + h * 12.f, 12.f);82	83	return l - a * ::math::max(-1.0f, ::math::min(::math::min(k-3.0f, 9.0f-k), 1.0f));84}85 86float2x2 invert_2x2(float2x2 M)87{88	float det = M[0][0]*M[1][1] - M[0][1]*M[1][0];89	//https://www.chilimath.com/lessons/advanced-algebra/inverse-of-a-2x2-matrix/90	return (1.0 / det) * float2x2(M[1][1], -M[0][1], -M[1][0], M[0][0]);91}92 93float uint2float(int x)94{95    return float(x & 0x7FFFFFFF) + (x < 0 ? 2147483648.0 : 0.0);96}97 98float2 rnd22(int2 p) {99	float2 ret_val = float2(100		uint2float(lowbias32(p[0] + lowbias32(p[1]))) / 4294967296.f,101		uint2float(lowbias32(p[0] + 32000 + lowbias32(p[1]))) / 4294967296.f102	);103    return ret_val;104}    105 106float histogram_range(float input, float range = 1.0f, float position = 0.5f)107{	108	float low = ::math::clamp(1.0 - ::math::min(((1.0 - position) + range * 0.5), (1.0 - position) * 2), 0.0, 1.0);109	float high = ::math::clamp(::math::min((position + range * 0.5 ), position * 2.0), 0.0, 1.0);110	return ::math::lerp(low, high, input);111}112 113float histogram_scan_big(float input, float width, float position)114{115	return ::math::clamp(116				remap(input,117					::math::lerp(-width, 1.0, position),118					::math::lerp(0.0, 1.0 + width, position),119					0.0,120					1.0),121				0.0,122				1.0);123}124 125float3 rgb2hsl(float3 c)126[[127	::anno::description("Converts a color value to HSL. The function outputs the hue to \n"128						"lie in the range from 0.0-1.0."),129	::anno::author("NVIDIA vMaterials")130]]131{132	float3 hsl;133	float cMax = ::math::max(::math::max(c.x, c.y), c.z);134	float cMin = ::math::min(::math::min(c.x, c.y), c.z);135	float delta = cMax - cMin;136	137	hsl.z = (cMax + cMin) / 2.0;	138	hsl.x = ((cMax == cMin) ? 0 :139		(cMax == c.x) ? (c.y - c.z) / delta + ((c.z > c.y) ? 6.0f : 0.0f):140		(cMax == c.y) ? (c.z - c.x) / delta + 2.0 : (c.x - c.y) / delta + 4.0) / 6.0f;141	hsl.y = (hsl.z == 0.0 || hsl.z == 1.0) ? 0.0 : delta / (1.0 - ::math::abs(2.0 * hsl.z - 1.0));142	return hsl;143}144 145color hsl2rgb(float3 hsl)146[[147	::anno::description("Converts a HSL value back to a color. Note that the hue is expected to \n"148						"lie in the range from 0.0-1.0."),149	::anno::author("NVIDIA vMaterials")150]]151{152	float h = hsl.x, s = hsl.y, l = hsl.z;153	float a = s * ::math::min(l, 1.0f - l);154	return color(f_n(0.0, a, h, l),155				f_n(8.0, a, h, l),156				f_n(4.0, a, h, l));	157}158 159struct vm_coordinates{160	float2 uv;161	float rotation;162	int uv_space_index;163	float4 carry;164};165 166enum vm_mono_select 167[[168    ::anno::description("Modes for the creation of a gray-scale value from a color."),169    ::anno::hidden()170]]171{172	mono_r = 0,173	mono_g = 1,174	mono_b = 2,175	mono_a = 3,176	mono_average = 4177};178 179vm_coordinates vm_coord180(181	float2 translation	= float2(0.0f, 0.0) [[182		::anno::display_name("Translation"),183		::anno::description("Translates the coordinates.")184	]],185	float rotation 		= 0.0f [[186		::anno::display_name("Rotation"),187		::anno::description("Rotates the coordinates in degrees.")188	]],189	float2 scaling		= float2(1.0f, 1.0f) [[190		::anno::display_name("Scaling"),191		::anno::description("Scales the coordinates.")192	]],	193	uniform int uv_space = 0 [[194		::anno::display_name("UV Space"),195		::anno::description("Chose the UV space.")196	]]197)198[[199		::anno::display_name("vm Transform"),200		::anno::description("Generates coordinates to be used in vm_lookup functions.")201]]202{203	vm_coordinates uv;204	::base::texture_coordinate_info info = ::base::coordinate_source( ::base::texture_coordinate_uvw, uv_space);205	uv.rotation = (rotation * 3.1415926535897932384626433832f) / 180.f;206	uv.uv = float2(info.position.x, info.position.y);207	float sine   = ::math::sin(uv.rotation);208	float cosine = ::math::cos(uv.rotation);209	float2x2 rot = float2x2(cosine, -sine, sine, cosine);210	uv.uv = rot * uv.uv;211	uv.uv /= scaling;212	uv.uv += translation;213	// Translation before or after rotation?214	return uv;215}216 217vm_coordinates vm_coord_post_scale(218	vm_coordinates uv = vm_coord(),219	float2 scale = float2(1.0f)220)221{222	uv.uv /= scale;223	return uv;224}225 226vm_coordinates vm_coord_warp(227	float warp_value,228	vm_coordinates uv_in,229	float warp_intensity = 0.1f,230	bool warp_u_direction = true,231	bool warp_v_direction = true232	233)234{235	vm_coordinates uv = uv_in;236	uv.uv = uv_in.uv + float2(warp_u_direction?1.0:0.0, warp_v_direction?1.0:0.0) * warp_value * warp_intensity;237	return uv;238}239 240 241::base::texture_return vm_tex_lookup(242	uniform texture_2d tex,243	vm_coordinates uv = vm_coord(),244	uniform vm_mono_select mono_source = mono_a,245	float4 scale = float4(1.0f))246{247	float mono;248	float4 lookup = ::tex::lookup_float4(tex, uv.uv, ::tex::wrap_repeat, ::tex::wrap_repeat) * scale;249	switch( mono_source ) {250		case mono_r: mono = lookup.x;251			break;252		case mono_g: mono = lookup.y;253			break;254		case mono_b: mono = lookup.z;255			break;256		case mono_a: mono = lookup.w;257			break;258		case mono_average: mono = ::math::average(float3(lookup.x, lookup.y, lookup.z));259			break;260	}261	return ::base::texture_return(color(lookup.x, lookup.y, lookup.z), mono);262}263 264float3 vm_tex_normal_lookup(265	uniform texture_2d tex,266	vm_coordinates uv = vm_coord(),267	float strength = 1.0f268)269{270	float rot = uv.rotation;271	// Lookup and convert normal texture to -1 ... 1 range272	float3 norm = (::tex::lookup_float3(tex, uv.uv, ::tex::wrap_repeat, ::tex::wrap_repeat) - float3(.5f)) * 2.0f;273	norm = ::math::normalize(norm * float3(strength, strength, 1.0));274	// if any rotation happened prior to the lookup, compensate for it275	norm = float3(::math::cos(rot) * norm.x - ::math::sin(rot) * norm.y,276					::math::sin(rot) * norm.x + ::math::cos(rot) * norm.y,277					norm.z);278	return norm.x * ::state::texture_tangent_u(uv.uv_space_index) +279			norm.y * ::state::texture_tangent_v(uv.uv_space_index) +280			norm.z * ::state::normal();281}282 283// Returns the normal n in tangent space, given n is in internal space.284float3 transform_internal_to_tangent(float3 n)285[[ 286    anno::hidden() 287]]288{289    return290        n.x* float3(state::texture_tangent_u(0).x,state::texture_tangent_v(0).x,state::normal().x)+291        n.y* float3(state::texture_tangent_u(0).y,state::texture_tangent_v(0).y,state::normal().y)+292        n.z* float3(state::texture_tangent_u(0).z,state::texture_tangent_v(0).z,state::normal().z);293}294 295// Returns the normal n in internal space, given n is in tangent space.296float3 transform_tangent_to_internal(float3 n)297[[ 298    anno::hidden() 299]]300{301    return  state::texture_tangent_u(0) * n.x +302            state::texture_tangent_v(0) * n.y +303            state::normal() * n.z ;304}305 306float3 add_detail_normal(float3 nd = state::normal(), float3 n = state::normal())307{308    // http://blog.selfshadow.com/publications/blending-in-detail/309    float3 n_t = transform_internal_to_tangent(n);310    float3 nd_t = transform_internal_to_tangent(nd);311 312    n_t=n_t + float3(0.,0.,1.);313    nd_t = nd_t *  float3(-1.,-1.,1.);314    n = n_t*math::dot(n_t, nd_t)/n_t.z - nd_t;315    return ::math::normalize(transform_tangent_to_internal(n));316}317 318 319float3 vm_tex_infinite_normal(320	uniform texture_2d tex = texture_2d(),321	vm_coordinates uv = vm_coord(),322	float3 average_color = float3(0.5f),323	float patch_size = 1.0,324	float normal_strength = 1.0325)326{327	float2 uv_in = uv.uv;328	329	float3 O = float3(0.f);330	float2x2 M0 = float2x2(1.f,0.f, 0.5f, ::math::sqrt(3.f)/2.f);331	float2x2 M = invert_2x2(M0); // transform matrix <-> tilted space332	333	float2 U = uv_in;334	float2 V = M * (uv.uv / patch_size); //pre-tilted hexa coordinates335	int2 I = int2(::math::floor(V))+int2(935); // hexa-tile id336	337	// The mean color needs to be determined in Photoshop then to make the338	// average color work out, take the float value and calculate the apropriate339	// mean value as (value^(1/2.2))340 341	float3 m = average_color;342 343	float3 F = float3(::math::frac(V)[0], ::math::frac(V)[1], 0.f), W;344	F[2] = 1.0 - F[0] - F[1]; // local hexa coordinates345	346	if( F[2] > 0.f )347		O = (W[0] = F[2]) * (( ::tex::lookup_float3(tex, U-rnd22(I))) - m)348		  + (W[1] = F[1]) * (( ::tex::lookup_float3(tex, U-rnd22(I+int2(0,1)))) - m)349		  + (W[2] = F[0]) * (( ::tex::lookup_float3(tex, U-rnd22(I+int2(1,0)))) - m);350	else351		O = (W[0] =      -F[2]) * (( ::tex::lookup_float3(tex, U-rnd22(I+int2(1))))   - m)352	      + (W[1] = 1.f - F[1]) * (( ::tex::lookup_float3(tex, U-rnd22(I+int2(1, 0)))) - m)353		  + (W[2] = 1.f - F[0]) * (( ::tex::lookup_float3(tex, U-rnd22(I+int2(0, 1)))) - m);354	O = m + O/::math::length(W);355	O = ::math::clamp( (O), 0.0, 1.0);356	357	float3 norm = (O - float3(.5f)) * 2.0f;358	norm = ::math::normalize(norm * float3(normal_strength, normal_strength, 1.0));359	// if any rotation happened prior to the lookup, compensate for it360	norm = float3(::math::cos(uv.rotation) * norm.x - ::math::sin(uv.rotation) * norm.y,361					::math::sin(uv.rotation) * norm.x + ::math::cos(uv.rotation) * norm.y,362					norm.z);363	return norm.x * ::state::texture_tangent_u(uv.uv_space_index) +364			norm.y * ::state::texture_tangent_v(uv.uv_space_index) +365			norm.z * ::state::normal();	366}367 368export material Silk_Plain_Chiffon(369    color fabric_color = color(0.830770f, 0.830770f, 0.830770f) [[370        ::anno::description("Sets the color of the fabric."),371        ::anno::display_name("Color"),372        ::anno::in_group("Appearance"),373        ::anno::ui_order(0)374    ]],375    float roughness = 0.32f [[376        ::anno::description("Higher roughness values lead to bigger highlights and blurrier reflections."),377        ::anno::display_name("Roughness"),378        ::anno::in_group("Appearance"),379        ::anno::hard_range(0.f, 1.f),380        ::anno::ui_order(1)381    ]],382    float fabric_reflection = 0.6f [[383        ::anno::description("Amount of reflection, higher numbers provide more reflection."),384        ::anno::display_name("Reflection Weight"),385        ::anno::in_group("Appearance"),386        ::anno::hard_range(0.f, 1.f),387        ::anno::ui_order(2)388    ]],389    float sheen_weight = 0.95f [[390        ::anno::description("Adds a fuzzy, soft appearance around the material when viewed at grazing angles."),391        ::anno::display_name("Sheen Weight"),392        ::anno::in_group("Appearance"),393        ::anno::hard_range(0.f, 1.f),394        ::anno::ui_order(3)395    ]],396    float translucency_amount = 0.4f [[397        ::anno::description("A value of 0 makes the material completely opaque. Increasing the parameter value lets more light pass through the material."),398        ::anno::display_name("Translucency Amount"),399        ::anno::in_group("Appearance"),400        ::anno::hard_range(0.f, 1.f),401        ::anno::ui_order(4)402    ]],403    float fabric_bump_strength = 1.f [[404        ::anno::description("Specifies the strength of the bump."),405        ::anno::display_name("Bump Strength"),406        ::anno::in_group("Appearance"),407        ::anno::hard_range(0.f, 2.f),408        ::anno::soft_range(0.f, 1.f),409        ::anno::ui_order(5)410    ]],411    float secondary_bump_size = 0.5f [[412        ::anno::description("The strength of the wrinkles bump map."),413        ::anno::display_name("Wrinkles Bump Strength"),414        ::anno::in_group("Appearance"),415        ::anno::soft_range(0.f, 1.f),416        ::anno::ui_order(6)417    ]],418    float wrinkles_bump_scale = 1.0f [[419        ::anno::description("Controls the size of the wrinkles that appear on the fabric surface."),420        ::anno::display_name("Wrinkles Bump Scale"),421        ::anno::in_group("Appearance"),422        ::anno::hard_range(0.f, 2.f),423        ::anno::ui_order(7)424    ]],425    float warp_intensity = 0.f [[426        ::anno::description("Adds a little bit of distortion to break up the perfectly regular appearance of the weaving."),427        ::anno::display_name("Warp Intensity"),428        ::anno::in_group("Appearance"),429        ::anno::soft_range(0.f, 1.f),430        ::anno::ui_order(8)431    ]],432    float2 texture_translate = float2(0.f) [[433        ::anno::description("Controls the position of the texture."),434        ::anno::display_name("Texture Translate"),435        ::anno::in_group("Transform"),436        ::anno::ui_order(9)437    ]],438    float texture_rotate = 0.f [[439        ::anno::description("Rotates angle of the texture in degrees."),440        ::anno::display_name("Texture Rotate"),441        ::anno::in_group("Transform"),442        ::anno::soft_range(0.f, 360.f),443        ::anno::ui_order(10)444    ]],445    float2 texture_scale = float2(1.0f) [[446        ::anno::description("Larger numbers increase the size."),447        ::anno::display_name("Texture Scale"),448        ::anno::in_group("Transform"),449		::nvidia::core_definitions::dimension(float2(1.0f, 1.0f)),450		::preview_scale(float(3.5f)),451        ::anno::ui_order(11)452    ]],453    uniform int uv_space_index = 0 [[454        ::anno::description("Uses selected UV space for material."),455        ::anno::display_name("UV Space Index"),456        ::anno::in_group("Transform"),457        ::anno::ui_order(12)458    ]],459    uniform bool roundcorners_enable = false [[460        ::anno::description("Enables the round corner effect. Comes at a slight performance cost as additional raytracing calls are required to evaluate the round corner effect."),461        ::anno::display_name("Enable Round Corners"),462        ::anno::in_group("Round Corners"),463        ::anno::ui_order(13)464    ]],465    uniform float roundcorners_radius_mm = 1.f [[466        ::anno::description("Radius of the rounded corners in millimeters."),467        ::anno::display_name("Round Corner Radius (mm)"),468        ::anno::in_group("Round Corners"),469        ::anno::soft_range(0.f, 10.f),470        ::anno::ui_order(14)471    ]],472    uniform bool roundcorners_across_materials = false [[473        ::anno::description("Applies the round corner effect across different materials when enabled."),474        ::anno::display_name("Across Materials"),475        ::anno::in_group("Round Corners"),476        ::anno::ui_order(15)477    ]])478[[479	::anno::author("NVIDIA vMaterials"),480	::anno::contributor("Rüdiger Raab"),481	::anno::display_name("Silk Plain Chiffon - White"),482	::anno::description(DESCRIPTION),483	::anno::copyright_notice(COPYRIGHT),484	::anno::thumbnail("./.thumbs/Silk_Plain_Chiffon.Silk_Plain_Chiffon.png"),485	::anno::key_words(string[]("fabric", "translucent", "silk", "woven", "chiffon", "transparent", "translucent", "fashion", "design", "white", "light", "neutral"))486]]487 = 488    let {489        bool tmp0 = false;490		float2 texture_rescale = texture_scale * 0.11f;  // texture covers 11 cm, scale up so it covers 1m per default491		492		texture_2d multi_tex = texture_2d("./textures/silk_plain_chiffon_R_rough_G_ao_B_height.jpg", ::tex::gamma_linear);493		texture_2d warp_tex  = texture_2d("./textures/french_terry_fabric_warp.png", ::tex::gamma_linear);494		texture_2d norm_tex  = texture_2d("./textures/silk_plain_chiffon_norm.jpg", ::tex::gamma_linear);495		texture_2d diff_tex  = texture_2d("./textures/silk_plain_chiffon_R_diff.jpg", ::tex::gamma_linear);496		texture_2d norm2_tex = texture_2d("./textures/silk_plain_chiffon_norm2.jpg", ::tex::gamma_linear);497		498        material_surface tmp1(::df::custom_curve_layer(0.179999992f, 1.f, 3.01999998f, fabric_reflection * 0.3f, ::df::microfacet_ggx_smith_bsdf(histogram_range(::math::pow(float3(vm_tex_lookup(multi_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_a, float4(1.f)).tint).x, 1.f), 0.98999995f, roughness * 0.300000012f + 0.600000024f) * histogram_range(::math::pow(float3(vm_tex_lookup(multi_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_a, float4(1.f)).tint).x, 1.f), 0.98999995f, roughness * 0.300000012f + 0.600000024f), histogram_range(::math::pow(float3(vm_tex_lookup(multi_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_a, float4(1.f)).tint).x, 1.f), 0.98999995f, roughness * 0.300000012f + 0.600000024f) * histogram_range(::math::pow(float3(vm_tex_lookup(multi_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_a, float4(1.f)).tint).x, 1.f), 0.98999995f, roughness * 0.300000012f + 0.600000024f), color(1.f, 1.f, 1.f), color(1.f, 1.f, 1.f), ::state::texture_tangent_u(0), ::df::scatter_reflect), ::df::weighted_layer(sheen_weight, ::df::sheen_bsdf(0.0700000003f, hsl2rgb(rgb2hsl(float3(fabric_color)) * float3(1.f, 0.74000001f, 1.f)), color(1.f, 1.f, 1.f), ::df::weighted_layer(translucency_amount * 0.200000003f, ::df::diffuse_transmission_bsdf(nvidia::core_definitions::blend_colors(hsl2rgb(float3(rgb2hsl(float3(fabric_color)).x, ::math::min(rgb2hsl(float3(fabric_color)).y, ::math::pow(rgb2hsl(float3(fabric_color)).z, 0.149999991f)), rgb2hsl(float3(fabric_color)).z)), color(::math::pow(histogram_scan_big(1.f - float3(vm_tex_lookup(multi_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_a, float4(1.f)).tint).z, 0.810000002f, 0.319999993f), 2.20000005f)), ::base::color_layer_multiply, 1.f, true).tint), ::df::weighted_layer(1.f, ::df::diffuse_reflection_bsdf(::math::pow(nvidia::core_definitions::blend_colors(nvidia::core_definitions::blend_colors(fabric_color, color(::math::lerp(1.f, vm_tex_lookup(diff_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_r, float4(1.f)).mono, 0.479999989f)), ::base::color_layer_overlay, 1.f, true).tint, color(histogram_scan_big(float3(vm_tex_lookup(multi_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_a, float4(1.f)).tint).y, 0.680000007f, 0.229999989f)), ::base::color_layer_multiply, fabric_bump_strength, true).tint, 1.86000001f), 0.f), bsdf(), add_detail_normal(vm_tex_normal_lookup(norm_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), fabric_bump_strength), vm_tex_infinite_normal(norm2_tex, vm_coord_post_scale(vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), float2(wrinkles_bump_scale * 3.f + 0.300000012f)), float3(0.5f, 0.5f, 1.f), 3.f, secondary_bump_size * 2.5f))), add_detail_normal(vm_tex_normal_lookup(norm_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), fabric_bump_strength), vm_tex_infinite_normal(norm2_tex, vm_coord_post_scale(vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), float2(wrinkles_bump_scale * 3.f + 0.300000012f)), float3(0.5f, 0.5f, 1.f), 3.f, secondary_bump_size * 2.5f)))), ::df::weighted_layer(translucency_amount * 0.200000003f, ::df::diffuse_transmission_bsdf(nvidia::core_definitions::blend_colors(hsl2rgb(float3(rgb2hsl(float3(fabric_color)).x, ::math::min(rgb2hsl(float3(fabric_color)).y, ::math::pow(rgb2hsl(float3(fabric_color)).z, 0.149999991f)), rgb2hsl(float3(fabric_color)).z)), color(::math::pow(histogram_scan_big(1.f - float3(vm_tex_lookup(multi_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_a, float4(1.f)).tint).z, 0.810000002f, 0.319999993f), 2.20000005f)), ::base::color_layer_multiply, 1.f, true).tint), ::df::weighted_layer(1.f, ::df::diffuse_reflection_bsdf(::math::pow(nvidia::core_definitions::blend_colors(nvidia::core_definitions::blend_colors(fabric_color, color(::math::lerp(1.f, vm_tex_lookup(diff_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_r, float4(1.f)).mono, 0.479999989f)), ::base::color_layer_overlay, 1.f, true).tint, color(histogram_scan_big(float3(vm_tex_lookup(multi_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_a, float4(1.f)).tint).y, 0.680000007f, 0.229999989f)), ::base::color_layer_multiply, fabric_bump_strength, true).tint, 1.86000001f), 0.f), bsdf(), add_detail_normal(vm_tex_normal_lookup(norm_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), fabric_bump_strength), vm_tex_infinite_normal(norm2_tex, vm_coord_post_scale(vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), float2(wrinkles_bump_scale * 3.f + 0.300000012f)), float3(0.5f, 0.5f, 1.f), 3.f, secondary_bump_size * 2.5f))), add_detail_normal(vm_tex_normal_lookup(norm_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), fabric_bump_strength), vm_tex_infinite_normal(norm2_tex, vm_coord_post_scale(vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), float2(wrinkles_bump_scale * 3.f + 0.300000012f)), float3(0.5f, 0.5f, 1.f), 3.f, secondary_bump_size * 2.5f))), add_detail_normal(vm_tex_normal_lookup(norm_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), fabric_bump_strength), vm_tex_infinite_normal(norm2_tex, vm_coord_post_scale(vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.1f, false, true), float2(wrinkles_bump_scale * 3.f + 0.3f)), float3(0.5f, 0.5f, 1.f), 3.f, secondary_bump_size * 2.5f))), add_detail_normal(vm_tex_normal_lookup(norm_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.1f, false, true), fabric_bump_strength), vm_tex_infinite_normal(norm2_tex, vm_coord_post_scale(vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), float2(wrinkles_bump_scale * 3.f + 0.300000012f)), float3(0.5f, 0.5f, 1.f), 3.f, secondary_bump_size * 2.5f))), material_emission(emission: edf(), intensity: color(0.f, 0.f, 0.f), mode: intensity_radiant_exitance));499        material_surface tmp2 = material_surface(scattering: bsdf(), emission: material_emission(emission: edf(), intensity: color(0.f, 0.f, 0.f), mode: intensity_radiant_exitance));500        color tmp3 = color(1.f, 1.f, 1.f);501        material_volume tmp4 = material_volume(scattering: vdf(), absorption_coefficient: color(0.f, 0.f, 0.f), scattering_coefficient: color(0.f, 0.f, 0.f), emission_intensity: color(0.f, 0.f, 0.f));502        material_geometry tmp5(float3(0.f), histogram_scan_big(::math::pow(vm_tex_lookup(diff_tex, vm_coord_warp(vm_tex_lookup(warp_tex, vm_coord(float2(0.f), 0.f, texture_rescale * float2(4.6500001f, 4.50999975f), 0), mono_a, float4(1.f)).mono, vm_coord(texture_translate, texture_rotate, texture_rescale, uv_space_index), warp_intensity * 0.100000001f, false, true), mono_r, float4(1.f)).mono, 2.f), 0.14f, 0.18f), roundcorners_enable ? ::state::rounded_corner_normal(roundcorners_radius_mm * 0.001f, roundcorners_across_materials, 1.f) : ::state::normal());503        hair_bsdf tmp6 = hair_bsdf();504    } in material(505            thin_walled: tmp0,506            surface: tmp1,     507            backface: tmp2,508            ior: tmp3,509            volume: tmp4,510            geometry: tmp5,511            hair: tmp6);512 513 514export material Silk_Plain_Chiffon_Shiny(*)515[[516	::anno::author("NVIDIA vMaterials"),517	::anno::contributor("Rüdiger Raab"),518	::anno::display_name("Silk Plain Chiffon - Shiny"),519	::anno::description(DESCRIPTION),520	::anno::copyright_notice(COPYRIGHT),521	::anno::thumbnail("./.thumbs/Silk_Plain_Chiffon.Silk_Plain_Chiffon_Shiny.png"),522	::anno::key_words(string[]("fabric", "translucent", "silk", "woven", "chiffon", "architecture", "translucent", "fashion", "design", "shiny", "white", "light", "neutral"))523]] = Silk_Plain_Chiffon(524	fabric_color:                  color(0.830770f, 0.830770f, 0.830770f),525	roughness:                     0.01f,526	fabric_reflection:             0.98f,527	sheen_weight:                  0.75f,528	translucency_amount:           0.12f,529	fabric_bump_strength:          1.0f,530	secondary_bump_size:           0.19f,531	wrinkles_bump_scale:            1.0f,532	warp_intensity:                0.0f,533	texture_translate:             float2(0.0f),534	texture_rotate:                0.0f,535	texture_scale:                 float2(1.0f),536	uv_space_index:                0,537	roundcorners_enable:           false,538	roundcorners_radius_mm:        1.0f,539	roundcorners_across_materials: false540);541 542 543export material Silk_Plain_Chiffon_Natural(*)544[[545	::anno::author("NVIDIA vMaterials"),546	::anno::contributor("Rüdiger Raab"),547	::anno::display_name("Silk Plain Chiffon - Natural"),548	::anno::description(DESCRIPTION),549	::anno::copyright_notice(COPYRIGHT),550	::anno::thumbnail("./.thumbs/Silk_Plain_Chiffon.Silk_Plain_Chiffon_Natural.png"),551	::anno::key_words(string[]("fabric", "translucent", "silk", "woven", "chiffon", "architecture", "translucent", "fashion", "design", "natural", "white", "light", "warm"))552]] = Silk_Plain_Chiffon(553	fabric_color:                  color(0.830770f, 0.830770f, 0.830770f),554	roughness:                     0.01f,555	fabric_reflection:             0.98f,556	sheen_weight:                  0.75f,557	translucency_amount:           0.12f,558	fabric_bump_strength:          1.0f,559	secondary_bump_size:           0.19f,560	wrinkles_bump_scale:           1.0f,561	warp_intensity:                0.0f,562	texture_translate:             float2(0.0f),563	texture_rotate:                0.0f,564	texture_scale:                 float2(1.0f),565	uv_space_index:                0,566	roundcorners_enable:           false,567	roundcorners_radius_mm:        1.0f,568	roundcorners_across_materials: false569);
AVSim/simulation-package · Team Ai