ช่วงนี้มีกลุ่มคลั่งแอนิเมชั่นมาปรึกษาเยอะ แต่ผมไม่ค่อยชอบงานด้านมัลติมีเดียที่เกี่ยวกับภาพ เสียง วิดีโอ สักเท่าไร เคยพยายามทดลองศึกษาแต่ก็ไม่ค่อยเข้าใจนัก ซึ่งคงยังไม่อาร์ตติสพอละมั๊งครับ ถ้าพูดถึงเรื่องซอฟต์แวร์ด้าน 3D แอนิเมชั่น ในกลุ่มโอเพนซอร์สจะต้องบอกว่า Blender! ผมเองไม่ค่อยจะซาบซึ้งกับ Blender เท่าไร ที่พอจะทำได้คือออกแบบ Render Farm เล็กๆ สำหรับไฟล์ .blend ครับ :) ซอฟต์แวร์ที่ผมเลือกมาใช้ทำ Render Farm ขนาดเล็กนี้ได้แก่

  • Debian/Ubuntu
  • Blender 2.5x
  • BRender
  • Apache2
  • PHP5
  • MySQL 5.x

Render Farm ที่เราจะสร้างกันนี้ ใช้แนวคิดแบบ out-of-box ซึ่งมีส่วน Interface บนเว็บสามารถสั่ง Render Job ต่างๆ ได้ง่าย และใช้ตัว Blender เป็นตัว Render Engine เอง ซึ่งหากคุณไม่ชอบ Blender คุณสามารถเปลี่ยน Render Engine เองได้ (แก้โค้ดในส่วน Client เองได้ง่ายๆ) มาดูโครงสร้าง Render Farm กันครับ

จากภาพ เท่าที่ศึกษาการทำงานของคนที่ทำงานด้านกราฟิกพบว่าชอบใช้ Share Storage กันมาก ไม่ว่าจะผ่าน CIFS หรือ SSH ซึ่งโครงสร้าง Render Farm จึงมีส่วน Share Storage สำหรับวางไฟล์ Projects/Senes/Shots (.blend) ซึ่งไม่ว่าจะเป็น Workstation แบบใดก็สามารถเข้าถึงเพื่อวางไฟล์สำหรับรอการ Render ได้ การสั่ง Render สามารถสั่ง Render ผ่านหน้าเว็บซึ่งเป็นตัวจัดการของ BRender ในขณะเดียวกันเราสามารถจัดการ Render Node ผ่านทางหน้าเว็บนี้ได้เช่นกัน มาลงมือกันเลย! ให้คุณติดตั้ง OS อาจจะเป็น Ubuntu หรือ Debian ในเครื่อง Front End และเครื่อง Node ให้เรียบร้อย

ติดตั้งเครื่อง Front End (BRender Server)

ติดตั้ง Apache2, PHP5, MySQL ให้เรียบร้อย

sudo apt-get install phpmyadmin mysql-server

จากนั้นใช้ PHPMyAdmin เพิ่มผู้ใช้ชื่อ brender ให้สามารถเชื่อมต่อเข้ามายัง MySQL จาก Host ใดๆ ได้ ดาวน์โหลด BRender จากเว็บไซต์ http://oenvoyage.github.com/brender/ แตกไฟล์ tar.gz หรือ zip ไปยัง /var/www/brender ตั้งค่า Document Root ไปยัง /var/www/brender

ดาวน์โหลด Render Engine ซึ่งก็คือตัว Blender เองจากเว็บ blender.org มาแล้วคลี่ไฟล์ลงไปที่ /var/www/brender/blender_bin/linux/ จากนั้นเริ่มติดตั้ง BRender กันได้เลย โดยเปิด Browser ไปยังเครื่อง Front End เช่น http://192.168.56.100 เป็นต้น เบราเซอร์จะเปิดโปรแกรมติดตั้ง BRender ดังภาพ

เลือกชนิด OS ให้ถูกต้อง ใส่ชื่อ Host หรือ IP Address ของ MySQL Server ในกรณีนี้เป็น localhost (ฐานข้อมูลอยู่ที่เครื่อง Front End) ใส่ Username และ Password ให้ถูกต้อง คลิกปุ่ม Install BRender โปรแกรมจะติดตั้งฐานข้อมูลที่ต้องใช้และสร้างไฟล์คอนฟิกให้ จากนั้นจะโปรแกรมจะพาเข้าหน้า Overview ดังภาพ

จากหน้า Overview คุณจะพบว่าโปรแกรมจะแจ้งว่า Server Render ตาย (มุมขวาบนตัวสีแดง) และไม่มี Render Node เชื่อมต่ออยู่ (โปรแกรมใช้คำว่า Client) ให้คุณเปิด terminal จากนั้นเข้าไปที่ /var/www/brender พิมพ์คำสั่ง

./brender_server.php

เพื่อเริ่มการทำงานของ Brender Server เมื่อ refresh หน้า Overview อีกครั้งจะไม่พบข้อความเตือนแล้ว

หากคุณใช้ Share Storage ให้คุณสร้าง Directory ชื่อ [ShareDir]/blender เอาไว้แล้วคัดลอก ไดเรคทอรี blend, render, thumbnails ไปยัง [ShareDir]/blender และชี้ลิงค์กลับไปยัง /var/www/brender เหมือนเดิม

ติดตั้งเครื่อง Render Node (ทำเหมือนกันทุกเครื่อง)

เมื่อติดตั้ง Ubuntu หรือ Debian เรียบร้อยแล้วให้ติดตั้ง PHP5, MySQL Client ให้เรียบร้อย จากนั้น mount ไปยัง Share Directory ที่เครื่อง Front End โดยให้ mount point ชื่อเดียวกันเช่น [ShareDir]/blender คุณจะพบไดเรคทอรี blend, render และ thumbnails อยู่ในนั้น จากนั้นให้คัดลอกไฟล์ brender จากเครื่อง Front End ที่ /var/www/brender ไปยังเครื่อง Render Node ตั้งค่าคอนฟิก /var/www/brender/connect.php ของ BRender ให้ถูกต้อง

เพิ่ม Render Node ให้ BRender Server

คลิกที่เมนู Client ของ BRender เพิ่ม Render Node (Client) คลิกปุ่ม Add New Client กรอกชื่อ Client เลือกระบบปฏิบัติการให้ถูกต้อง ดังภาพ

แล้วคลิกปุ่ม Add New Client โปรแกรมจะกลับมาที่หน้า Client พร้อมรายงานสถานะ Client ชื่อ Node01 ว่า not running แถบสถานะจะเป็นสีส้ม ดังภาพ

ให้เพิ่ม Client ไปจนครบตามจำนวนที่ต้องการ จากนั้นสั่งใช้ Brender Client ในทุกๆ Node ด้วยคำสั่ง ./brender_client.php <ชื่อ Client ที่เพิ่มลงใน BBrender Server> เช่น

./brender_client.php node01

ให้ refresh หน้า Client จะพบว่าสถานะ Client เป็น running แถบสถานะเป็นสีเขียว ถือว่าใช้ได้

ทดสอบการ Render จาก BRender Benchmark

คลิก Menu Setting คลิกปุ่ม New Project ใส่ชื่อ Project กำหนด path ของไฟล์ .blend และ path ของผลการ render ซึ่งก็คือ Share Storage ที่เราใช้นั่นเอง ของผมใช้ /blender/blend, /blender/render ครับ :)

เมื่อเพิ่ม Project เรียบร้อยแล้วจะพบว่ามีรายชื่อ Project ดังภาพ

เมื่อเพิ่ม Project เรียบร้อยแล้ว ให้คุณเพิ่ม job เพื่อสั่ง render ไฟล์ .blend ได้ดังนี้ คลิกไปที่เมนู New Job เลือก Project เลือก Scene และ Shot ที่ต้องการ render กำหนดรูปแบบไฟล์ output ค่าคอนฟิก เฟรมเริ่มต้น เฟรมสิ้นสุด ดังภาพ

จากนั้นคลิกปุ่ม Start job โปรแกรมจะกลับมาที่หน้า Overview อีกครั้งพร้อมรายการ job คลิกปุ่ม Play เพื่อเริ่มการ render สภานะจะเป็นสีฟ้า และมีภาพ thumbnails แสดง frame ที่ render ล่าสุดออกมาให้ดูดังภาพ

ผลลัพท์ที่ได้จากการ render จะได้ดังภาพ

ผลลัพท์เมื่อทำเป็นแอนิเมชันเรียบร้อยแล้ว

Comments are closed.