/* tufts.inc * meshes + textures, derived from S McAvoy's "HilbertFlowers". */ #ifndef (tufts_include_temp) #declare tufts_include_temp = version; #version 3.8; #ifdef (View_POV_Include_Stack) #debug "including tufts.inc\n" #end #local blade_texture_1 = texture { pigment { gradient y colour_map { [0.000 rgbft <.918,1,.835,0,0>] [0.128 rgbft <0,1,0,0,0>] [1.000 rgbft <0,.824,0,0,0>] } } finish { ambient rgb <.1,.1,.1> brilliance 1 diffuse .6 phong_size 40 roughness .05 } }; #local blade_texture_2 = texture { pigment { gradient y colour_map { [0.000 rgbft <.918,1,.835,0,0>] [0.128 rgbft <.522,.769,.059,0,0>] [1.000 rgbft <.882,.941,.459,0,0>] } } finish { ambient rgb <.1,.1,.1> brilliance 1 diffuse .6 phong_size 40 roughness .05 } }; #local blade_mesh_0 = mesh2 { vertex_vectors { 34, <0.025,0.005,-0.024>, <0.000,0.000,0.000>, <-0.025,0.005,-0.024>, <0.022,0.116,0.001>, <0.000,0.112,0.023>, <-0.022,0.116,0.001>, <0.020,0.223,0.026>, <0.000,0.219,0.045>, <-0.020,0.223,0.026>, <0.018,0.326,0.051>, <0.000,0.322,0.068>, <-0.018,0.326,0.051>, <0.016,0.425,0.076>, <0.000,0.421,0.091>, <-0.016,0.425,0.076>, <0.013,0.520,0.101>, <0.000,0.517,0.114>, <-0.013,0.520,0.101>, <0.011,0.610,0.125>, <0.000,0.607,0.136>, <-0.011,0.610,0.125>, <0.009,0.697,0.150>, <0.000,0.694,0.159>, <-0.009,0.697,0.150>, <0.007,0.779,0.175>, <0.000,0.777,0.182>, <-0.007,0.779,0.175>, <0.004,0.857,0.200>, <0.000,0.855,0.205>, <-0.004,0.857,0.200>, <0.002,0.930,0.225>, <0.000,0.930,0.227>, <-0.002,0.930,0.225>, <0.000,1.000,0.250> } normal_vectors { 24, <0.707,-0.139,0.693>, <-0.707,-0.139,0.693>, <0.707,-0.144,0.692>, <-0.707,-0.144,0.692>, <0.707,-0.149,0.691>, <-0.707,-0.149,0.691>, <0.707,-0.155,0.690>, <-0.707,-0.155,0.690>, <0.707,-0.161,0.689>, <-0.707,-0.161,0.689>, <0.707,-0.168,0.687>, <-0.707,-0.168,0.687>, <0.707,-0.175,0.685>, <-0.707,-0.175,0.685>, <0.707,-0.183,0.683>, <-0.707,-0.183,0.683>, <0.707,-0.192,0.681>, <-0.707,-0.192,0.681>, <0.707,-0.202,0.678>, <-0.707,-0.202,0.678>, <0.707,-0.212,0.675>, <-0.707,-0.212,0.675>, <0.707,-0.224,0.671>, <-0.707,-0.224,0.671> } face_indices { 42, <0, 4, 1>, <0, 3, 4>, <2, 1, 4>, <2, 4, 5>, <3, 7, 4>, <3, 6, 7>, <5, 4, 7>, <5, 7, 8>, <6, 10, 7>, <6, 9, 10>, <8, 7, 10>, <8, 10, 11>, <9, 13, 10>, <9, 12, 13>, <11, 10, 13>, <11, 13, 14>, <12, 16, 13>, <12, 15, 16>, <14, 13, 16>, <14, 16, 17>, <15, 19, 16>, <15, 18, 19>, <17, 16, 19>, <17, 19, 20>, <18, 22, 19>, <18, 21, 22>, <20, 19, 22>, <20, 22, 23>, <21, 25, 22>, <21, 24, 25>, <23, 22, 25>, <23, 25, 26>, <24, 28, 25>, <24, 27, 28>, <26, 25, 28>, <26, 28, 29>, <27, 31, 28>, <27, 30, 31>, <29, 28, 31>, <29, 31, 32>, <30, 33, 31>, <32, 31, 33> } normal_indices { 42, <0, 2, 0>, <0, 2, 2>, <1, 1, 3>, <1, 3, 3>, <2, 4, 2>, <2, 4, 4>, <3, 3, 5>, <3, 5, 5>, <4, 6, 4>, <4, 6, 6>, <5, 5, 7>, <5, 7, 7>, <6, 8, 6>, <6, 8, 8>, <7, 7, 9>, <7, 9, 9>, <8, 10, 8>, <8, 10, 10>, <9, 9, 11>, <9, 11, 11>, <10, 12, 10>, <10, 12, 12>, <11, 11, 13>, <11, 13, 13>, <12, 14, 12>, <12, 14, 14>, <13, 13, 15>, <13, 15, 15>, <14, 16, 14>, <14, 16, 16>, <15, 15, 17>, <15, 17, 17>, <16, 18, 16>, <16, 18, 18>, <17, 17, 19>, <17, 19, 19>, <18, 20, 18>, <18, 20, 20>, <19, 19, 21>, <19, 21, 21>, <20, 22, 20>, <21, 21, 22> } inside_vector <0,1,0> texture { average texture_map { [0.0, blade_texture_1] [1.0, blade_texture_2] } } scale <1, .7, .7> }; #local blade_mesh_1 = mesh2 { vertex_vectors { 34, <0.026,0.006,-0.025>, <0.000,0.000,0.000>, <-0.026,0.006,-0.025>, <0.023,0.115,0.003>, <0.000,0.110,0.025>, <-0.023,0.115,0.003>, <0.021,0.221,0.031>, <0.000,0.216,0.051>, <-0.021,0.221,0.031>, <0.019,0.323,0.059>, <0.000,0.318,0.077>, <-0.019,0.323,0.059>, <0.016,0.421,0.087>, <0.000,0.417,0.103>, <-0.016,0.421,0.087>, <0.014,0.516,0.116>, <0.000,0.512,0.129>, <-0.014,0.516,0.116>, <0.012,0.606,0.144>, <0.000,0.603,0.156>, <-0.012,0.606,0.144>, <0.009,0.693,0.173>, <0.000,0.690,0.182>, <-0.009,0.693,0.173>, <0.007,0.775,0.203>, <0.000,0.773,0.210>, <-0.007,0.775,0.203>, <0.005,0.854,0.232>, <0.000,0.853,0.237>, <-0.005,0.854,0.232>, <0.002,0.929,0.262>, <0.000,0.928,0.264>, <-0.002,0.929,0.262>, <0.000,1.000,0.292> } normal_vectors { 24, <0.707,-0.155,0.690>, <-0.707,-0.155,0.690>, <0.707,-0.162,0.688>, <-0.707,-0.162,0.688>, <0.707,-0.169,0.687>, <-0.707,-0.169,0.687>, <0.707,-0.177,0.685>, <-0.707,-0.177,0.685>, <0.707,-0.185,0.682>, <-0.707,-0.185,0.682>, <0.707,-0.194,0.680>, <-0.707,-0.194,0.680>, <0.707,-0.203,0.677>, <-0.707,-0.203,0.677>, <0.707,-0.213,0.674>, <-0.707,-0.213,0.674>, <0.707,-0.224,0.671>, <-0.707,-0.224,0.671>, <0.707,-0.236,0.667>, <-0.707,-0.236,0.667>, <0.707,-0.249,0.662>, <-0.707,-0.249,0.662>, <0.707,-0.263,0.657>, <-0.707,-0.263,0.657> } face_indices { 42, <0, 4, 1>, <0, 3, 4>, <2, 1, 4>, <2, 4, 5>, <3, 7, 4>, <3, 6, 7>, <5, 4, 7>, <5, 7, 8>, <6, 10, 7>, <6, 9, 10>, <8, 7, 10>, <8, 10, 11>, <9, 13, 10>, <9, 12, 13>, <11, 10, 13>, <11, 13, 14>, <12, 16, 13>, <12, 15, 16>, <14, 13, 16>, <14, 16, 17>, <15, 19, 16>, <15, 18, 19>, <17, 16, 19>, <17, 19, 20>, <18, 22, 19>, <18, 21, 22>, <20, 19, 22>, <20, 22, 23>, <21, 25, 22>, <21, 24, 25>, <23, 22, 25>, <23, 25, 26>, <24, 28, 25>, <24, 27, 28>, <26, 25, 28>, <26, 28, 29>, <27, 31, 28>, <27, 30, 31>, <29, 28, 31>, <29, 31, 32>, <30, 33, 31>, <32, 31, 33> } normal_indices { 42, <0, 2, 0>, <0, 2, 2>, <1, 1, 3>, <1, 3, 3>, <2, 4, 2>, <2, 4, 4>, <3, 3, 5>, <3, 5, 5>, <4, 6, 4>, <4, 6, 6>, <5, 5, 7>, <5, 7, 7>, <6, 8, 6>, <6, 8, 8>, <7, 7, 9>, <7, 9, 9>, <8, 10, 8>, <8, 10, 10>, <9, 9, 11>, <9, 11, 11>, <10, 12, 10>, <10, 12, 12>, <11, 11, 13>, <11, 13, 13>, <12, 14, 12>, <12, 14, 14>, <13, 13, 15>, <13, 15, 15>, <14, 16, 14>, <14, 16, 16>, <15, 15, 17>, <15, 17, 17>, <16, 18, 16>, <16, 18, 18>, <17, 17, 19>, <17, 19, 19>, <18, 20, 18>, <18, 20, 20>, <19, 19, 21>, <19, 21, 21>, <20, 22, 20>, <21, 21, 22> } inside_vector <0,1,0> texture { average texture_map { [0.111, blade_texture_1] [0.889, blade_texture_2] } } scale <1, .722, .722> }; #local blade_mesh_2 = mesh2 { vertex_vectors { 36, <0.026,0.006,-0.026>, <0.000,0.000,0.000>, <-0.026,0.006,-0.026>, <0.024,0.115,0.005>, <0.000,0.108,0.028>, <-0.024,0.115,0.005>, <0.022,0.219,0.035>, <0.000,0.213,0.056>, <-0.022,0.219,0.035>, <0.019,0.320,0.066>, <0.000,0.315,0.085>, <-0.019,0.320,0.066>, <0.017,0.418,0.098>, <0.000,0.413,0.114>, <-0.017,0.418,0.098>, <0.015,0.512,0.130>, <0.000,0.507,0.144>, <-0.015,0.512,0.130>, <0.012,0.602,0.162>, <0.000,0.598,0.174>, <-0.012,0.602,0.162>, <0.010,0.689,0.195>, <0.000,0.686,0.204>, <-0.010,0.689,0.195>, <0.007,0.772,0.229>, <0.000,0.769,0.236>, <-0.007,0.772,0.229>, <0.005,0.852,0.263>, <0.000,0.850,0.267>, <-0.005,0.852,0.263>, <0.003,0.928,0.297>, <0.000,0.927,0.299>, <-0.003,0.928,0.297>, <0.000,1.000,0.332>, <0.000,1.000,0.332>, <-0.000,1.000,0.332> } normal_vectors { 24, <0.707,-0.171,0.686>, <-0.707,-0.171,0.686>, <0.707,-0.179,0.684>, <-0.707,-0.179,0.684>, <0.707,-0.188,0.682>, <-0.707,-0.188,0.682>, <0.707,-0.197,0.679>, <-0.707,-0.197,0.679>, <0.707,-0.207,0.676>, <-0.707,-0.207,0.676>, <0.707,-0.217,0.673>, <-0.707,-0.217,0.673>, <0.707,-0.228,0.669>, <-0.707,-0.228,0.669>, <0.707,-0.240,0.665>, <-0.707,-0.240,0.665>, <0.707,-0.253,0.660>, <-0.707,-0.253,0.660>, <0.707,-0.266,0.655>, <-0.707,-0.266,0.655>, <0.707,-0.280,0.649>, <-0.707,-0.280,0.649>, <0.707,-0.295,0.642>, <-0.707,-0.295,0.642> } face_indices { 44, <0, 4, 1>, <0, 3, 4>, <2, 1, 4>, <2, 4, 5>, <3, 7, 4>, <3, 6, 7>, <5, 4, 7>, <5, 7, 8>, <6, 10, 7>, <6, 9, 10>, <8, 7, 10>, <8, 10, 11>, <9, 13, 10>, <9, 12, 13>, <11, 10, 13>, <11, 13, 14>, <12, 16, 13>, <12, 15, 16>, <14, 13, 16>, <14, 16, 17>, <15, 19, 16>, <15, 18, 19>, <17, 16, 19>, <17, 19, 20>, <18, 22, 19>, <18, 21, 22>, <20, 19, 22>, <20, 22, 23>, <21, 25, 22>, <21, 24, 25>, <23, 22, 25>, <23, 25, 26>, <24, 28, 25>, <24, 27, 28>, <26, 25, 28>, <26, 28, 29>, <27, 31, 28>, <27, 30, 31>, <29, 28, 31>, <29, 31, 32>, <30, 34, 31>, <30, 33, 34>, <32, 31, 34>, <32, 34, 35> } normal_indices { 44, <0, 2, 0>, <0, 2, 2>, <1, 1, 3>, <1, 3, 3>, <2, 4, 2>, <2, 4, 4>, <3, 3, 5>, <3, 5, 5>, <4, 6, 4>, <4, 6, 6>, <5, 5, 7>, <5, 7, 7>, <6, 8, 6>, <6, 8, 8>, <7, 7, 9>, <7, 9, 9>, <8, 10, 8>, <8, 10, 10>, <9, 9, 11>, <9, 11, 11>, <10, 12, 10>, <10, 12, 12>, <11, 11, 13>, <11, 13, 13>, <12, 14, 12>, <12, 14, 14>, <13, 13, 15>, <13, 15, 15>, <14, 16, 14>, <14, 16, 16>, <15, 15, 17>, <15, 17, 17>, <16, 18, 16>, <16, 18, 18>, <17, 17, 19>, <17, 19, 19>, <18, 20, 18>, <18, 20, 20>, <19, 19, 21>, <19, 21, 21>, <20, 22, 20>, <20, 22, 22>, <21, 21, 23>, <21, 23, 23> } inside_vector <0,1,0> texture { average texture_map { [0.222, blade_texture_1] [0.778, blade_texture_2] } } scale <1, .744, .744> }; #local blade_mesh_3 = mesh2 { vertex_vectors { 36, <0.027,0.007,-0.026>, <0.000,0.000,0.000>, <-0.027,0.007,-0.026>, <0.025,0.114,0.006>, <0.000,0.107,0.030>, <-0.025,0.114,0.006>, <0.022,0.217,0.039>, <0.000,0.211,0.061>, <-0.022,0.217,0.039>, <0.020,0.318,0.073>, <0.000,0.312,0.092>, <-0.020,0.318,0.073>, <0.017,0.415,0.108>, <0.000,0.409,0.124>, <-0.017,0.415,0.108>, <0.015,0.508,0.143>, <0.000,0.503,0.157>, <-0.015,0.508,0.143>, <0.013,0.598,0.179>, <0.000,0.594,0.191>, <-0.013,0.598,0.179>, <0.010,0.685,0.216>, <0.000,0.682,0.225>, <-0.010,0.685,0.216>, <0.008,0.769,0.253>, <0.000,0.766,0.260>, <-0.008,0.769,0.253>, <0.005,0.850,0.291>, <0.000,0.847,0.296>, <-0.005,0.850,0.291>, <0.003,0.927,0.330>, <0.000,0.925,0.332>, <-0.003,0.927,0.330>, <0.001,1.000,0.369>, <0.000,1.000,0.370>, <-0.001,1.000,0.369> } normal_vectors { 24, <0.707,-0.186,0.682>, <-0.707,-0.186,0.682>, <0.707,-0.196,0.680>, <-0.707,-0.196,0.680>, <0.707,-0.206,0.677>, <-0.707,-0.206,0.677>, <0.707,-0.216,0.673>, <-0.707,-0.216,0.673>, <0.707,-0.227,0.670>, <-0.707,-0.227,0.670>, <0.707,-0.239,0.665>, <-0.707,-0.239,0.665>, <0.707,-0.251,0.661>, <-0.707,-0.251,0.661>, <0.707,-0.264,0.656>, <-0.707,-0.264,0.656>, <0.707,-0.278,0.650>, <-0.707,-0.278,0.650>, <0.707,-0.292,0.644>, <-0.707,-0.292,0.644>, <0.707,-0.307,0.637>, <-0.707,-0.307,0.637>, <0.707,-0.323,0.629>, <-0.707,-0.323,0.629> } face_indices { 44, <0, 4, 1>, <0, 3, 4>, <2, 1, 4>, <2, 4, 5>, <3, 7, 4>, <3, 6, 7>, <5, 4, 7>, <5, 7, 8>, <6, 10, 7>, <6, 9, 10>, <8, 7, 10>, <8, 10, 11>, <9, 13, 10>, <9, 12, 13>, <11, 10, 13>, <11, 13, 14>, <12, 16, 13>, <12, 15, 16>, <14, 13, 16>, <14, 16, 17>, <15, 19, 16>, <15, 18, 19>, <17, 16, 19>, <17, 19, 20>, <18, 22, 19>, <18, 21, 22>, <20, 19, 22>, <20, 22, 23>, <21, 25, 22>, <21, 24, 25>, <23, 22, 25>, <23, 25, 26>, <24, 28, 25>, <24, 27, 28>, <26, 25, 28>, <26, 28, 29>, <27, 31, 28>, <27, 30, 31>, <29, 28, 31>, <29, 31, 32>, <30, 34, 31>, <30, 33, 34>, <32, 31, 34>, <32, 34, 35> } normal_indices { 44, <0, 2, 0>, <0, 2, 2>, <1, 1, 3>, <1, 3, 3>, <2, 4, 2>, <2, 4, 4>, <3, 3, 5>, <3, 5, 5>, <4, 6, 4>, <4, 6, 6>, <5, 5, 7>, <5, 7, 7>, <6, 8, 6>, <6, 8, 8>, <7, 7, 9>, <7, 9, 9>, <8, 10, 8>, <8, 10, 10>, <9, 9, 11>, <9, 11, 11>, <10, 12, 10>, <10, 12, 12>, <11, 11, 13>, <11, 13, 13>, <12, 14, 12>, <12, 14, 14>, <13, 13, 15>, <13, 15, 15>, <14, 16, 14>, <14, 16, 16>, <15, 15, 17>, <15, 17, 17>, <16, 18, 16>, <16, 18, 18>, <17, 17, 19>, <17, 19, 19>, <18, 20, 18>, <18, 20, 20>, <19, 19, 21>, <19, 21, 21>, <20, 22, 20>, <20, 22, 22>, <21, 21, 23>, <21, 23, 23> } inside_vector <0,1,0> texture { average texture_map { [0.333, blade_texture_1] [0.667, blade_texture_2] } } scale <1, .767, .767> }; #local blade_mesh_4 = mesh2 { vertex_vectors { 36, <0.028,0.008,-0.027>, <0.000,0.000,0.000>, <-0.028,0.008,-0.027>, <0.025,0.113,0.008>, <0.000,0.106,0.032>, <-0.025,0.113,0.008>, <0.023,0.216,0.043>, <0.000,0.209,0.065>, <-0.023,0.216,0.043>, <0.020,0.315,0.080>, <0.000,0.308,0.099>, <-0.020,0.315,0.080>, <0.018,0.411,0.117>, <0.000,0.405,0.134>, <-0.018,0.411,0.117>, <0.016,0.505,0.156>, <0.000,0.499,0.170>, <-0.016,0.505,0.156>, <0.013,0.595,0.195>, <0.000,0.590,0.207>, <-0.013,0.595,0.195>, <0.011,0.682,0.235>, <0.000,0.678,0.245>, <-0.011,0.682,0.235>, <0.008,0.766,0.276>, <0.000,0.763,0.283>, <-0.008,0.766,0.276>, <0.006,0.847,0.318>, <0.000,0.845,0.323>, <-0.006,0.847,0.318>, <0.003,0.925,0.361>, <0.000,0.924,0.363>, <-0.003,0.925,0.361>, <0.001,1.000,0.404>, <0.000,1.000,0.405>, <-0.001,1.000,0.404> } normal_vectors { 24, <0.707,-0.200,0.678>, <-0.707,-0.200,0.678>, <0.707,-0.211,0.675>, <-0.707,-0.211,0.675>, <0.707,-0.222,0.671>, <-0.707,-0.222,0.671>, <0.707,-0.234,0.667>, <-0.707,-0.234,0.667>, <0.707,-0.246,0.663>, <-0.707,-0.246,0.663>, <0.707,-0.259,0.658>, <-0.707,-0.259,0.658>, <0.707,-0.272,0.653>, <-0.707,-0.272,0.653>, <0.707,-0.286,0.647>, <-0.707,-0.286,0.647>, <0.707,-0.300,0.640>, <-0.707,-0.300,0.640>, <0.707,-0.315,0.633>, <-0.707,-0.315,0.633>, <0.707,-0.331,0.625>, <-0.707,-0.331,0.625>, <0.707,-0.347,0.616>, <-0.707,-0.347,0.616> } face_indices { 44, <0, 4, 1>, <0, 3, 4>, <2, 1, 4>, <2, 4, 5>, <3, 7, 4>, <3, 6, 7>, <5, 4, 7>, <5, 7, 8>, <6, 10, 7>, <6, 9, 10>, <8, 7, 10>, <8, 10, 11>, <9, 13, 10>, <9, 12, 13>, <11, 10, 13>, <11, 13, 14>, <12, 16, 13>, <12, 15, 16>, <14, 13, 16>, <14, 16, 17>, <15, 19, 16>, <15, 18, 19>, <17, 16, 19>, <17, 19, 20>, <18, 22, 19>, <18, 21, 22>, <20, 19, 22>, <20, 22, 23>, <21, 25, 22>, <21, 24, 25>, <23, 22, 25>, <23, 25, 26>, <24, 28, 25>, <24, 27, 28>, <26, 25, 28>, <26, 28, 29>, <27, 31, 28>, <27, 30, 31>, <29, 28, 31>, <29, 31, 32>, <30, 34, 31>, <30, 33, 34>, <32, 31, 34>, <32, 34, 35> } normal_indices { 44, <0, 2, 0>, <0, 2, 2>, <1, 1, 3>, <1, 3, 3>, <2, 4, 2>, <2, 4, 4>, <3, 3, 5>, <3, 5, 5>, <4, 6, 4>, <4, 6, 6>, <5, 5, 7>, <5, 7, 7>, <6, 8, 6>, <6, 8, 8>, <7, 7, 9>, <7, 9, 9>, <8, 10, 8>, <8, 10, 10>, <9, 9, 11>, <9, 11, 11>, <10, 12, 10>, <10, 12, 12>, <11, 11, 13>, <11, 13, 13>, <12, 14, 12>, <12, 14, 14>, <13, 13, 15>, <13, 15, 15>, <14, 16, 14>, <14, 16, 16>, <15, 15, 17>, <15, 17, 17>, <16, 18, 16>, <16, 18, 18>, <17, 17, 19>, <17, 19, 19>, <18, 20, 18>, <18, 20, 20>, <19, 19, 21>, <19, 21, 21>, <20, 22, 20>, <20, 22, 22>, <21, 21, 23>, <21, 23, 23> } inside_vector <0,1,0> texture { average texture_map { [0.444, blade_texture_1] [0.556, blade_texture_2] } } scale <1, .789, .789> }; #local blade_mesh_5 = mesh2 { vertex_vectors { 36, <0.029,0.009,-0.027>, <0.000,0.000,0.000>, <-0.029,0.009,-0.027>, <0.026,0.113,0.009>, <0.000,0.104,0.034>, <-0.026,0.113,0.009>, <0.024,0.214,0.047>, <0.000,0.206,0.070>, <-0.024,0.214,0.047>, <0.021,0.313,0.086>, <0.000,0.305,0.106>, <-0.021,0.313,0.086>, <0.019,0.409,0.126>, <0.000,0.402,0.144>, <-0.019,0.409,0.126>, <0.016,0.502,0.167>, <0.000,0.495,0.182>, <-0.016,0.502,0.167>, <0.014,0.592,0.210>, <0.000,0.586,0.222>, <-0.014,0.592,0.210>, <0.011,0.679,0.253>, <0.000,0.674,0.263>, <-0.011,0.679,0.253>, <0.009,0.764,0.298>, <0.000,0.760,0.305>, <-0.009,0.764,0.298>, <0.006,0.845,0.343>, <0.000,0.843,0.348>, <-0.006,0.845,0.343>, <0.003,0.924,0.390>, <0.000,0.923,0.393>, <-0.003,0.924,0.390>, <0.001,1.001,0.438>, <0.000,1.000,0.438>, <-0.001,1.001,0.438> } normal_vectors { 24, <0.707,-0.214,0.674>, <-0.707,-0.214,0.674>, <0.707,-0.226,0.670>, <-0.707,-0.226,0.670>, <0.707,-0.238,0.666>, <-0.707,-0.238,0.666>, <0.707,-0.251,0.661>, <-0.707,-0.251,0.661>, <0.707,-0.264,0.656>, <-0.707,-0.264,0.656>, <0.707,-0.277,0.651>, <-0.707,-0.277,0.651>, <0.707,-0.291,0.645>, <-0.707,-0.291,0.645>, <0.707,-0.305,0.638>, <-0.707,-0.305,0.638>, <0.707,-0.320,0.631>, <-0.707,-0.320,0.631>, <0.707,-0.335,0.623>, <-0.707,-0.335,0.623>, <0.707,-0.351,0.614>, <-0.707,-0.351,0.614>, <0.707,-0.367,0.605>, <-0.707,-0.367,0.605> } face_indices { 44, <0, 4, 1>, <0, 3, 4>, <2, 1, 4>, <2, 4, 5>, <3, 7, 4>, <3, 6, 7>, <5, 4, 7>, <5, 7, 8>, <6, 10, 7>, <6, 9, 10>, <8, 7, 10>, <8, 10, 11>, <9, 13, 10>, <9, 12, 13>, <11, 10, 13>, <11, 13, 14>, <12, 16, 13>, <12, 15, 16>, <14, 13, 16>, <14, 16, 17>, <15, 19, 16>, <15, 18, 19>, <17, 16, 19>, <17, 19, 20>, <18, 22, 19>, <18, 21, 22>, <20, 19, 22>, <20, 22, 23>, <21, 25, 22>, <21, 24, 25>, <23, 22, 25>, <23, 25, 26>, <24, 28, 25>, <24, 27, 28>, <26, 25, 28>, <26, 28, 29>, <27, 31, 28>, <27, 30, 31>, <29, 28, 31>, <29, 31, 32>, <30, 34, 31>, <30, 33, 34>, <32, 31, 34>, <32, 34, 35> } normal_indices { 44, <0, 2, 0>, <0, 2, 2>, <1, 1, 3>, <1, 3, 3>, <2, 4, 2>, <2, 4, 4>, <3, 3, 5>, <3, 5, 5>, <4, 6, 4>, <4, 6, 6>, <5, 5, 7>, <5, 7, 7>, <6, 8, 6>, <6, 8, 8>, <7, 7, 9>, <7, 9, 9>, <8, 10, 8>, <8, 10, 10>, <9, 9, 11>, <9, 11, 11>, <10, 12, 10>, <10, 12, 12>, <11, 11, 13>, <11, 13, 13>, <12, 14, 12>, <12, 14, 14>, <13, 13, 15>, <13, 15, 15>, <14, 16, 14>, <14, 16, 16>, <15, 15, 17>, <15, 17, 17>, <16, 18, 16>, <16, 18, 18>, <17, 17, 19>, <17, 19, 19>, <18, 20, 18>, <18, 20, 20>, <19, 19, 21>, <19, 21, 21>, <20, 22, 20>, <20, 22, 22>, <21, 21, 23>, <21, 23, 23> } inside_vector <0,1,0> texture { average texture_map { [0.556, blade_texture_1] [0.444, blade_texture_2] } } scale <1, .811, .811> }; #local blade_mesh_6 = mesh2 { vertex_vectors { 36, <0.029,0.009,-0.028>, <0.000,0.000,0.000>, <-0.029,0.009,-0.028>, <0.027,0.112,0.011>, <0.000,0.103,0.036>, <-0.027,0.112,0.011>, <0.024,0.213,0.051>, <0.000,0.204,0.074>, <-0.024,0.213,0.051>, <0.022,0.311,0.092>, <0.000,0.302,0.112>, <-0.022,0.311,0.092>, <0.019,0.406,0.135>, <0.000,0.398,0.152>, <-0.019,0.406,0.135>, <0.017,0.499,0.179>, <0.000,0.492,0.194>, <-0.017,0.499,0.179>, <0.014,0.589,0.224>, <0.000,0.583,0.237>, <-0.014,0.589,0.224>, <0.011,0.676,0.270>, <0.000,0.671,0.281>, <-0.011,0.676,0.270>, <0.009,0.761,0.318>, <0.000,0.757,0.326>, <-0.009,0.761,0.318>, <0.006,0.844,0.367>, <0.000,0.840,0.373>, <-0.006,0.844,0.367>, <0.004,0.923,0.417>, <0.000,0.921,0.421>, <-0.004,0.923,0.417>, <0.001,1.001,0.469>, <0.000,1.000,0.470>, <-0.001,1.001,0.469> } normal_vectors { 24, <0.707,-0.227,0.670>, <-0.707,-0.227,0.670>, <0.707,-0.240,0.665>, <-0.707,-0.240,0.665>, <0.707,-0.253,0.660>, <-0.707,-0.253,0.660>, <0.707,-0.266,0.655>, <-0.707,-0.266,0.655>, <0.707,-0.280,0.649>, <-0.707,-0.280,0.649>, <0.707,-0.294,0.643>, <-0.707,-0.294,0.643>, <0.707,-0.308,0.637>, <-0.707,-0.308,0.637>, <0.707,-0.323,0.629>, <-0.707,-0.323,0.629>, <0.707,-0.338,0.621>, <-0.707,-0.338,0.621>, <0.707,-0.353,0.613>, <-0.707,-0.353,0.613>, <0.707,-0.368,0.604>, <-0.707,-0.368,0.604>, <0.707,-0.384,0.594>, <-0.707,-0.384,0.594> } face_indices { 44, <0, 4, 1>, <0, 3, 4>, <2, 1, 4>, <2, 4, 5>, <3, 7, 4>, <3, 6, 7>, <5, 4, 7>, <5, 7, 8>, <6, 10, 7>, <6, 9, 10>, <8, 7, 10>, <8, 10, 11>, <9, 13, 10>, <9, 12, 13>, <11, 10, 13>, <11, 13, 14>, <12, 16, 13>, <12, 15, 16>, <14, 13, 16>, <14, 16, 17>, <15, 19, 16>, <15, 18, 19>, <17, 16, 19>, <17, 19, 20>, <18, 22, 19>, <18, 21, 22>, <20, 19, 22>, <20, 22, 23>, <21, 25, 22>, <21, 24, 25>, <23, 22, 25>, <23, 25, 26>, <24, 28, 25>, <24, 27, 28>, <26, 25, 28>, <26, 28, 29>, <27, 31, 28>, <27, 30, 31>, <29, 28, 31>, <29, 31, 32>, <30, 34, 31>, <30, 33, 34>, <32, 31, 34>, <32, 34, 35> } normal_indices { 44, <0, 2, 0>, <0, 2, 2>, <1, 1, 3>, <1, 3, 3>, <2, 4, 2>, <2, 4, 4>, <3, 3, 5>, <3, 5, 5>, <4, 6, 4>, <4, 6, 6>, <5, 5, 7>, <5, 7, 7>, <6, 8, 6>, <6, 8, 8>, <7, 7, 9>, <7, 9, 9>, <8, 10, 8>, <8, 10, 10>, <9, 9, 11>, <9, 11, 11>, <10, 12, 10>, <10, 12, 12>, <11, 11, 13>, <11, 13, 13>, <12, 14, 12>, <12, 14, 14>, <13, 13, 15>, <13, 15, 15>, <14, 16, 14>, <14, 16, 16>, <15, 15, 17>, <15, 17, 17>, <16, 18, 16>, <16, 18, 18>, <17, 17, 19>, <17, 19, 19>, <18, 20, 18>, <18, 20, 20>, <19, 19, 21>, <19, 21, 21>, <20, 22, 20>, <20, 22, 22>, <21, 21, 23>, <21, 23, 23> } inside_vector <0,1,0> texture { average texture_map { [0.667, blade_texture_1] [0.333, blade_texture_2] } } scale <1, .833, .833> }; #local blade_mesh_7 = mesh2 { vertex_vectors { 36, <0.030,0.010,-0.028>, <0.000,0.000,0.000>, <-0.030,0.010,-0.028>, <0.028,0.112,0.012>, <0.000,0.102,0.038>, <-0.028,0.112,0.012>, <0.025,0.212,0.054>, <0.000,0.202,0.077>, <-0.025,0.212,0.054>, <0.022,0.309,0.098>, <0.000,0.300,0.118>, <-0.022,0.309,0.098>, <0.020,0.403,0.143>, <0.000,0.395,0.161>, <-0.020,0.403,0.143>, <0.017,0.496,0.189>, <0.000,0.488,0.205>, <-0.017,0.496,0.189>, <0.014,0.586,0.237>, <0.000,0.579,0.250>, <-0.014,0.586,0.237>, <0.012,0.674,0.287>, <0.000,0.668,0.297>, <-0.012,0.674,0.287>, <0.009,0.759,0.338>, <0.000,0.754,0.346>, <-0.009,0.759,0.338>, <0.007,0.842,0.390>, <0.000,0.838,0.396>, <-0.007,0.842,0.390>, <0.004,0.923,0.444>, <0.000,0.920,0.447>, <-0.004,0.923,0.444>, <0.001,1.001,0.499>, <0.000,1.000,0.500>, <-0.001,1.001,0.499> } normal_vectors { 24, <0.707,-0.240,0.665>, <-0.707,-0.240,0.665>, <0.707,-0.253,0.660>, <-0.707,-0.253,0.660>, <0.707,-0.266,0.655>, <-0.707,-0.266,0.655>, <0.707,-0.280,0.649>, <-0.707,-0.280,0.649>, <0.707,-0.295,0.643>, <-0.707,-0.295,0.643>, <0.707,-0.309,0.636>, <-0.707,-0.309,0.636>, <0.707,-0.324,0.629>, <-0.707,-0.324,0.629>, <0.707,-0.338,0.621>, <-0.707,-0.338,0.621>, <0.707,-0.353,0.612>, <-0.707,-0.353,0.612>, <0.707,-0.369,0.603>, <-0.707,-0.369,0.603>, <0.707,-0.384,0.594>, <-0.707,-0.384,0.594>, <0.707,-0.399,0.584>, <-0.707,-0.399,0.584> } face_indices { 44, <0, 4, 1>, <0, 3, 4>, <2, 1, 4>, <2, 4, 5>, <3, 7, 4>, <3, 6, 7>, <5, 4, 7>, <5, 7, 8>, <6, 10, 7>, <6, 9, 10>, <8, 7, 10>, <8, 10, 11>, <9, 13, 10>, <9, 12, 13>, <11, 10, 13>, <11, 13, 14>, <12, 16, 13>, <12, 15, 16>, <14, 13, 16>, <14, 16, 17>, <15, 19, 16>, <15, 18, 19>, <17, 16, 19>, <17, 19, 20>, <18, 22, 19>, <18, 21, 22>, <20, 19, 22>, <20, 22, 23>, <21, 25, 22>, <21, 24, 25>, <23, 22, 25>, <23, 25, 26>, <24, 28, 25>, <24, 27, 28>, <26, 25, 28>, <26, 28, 29>, <27, 31, 28>, <27, 30, 31>, <29, 28, 31>, <29, 31, 32>, <30, 34, 31>, <30, 33, 34>, <32, 31, 34>, <32, 34, 35> } normal_indices { 44, <0, 2, 0>, <0, 2, 2>, <1, 1, 3>, <1, 3, 3>, <2, 4, 2>, <2, 4, 4>, <3, 3, 5>, <3, 5, 5>, <4, 6, 4>, <4, 6, 6>, <5, 5, 7>, <5, 7, 7>, <6, 8, 6>, <6, 8, 8>, <7, 7, 9>, <7, 9, 9>, <8, 10, 8>, <8, 10, 10>, <9, 9, 11>, <9, 11, 11>, <10, 12, 10>, <10, 12, 12>, <11, 11, 13>, <11, 13, 13>, <12, 14, 12>, <12, 14, 14>, <13, 13, 15>, <13, 15, 15>, <14, 16, 14>, <14, 16, 16>, <15, 15, 17>, <15, 17, 17>, <16, 18, 16>, <16, 18, 18>, <17, 17, 19>, <17, 19, 19>, <18, 20, 18>, <18, 20, 20>, <19, 19, 21>, <19, 21, 21>, <20, 22, 20>, <20, 22, 22>, <21, 21, 23>, <21, 23, 23> } inside_vector <0,1,0> texture { average texture_map { [0.778, blade_texture_1] [0.222, blade_texture_2] } } scale <1, .856, .856> }; #local blade_mesh_8 = mesh2 { vertex_vectors { 36, <0.031,0.011,-0.029>, <0.000,0.000,0.000>, <-0.031,0.011,-0.029>, <0.028,0.112,0.013>, <0.000,0.101,0.040>, <-0.028,0.112,0.013>, <0.026,0.210,0.057>, <0.000,0.200,0.081>, <-0.026,0.210,0.057>, <0.023,0.307,0.103>, <0.000,0.297,0.124>, <-0.023,0.307,0.103>, <0.020,0.401,0.150>, <0.000,0.392,0.169>, <-0.020,0.401,0.150>, <0.018,0.493,0.199>, <0.000,0.485,0.215>, <-0.018,0.493,0.199>, <0.015,0.583,0.250>, <0.000,0.576,0.263>, <-0.015,0.583,0.250>, <0.012,0.671,0.302>, <0.000,0.665,0.313>, <-0.012,0.671,0.302>, <0.010,0.757,0.356>, <0.000,0.752,0.364>, <-0.010,0.757,0.356>, <0.007,0.840,0.412>, <0.000,0.837,0.417>, <-0.007,0.840,0.412>, <0.004,0.922,0.469>, <0.000,0.919,0.472>, <-0.004,0.922,0.469>, <0.002,1.001,0.527>, <0.000,1.000,0.528>, <-0.002,1.001,0.527> } normal_vectors { 24, <0.707,-0.251,0.661>, <-0.707,-0.251,0.661>, <0.707,-0.265,0.655>, <-0.707,-0.265,0.655>, <0.707,-0.279,0.650>, <-0.707,-0.279,0.650>, <0.707,-0.294,0.643>, <-0.707,-0.294,0.643>, <0.707,-0.308,0.636>, <-0.707,-0.308,0.636>, <0.707,-0.323,0.629>, <-0.707,-0.323,0.629>, <0.707,-0.338,0.621>, <-0.707,-0.338,0.621>, <0.707,-0.353,0.613>, <-0.707,-0.353,0.613>, <0.707,-0.368,0.604>, <-0.707,-0.368,0.604>, <0.707,-0.383,0.595>, <-0.707,-0.383,0.595>, <0.707,-0.398,0.585>, <-0.707,-0.398,0.585>, <0.707,-0.413,0.574>, <-0.707,-0.413,0.574> } face_indices { 44, <0, 4, 1>, <0, 3, 4>, <2, 1, 4>, <2, 4, 5>, <3, 7, 4>, <3, 6, 7>, <5, 4, 7>, <5, 7, 8>, <6, 10, 7>, <6, 9, 10>, <8, 7, 10>, <8, 10, 11>, <9, 13, 10>, <9, 12, 13>, <11, 10, 13>, <11, 13, 14>, <12, 16, 13>, <12, 15, 16>, <14, 13, 16>, <14, 16, 17>, <15, 19, 16>, <15, 18, 19>, <17, 16, 19>, <17, 19, 20>, <18, 22, 19>, <18, 21, 22>, <20, 19, 22>, <20, 22, 23>, <21, 25, 22>, <21, 24, 25>, <23, 22, 25>, <23, 25, 26>, <24, 28, 25>, <24, 27, 28>, <26, 25, 28>, <26, 28, 29>, <27, 31, 28>, <27, 30, 31>, <29, 28, 31>, <29, 31, 32>, <30, 34, 31>, <30, 33, 34>, <32, 31, 34>, <32, 34, 35> } normal_indices { 44, <0, 2, 0>, <0, 2, 2>, <1, 1, 3>, <1, 3, 3>, <2, 4, 2>, <2, 4, 4>, <3, 3, 5>, <3, 5, 5>, <4, 6, 4>, <4, 6, 6>, <5, 5, 7>, <5, 7, 7>, <6, 8, 6>, <6, 8, 8>, <7, 7, 9>, <7, 9, 9>, <8, 10, 8>, <8, 10, 10>, <9, 9, 11>, <9, 11, 11>, <10, 12, 10>, <10, 12, 12>, <11, 11, 13>, <11, 13, 13>, <12, 14, 12>, <12, 14, 14>, <13, 13, 15>, <13, 15, 15>, <14, 16, 14>, <14, 16, 16>, <15, 15, 17>, <15, 17, 17>, <16, 18, 16>, <16, 18, 18>, <17, 17, 19>, <17, 19, 19>, <18, 20, 18>, <18, 20, 20>, <19, 19, 21>, <19, 21, 21>, <20, 22, 20>, <20, 22, 22>, <21, 21, 23>, <21, 23, 23> } inside_vector <0,1,0> texture { average texture_map { [0.889, blade_texture_1] [0.111, blade_texture_2] } } scale <1, .878, .878> }; #local blade_mesh_9 = mesh2 { vertex_vectors { 36, <0.032,0.012,-0.030>, <0.000,0.000,0.000>, <-0.032,0.012,-0.030>, <0.029,0.111,0.015>, <0.000,0.100,0.041>, <-0.029,0.111,0.015>, <0.026,0.209,0.060>, <0.000,0.198,0.084>, <-0.026,0.209,0.060>, <0.024,0.305,0.108>, <0.000,0.295,0.129>, <-0.024,0.305,0.108>, <0.021,0.399,0.158>, <0.000,0.389,0.176>, <-0.021,0.399,0.158>, <0.018,0.491,0.209>, <0.000,0.482,0.225>, <-0.018,0.491,0.209>, <0.015,0.581,0.262>, <0.000,0.573,0.275>, <-0.015,0.581,0.262>, <0.013,0.669,0.317>, <0.000,0.662,0.328>, <-0.013,0.669,0.317>, <0.010,0.755,0.374>, <0.000,0.749,0.382>, <-0.010,0.755,0.374>, <0.007,0.839,0.432>, <0.000,0.835,0.438>, <-0.007,0.839,0.432>, <0.004,0.921,0.492>, <0.000,0.918,0.496>, <-0.004,0.921,0.492>, <0.002,1.001,0.554>, <0.000,1.000,0.556>, <-0.002,1.001,0.554> } normal_vectors { 24, <0.707,-0.263,0.657>, <-0.707,-0.263,0.657>, <0.707,-0.277,0.651>, <-0.707,-0.277,0.651>, <0.707,-0.292,0.644>, <-0.707,-0.292,0.644>, <0.707,-0.306,0.637>, <-0.707,-0.306,0.637>, <0.707,-0.321,0.630>, <-0.707,-0.321,0.630>, <0.707,-0.336,0.622>, <-0.707,-0.336,0.622>, <0.707,-0.351,0.614>, <-0.707,-0.351,0.614>, <0.707,-0.366,0.605>, <-0.707,-0.366,0.605>, <0.707,-0.380,0.596>, <-0.707,-0.380,0.596>, <0.707,-0.395,0.586>, <-0.707,-0.395,0.586>, <0.707,-0.410,0.576>, <-0.707,-0.410,0.576>, <0.707,-0.424,0.566>, <-0.707,-0.424,0.566> } face_indices { 44, <0, 4, 1>, <0, 3, 4>, <2, 1, 4>, <2, 4, 5>, <3, 7, 4>, <3, 6, 7>, <5, 4, 7>, <5, 7, 8>, <6, 10, 7>, <6, 9, 10>, <8, 7, 10>, <8, 10, 11>, <9, 13, 10>, <9, 12, 13>, <11, 10, 13>, <11, 13, 14>, <12, 16, 13>, <12, 15, 16>, <14, 13, 16>, <14, 16, 17>, <15, 19, 16>, <15, 18, 19>, <17, 16, 19>, <17, 19, 20>, <18, 22, 19>, <18, 21, 22>, <20, 19, 22>, <20, 22, 23>, <21, 25, 22>, <21, 24, 25>, <23, 22, 25>, <23, 25, 26>, <24, 28, 25>, <24, 27, 28>, <26, 25, 28>, <26, 28, 29>, <27, 31, 28>, <27, 30, 31>, <29, 28, 31>, <29, 31, 32>, <30, 34, 31>, <30, 33, 34>, <32, 31, 34>, <32, 34, 35> } normal_indices { 44, <0, 2, 0>, <0, 2, 2>, <1, 1, 3>, <1, 3, 3>, <2, 4, 2>, <2, 4, 4>, <3, 3, 5>, <3, 5, 5>, <4, 6, 4>, <4, 6, 6>, <5, 5, 7>, <5, 7, 7>, <6, 8, 6>, <6, 8, 8>, <7, 7, 9>, <7, 9, 9>, <8, 10, 8>, <8, 10, 10>, <9, 9, 11>, <9, 11, 11>, <10, 12, 10>, <10, 12, 12>, <11, 11, 13>, <11, 13, 13>, <12, 14, 12>, <12, 14, 14>, <13, 13, 15>, <13, 15, 15>, <14, 16, 14>, <14, 16, 16>, <15, 15, 17>, <15, 17, 17>, <16, 18, 16>, <16, 18, 18>, <17, 17, 19>, <17, 19, 19>, <18, 20, 18>, <18, 20, 20>, <19, 19, 21>, <19, 21, 21>, <20, 22, 20>, <20, 22, 22>, <21, 21, 23>, <21, 23, 23> } inside_vector <0,1,0> texture { average texture_map { [0.778, blade_texture_1] [0.222, blade_texture_2] } } scale <1, .856, .856> }; /* -------------------------------------------------------------------------- * * export premade "tufts". edit NTUFTS and R seed to suit. * ranged random number generation: * rAngle rotate blade. * rPos XZ translation blade. * rBlade grassblades index. * rSize #blades in tuft. */ // TODO check range of existing? #ifndef (global.NTUFTS) #local NTUFTS = 50; #end #local R = seed(20191201); #macro rAngle(r_) (int(rand(r_)*360)) #end #macro rBlade(r_) (int(rand(r_)*10)) #end #macro rPos(r_) (rand(r_)*.25-.5) #end #macro rSize(r_) (int(23 + rand(r_)*(110-23))) #end #local grassblades = array { blade_mesh_0, blade_mesh_1, blade_mesh_2, blade_mesh_3, blade_mesh_4, blade_mesh_5, blade_mesh_6, blade_mesh_7, blade_mesh_8, blade_mesh_9 }; #declare grasstufts = array [NTUFTS]; #for (i_,0,NTUFTS-1) #local sz_ = rSize(R); #declare grasstufts[i_] = merge { #for (j_,0,sz_-1) object { grassblades[rBlade(R)] rotate <0,rAngle(R),0> translate } #end scale <1,.85,1> }; #end /* tidy up */ #undef rAngle #undef rBlade #undef rPos #undef rSize #version tufts_include_temp; #end