{"id":3739,"date":"2015-07-11T23:04:45","date_gmt":"2015-07-11T22:04:45","guid":{"rendered":"https:\/\/www.arhns.uns.ac.rs\/givsf\/?p=3739"},"modified":"2015-07-11T23:06:21","modified_gmt":"2015-07-11T22:06:21","slug":"maxscript-skripta-za-kvadratne-mozaike","status":"publish","type":"post","link":"https:\/\/www.arhns.uns.ac.rs\/givsf\/maxscript-skripta-za-kvadratne-mozaike\/","title":{"rendered":"MaxScript skripta za kvadratne mozaike"},"content":{"rendered":"<p>Prethodno istra\u017eivanje \u0107u iskoristiti da napravim skriptu koja \u0107e uba\u010dene slike pretvarati u mozaike. Za ovu skriptu je potrebno napraviti 2d array kockica po xy osi kojima \u0107e biti dodeljene odgovaraju\u0107e boje u odnosu na sliku koja se uvede.<\/p>\n<p>Da bi se napravio 2d array kockica potrebno je napraviti dupli &#8220;for&#8221;-loop (jer ne postoji komanda u maxscriptu-u koja radi isto \u0161to i array&#8230; u 3dsmax-u) koji otprilike izgleda ovako:<\/p>\n<ol>\n<li><strong><em>for y = 1 to\u00a0slika.height do\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;y-loop<br \/>\n<\/em><\/strong><\/li>\n<li><strong><em>(<\/em><\/strong><\/li>\n<li><strong><em>\u00a0\u00a0 for x = 1 to\u00a0slika.width do\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;x-loop<br \/>\n<\/em><\/strong><\/li>\n<li><strong><em>\u00a0\u00a0\u00a0\u00a0 (<\/em><\/strong><\/li>\n<li><strong><em>\u00a0\u00a0\u00a0\u00a0\u00a0 b = box width:8 length:8 height:2<\/em><\/strong><\/li>\n<li><strong>\u00a0\u00a0\u00a0 \u00a0 <em>b.pos = [x,-y,0]<\/em><\/strong><\/li>\n<li><strong>\u00a0\u00a0\u00a0\u00a0\u00a0<em> b.name = uniquename &#8220;Kockica&#8221;<\/em><\/strong><\/li>\n<li><strong><em>\u00a0\u00a0\u00a0\u00a0 )<\/em><\/strong><\/li>\n<li><strong><em>)<\/em><\/strong><\/li>\n<\/ol>\n<p>Dok dodeljivanje boja po kockicama \u0107e se vr\u0161iti slede\u0107im parametrima:<\/p>\n<p>a)<strong><em> slika = selectBitMap caption:&#8221;Izaberite Bitmap&#8221;<\/em><\/strong><\/p>\n<p>-da dobijemo prozor za izbor slike i napravimo varijablu koju ve\u0107 koristimo za for-loop u primeru, mora biti pre oba loop-a!<\/p>\n<p>b)<em><strong> bojaMozaika = getpixels slika [0,y-1] \u0161irina_slike<\/strong><\/em><\/p>\n<p>-da uzmemo podatke o svakom pixelu slike, ovo je najbolje staviti unutar y-loop-a<\/p>\n<p>c) <em><strong>b.wirecolor = bojaMozaika[x]<\/strong><\/em><\/p>\n<p>-da dodelimo boje pixela odgovaraju\u0107im kockicama, ovo \u0107e se nalaziti unutar x-loop-a<\/p>\n<p>E sad, kada bismo ove dve stavke, ovakve kakve jesu, spojili u odgovaraju\u0107i format maxScript skripte i ubacili sliku malo vece rezolucije (recimo 4000 x 2366)&#8230;<\/p>\n<p>&#8230;Zakucali bi 3dsmax (mo\u017eda \u010dak i \u010ditav kompjuter) ili bi nam trebalo sati, dani, meseci da skripta odradi svoj posao. Za\u0161to? Jer \u0107e nam delovi skripte (pod 1. , 3. , 6. , b) i c) ) sra\u010dunati sve pixele slike i napraviti isto toliko kockica. Za na\u0161u sliku (rezolucije 4000 x 2366) to bi zna\u010dilo da ukupno imamo samo 9464000 pixela i kockica koje na\u0161 3dsmax i kompjuter moraju da obrade (lako) i prika\u017eu na ekranu (nemogu\u0107e! ili skoro nemogu\u0107e?).<\/p>\n<p>Da bismo ovo iznad izbegli delove skripte pod 1. , 3. i 6. \u0107emo blago izmeniti koriste\u0107i malo matematike i na taj na\u010din smanjiti boje i &#8220;rezoluciju&#8221; kockica<\/p>\n<p>1. <em>for y = 1 to\u00a0slika.height<\/em><strong><em> by 80 <\/em><\/strong><em>do<\/em><\/p>\n<p>3. <em>for x = 1 to slika.width <strong>by 80<\/strong> do<\/em><\/p>\n<p>6. <em>b.pos = [x<strong>*0.125<\/strong>,-y<strong>*0.125<\/strong>,0]<\/em><\/p>\n<p>(boldovani brojevi su uzeti za trenutni primer slike rezolucije 4000 x 2366)<\/p>\n<p>Za na\u0161 primer to zna\u010di da smo rezoluciju smanjili na 50 x 29,575 \u0161to je pribli\u017eno 1478 pixela, i 6400 puta br\u017ee i manje u odnosu prvobitno stanje slike. Ukratko ostavili smo svaki 80-ti pixel u x i y pravcu i tako dobijene pixele pribli\u017eili jedne drugima. Primer kako ovo funkcioni\u0161e na slici je za svaki 2 pixel.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2015\/07\/rezolucija-i-pixel.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3740\" src=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2015\/07\/rezolucija-i-pixel-212x300.jpg\" alt=\"rezolucija i pixel\" width=\"212\" height=\"300\" srcset=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2015\/07\/rezolucija-i-pixel-212x300.jpg 212w, https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2015\/07\/rezolucija-i-pixel-723x1024.jpg 723w\" sizes=\"auto, (max-width: 212px) 100vw, 212px\" \/><\/a><\/p>\n<p>Trenutne mane skripte su nemogu\u0107nost menjanja parametara van maxscript editor-a,za\u00a0 \u0161ta \u0107e biti vi\u0161e re\u010di u slede\u0107em postu.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prethodno istra\u017eivanje \u0107u iskoristiti da napravim skriptu koja \u0107e uba\u010dene slike pretvarati u mozaike. Za ovu skriptu je potrebno napraviti 2d array kockica po xy osi kojima \u0107e biti dodeljene odgovaraju\u0107e boje u odnosu na sliku koja se uvede. Da bi se napravio 2d array kockica potrebno je napraviti dupli &#8220;for&#8221;-loop (jer ne postoji komanda&hellip; <a class=\"more-link\" href=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/maxscript-skripta-za-kvadratne-mozaike\/\">Continue reading <span class=\"screen-reader-text\">MaxScript skripta za kvadratne mozaike<\/span><\/a><\/p>\n","protected":false},"author":136,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"coauthors":[160],"class_list":["post-3739","post","type-post","status-publish","format-standard","hentry","category-opste","entry"],"_links":{"self":[{"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/posts\/3739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/users\/136"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/comments?post=3739"}],"version-history":[{"count":3,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/posts\/3739\/revisions"}],"predecessor-version":[{"id":3743,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/posts\/3739\/revisions\/3743"}],"wp:attachment":[{"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/media?parent=3739"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/categories?post=3739"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/tags?post=3739"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/coauthors?post=3739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}