RE: modeling for pioneer
Posted: Fri Feb 18, 2011 3:39 pm
by Potsmoke66
[attachment=557:2011-02-18_211749.jpg]colorvariable?the updated script for the Gul,
Code:
define_model('gul_wing', {info = {lod_pixels = {.1,50,100,0},bounding_radius = 50,materials = {'body', 'glow'},},static = function(lod)local v0 = v(7,3.3,-1.7)local v2 = v(4.1,2.8,2.4)local v4 = v(4.1,2,4.8)local v6 = v(1.6,.9,7.3)local v8 = v(10.5,3.4,-2)local v10 = v(15.6,1.4,-.1)local v12 = v(15.6,1,2.4)local v14 = v(3.1,.5,7.3) local v16 = v(13.3,1.7,-2.5)local v18 = v(24.9,.7,-3) local v20 = v(24.9,.7,-.5) local v22 = v(4.7,.2,7.3) local v24 = v(15.5,0,-2.7)local v26 = v(28.3,0,-4.6)local v28 = v(28.3,0,-2.1)local v30 = v(6.3,0,7.3)local v40 = v(2.5,0,-5)local v42 = v(4.5,1.7,-4.4)local v44 = v(2,2.7,-3.2)-- v46 = v0local v48 = v(3,0,-12)local v50 = v(5,1.7,-7.1)local v52 = v(6.4,2.7,-5)-- v54 = v8local v56 = v(7.5,0,-8.7)local v58 = v(7.5,1.7,-7.1)local v60 = v(10.7,2.7,-5)-- v62 = v16local v64 = v(8.5,0,-8.2)local v66 = v(10.2,0,-7.1)local v68 = v(12,0,-5)-- v70 = v24local v80 = v(0,-2,-8.5)local v82 = v(0,1.2,-7.5)local v84 = v(0,2.4,-4.5)local v86 = v(0,3,-2.5)local v88 = v(.75,0,-5)local v90 = v(.75,1.3,-5.3)local v92 = v(1,2.5,-4.3)local v94 = v(2.1,3,2.2)local v96 = v(1.6,0,-5)local v98 = v(1.6,1.5,-4.8)local v100 = v(2,2.6,-4)local v102 = v(4.6,3.2,-2)-- v104 = v40, v106 = v42, v108 = v44, v110 = v0-- v120 = v86local v122 = v(0,2.8,1.5)local v124 = v(0,2.1,6)local v126 = v(0,1.7,7.3)-- v128 = v94local v130 = v(1.2,2.8,1.8)local v132 = v(1.2,1.8,5.6)local v134 = v(.5,1.5,7.3)-- v136 = v102local v138 = v(2.7,2.8,2)local v140 = v(2.7,1.5,5.2)local v142 = v(1,1.2,7.3)-- v144 = v0 v146 = v2, v148 = v4, 150 = v6-- v160 = v126local v162 = v(0,1,10)local v164 = v(0,.7,15.1)local v166 = v(0,.4,22.1)-- v168 = v134local v170 = v(.2,.9,10)local v172 = v(.1,.6,15.1)local v174 = v(.1,.37,22.1)-- v176 = v142local v178 = v(.3,.8,10)local v180 = v(.2,.6,15.1)local v182 = v(.1,.36,22.1)-- v184 = v6local v186 = v(.4,.7,10)local v188 = v(.3,.5,15.1)local v190 = v(.2,.3,22.1)-- v200 = v6, v202 = v186, v204 = v188, v206 = v190-- v208 = v14local v210 = v(.9,.5,10)local v212 = v(.6,.4,15.1)local v214 = v(.3,.3,22.1)-- v216 = v22local v218 = v(1.3,.2,10)local v220 = v(.9,.2,15.1)local v222 = v(.4,.3,22.1)-- v224 = v30local v226 = v(1.8,0,10)local v228 = v(1.1,0,15.1)local v230 = v(.4,0,22.1)local v240 = v(0,0,22.1)local v1000 = v(7,-3.3,-1.7)local v1002 = v(4.1,-2.8,2.4)local v1004 = v(4.1,-2,4.8)local v1006 = v(1.6,-.9,7.3) local v1008 = v(10.5,-3.4,-2)local v1010 = v(15.6,-1.4,-.1)local v1012 = v(15.6,-1,2.4)local v1014 = v(3.1,-.5,7.3) local v1016 = v(13.3,-1.7,-2.5)local v1018 = v(24.9,-.7,-3)local v1020 = v(24.9,-.7,-.5)local v1022 = v(4.7,-.2,7.3)-- v1024 = v24-- v1040 = v40local v1042 = v(4.5,-1.7,-4.4)local v1044 = v(2,-2.7,-3.2)-- v1046 = v1000-- v1048 = v48local v1050 = v(5,-1.7,-7.1)local v1052 = v(6.4,-2.7,-5)-- v1054 = v1008-- v1056 = v56local v1058 = v(7.5,-1.7,-7.1)local v1060 = v(10.7,-2.7,-5)-- v1062 = v1016-- v1064 = v64-- v1066 = v66-- v1068 = v68-- v1070 = v24-- v1080 = v80local v1082 = v(0,-1.2,-6.5)local v1084 = v(0,-2.4,-4.5)local v1086 = v(0,-3.5,0)-- v1088 = v88local v1090 = v(.75,-1.3,-5.3)local v1092 = v(1,-2.5,-4.3)local v1094 = v(2.1,-3,-2.2)-- 1096 = v96local v1098 = v(1.6,-1.5,-4.8)local v1100 = v(2,-2.6,-4)local v1102 = v(4.6,-3.2,-2)-- v1104 = v1040, v1106 = v1042, v1108 = v1044, v1110 = v1000-- v1120 = v1086local v1122 = v(0,-3.5,1.5)local v1124 = v(0,-4.5,6)local v1126 = v(0,-1.7,7.3)-- v1128 = v1094local v1130 = v(1.2,-3.5,1.8)local v1132 = v(1.2,-4.5,5.6)local v1134 = v(.5,-1.5,7.3)-- v1136 = v1102local v1138 = v(2.7,-3.5,2)local v1140 = v(2.7,-4.5,5.2)local v1142 = v(1,-1.2,7.3)-- v1144 = v1000 v1146 = v1002, v1148 = v1004, 1150 = v1006 -- v1160 = v1126local v1162 = v(0,-1,10)local v1164 = v(0,-.7,15.1)local v1166 = v(0,-.4,22.1)-- v1168 = v1134local v1170 = v(.2,-.9,10)local v1172 = v(.1,-.6,15.1)local v1174 = v(.1,-.37,22.1)-- v1176 = v1142local v1178 = v(.3,-.8,10)local v1180 = v(.2,-.6,15.1)local v1182 = v(.1,-.36,22.1)-- v1184 = v1006local v1186 = v(.4,-.7,10)local v1188 = v(.3,-.5,15.1)local v1190 = v(.2,-.3,22.1)-- v1200 = v1006, v1202 = v1186, v1204 = v1188, v1206 = v1190-- v1208 = v1014local v1210 = v(.9,-.5,10)local v1212 = v(.6,-.4,15.1)local v1214 = v(.3,-.3,22.1)-- v1216 = v1022local v1218 = v(1.3,-.2,10)local v1220 = v(.9,-.2,15.1)local v1222 = v(.4,-.3,22.1)-- v224 = v30-- v1226 = v226-- v1228 = v228-- v1230 = v230 -- v1240 = v240if lod == 1 then local divs = 3 xref_cubic_bezier_quad(divs,divs, v40,v42,v44,v0,v48,v50,v52,v8,v56,v58,v60,v16,v64,v66,v68,v24)xref_cubic_bezier_quad(divs,divs, v80,v82,v84,v86,v88,v90,v92,v94,v96,v98,v100,v102,v40,v42,v44,v0) xref_cubic_bezier_quad(divs,divs, v86,v122,v124,v126,v94,v130,v132,v134,v102,v138,v140,v142,v0,v2,v4,v6)xref_cubic_bezier_quad(divs,divs, v0,v2,v4,v6,v8,v10,v12,v14,v16,v18,v20,v22,v24,v26,v28,v30) xref_cubic_bezier_quad(divs,divs, v126,v162,v164,v166,v134,v170,v172,v174,v142,v178,v180,v182,v6,v186,v188,v190) xref_cubic_bezier_quad(divs,divs, v6,v186,v188,v190,v14,v210,v212,v214,v22,v218,v220,v222,v30,v226,v228,v230) xref_flat(divs,v(0,0,1), {v240},{v230},{v222,v214,v190},{v182,v174,v166}) xref_cubic_bezier_quad(divs,divs, v64,v66,v68,v24, v56,v1058,v1060,v1016, v48,v1050,v1052,v1008,v40,v1042,v1044,v1000)xref_cubic_bezier_quad(divs,divs, v40,v1042,v1044,v1000,v96,v1098,v1100,v1102,v88,v1090,v1092,v1094,v80,v1082,v1084,v1086) xref_cubic_bezier_quad(divs,divs, v1000,v1002,v1004,v1006,v1102,v1138,v1140,v1142,v1094,v1130,v1132,v1134,v1086,v1122,v1124,v1126)xref_cubic_bezier_quad(divs,divs, v24,v26,v28,v30, v1016,v1018,v1020,v1022, v1008,v1010,v1012,v1014,v1000,v1002,v1004,v1006) xref_cubic_bezier_quad(divs,divs, v1006,v1186,v1188,v1190, v1142,v1178,v1180,v1182, v1134,v1170,v1172,v1174, v1126,v1162,v1164,v1166) xref_cubic_bezier_quad(divs,divs, v30,v226,v228,v230,v1022,v1218,v1220,v1222,v1014,v1210,v1212,v1214,v1006,v1186,v1188,v1190) xref_flat(divs,v(0,0,1), {v240},{v1166},{v1174,v1182,v1190},{v1214,v1222,v230})else local divs = 4*lodset_material('glow',0,0,0,1,1,1,1,100,1,1.5,1)--set_material('body', .4,.42,.3,1,.5,.4,.35,20)if lod > 3 thentexture('gul_eyes.png',v(.5,.8,0),v(.033,0,0),v(0,0,-3))elseif lod > 2 then texture('gul_eyes_m.png',v(.5,.8,0),v(.033,0,0),v(0,0,-3))elseif lod > 1 then texture('gul_eyes_s.png',v(.5,.8,0),v(.033,0,0),v(0,0,-3))enduse_material('glow') xref_cubic_bezier_quad(divs,divs, v40,v42,v44,v0,v48,v50,v52,v8,v56,v58,v60,v16,v64,v66,v68,v24) xref_cubic_bezier_quad(divs,divs, v64,v66,v68,v24, v56,v1058,v1060,v1016, v48,v1050,v1052,v1008,v40,v1042,v1044,v1000) if lod > 3 thentexture('gul.png',v(.5,.7,0),v(0.02,0,0),v(0,0,-1.25)) elseif lod > 2 then texture('gul_m.png',v(.5,.7,0),v(0.02,0,0),v(0,0,-1.25)) elseif lod > 1 then texture('gul_s.png',v(.5,.7,0),v(0.02,0,0),v(0,0,-1.25)) enduse_material('body') xref_cubic_bezier_quad(divs,divs, v80,v82,v84,v86,v88,v90,v92,v94,v96,v98,v100,v102,v40,v42,v44,v0) xref_cubic_bezier_quad(divs,divs, v86,v122,v124,v126,v94,v130,v132,v134,v102,v138,v140,v142,v0,v2,v4,v6) xref_cubic_bezier_quad(divs,divs, v40,v1042,v1044,v1000,v96,v1098,v1100,v1102,v88,v1090,v1092,v1094,v80,v1082,v1084,v1086) xref_cubic_bezier_quad(divs,divs, v1000,v1002,v1004,v1006,v1102,v1138,v1140,v1142,v1094,v1130,v1132,v1134,v1086,v1122,v1124,v1126)endend,dynamic = function(lod) if lod > 1 then set_material('body', get_arg_material(0)) local freq = math.sin(os.clock()) + math.cos(-os.clock())local wing = vlerp(freq,v(0,0,0),v(0,1,-1))local tail = vlerp(freq,v(1.5,0,0),v(1,0,0)) local v0 = v(7,3.3,-1.7)local v2 = v(4.1,2.8,2.4)local v4 = v(4.1,2,4.8)local v6 = v(1.6,.9,7.3)local v8 = v(10.5,3.4,-2)local v10 = v(15.6,1.4,-.1)local v12 = v(15.6,1,2.4)local v14 = v(3.1,.5,7.3)local v16 = v(13.3,1.7,-2.5)local v18 = v(24.9,.7,-3) +winglocal v20 = v(24.9,.7,-.5) +winglocal v22 = v(4.7,.2,7.3)local v24 = v(15.5,0,-2.7)local v26 = v(28.3,0,-4.6)+wing*2local v28 = v(28.3,0,-2.1)+wing*2local v30 = v(6.3,0,7.3)local v126 = v(0,1.7,7.3)local v134 = v(.5,1.5,7.3)local v142 = v(1,1.2,7.3)-- v160 = v126local v162 = v(0,1,10)local v164 = v(0,.7,15.1)local v166 = v(0,.4,22.1) +wing*.5-- v168 = v134local v170 = v(.2,.9,10)local v172 = v(.1,.6,15.1)local v174 = v(.1,.37,22.1) +wing*.5 +tail-- v176 = v142local v178 = v(.3,.8,10)local v180 = v(.2,.6,15.1)local v182 = v(.1,.36,22.1) +wing*.5 +tail-- v184 = v6local v186 = v(.4,.7,10)local v188 = v(.3,.5,15.1)local v190 = v(.2,.3,22.1) +wing*.5 +tail-- v200 = v6, v202 = v186, v204 = v188, v206 = v190-- v208 = v14local v210 = v(.9,.5,10)local v212 = v(.6,.4,15.1)local v214 = v(.3,.3,22.1) +wing*.5 +tail-- v216 = v22local v218 = v(1.3,.2,10)local v220 = v(.9,.2,15.1)local v222 = v(.4,.3,22.1) +wing*.5 +tail-- v224 = v30local v226 = v(1.8,0,10)local v228 = v(1.1,0,15.1)local v230 = v(.4,0,22.1) +wing*.5 +taillocal v240 = v(0,0,22.1) +wing*.5 local v1000 = v(7,-3.3,-1.7)local v1002 = v(4.1,-2.8,2.4)local v1004 = v(4.1,-2,4.8)local v1006 = v(1.6,-.9,7.3)local v1008 = v(10.5,-3.4,-2)local v1010 = v(15.6,-1.4,-.1)local v1012 = v(15.6,-1,2.4)local v1014 = v(3.1,-.5,7.3)local v1016 = v(13.3,-1.7,-2.5)local v1018 = v(24.9,-.7,-3) +winglocal v1020 = v(24.9,-.7,-.5) +winglocal v1022 = v(4.7,-.2,7.3)-- local v1024 = v24-- local v1026 = v26-- local v1028 = v28-- local v1030 = v30local v1126 = v(0,-1.7,7.3)local v1134 = v(.5,-1.5,7.3)local v1142 = v(1,-1.2,7.3)-- v1160 = v1126local v1162 = v(0,-1,10)local v1164 = v(0,-.7,15.1)local v1166 = v(0,-.4,22.1) +wing*.5-- v1168 = v1134local v1170 = v(.2,-.9,10)local v1172 = v(.1,-.6,15.1)local v1174 = v(.1,-.37,22.1) +wing*.5 +tail-- v1176 = v1142local v1178 = v(.3,-.8,10)local v1180 = v(.2,-.6,15.1)local v1182 = v(.1,-.36,22.1) +wing*.5 +tail-- v1184 = v1006local v1186 = v(.4,-.7,10)local v1188 = v(.3,-.5,15.1)local v1190 = v(.2,-.3,22.1) +wing*.5 +tail-- v1200 = v1006, v1202 = v1186, v1204 = v1188, v1206 = v1190-- v1208 = v1014local v1210 = v(.9,-.5,10)local v1212 = v(.6,-.4,15.1)local v1214 = v(.3,-.3,22.1) +wing*.5 +tail-- v1216 = v1022local v1218 = v(1.3,-.2,10)local v1220 = v(.9,-.2,15.1)local v1222 = v(.4,-.3,22.1) +wing*.5 +tail-- v224 = v30-- v1226 = v226-- v1228 = v228-- v1230 = v230 -- v1240 = v240local divs = 4*lod if lod > 3 thentexture('models/ships/gul/gul.png',v(.5,.7,0),v(0.02,0,0),v(0,0,-1.25)) elseif lod > 2 then texture('models/ships/gul/gul_m.png',v(.5,.7,0),v(0.02,0,0),v(0,0,-1.25)) elseif lod > 1 then texture('models/ships/gul/gul_s.png',v(.5,.7,0),v(0.02,0,0),v(0,0,-1.25)) end use_material('body') xref_cubic_bezier_quad(divs,divs, v0,v2,v4,v6,v8,v10,v12,v14,v16,v18,v20,v22,v24,v26,v28,v30) xref_cubic_bezier_quad(divs,divs, v126,v162,v164,v166,v134,v170,v172,v174,v142,v178,v180,v182,v6,v186,v188,v190) xref_cubic_bezier_quad(divs,divs, v6,v186,v188,v190,v14,v210,v212,v214,v22,v218,v220,v222,v30,v226,v228,v230) xref_flat(divs,v(0,0,1), {v240},{v230},{v222,v214,v190},{v182,v174,v166}) xref_cubic_bezier_quad(divs,divs, v24,v26,v28,v30, v1016,v1018,v1020,v1022, v1008,v1010,v1012,v1014,v1000,v1002,v1004,v1006) xref_cubic_bezier_quad(divs,divs, v1006,v1186,v1188,v1190, v1142,v1178,v1180,v1182, v1134,v1170,v1172,v1174, v1126,v1162,v1164,v1166) xref_cubic_bezier_quad(divs,divs, v30,v226,v228,v230,v1022,v1218,v1220,v1222,v1014,v1210,v1212,v1214,v1006,v1186,v1188,v1190) xref_flat(divs,v(0,0,1), {v240},{v1166},{v1174,v1182,v1190},{v1214,v1222,v230}) endend})define_model('gul_bridge', {info = {lod_pixels = {.1,50,100,0},bounding_radius = 50,materials = {'grey', 'p_glow', 'win'},},static = function(lod) set_material('grey', .45,.5,.5,1,.3,.3,.3,10) set_material('p_glow', 0,0,0,.99,0,0,0,1,1.5,1.5,1.5) set_local_lighting(true) set_light(1, 0.05, v(0,.4,-3.5), v(4,4,4))set_light(2, 0.05, v(3.5,.4,0), v(4,4,4))set_light(3, 0.05, v(0,.4,3.5), v(4,4,4))set_light(4, 0.05, v(-3.5,.4,0), v(4,4,4)) use_light(1) use_light(2) use_light(3) use_light(4) texture('gul_pit.png') use_material('grey')load_obj('gul_bridge_in.obj')use_material('p_glow')zbias(1,v(0,0,0),v(0,0,0))load_obj('gul_pit_glow.obj')zbias(0) set_local_lighting(false)call_model('pilot_3_m',v(0,-.352,-2.771),v(1,0,0),v(0,1,0),.5) call_model('pilot_4_m',v(2.4,-.352,1.385),v(-.333,0,1),v(0,1,0),.5) call_model('pilot_5_m',v(-2.4,-.352,1.385),v(-.333,0,-1),v(0,1,0),.5)end})define_model('gul', {info = {scale = 2,lod_pixels = {.1,50,100,0},bounding_radius = 40,materials = {'body', 'chrome', 'steel', 'grey', 'win', 'e_glow', 'text'},tags = {'ship'},ship_defs = {{name = 'Gul',forward_thrust = -4e7,reverse_thrust = 2e7,up_thrust = 2e7,down_thrust = -2e7,left_thrust = -2e7,right_thrust = 2e7,angular_thrust = 4e7,gun_mounts = { { v(0,0.6,-25), v(0,0,-1) },{ v(0,0,16), v(0,0,1) },}, max_cargo = 250,max_laser = 2,max_missile = 0,capacity = 250,hull_mass = 150,price = 800000,hyperdrive_class = 5,}}},static = function(lod) call_model('gul_wing',v(0,0,0),v(1,0,0),v(0,1,0),1)if lod == 1 then load_obj('gul_coll.obj')elseset_material('chrome', .63,.7,.83,1,1.26,1.4,1.66,30) set_material('steel', .45,.55,.6,1,.5,.5,.6,30) set_material('body', .4,.42,.3,1,.5,.4,.35,20) set_material('win', .4,.45,.5,.4,1,1,1.5,100)set_material('text', .8,.8,.8,.4,.3,.3,.3,5) if lod > 3 thentexture('tex05.png')elseif lod > 2 then texture('tex05_m.png')else texture('tex05_s.png')enduse_material('steel')load_obj('gul_bridge.obj')if lod > 3 thentexture('tex01.png')elseif lod > 2 then texture('tex01_m.png')else texture('tex01_s.png')end load_obj('gul_fit.obj')if lod > 2 thentexture('tex03.png')else texture('tex03_s.png')endload_obj('gul_tubes2.obj')if lod > 2 thentexture('tex04.png')else texture('tex04_s.png')end load_obj('gul_tubes3.obj') use_material('chrome') load_obj('gul_nazzle.obj') if lod > 3 thentexture('tex02.png')elsetexture('tex02_s.png')end load_obj('gul_tubes1.obj') if lod > 3 thentexture('tex06.png')elseif lod > 2 then texture('tex06_m.png')else texture('tex06_s.png')end load_obj('gul_engine.obj') if lod > 3 thentexture('glow.png')elsetexture('glow_s.png')enduse_material('e_glow')load_obj('gul_eglow.obj')local M_T = v(5.63,2.917,10.5)xref_thruster(M_T,v(0,0,1),15,true)endend,dynamic = function(lod)if lod > 1 thenset_material('e_glow', lerp_materials(os.clock()*.5,{0, 0, 0, 1, 0, 0, 0, 0, .9, 1.4, 1.5 },{0, 0, 0, 1, 0, 0, 0, 0, .7, 1, 1.7 }))local reg = get_arg_string(0)use_material('text')zbias(1,v(0,0,0),v(0,1,0))text(reg,v(5.58,4.346,6),v(0,1,0),v(0,0,-1),1, {center=true})text(reg,v(-5.58,4.346,6),v(0,1,0),v(0,0,1),1, {center=true})zbias(0)local rot = math.pi*get_arg(3)*5call_model('gul_bridge',v(0,4.907,1.799),v(math.sin(rot),0,math.cos(rot)),v(0,1,0),1)texture(nil)use_material('win')load_obj('models/ships/gul/gul_win.obj')call_model('coll_warn',v(0,6.167,1.793),v(1,0,0),v(0,1,0),1)call_model('posl_red',v(5.635,4.346,0),v(1,0,0),v(0,1,0),1)call_model('posl_green',v(-5.635,4.346,0),v(1,0,0),v(0,1,0),1)endend})
i updated the file in the download section as well.you will have to extract either the plain or colorvariable version of the script befor it works.Gul (2011-02-18)