Topology 3D là gì

Có lẽ câu hỏi thắc mắc lớn nhất khi sau khi bạn sculpt [dựng] một nhân vật [hoặc đối tượng] nào đó trong Zbrush với vài triệu poly là: làm sao để render nó đây?

Ảnh từ phần mềm Zbrush [sau khi đã polypaint]:

Ảnh sau khi render bằng mental ray trong Maya:

Render là gì? 

Là kết xuất hình ảnh. Hay nói đơn giản hơn tạo ra bức ảnh [2d] [có ánh sáng, có bóng đỗ, …] từ mô hình 3d trong phần mềm 3d. Sản phẩm render có thể là video hoặc hình ảnh.

Có 2 cách:

1. Dùng BPR trong Zbrush và Photoshop [hoặc Keyshot]: nếu mục đích của bạn chỉ là tạo ra 1 bức ảnh tĩnh

Vậy không có cách nào làm diễn hoạt trong Zbrush? Vẫn có, dùng timeline. Nhưng diễn hoạt trong Zbrush rất bị giới hạn, bạn phải transpose và sculpt lại gần như ở mỗi keyframe [do transpose tạo nếp gấp], không được tự do như dùng rig ở các phần mềm 3d [sau khi nhân vật đã được gắn xương, cơ bắp, …].

2. Render bằng render engine [vray, mental ray, …] trong phần mềm 3D [Max, Maya, …]: nếu mục đích của bạn là làm phim/ hoạt hình hoặc đơn giản chỉ là render ảnh tĩnh.

Nhưng ít người render trực tiếp ra video bằng render engine vì tốn nhiều thời gian và phải chỉnh lại từ đầu nếu trong quá trình render có gián đoạn. Để render ra video ta sẽ render chuỗi ảnh [mỗi ảnh ở mỗi frame], sau đó tổng hợp lại [bằng phần mềm compositing: After Effects, Premiere Pro, Nuke, …] thành video. 

Bật HD để xem video rõ hơn trên Youtube [load lâu hơn]:

Concept Artists, Illustrators

Dùng BPR trong Zbrush + Photoshop/ Keyshot

Quy trình: Materials > Lighting > Alpha > Compositing

Tutorial tiếng Anh: link link

Bài hướng dẫn:

[updatinggggggggggggggggggg…………………… đang viết……………………]

Bạn cũng có thể dùng Keyshot [thay cho BPR trong Zbrush]: link

* Keyshot’s Youtube Channel: link

3D Artists

Render bằng render engine [mental ray, Vray, Renderman, …]

Phần mềm dùng để minh họa: Zbrush 4r4, Maya 2012, mental ray [trong Maya]

Quy trình: Retopology > Paint > UV > Maps > Render Setup [> Render Animation]

Bước 1: giảm poly count

* Cách 1: Bằng Decimation Master + Keyshot

* Video hướng dẫn: link

* Keyshot’s Youtube Channel [tiếng Anh]: link

* Nếu dùng cách này, bạn nhảy đến bước 5.

* Cách 2: Bằng Retopology [đi lưới lại]

2.a. Retopology tự động bằng QRemesher [dành cho đối tượng không chuyển động]

Video hướng dẫn: link

Video tiếng Anh: link

2.b. Retopology thủ công [nhân vật hoạt hình]

Dùng Topology Brush: 

Bước 1: Duplicate Subtool nào bạn muốn đi lưới lại

Tr duplicate subtool hòn đá, tắt con mắt bên phải subtool gốc để nó ẩn đi, chỉ làm việc với subtool hòn đá đã dublicate:

Bước 2: Bật Topology Brush. Nhấn B > nhấn T, chọn Topology

Khi vẽ lên đối tượng bạn sẽ nhận được thông báo, đối tượng có nhiều subdivision:

Bạn vào Geometry > Del Lower [hoặc Del Higher, nếu có]

Khi bạn vẽ các đường cắt nhau, nó sẽ tạo ra polygon

Nhấn Alt và quét chuột trái qua cạnh nào bạn muốn xóa, còn nếu muốn xóa toàn bộ các cọng rìa rìa, bạn quẹt Alt + kéo chuột trái lên đối tượng nhưng không đi qua cạnh nào cả [ví dụ vị trí con trỏ chuột ở hình trên].

Khi bạn đã hoàn toàn toàn bộ thì click chuột trái vào đối tượng.

Đối tượng mới được tạo ra, dựa trên kích cỡ của brush [Draw Size], nếu bạn không muốn nó có bề dầy, thì chỉnh Draw size xuống 1 [nhấn Ctrl + Z trước để trở lại với lưới khi nãy].

Vì nó quá mỏng, nên đôi khi nó bị lún sâu vào trong [thậm chí không thấy]. Bạn vào Subtool, chọn Split Similar Parts

Xong, bạn tắt subtool chứa đối tượng high poly đi, sẽ thấy đối tượng low poly mình đã tạo:

Tuy nhiên, khi sử dụng topology brush có một vấn đề bạn cần chú ý là nó sẽ tự tạo các cạnh chặn để giữ hình dáng của polygon, thường thì các cạnh chặn phù hợp với hardsurface [robot, xe, …], nhưng nếu bạn làm nhân vật/ tượng thì nên xóa nó đi.

Vào Geometry > Crease > UnCreaseAll. Còn nếu bạn muốn tạo hardsurface thì làm ngược lại, Crease phần nào bạn muốn tạo hardsurface [phải kết hợp với sử dụng polygroup].

Sau đó bạn project detail của đối tượng high poly lên low poly, như tut QRemesher Tr đã đề cập. Chú ý, trong tut QRemesher Tr subdivide vài lần rồi mới nhấn Project All, nhưng Tr khuyến khích Project All từ từ, nghĩa là Project All ngay ở low poly, sau đó subdivide, rồi Project All, rồi subdivide … Làm như vậy thì chi tiết sẽ project tốt hơn.

Điểm yếu của Topology Brush so với Topogun hoặc đi lưới bằng cách cũ sử dụng Zsphere là khi bạn không vừa ý phải xóa đoạn đó, làm lại [dùng Alt], không có khả năng chỉnh vertex, cạnh hay mặt. Dùng Topogun sẽ tự do hơn [nhưng hơi chậm hơn].

Dùng Topogun: link link [trong video Tr nói thiếu phần này: bạn nhấn Shift khi muốn vẽ điểm lên giữa cạnh]

Kiến thức về topology/ đi lưới dành cho diễn hoạt: link link link

Video Modeling for Animation [tiếng Anh]: link link link

Video tiếng Anh:

Topology Brush trong Zbrush: link

Topogun: link

2.c. Lên màu

Khi lên màu, bạn Clone Standard Brush trước, để khỏi lầm lẫn với brush cũ, và đôi khi cũng cần dùng Standard Brush khi paint, nếu muốn chỉnh lại setup cũ thì tốn thời gian, do đó Clone là tốt nhất.

Brush Standard_1 vừa tạo ra, bạn tắt Zadd, bật Rgb

Chuyển Dots sang Color Spray

Chuyển Alpha Off sang loại Alpha 07

Giờ chỉ còn chọn màu ở bảng màu và tô vẽ.

Tại sao phải cài đặt brush như vậy? Để tạo độ sâu màu sắc [layer chồng layer] + độ chuyển sắc tự nhiên.

Muốn copy màu? Bạn đưa chuột đến vùng màu muốn copy, nhấn C

Video tiếng Anh: link

Bước 2: UV

  • UV bằng UV Master trong Zbrush

Tr có nói về sử dụng UV Master trong Zbrush ở bài sử dụng Topogun: link link

Nhưng có vài điều Tr chưa đề cập:

Nếu muốn chia đối tượng ra trên UV thì phải làm sao?

Sử dụng polygroup, Tr có nói về cách polygroup trong bài giới thiệu về Fiber Mesh: link

Sau khi đã có polygroup thì khi bạn vào UV Master, bật Polygroup lên:

Muốn thay đổi vị trí của từng phần trên UV thì làm sao?

Vào Brush > Auto Masking > tăng Mask by Polygroups lên 100

Làm như vậy để khi bạn chuyển sang Transpose để di chuyển các phần, thì những phần lân cận không bị ảnh hưởng:

Hướng dẫn sử dụng Transpose: link

Video tiếng Anh: link link link

  • UV bằng Maya [nếu bạn đã UV trong Zbrush rồi thì không cần làm lại trong Maya nữa, đây chỉ là lựa chọn thứ 2 cho UV]

Video tiếng Anh: link link

Bước 3: Xuất maps + Tác dụng của từng loại maps

Tr sử dụng 3 loại maps chính sau: color [hoặc gọi là texture], displacement, normal

  • color: màu sắc chủ đạo
  • displacement: tạo khối trên đối tượng low poly
  • normal: tạo chi tiết nhỏ

Khi bạn muốn làm các đối tượng trông thực hơn hoặc kiểm soát kết quả render tốt hơn thì ta có thể dùng thêm nhiều map khác: diffuse, specular, AO, … Nhưng trong trường hợp này, 3 maps [có lẽ] đã đủ.

Bước 1: Subtool > All High

Bước 2: Vào UV Map > 4096 [hoặc size nào mà bạn muốn]

Bước 3: Vào Texture Map > New from Polypaint, và làm tương tự với tất cả Subtool mà bạn có:

 Bước 4: Vào lại Subtool > All Low

Bước 5: Vào Displacement Map, chọn Alpha nào cũng được, bật Mode lên. Sẽ thấy đối tượng bị biến dạng rất kì cục, nhưng bạn đừng bận tâm. Chỉnh thông số như trong hình, sau đó nhấn Create DispMap:

Làm tương tự với tất cả subtool còn lại.

* Lưu ý: nếu bạn không chọn Mode, kết quả tạo ra sẽ là bump map, chứ không phải displacement map.

Bước 6: Vào Geometry, giảm subdivision xuống một [hoặc 2] nấc so với subdivision cao nhất [vì Normal map chỉ cần chi tiết nhỏ, nên không cần tạo normal map từ subdivision nhỏ nhất]

Bước 7: Vào Normal Map và chỉnh cài đặt như trong hình và nhấn CreateNormalMap

Làm tương tự với các subtool còn lại.

Video tiếng Anh: link link link link link link

Bước 4: GoZ

Sau khi đã có đầy đủ 3 maps ở tất cả các Subtools, bạn vào Tools > All [bên phải GoZ, nghĩa là GoZ tất cả các Subtools cùng lúc]

Sau khi nhấn All, bạn sẽ nhảy sang Maya. Nếu bạn chưa biết cơ bản về render trong Maya thì bạn có thể xem các tut của anh Sil:

Lighting: link link link

Rendering: link link

Trước khi đi vào render setting, bạn phải set project, chọn folder nào mà bạn muốn tất cả file ma/mb và maps [đã xuất từ Zbrush] sẽ đặt vào:

Sau khi đã set project và save file ma/mb của bạn vào đó, bạn vào ổ C > Users >Public > Pixologic > GoZProjects > Default, và copy toàn bộ maps mà bạn đã tạo từ Zbrush khi nãy và paste vào folder bạn vừa set ở trên.

Vào Hypershade:

Graph Network. Chọn File trong mỗi kênh, ví dụ Displacement Map:

Thay file đó bằng file bạn đã copy vào folder, Image Name > click hình folder:

Kết quả sẽ là những đường dẫn tương đối, không phải đường dẫn tuyệt đối [C> Folder 1 > …]

Làm tương tự với Normal map và Texture.

Tại sao phải làm vậy? Khi bạn gửi Model đi, bạn sẽ nén folder này lại và gửi đi, và mọi thứ đã được setup, người dùng [rigger chẳng hạn] không phải setup lại hoặc không tìm được maps [do bạn quên copy paste vào].

Video tiếng Anh:

GoZ: link [3Ds Max], link [Maya]

Bước 5: Render

 

Trước khi đi vào render setting bạn chọn đối tượng [meshes], Normal > Soften Edges [để khi render không xuất hiền viền gấp khúc] nên áp dụng khi bạn render đối tượng có organic surface [bề mặt dạng sinh học]:

Render bao gồm 5 món: Maps Attribute [thuốc tính của các maps], Lights [đèn], Environment [môi trường], CameraRender Setting. Những món này có liên quan lẫn nhau, nên bạn theo dõi theo thứ tự, Tr không chia ra từng phần riêng để đề cập được.

Phần xuất đối tượng, xuất map và thông số của maps thì GoZ đã làm gần hết cho bạn rồi. Trong đó có Approximation Editor [chỉnh mức độ subdivide của đối tượng khi render], Alpha Gain trong Displacement Map [trước đây phải chỉnh thủ công từng số, render thử đi thử lại nhiều lần để có kết quả render như ý].

Approximation Editor:

Khi bảng Approximation Editor hiện ra, bạn chọn đối tượng để biết GoZ đã cài đặt Approximation cho bạn như thế nào, Tr chọn con sư tử:

bạn sẽ thấy là GoZ đang sử dụng Subdivisions: mentalraySubdivApprox1, nếu bạn muốn chỉnh thì nhấn Edit [không chỉnh cũng được]. Bạn không cần đọc những dòng sau nếu bạn không muốn chỉnh.

Bạn có thể thay các thông số thành:

Approx Method: Spatial

Min Subdivisions: 0

Max Subdivisions: 6

Length: 0.5

Max bằng 6 và length 0.5 nếu bạn muốn lấy thật nhiều chi tiết từ Displacement Map, còn nếu bạn giảm xuống để render nhanh hơn thì đặt bằng

Max Subdivisions: 5

Length: 1

Và kết hợp sử dụng Normal map hoặc [và] Bump map.

Về Alpha Gain, bạn bật Attribute của Displacement Map, Alpha Gain và Alpha Offset đã được GoZ đặt giúp bạn.

Một lưu ý nữa, bạn set bump2d của normal map sang tangent để tránh noise của normal map:

LINEAR WORKFLOW = MAPS ATTRIBUTE + CAMERA + RENDER SETTING

Linear workflow chính là gamma correction. Để giải thích cặn kẽ thì sẽ rất phức tạp [tiếng Anh: link link link link], do đó Tr sẽ tóm gọn như sau .

Hình ảnh bạn xem trên màn hình máy tính hầu hết đã bị chỉnh gamma [trừ một số định dạng file không bị chỉnh gamma], tạm dịch: làm cho sáng hơn để có thể nhìn được trên màn hình. Do đó, khi sử dụng những hình ảnh này làm texture, thì màu sắc của bức ảnh render cuối cùng sẽ bị sáng hơn khi render [do bị tăng gamma thêm lần nữa]. Dù có chỉnh độ sáng của maps … thì hình ảnh vẫn trông rất giả vì vấn đề nằm ở gamma của ảnh, chứ không phải ở brightness.

Linear workflow chính là: ra thẳng hình ảnh cuối, không chỉnh gamma thêm lần nữa, để tạo hình ảnh trung thực.

Maya 2011 [trở lên] đã khiến linear workflow trở nên dễ nuốt hơn, bạn vào Render Setting > Common. Enable Color Management: check.

Như vậy là ảnh xuất hiện sẽ không có bất cứ Gamma Correction nào cả, dẫn đến kết quả là hình sẽ hơi tối. Các phần mềm compositing như Nuke làm việc rất hiệu quả với loại hình ảnh này [ảnh không bị gamma correct], nhưng sản phẩm cuối cùng bạn muốn là tạo ra ngay từ Maya, nên bạn cần phải tạo một camera mới. Vào attribute của camera: mental ray > Lens Shader > tìm mental ray > Lenses > mia_exposure_simple

Chỉnh thông số lense như sau:

Ok, camera như vậy đã setup xong, bây giờ khi render bằng camera này thì kết quả ảnh của bạn sẽ trông rất thực.

Tuy nhiên có một vấn đề, khi chỉnh color managment ở render setting như trên, thì mọi thông tin input và output sẽ đều theo thuộc tính đó, nhưng những loại map như displacement, normal, bump không có RGB channels, nên bạn sẽ thấy xuất hiện uv seams khi render. Để chỉnh, bạn vào từng loại map đó [disp, normal, bump] chỉnh lại như sau:

Chuyển Use Default Input Profile sang Linear sRGB và Filter Type: Off

Còn về môi trường, Tr chỉ tạo miếng plane và bẻ cong phần sau lên để tạo nên bức tường + mặt đất. Bạn cũng có thể tạo thêm khối cầu lớn bao quanh, và dùng HDR để có reflection trông thực hơn nữa [link], nhưng trong bài này Tr không dùng.

* Ghi chú: ở camera view, Tr dùng Caustic Visualizer, một dạng render realtime, bạn dùng nó thì không cần phải nhấn render để biết kết quả mỗi lần chỉnh thông số. ;]

Lights [đèn]: 

* Trước khi đặt đèn, bạn vào Render Setting > Common > Render Options > Tắt Enable Default Light.

Đèn chính [main light]: Area Light

Color > mental ray > mib_blackbody [hoặc mia_cie_d] [tại sao phải dùng loại đèn này? Ánh sáng trung thực hơn] Temperature: 4500 [warm light] [càng tăng ánh sáng càng lạnh] Intensity 0.4 [cường độ sáng] Shadow: Raytrace mental ray: use light shape [rectangle] [hình dạng nguồn sáng] High Samples: 32 High Sample Limit: 4 [giảm hạt nhiễu]

Low Samples: 1

Đèn sau lưng [back light]: Spot Light

Spot Light: intensity: 2 Penumbra Angle -20/-15 [nhòe viền]

Raytrace Shadow: Radius [soften]: 0.25

Bạn có thể đặt thêm bounced light, nhưng Tr thấy có chút shadow nhìn sẽ đẹp hơn nên không dùng.

Những thông số trên ok với scene của Tr, nếu bạn thấy có gì không ổn thì chỉnh lại cho phù hợp với scene của mình.

Và đây là một số thông số Render Setting:

Bật Maya Derivatives để render Normal Map

Và cuối cùng là chỉnh size thật bự để render [khi test render phải để size nhỏ để giảm thời gian render]:

Thêm một chút DOF nếu bạn muốn: link

Save file kết quả .psd để sang Photoshop chỉnh vài thao tác cuối:

Video tiếng Anh: link [linear workflow Maya 2011]

Nếu bạn muốn render animation thì setup render tương tự như trên, chỉ chú ý thay đổi tên file ảnh sau khi render, đặt frame mở đầu và frame kết thúc, đặt địa chỉ lưu file và chọn Batch Render: link.

Bước 7: Final compositing [Photoshop]

 Bí quyết nằm ở: Auto Contrast, Auto Tone

Một chút Effect:

Grain 1

Intensity 1

Và bạn đã có một bức ảnh hoàn thiện. Chúc thành công!

Nếu bạn có thắc mắc nào thì cứ hỏi Tr ở phần Hỏi Đáp Zbrush hoặc Maya hoặc ngay tại bài này.

cvbtruong

Video liên quan

Chủ Đề