G005 – Membuat progressif scaling dan progressif shading dengan Attractor Point dalam Grasshopper

Pada empat artikel sebelumnya, kita hanya membahas tentang perkenalan Grasshopper. Bagi sebagian orang membaca teori itu membosankan pastinya. Maka dari itu sekarang kita mulai tutorial yang menghasilkan bentuk-bentuk 3D agar lebih menarik dan masuk akal bagi para Designer dan Makers. Tapi sabar dulu. Meskipun membosankan, 4 artikel sebelumnya sangat penting untuk mengenal cara kerja Grasshopper, yang kalau tidak dipahami bisa berujung mandek dan tak jarang membuat orang menyerah dengan Grasshopper. Bagi yang belum sempat membaca, silakan lihat link berikut ini:

  1. G001 – Pengenalan Grasshopper untuk Pemula
  2. G002 – 10 Kategori Component dalam Grasshopper
  3. G003 – Pengelolaan Data pada Grasshopper
  4. G004 – Vector dalam Grasshopper

Karena kita baru saja membahas tentang Vector dan penggunaannya pada Grasshopper, kini kita akan mengaplikasikan prinsip vector dengan menggunakan Attractor Point dan referensi jarak relatif dari titik (point) tersebut untuk menentukan dimensi dan warna kubus-kubus di sekitarnya. Semakin dekat dengan Attractor Point, kubus akan semakin kecil dan warnanya mendekati merah.

 

Contoh bentuk akhir yang akan kita hasilkan adalah seperti gambar berikut:

 

Kita akan membuatnya dengan merangkai definition seperti ditunjukan canvas berikut ini:

 

Bagi sobat-sobat yang mengerjakan PR dan mencoba membaca Grasshopper Primer seperti disarankan pada artikel sebelumnya, tentunya bentuk 3D dan definisi di atas terlihat familier. Betul, metode tersebut diambil langsung dari Grasshopper Primer, dengan perubahan seperlunya mengingat banyak komponen dari referensi tersebut sudah obsolete. Perubahan-perubahan pada definisi ditandai dengan warna kuning pada gambar berikut.

 

Sebelum kita memulai tutorial step by step untuk membuat definisi di atas, bersihkan hardisk dan memory secukupnya karena bisa jadi definisi ini cukup berat bagi komputer yang dipakai. Selanjutnya silakan mencoba langkah berikut untuk membuat definisi di atas. Untuk memudahkan pemahaman, kita membagi langkah menjadi 5 bagian.

 

PART 1 – Membuat rectangular grid 3 dimensi

  1. Double-klik pada canvas dan ketik <RecGrid> lalu enter. Perhatikan bahwa komponen <RecGRid> pada Grasshopper yang baru berbeda dengan gambar dari buku Grasshopper Primer. Pada <RecGrid> yang lama, hanya ada 4 input: P (titik awal), X (jumlahi sel pada aksis X), Y (jumlah sel pada aksis Y, dan S (besar spacing atau jarak antar grid). Kemudian ada 3 output: G (geometri grid keseluruhan), C (individual cell), dan M (tidak diketahui fungsinya karena kami tidak punya versi lama). Sementara itu pada komponen <RecGrid> versi yang baru terdapat 5 input: P (titik awal), Ex (dimensi sel pada aksis x), Ey (dimensi sel pada aksis y), Sx (jumlah seri pada aksis x), dan Sy (jumlah seri pada aksis y). Kemudian hanya ada 2 input: C (individual cell) dan P (individual point). Artinya pada komponen <RecGrid> yang baru ini bentuk grid bisa berupa persegi panjang dan keluarannya belum bisa diperlukan sebagai satu geometri. Pengetahuan akan hal ini akan mempengaruhi operasi berikutnya.
  2. Double-klik pada canvas dan ketik angka 6 lalu enter. Akan muncul number slider pertama dengan set angka 6. Hubungkan number slider pertama ini dengan input <RecGrid/Ex> dan input <RecGrid/Ey>.
  3. Doible-klik pada canvas dan ketik angka 11 lalu enter. Akan muncul number slider kedua dengan set angka 11. Hubungkan number slider kedua ini dengan input <RecGrid/Sx> dan input <RecGrid/Sy>. Sekarang kita mempunyai grid persegi dalam sumbu X dan Y.
  4. Selanjutnya kita akan menggandakan grid tersebut ke atas (membuatnya bertingkat) sejajar dengan sumbu Z. Double-klik pada canvas dan ketik Series lalu enter. Hubungkan number slider pertama dengan input <Series/C> dan number slider kedua dengan Input <Series/N>.
  5. Double-klik pada canvas dan ketik Unit Z lalu enter. Hubungkan output <Series/S> dan Input <UnitZ/F>.
  6. Untuk membuat grid bertingkat, kita akan memerlukan komponen <Move>. Pada artikel sebelumnya sudah dibahas bahwa <Move> bisa berfungsi ganda untuk melakukan Copy. Kali ini komponen <Move> juga berfungsi ganda untuk Array. Namun, sebelum menggunakan <Move> ini, kita memerlukan input grid dalam bentuk geometry, sementara hasil dari <RecGrid> di versi yang baru ini berupa sel dan titik individual. Oleh karena itu kita memerlukan bantuan komponen <Group>.
  7. Double-klik pada canvas dan ketik Group lalu enter. Kemudian hubungkan output dari <RecGrid/P> ke <Group/O>. Kita memilih P karena kita memerlukan titik-titik dari Rectangular Grid yang kita punya untuk dikaitkan dengan Attractor Point yang akan kita buat nanti.
  8. Double-klik pada canvas dan ketik Move lalu enter. Hubungkan output <Group/G> ke input <Move/G> dan output <UnitZ/V> ke input <Move/T>. Sekarang kita mempunyai grid bertingkat dengan jumlah sisi-sisi yang sama.

 

PART 2 – Mentransformasi setiap titik (point) pada grid menjadi kubus.

  1. Selanjutnya kita akan membuat box/kubus dari masing-masing titik/sel. Kita harus memecah kembali grid yang sudah kita Group dengan bantuan komponen <Ungroup>. Double-klik pada canvas dan ketik Ungroup lalu enter. Hubungkan output <Move/G> ke input <Ungroup/G>. Kini grid kita kembali terpecah menjadi individual cell.
  2. Double-klik pada canvas dan ketik CenterBox lalu enter. Hubungkan output <Ungroup/O> ke input <CenterBox/B>. Kali ini kita punya rangkain kubus-kubus kecil melayang dalam grid bertingkat kita.

 

PART 3 – Membuat Attractor Point dan mengukur jaraknya terhadap tiap titik pada Grid.

  1. Selanjutnya kita akan membuat Attractor Point, tokoh utama kita pada artikel ini. Double-klik pada canvas dan ketik Point kemudian enter. Komponen <Point> ini membutuhkan referensi langsung dalam bentuk point yang kita gambar langsung di Rhino, berbeda dengan komponen <ConstructPoint> yang secara otomatis berkoordinat 0.0.0. Klik jendela Rhino. Pada tab bar Command ketik Point, enter, ketik 0.0.0, enter. Kini kita punya satu titik di koordinat 0.0.0. Masuk kembali pada jendela Grasshopper. Klik kanan pada komponen <Point> lalu klik Set One Point, secara otomatis kita akan dibawa masuk kembali ke jendela Rhino untuk men-select titik referensi. Klik point yang tadi kita buat (pada koordinat 0.0.0) kemudian enter. Bila perlu kita bisa me-rename komponen <Point> kita dengan nama <Attractor Pt>, namun hal ini bersifat opsional.
  2. Double-klik pada canvas dan ketik Distance lalu enter. Hubungkan <Point> ke input <Distance/A> dan output <Ungroup/O> ke input <Distance/B>. Dengan ini masing-masing point dalam grid kita telah terukur jaraknya terhadap Attractor Point. Jarak ini akan nantinya akan menjadi parameter besar-kecilnya kubus terhadap Attractor Point.
  3. Double klik pada canvas dan ketik Division lalu enter. Double-klik pada canvas dan ketik 88 lalu enter. Kita akan memperoleh number slider ketiga berisikan setting angka 88. Hubungkan number slider ini ke Input <Division/B> dan hubungkan output <Distance/D> ke input <Division/A>.

 

PART 4 – Membuat Progressif Scaling

  1. Selanjutnya kita akan mentransformasi kubus-kubus agar ketika semakin dekat jaraknya dengan Attractor Point, kubus-kubus tersebut akan semakin kecil dimensinya. Sistem ini dinamakan dengan progressif scale terhadap attractor point. Untuk membuatnya, kita memerlukan komponen <Scale>.
  2. Double-klik pada canvas dan ketik Scale lalu enter. Hubungkan output <CenterBox/B> dengan Input <Scale/G>, output <Ungroup/O> ke input <Scale/C>, dan output <Division/R> ke input <Scale/F>. Selanjutnya komponen Scale akan berwarna merah dengan error warning yang menyatakan bahwa scale factor bernilai 0. Hal ini dikarenakan karena hasil pembagian berupa angka decimal. Klik kanan pada <Scale/F> lalu klik Expression dan ketik X+1 untuk menghasilkan angka yang lebih sama dengan 1.0. Sekarang preview model pada Rhino sudah memperlihatkan progressif scale yang kita maksud.

 

PART 5 – Membuat Progressif Shading

  1. Selanjutnya kita akan membuat permainan warna relatif terhadap jarak titik ke Attractor Point. Untuk membuatnya, kita akan perlu melakukan sortir terhadap data seperti yang kita bahas di Artikel G003. Kita melakukan sortir dengan bantuan komponen <Sort>, <Length>, dan <Item>. Selain itu, untuk pewarnaan kita akan memerlukan komponen <Gradien>, <Material>, dan <CustomPreview>.
  2. Double-klik pada canvas dan ketik Sort lalu enter. Hubungkan output <Division/R> ke input <Sort/K>.
  3. Double-klik pada canvas dan ketik Length lalu enter. Double-klik pada kanvas dan ketik Item lalu enter. Klik komponen <Item> lalu duplikasi komponen tersebut dengan Ctrl-C dan Ctrl-V. Sekarang kita mempunyai dua komponen Item pada canvas. Hubungkan output <Sort/K> ke Input <Item/L> pada komponen <Item> yang pertama dan kedua. Selanjutnya hubungkan output <Sort/K> ke input <Length/L> lalu teruskan output <Length/L> ke input <Item/i> pada komponen <Item/i> yang kedua.
  4. Double-klik pada canvas dan ketik Gradient lalu enter. Klik kanan pada komponen <Gradient> lalu klik present. Di sini kita bisa memilih skema warna yang akan kita aplikasikan pada model kita. Pilih sesuai selera. Hubungkan output <Item/L> dari komponen <Item> yang pertama ke input <Gradient/L0>. Normalnya kita bisa menghubungkan output <Item/L> dari kompponen <Item> kedua ke input <Gradient/L1> untuk menentukan batas atas gradasi. Tapi di contoh ini kita tidak memakainya. Silakan bereksperimen dengan batas atas, batas bawah, dan jenis preset dalam waktu luang masing-masing. Hubungkan output <Division/R> ke input <Gradient/t>
  5. Double-klik pada canvas dan ketik Material lalu enter. Komponen <Material> ini dulunya bernama <CreateShader>, namun penamaan <Material> lebih tepat. Hubungkan output <Gradient> ke input <Material/Kd>.
  6. Terakhir double-klik pada canvas dan ketik Custom Preview lalu enter. Kemudian hubungkan output <Material/M> ke input <CustomPreview/S>. Hubungkan juga output <Scale/G> ke input <CustomPreview/G>. Sekarang kita bisa melihat bahwa warna kubus juga berubah relatif terhadap jarak Attractor Point. Mainkan perubahan dimensi dengan menggeser posisi Attrastor Point di layar Rhinoceros. Ukuran kubus, banyaknya kubus, spacing, dan bentuk grid juga bisa dimainkan dengan mengubah aneka parameter dalam definisi yang telah dibuat.

 

SELESAI. Semoga membantu. Silakan tambahkan komentar, follow web ini, dan share artikel ini kepada yang memerlukan.

 

One Reply to “G005 – Membuat progressif scaling dan progressif shading dengan Attractor Point dalam Grasshopper”

Comments are closed.