Kiến thức: Blender Bmesh ra mắt và tại sao chúng ta cần n-gon

Blender 2.63, phiên bản mới nhất của phần mềm 3D mã nguồn mở sẽ được ra mắt trong vài ngày tới. Các nhà phát triển đặt mục tiêu quan trọng nhất của phiên bản này là Bmesh. Bmesh là hệ thống đặt biệt cho phép Blender quản lý n-gon tức là các poly có hơn 4 cạnh. Điều này chẳng có gì đặt biệt so với các phần mềm 3D khác nhưng đổi với Blender thì đây là lần đầu tiên người dùng được phép sử dụng n-gon trong dựng hình, trước đây Blender chỉ hỗ trợ tam giác và tứ giác mà thôi. Khi Bmesh bắt đầu phát triển đã gặp 2 luồng ý kiến trái chiều. Các cao thủ Blender vốn quen với cách xử lý hình khối chỉ toàn tam giác và tứ giác cho rằng tại sao phải cần n-gon. Các “thấp thủ” (như REMY) vốn đã quen với các phần mềm 3D khác thấy cách dựng hình của Blender quá khó tiếp cận và mất nhiều thời gian để tối ưu lưới cho được như ý.

Khi Blender 2.5 ra đời với mục tiêu tiếp cận nhiều người dùng hơn từ thay đổi giao diện, nhiều tính năng thời thượng được thêm vào thì người ta nghĩ ngay đến hỗ trợ n-gon cho dựng hình bằng Blender và dự án Bmesh ra đời. Nhưng dự án này cũng chẳng suông sẻ lắm. Nhà lập trình đầu tiên bỏ dở dự án. Nhà lập trình thứ nhì tiến hành rất chậm, anh này lại còn sức khỏe yếu nên cứ hay ra vào bệnh viện làm dự án kéo dài mãi ko xong. Vì tính chất của Bmesh là nền tảng cho toàn bộ phần mềm hoạt động nên cuối cùng dự án được giao cho Campbell Barton, trụ cột về lập trình của Blender Foundation. Anh còn được hỗ trợ thêm 2 lập trình viên khác cùng làm việc. Nhờ có bộ ba này mà dự án tiến lên nhanh chóng. Bmesh đã được tích hợp vào mã nguồn của Blender và chờ ngày ra mắt chính thức sắp tới.

Để các bạn hiểu rõ hơn về Bmesh bạn có thể xem bài review của Jonathan Willianson  tại CGCookie http://cgcookie.com/blender/2012/02/14/blender-bmesh-modeling-system-overview-01/

Nhân dịp Bmesh chính thức ra mắt, REMY xin dịch bài ‘Blender BMesh in action… what’s so special about ngons anyways?” của trang Game From Scratch. Bài này chuẩn đến nỗi được đưa vào Blender Wiki. Dưới đây là bài dịch:

——————————————————-

Như các bạn cũng biết, tôi đang rất phấn khích khi Bmesh được thêm vào mã nguồn chính (trunk) của Blender trong phiên bản sắp tới. Bạn sẽ tự hỏi rằng tại sao. Lúc trước tôi đã giải thích n-gon là gì rồi nhưng chưa cho thấy nó hoạt động như thế nào nên lợi ích của nó hơi khó hiểu 1 chút. Do đó phần dưới đây chính là để trình diễn những tính năng mới được thêm vào Blender 2.63 một khi Bmesh được thêm vào. Mỗi ảnh động có kích thước 1080p nên muốn xem chi tiết hơn thì bạn hãy bấm vào đó. Một vài tính năng như công cụ brigde edge ko hẳn dành riêng cho Bmesh (ko có Bmesh vẫn thực hiện được), tuy nhiên những thay đổi khi có Bmesh hỗ trợ làm cho những tính năng này khả thi hơn

1>Làm ẩn cạnh/mặt/ điểm bằng Dissolve

 

Kết hợp với công cụ knife, đây là tính năng lớn nhất của Bmesh. Thay vì trước đây xóa các mặt, điểm hoặc cạnh, giờ bạn có thể ẩn chúng đi để cho ra một hình n-gon lớn. Do đó bạn có thể them chi tiết những chỗ nào cần hoặc nhanh chóng xóa đi nếu ko cần. Với cách làm việc tam/tứ giác trước đây, việc đi lưới là một tiến trình vất vả khi phải xóa mặt/cạnh rồi tạo lại chúng bằng tam giác hay tứ giác ngay sau đó. Giờ với Bmesh thì mọi việc đơn giản hơn nhiều. Mặt dù vậy cũng cần có 1 lời cảnh báo trước là khi bạn có thể làm được điều gì đó ko có nghĩa là bạn nên làm.

Dissolve có thể làm ra hình khối bị vặn vẹo, nhất là khi ẩn các thành phần ko đồng phẳng. Cuối cùng lúc render, các mặt vẫn còn là tam giác nên nếu ẩn mặt thì làm trên khu vực nào khả thi, bạn sẽ ko gặp phải những lỗi kỳ cục. Như đã nói, đôi khi với công cụ knife có thể nhanh chóng chỉnh hầu hết các lỗi. Điều cầnnh ớ kỹ là Bmesh ko thể thay thế được sự cần thiết của lưới tốt. Nó làm cho mọi chuyện dễh ơn nhưng cuối cùng thì nguyên lý dựng hình cơ bản vẫn giữ nguyên.

Một lưu ý sau cùng  là công cụ dissolve làm việc hơi khác nhau một chút nếu bạn chọn cạnh, chọn mặt hay chọn điểm.

_Làm cách nào để thực hiện?

Ở chế độ Edit, chọn hình khối của bạn

Bấm “X”

Chọn “Dissolve”

2>Công cụ Knife

he other major part of BMesh is the knife tool.  There is a knife tool in Blender 2.5x but it’s fairly awful.  First it has to tessellate as it goes because of the 3-4 vertices per face limit.  The new knife tool is much more capable and flexible and as you can see from the image above, can make pretty arbitrary cuts with ease.  Again though, good topology is still important, so use the knife with care!

Phần quan trọng khác của Bmesh là công cụ Knife. Blender 2.5x cũng có Knife nhưng khá là tệ. Trước hết nó phải bị phân mảnh bởi vì giới hạn mặt chỉ có 3-4 đỉnh. Công cụ Knife  mới hữu hiệu hơn nhiều và rất uyển chuyển như bạn thấy trong hình, có thể cắt tự do một cách dễ dàng. Nhắc lại 1 lần nữa, lưới tốt vẫn là quan trọng nên dùng dao nên thận trọng nhé!

_Thực hiện như thế nào?

Tại chế độ Edit, nhấn “K”

Một chấm xanh xuất hiện nơi vết cắt bắt đầu

Bấm chuột trái để cắt, di chuyển chuột và lập lại các bước.

Bấm chuột phải để kết thúc.

3>Ctrl+ công cụ Knife (cắt tại tâm)

Quite often you want to cut at the halfway point, this is exactly what cutting with the Control key pressed down will do.  The green dot will snap to the halfway point between the two nearest vertices.

Bạn thường hay muốn cắt tại điểm giữa thì lúc cắt hãy nhấn giữ phím Ctrl. Một chấm xanh sẽ bắt vào điểm giữa hai đỉnh gần nhất.

_Thực hiện như thế nào?

Y chang như dùng công cụ Knife chỉ cần nhấn giữ phím Ctrl để bắt điểm

4>Tạo mặt nhiều hơn 4 cạnh

Một trong những nổi khổ khi làm việc với polygon trong Blender trước đây đó là phải tạo mặt thủ công. Bạn phải chọn 3 hay 4 đỉnh sau đó nhấn F để tạo mặt, lặp đi lặp lại trên tất cả các polygon cần tạo. Giờ đây, chỉ cần chọn các cạnh hay điểm ngoài biên bất kể chúng bao nhiêu và sau đó tạo 1 n-gon rồis au đó extrude, scale, v.v..như mặt bình thường. Cũng như công cụ Dissolve, coi chừng bị tạo ra lưới xấu.

_Thực hiện như thế nào?

Trong chế độ Edit, chọn cách đỉnh hay cạnh biên

Nhấn “F” để tạo polygon

5>Bevel

Blender 2.4x có chức năng bevel, 2.5x bị thay thế bằng một modifier quá tệ mà tôi nghĩ chẳng ai thích nó. Bây giờ với Bmesh, bevel đã trở lại. Có thể nó bị lỗi nhiều lần, đặc biệt tkhi chọn nhiều cạnh và cho kết quả ở góc hơi kỳ kỳ, nhưng thật vui khi thấy bevel trở lại. Bevel đơn giản là cho bạn khả năng thêm lưới có khoảng cách bằng nhau và bo tròn, thường dùng để làm tròn các cạnh.

_Thực hiện như thế nào?

Trong chế đọ Edit, chọn 2 hay nhiều đỉnh liên tiếp, 1 hay nhiều cạnh hay mặt.

Bấm Spacebar, gõ chữ “Bevel” và nhấn chọn mở ra menu Bevel

Bên phía trái có menu Mesh Tools (nếu chưa bật thì nhấn “T” để bật), chọn số phần trăm hay số lần chia đều

Số phần trăm quyết định độ lớn của bevel (liên quan tới cạnh/mặt/đỉnh gần nhất)

Số lần chia đều quyết định bevel bao nhiêu lần (tức là số cạnh được tạo)

6>Inset/Outset các mặt

Inseting is basically identical to doing a zero distance extrude followed by a scale, but much easier.  Think of it kind like creating an edge loop, but instead its relative to the selected edges.  Inset causes the new geometry to be created within the selected geometry, while outset causes the geometry to be created surrounding selected value.  The above image illustrates an inset, followed by an outset.

Inset giống như việc bạn extrude với khoảng cách bằng zero rồi sau đó scale nó nhỏ lại. Cũng có thể coi nó giống như việc tạo 1 edge loop nhưng nó lại liên quan đến các cạnh được chọn. Inset làm cho lưới mới tạo nằm bên trong lưới được chọn trong khi đó outset làm cho lưới mới tạo bao quanh bên ngoài theo một giá trị được chọn. Hình bên trên trình bày cách inset trước rồi sau đó tới outset

_Thực hiện như thế nào?

Trong chế độ Edit, chọn mặt

Bấm Spacebar, gõ “Inset face”, chọn tên trong menu

Trong bảng công cụ, kéo thanh trượt để xác định khoảng cách

Nếu bạn muốn outset thì chọn outset thay vì chọn inset.

7>Công cụ Bridge Edge

Chức năng này trước đây chỉ có ở plug-in Loop Tools nhưng rất mừng là hiện nay nó đã nằm trong phần mềm luôn. Chọn 2 edge loop (2 vòng cạnh liên tiếp) và nó sẽ tạo một cái “cầu” để bắc qua giữa hai điểm với nhau. Đáng buồn là nó ko xóa mặt bên trong nên sau khi bridge các bạn phải tự xóa.

_Thực hiện như thế nào

Trong chế độ Edit, chọn 2 edge loop

Nhấn Spacebar, gõ “Bridge Two Edge Loops”

Lưu ý là 2 nhóm cạnh được chọn ko cần phải cùng số lượng cạnh

—————————————————————-

Bài gốc đến đây là hết. Tuy nhiên REMY có đề nghị tác giả thêm 2 tính năng nữa của Bmesh  sau đây. REMY ko có ảnh minh họa nên các bạn tự thực hiện

8>Nối điểm

Bạn có thể dùng công cụ Knife để cắt mặt poly, nối hai đỉnh lại với nhau nhưng có 1 cách nhanh hơn đó là tạo đường nối giữa hai đỉnh. Lưu ý việc tạo đường giữa hai đỉnh theo cách cũ, tức lầ chọn 2 đỉnh rồi nhấn “F” sẽ tạo đường nối nhưng ko cắt mặt poly.

_Cách thực hiện

Chọn 2 đỉnh của 1 poly cần nối lại, nhớ là phải trong cùng 1 polygon nhé.

Nhấn Ctrl+V cho hiện ra menu

Chọn Vertex Connect.

Có thể dùng phím tắt là J

9>Trượt điểm dọc theo cạnh

Đây là một tính năng rất có ích trong modeling, giúp bạn thay đổi vị trí điểm nhưng ko muốn làm hỏng hình khối. Trước đay có vài cách để xử lí trường hợp này như scale điểm này về phía điểm kia hay tạo điểm ở vị trí mới rồi merge điểm về phía vị trí mới nhưng tất cả đều tốn thời gian. Tính năng trượt điểm theo cạnh trong Bmesh vừa trực quan, dễ thực hiện lại nhanh hơn nhiều

_Cách thực hiện

Chọn điểm cần trượt

Nhấn Ctrl+V để hiện ra menu

Chọn Vertex Slide

Các cạnh chung quanh điểm đó sẽ lần lượt được bật sáng, muốn trượt theo cạnh nào thì bấm chọn cạnh đó rồi trượt.

Có thể dùng phím tắt là Shift+V

Bài này đã được đăng trên Blender Wiki để minh họa cho các tính năng của Bmesh. Vì bản chất của Blender dùng rất nhiều phím tắt nên cách làm “bấm Spacebar rồi gõ lệnh” trong bài đã được chỉnh lại thành phím tắt và menu. REMY nghĩ rằng các bạn nên xem thêm ở Blender Wiki http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.63/BMesh sẽ hay hơn. Tại đó cũng đã bổ sung tính năng Vertex Slide với hình minh họa.

Bmesh dĩ nhiên ko dừng lại ở việc chỉ hỗ trợ n-gon như các phần mềm 3D khác mà nó còn hướng tới một tương lai xa hơn, khi các tính năng mới tiếp tục được tích hợp vào các bản Blender tiếp theo. Hiện nay phần mã nguồn gọi là API của Bmesh đã được tung ra và các nhà lập trình khác có thể viết thêm plug-in cho Bmesh. Nếu các bạn quan tâm đến Blender đừng quên thường xuyên ghé thăm VIZVA. REMY sẽ liên tục  cập nhật các bài viết về phần mềm thú vị này

 

 

 

One Response to Kiến thức: Blender Bmesh ra mắt và tại sao chúng ta cần n-gon

  • duovn says:

    Thank anh Remy! 2.63 RC đã có cách đây vài ngày, em thử tất cả điều ổn nhưng boolean vẫn triangle sad

Leave a Reply

Your email address will not be published. Required fields are marked *

Tags

Archives

  • 2016 (4)
  • 2015 (22)
  • 2014 (39)
  • 2013 (59)
  • 2012 (134)
  • 2011 (240)