nx_gltf_skin_recipe_candidate_t340.nx source
↩ module page · 14 lines · 1089 B
1// Isolated composition candidate for the existing procedural generation caller.
2// No implicit hue/region; whole-surface model, not calibrated tissue or a per-part anatomical classification.
3import "nx_gltf_export_material_candidate_t340.nx"
4import "nx_nxa_texbake_lib.nx"
5func write_glb_skin_recipe(vbuf:*i64,fbuf:*i64,nv:i64,nf:i64,hue:i64,region:i64,path:*u8)->i64{
6 if hue<0||hue>SI_GENE_MAX||region<NTB_FACE||region>NTB_GENS{return -2}
7 let rgb:*i64=sys_mmap_try(3*8) as *i64;let mat:*i64=sys_mmap_try(GL_MAT_WORDS*8) as *i64
8 if (rgb as i64)<=0||(mat as i64)<=0{if (rgb as i64)>0{sys_munmap_direct(rgb as *u8,3*8)};if (mat as i64)>0{sys_munmap_direct(mat as *u8,GL_MAT_WORDS*8)};return -1}
9 ntb_albedo_genome(hue,region,rgb)
10 mat[GL_MAT_R]=si_linear_of_byte(rgb[0]);mat[GL_MAT_G]=si_linear_of_byte(rgb[1]);mat[GL_MAT_B]=si_linear_of_byte(rgb[2])
11 mat[GL_MAT_METALLIC]=0;mat[GL_MAT_ROUGHNESS]=ntb_rough_of_region(region)
12 let rc:i64=write_glb_material(vbuf,fbuf,nv,nf,mat,GL_MAT_WORDS,path)
13 sys_munmap_direct(rgb as *u8,3*8);sys_munmap_direct(mat as *u8,GL_MAT_WORDS*8);return rc
14}