--MAXScript Tutorials --LESSON 02 --by Borislav Petrov [FA] --bobo@email.archlab.tuwien.ac.at ----------------------------------------------- --Visit --http://support.ktx.com/~10 --for more MAXScript information and resources. --Visit the Diner --http://support.ktx.com/~8 --for a public discussion on these Tutorials. ----------------------------------------------- --Open a New Max scene --Load the script --PRESS Ctrl+E to Evaluate --Select from Drop-down list to open utility lesson02 "Lesson02" ( group "About..." ( label lesson_label01 "Lesson 02 Script" label lesson_label02 "by Borislav Petrov" label lesson_label03 "Kinetix Forum Assistant" ) group "Settings:" ( dropdownlist effect_mode "Effect Mode" items:#("Luminosity","Red Channel","Green Channel","Blue Channel") spinner base_size "Base Size:" range:[1,1000,100] fieldwidth:40 align:#right spinner multiplier "Size Multiplier:" range:[0.1,10,2] fieldwidth:40 align:#right spinner nth_pixel "Every Nth Pixel:" range:[1,10,1] fieldwidth:40 align:#right type:#integer button get_image "Get Image File" width:140 edittext bmp_name "File" text:"c:\\mxstut\\m.tga" ) button start_process "LET'S DO IT!" width:140 height:30 on get_image pressed do ( pick_image = selectBitmap caption:"Get Image File" if pick_image != undefined then bmp_name.text = pick_image.filename ) on start_process pressed do ( work_bmp = openbitmap bmp_name.text bmp_w = work_bmp.width bmp_h = work_bmp.height progressstart "Generating Objects..." for h = 1 to bmp_h by nth_pixel.value do ( pixel_line = getpixels work_bmp [0,(h-1)] bmp_w progressupdate (h as float /bmp_h *100) for w = 1 to bmp_w by nth_pixel.value do ( case effect_mode.selection of ( 1: size_value = base_size.value + multiplier.value*(pixel_line[w].r+pixel_line[w].g+pixel_line[w].b)/3 2: size_value = base_size.value + multiplier.value*(pixel_line[w].r) 3: size_value = base_size.value + multiplier.value*(pixel_line[w].g) 4: size_value = base_size.value + multiplier.value*(pixel_line[w].b) ) new_object = box length:base_size.value width:base_size.value height:size_value new_object.pos = [w*base_size.value, (-h*base_size.value), 0] new_object.name = uniquename "2nd_Lesson" new_material = standardmaterial diffuse:pixel_line[w] new_material.name = new_object.name new_object.material = new_material )--end w loop )--end h loop progressend () close work_bmp )--end on button pressed )--end utility