Làm thế nào các mô hình 3D được tạo ra trong các trò chơi video?


15

Các mô hình 3D trong các trò chơi được thiết kế và hiển thị như thế nào? Có phải tất cả mã? Vẽ trên giấy, rồi trên phần mềm đồ họa 3D, rồi ... cái gì?

Tất nhiên, các lập trình viên trò chơi sẽ không xác định mọi đỉnh của mọi hình dạng (/ đối tượng) mà họ muốn được vẽ, tất cả đều bằng mã (dù là trong Direct3D hay OpenGL.) Vì vậy, các nhà thiết kế trò chơi có các công cụ để sử dụng, như Maya hay một cái gì đó giống như phần mềm đồ họa 3D độc quyền ngoài kia; họ "vẽ" mô hình trong phần mềm đó, xuất nó ở bất kỳ định dạng nào, sau đó lập trình viên phân tích nó qua mã và tự động nhập các đỉnh thô được giải mã / phân tích cú pháp của đối tượng / mô hình?

Tôi đã Googled nhiều nhưng tôi không thể tìm thấy điều gì đó vững chắc để giải thích khía cạnh này của trò chơi video chuyên nghiệp được thực hiện như thế nào.


2
Đây là một tài liệu khá thực tế về quy trình nghệ thuật: salvationprophecy.com/forum/viewtopic.php?f=4&t=413
Blue Wizard

Hmm ... điều này có thể được coi là quá rộng để được trả lời, hoặc không mang tính xây dựng. Nhưng đồng thời cũng có vẻ hợp lý để yêu cầu một người không bao giờ tiếp cận gamedev và muốn bắt đầu học, và nó có thể được đưa ra một câu trả lời tốt. Vì vậy, không chắc chắn nếu điều này nên được đóng lại hay không.
Laurent Couvidou

1
Thông thường những người làm mô hình được gọi là nghệ sĩ , không phải nhà thiết kế : nghệ sĩ nhân vật, nghệ sĩ môi trường, họa sĩ hoạt hình ... Nhà thiết kế trò chơi thiên về thiết kế trò chơi thực tế , quy tắc của nó, v.v.
Laurent Couvidou

Câu trả lời:


16

Trong tất cả các trò chơi tôi đã làm việc, Đường ống tạo tài sản diễn ra như sau:

  1. nghệ sĩ khái niệm (cho các cấp độ / nền / mô hình cấp độ) hoặc nghệ sĩ nhân vật (đối với các mô hình) sẽ tạo ra các bản phác thảo cho các nhân vật / cấp độ / v.v. thường thì nhiều lựa chọn được đưa ra cho giám đốc sáng tạo / nghệ thuật lãnh đạo để quyết định cái nào họ thích hơn.
  2. Khái niệm / nghệ thuật nhân vật đã được phê duyệt được trao cho một người lập mô hình để sử dụng làm tài liệu tham khảo. Đôi khi hồ sơ / mặt trước về nghệ thuật được thực hiện bởi nghệ sĩ nhân vật để cung cấp một khung hoặc tham chiếu sạch hơn cho quá trình mô hình hóa. Tôi đã thấy nhiều người lập mô hình với nghệ thuật khái niệm bị mắc kẹt trong 3d max / maya / etc dưới dạng tham chiếu trực tiếp.
  3. Các nhà tạo mô hình thường tạo ra kết cấu cơ sở cho mô hình, thường là với các vật liệu đổ bóng chính xác cho thời gian chạy. shader được sử dụng để hiển thị mô hình trong trò chơi và có thể có các yêu cầu cụ thể về kết cấu / uv / vv cần được cung cấp bởi nhà tạo mô hình hoặc họa sĩ kết cấu được chỉ định.
  4. Đây sẽ là công việc của Nhà thiết kế cấp độ để ghép các tài sản để tự "xây dựng" cấp độ.

    Nó khác thường đối với toàn bộ cấp độ được xây dựng dưới dạng một mảnh hình học duy nhất. Hầu hết các cấp được xây dựng của các mảnh, hoặc phần. (ví dụ: khét tiếng đã sử dụng một bộ "gạch" hình lục giác http://www.gamasutra.com/php-bin/news_index.php?story=118581 và skyrim (và nhiều người khác) sử dụng cách tiếp cận kiểu lego để ghép các cấp độ http : //www.gamasutra.com/bloss/JoelBurgess/20130501/191514/ )

    Thường có một trình chỉnh sửa cấp độ của một số mô tả liên quan đến quá trình này, mặc dù nhiều trò chơi đã sử dụng trình tạo mô hình 3d làm "trình chỉnh sửa cấp độ" để tạo ra các tài sản được tạo trước đó.

  5. Khi tất cả điều này được thực hiện, các tài sản thường được xử lý bởi Toolchain , biến các tệp thân thiện với Trình tạo mô hình 3D thành dữ liệu sẵn sàng cho trò chơi có thể được tải trực tiếp vào Thời gian chạy.

    Toolchains (bit lấy tài sản thô và biến chúng thành dữ liệu sẵn sàng cho trò chơi) thường là một số phần kỹ thuật phức tạp nhất trong phát triển trò chơi. Họ cần nói chuyện với nhiều ứng dụng khác nhau, hiểu nhiều định dạng tệp khác nhau và cũng hiểu cách chuyển đổi dữ liệu thành định dạng hiệu quả hơn và có thể sử dụng ngay lập tức. Toolchains cũng thường thực hiện chiếu sáng trước, hàn đỉnh, tạo LOD, v.v. Thường thì việc xây dựng toàn bộ dữ liệu cho một trò chơi AAA lớn sẽ mất một thời gian rất dài, thường lớn hơn 8 giờ để xây dựng lại hoàn chỉnh. Vì vậy, Toolchains thường chứa xử lý phân tán để phân tán tải trên tất cả các PC trong toàn bộ studio.

    Các Runtime là trò chơi chính nó. Việc thực thi chạy trên PC hoặc Console của bạn. Bên trong Runtime sẽ có một hệ thống gọi là Trình quản lý tài nguyên. Đây là công việc của Trình quản lý tài nguyên để tải các tài sản được yêu cầu bởi các hệ thống khác trong trò chơi.

    Ví dụ: Khi bạn thông báo tải trò chơi vào Cấp độ, siêu dữ liệu của Cấp độ sẽ cung cấp cho Trình quản lý tài nguyên danh sách các tài sản cần được tải để hiển thị cấp độ. Tương tự, mỗi Tài sản sẽ chứa một danh sách bất kỳ Hoạ tiết, Vật liệu hoặc Tài sản phụ nào được yêu cầu tải.

  6. Một khi mọi thứ thực sự được tải vào bộ nhớ. Trò chơi sẽ gửi những thứ hiển thị cho Trình kết xuất , sau đó sẽ tương tác với API được sử dụng để thực sự vẽ mọi thứ trên màn hình.

Lập trình viên có thể (và làm) tạo thông tin đỉnh bằng tay. Điều này thường được gọi là "Kết xuất chế độ ngay lập tức". Nó không hiệu quả lắm và chỉ được sử dụng cho các tình huống không thể sử dụng dữ liệu đỉnh được tạo trước hoặc trình điều khiển shader. Ví dụ: Kết xuất giao diện người dùng, Quads toàn màn hình.

Thông thường 99% các đối tượng trên màn hình sẽ là thông tin đỉnh được tạo trước được hiển thị ở chế độ "Giữ lại", với các shader thực hiện bất kỳ thao tác nào được yêu cầu. Vd: Hoạt hình da


7

Đây là một câu trả lời đơn giản: Họ làm tất cả trong các ứng dụng đồ họa 3D như Maya hoặc 3DS Max. Đầu tiên họ làm một số nghệ thuật khái niệm (trên giấy), theo họ họ tạo ra các mô hình, kết cấu (trong Photoshop hoặc một cái gì đó tương tự). Các hình động đơn giản cũng được thực hiện toàn bộ trong phần mềm, các hình động phức tạp hơn được thực hiện thông qua Motion Capture và sau đó được ánh xạ tới mô hình của bạn. Đối với hoạt hình bạn thường sử dụng hoạt hình Skeleton.

Tất cả các dữ liệu này được lưu trong các tập tin.

Khi trò chơi của bạn bắt đầu, nó phân tích tất cả các tệp này và tải các mô hình, kết cấu, hình động. Và khi cần, nó sẽ hiển thị chúng.


1
Tôi nghĩ rằng có một số chương trình cần thiết để biến một hoạt hình thành một cách trôi chảy vào phần tiếp theo để khi bạn bị bắn vào giữa một cú nhảy, nó không có vẻ gì lạ cả
Thomas

3
@Thomas, Trộn cây. Tôi nghĩ. Nhưng những hệ thống đó giống như các hệ thống "tweening" được xây dựng như một phần mở rộng trong công cụ trò chơi. Không nhất thiết phải được tạo trong các mô hình 3D. Về cơ bản chúng chiếm quyền điều khiển dữ liệu hoạt hình và nội suy giữa dữ liệu với sức mạnh ma thuật.
Sidar

Vâng. Chắc chắn rồi. Bạn cần tải, phân tích và bằng cách nào đó đại diện cho mô hình. Cũng bằng cách nào đó vẽ nó trên màn hình. Vì vậy, chắc chắn - bạn phải pha trộn giữa hoạt hình. Bạn thường sử dụng một số động học nghịch đảo, nhưng đó là những vấn đề cụ thể hơn.
zacharmarz

2
Nếu chỉ pha trộn cây và biến hình hoạt hình thì đơn giản như "tweening". Có nhiều giải pháp trung gian đắt tiền cao cấp hiện có chỉ để giải quyết một vấn đề cụ thể này.
Sean Middleditch

4

Các lập trình viên thực sự có thể định nghĩa từng đỉnh riêng lẻ nếu họ muốn. Tất nhiên, điều này không bao giờ xảy ra trừ khi họ thực hiện một số loại demo khối cơ bản. Thông thường, những gì được lưu trong các tệp mô hình là thứ gì đó dọc theo danh sách các đỉnh mà lập trình viên có thể dễ dàng cắm vào mã vẽ mô hình của họ. Rõ ràng có nhiều thứ hơn thế, nhưng về cơ bản các định dạng mô hình đang đưa ra các "hướng dẫn" gián tiếp về cách vẽ một mô hình nhất định.

Trong nhiều trường hợp và đối với nhiều định dạng tệp mô hình, phía mã hóa đã được thực hiện cho bạn. Thậm chí còn có một số định dạng mô hình dựa trên văn bản, với mã bản vẽ đi kèm, giúp cho một lập trình viên ampe dễ dàng theo dõi cách mô hình được dịch thành mã.

Tuy nhiên, tôi chưa bao giờ là người thực sự viết mã này, vì vậy có thể một vài chi tiết về lời giải thích của tôi đã bị tắt.


2

Tôi đã làm việc một mình để cố gắng kết hợp một trò chơi với nhau. Tôi có thể cung cấp cho bạn một danh sách đơn giản các chương trình tôi sử dụng.

Mô hình: Áo 3D, modo

Gian lận: modo

Hoạ tiết: GIMP, Inkscape

Game Engine: Đoàn kết

Rõ ràng đây là một danh sách nhỏ các ứng dụng, nhưng đối với tôi chúng hoạt động và có giá cả phải chăng cho các nhà phát triển sở thích và độc lập.


2
-1 Đưa ra một danh sách các ứng dụng được sử dụng không mô tả quá trình. Câu hỏi này không phải là về phần mềm cụ thể, mà là về cách chúng được tạo ra, không chỉ những gì chúng được tạo ra.
MichaelHouse
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.