Cách có thể đạt được để đặt ngân sách nội dung (ví dụ: số đa giác) cho nội dung cấp độ trong tiêu đề 3D là gì?


13

Khi trả lời câu hỏi này cho swquinn , câu trả lời đã đưa ra một câu hỏi thích hợp hơn mà tôi muốn nghe câu trả lời. Tôi sẽ đăng chiến lược của riêng mình (hứa rằng tôi sẽ không chấp nhận nó là câu trả lời), nhưng tôi muốn nghe người khác nói.

Cụ thể: làm thế nào để bạn thiết lập một ngân sách hợp lý cho nhóm nội dung của bạn. Thông thường, một trong những câu hỏi đầu tiên được hỏi trong quá trình phát triển là: ngân sách đa giác của chúng ta là gì? Tất nhiên, ngày nay hiếm khi chỉ riêng số đỉnh / poly là yếu tố giới hạn, thay vào đó là độ phức tạp của shader, tỷ lệ lấp đầy, độ phức tạp của ánh sáng, tất cả đều xuất hiện.

Điều mà nhóm nội dung muốn là một số số / giới hạn cứng hoạt động sao cho họ có kỳ vọng hợp lý rằng nội dung của họ, một khi nó thực sự được đưa vào công cụ, sẽ không quá nặng. Cho rằng 'nó phụ thuộc' không phải là một câu trả lời đặc biệt hữu ích, tôi muốn nghe một chiến lược cho phép tôi đưa ra cho họ những giới hạn khả thi mà không phải là một) sai lầm, hoặc b) sai.


1
Đây là "tiền sản xuất" hơn là một thứ "sản xuất".
Patrick Hughes

Câu trả lời:


5

Theo hiểu biết của tôi, việc giảm độ phức tạp của một mô hình dễ dàng hơn nhiều so với việc thêm chi tiết cho một mô hình đã được lột da và trang bị. Tôi biết một số công ty tận dụng điều này bằng cách gộp các tài sản rất chi tiết và thu nhỏ chúng tùy theo tình hình.

Valve thực hiện điều này với các NPC của họ. NPC được mô hình hóa rất chi tiết mà không có bất kỳ loại ánh xạ nào và sau đó thu nhỏ chi tiết xuống mức chấp nhận được bởi công nghệ hiện tại và các thủ thuật như các kỹ thuật ánh xạ khác nhau được áp dụng dựa trên các mô hình chi tiết (hoặc thậm chí được tạo tự động).

Điều này cũng giúp chứng minh trong tương lai vì bạn sẽ không bao giờ cần phải tạo lại tài sản, chỉ cần gấp đôi chúng cho mỗi dự án mới. Điều này cũng có lợi thế là không cần phải đợi một nhóm thực hiện đo điểm chuẩn cụ thể theo ngữ cảnh trước khi tài sản có thể bắt đầu được phát triển. Các nghệ sĩ có thể tham gia đầy đủ từ ngày 1.


2
Điều đó không thực sự cung cấp ngân sách mặc dù: "làm cho nó phức tạp như bạn cần và sau đó chúng tôi sẽ thu nhỏ lại sau" là một chiến lược sản xuất. : - /
MrCranky

16

Được rồi, vì vậy chiến lược của chúng tôi là:

  • Tạo một số hình học giữ chỗ, với tỷ lệ gần đúng cho nội dung cuối cùng. Đó có thể là các tòa nhà hoặc nhân vật. Nó không phải trông giống như nội dung cuối cùng, nó có thể là hộp / hình cầu / v.v., nhưng nó phải được sắp xếp lại để nó có số lượng đa giác khá. Nếu bạn đang làm nhân vật, làm cho họ có số lượng xương đại diện.
  • Ngoài ra, sử dụng hình học của người khác. Nếu bạn có một tiêu đề có mức chất lượng mà bạn đang cố gắng khớp, hãy tìm một số cách để lấy các mô hình của chúng (có thể sử dụng trình lấy cảnh DirectX).
  • Hãy chắc chắn rằng hình học của bạn có một shader đại diện trên đó. Nếu bạn đang mong đợi pha trộn một số kết cấu, hãy làm điều đó, ngay cả khi các kết cấu chỉ có một màu. Hãy chắc chắn rằng các kết cấu là độ phân giải không tầm thường, ngay cả khi chúng đều là một màu.
  • Đặt trong một số lượng hợp lý của đèn.
  • Đặt máy ảnh ở nơi thực tế, chỉ vào số lượng hình học lớn nhất bạn có thể (ví dụ: đứng trên đỉnh đồi nhìn qua cấp độ)
  • Tải cảnh trên phần cứng mục tiêu chậm nhất và nhanh nhất của bạn và đo FPS.
  • Thay đổi số lượng hình học / ánh sáng / bóng đổ / độ phân giải kết cấu lên hoặc xuống để có ý nghĩa về sự đánh đổi là gì (ví dụ: bạn có thể có thêm một tá đèn nhưng bạn phải giảm một nửa số lượng poly).

Cuối cùng: hãy thận trọng với những con số của bạn. Kết xuất không phải là điều duy nhất mà trò chơi của bạn sẽ phải làm, vì vậy hãy quyết định một tỷ lệ khung hình bạn muốn chi tiêu kết xuất và thực hiện mục tiêu đó. Ví dụ: nếu bạn muốn dành hai phần ba khung hình của mình ở chế độ hiển thị 30 khung hình / giây, thì hãy nhắm mục tiêu 1s / 22ms (45 khung hình / giây) trong các thử nghiệm của bạn.

Trong số đó, bạn sẽ có thể đưa ra các cảnh ví dụ. Ví dụ, đây là một cảnh với 200K đa giác, 5 đèn tĩnh và không quá 3 đèn động cho mỗi mô hình, với 15 ký tự của 50 nghìn polys và 30 xương, và nó chạy ở tốc độ 60fps và chiếm 30 MB bộ nhớ.


2
tl; dr: Tự điểm chuẩn;)
Nicol Bolas

+1 Đây thực sự là cách duy nhất, xây dựng và đo lường.
Patrick Hughes

Có thật không? Tôi đã hy vọng sẽ có một giải pháp thông minh hơn / rẻ hơn mà chúng tôi chưa từng nghĩ tới.
MrCranky

@MrCranky thật không may, đúng vậy. Nếu bạn đang sử dụng một công cụ hiện có, bạn có thể bắt đầu quá trình bằng cách đo dữ liệu mẫu hiện có và sử dụng dữ liệu đó làm đường cơ sở để tùy chỉnh các số cho trò chơi của bạn nói riêng - mỗi trò chơi đều khác nhau.
Patrick Hughes

4

Đếm Vertex

Tôi đã nghiên cứu "Số lượng đa giác" trong hơn 15 năm. Không có cách nào nghiêm ngặt để nói có bao nhiêu giới hạn của bạn, đặc biệt là với phần mềm và phần cứng hiện đại hơn. Giới hạn hữu ích hơn nhiều trong các động cơ chỉ hỗ trợ 4.000 hình tam giác cho toàn bộ cấp độ. Bây giờ, bạn sẽ thấy hầu hết các đối tượng trong môi trường trò chơi sẽ vượt quá cá nhân đó.

Điều quan trọng cuối cùng là những gì động cơ đang làm với các dải đa giác.

Khi động cơ kết xuất từng mô hình, nó sẽ lấy tọa độ ánh xạ UV của bạn, kết cấu / vật liệu được biểu thị trên các hình tam giác và tạo ra các dải hình tam giác. Trong hầu hết các trường hợp, một quạt tam giác được chia thành các dải tam giác riêng cho mỗi tam giác. Điều này làm tăng số lượng dải tam giác, giảm hiệu suất.

Một ví dụ điển hình của việc sửa lỗi này là đỉnh phẳng của hình trụ. Các gói 3D thường thiết lập một quạt hình tam giác với một đỉnh ở giữa. Tôi xóa các cạnh và đỉnh trung tâm, sau đó tạo các hình tứ giác trên khuôn mặt. Điều này sau đó sẽ tam giác thành một dải tam giác đơn thay vì nhiều dải một mặt, mà không thay đổi số lượng đa giác.

Lấy số lượng đa giác làm hướng dẫn và quan tâm đến cách bạn tạo mô hình và UV Bản đồ lưới. Ít phân chia trong lưới khi UV Mapping thường có thể có lợi hơn.

Tiếp theo, hãy xem xét những gì có thể được làm giả với bản đồ bình thường. Một mặt phẳng với rất nhiều trường hợp chi tiết thường được ánh xạ bình thường. Đường cong chỉ cần tròn để bạn có thể nhìn thấy một hình bóng. Khi nhìn vào các mặt cong phía trước, bạn không nên nhận thấy sự khác biệt giữa assett độ phân giải cao của bạn và assett độ phân giải trò chơi. Hình bóng là thứ tạo nên sự khác biệt trong mô hình của bạn khi có các bản đồ bình thường. Bây giờ Silhouette có thể được sửa đổi với DirectX 11, sử dụng ánh xạ chuyển vị và chuyển vị.

Thiết kế trò chơi

Hãy xem xét những điều sau đây khi thiết kế trò chơi của bạn:

  1. Xác định loại trò chơi (ví dụ: hành động / phiêu lưu / đua xe / xe đẩy)
  2. Xác định loại chế độ xem (ví dụ: người thứ nhất / người thứ ba / hình chính tả)
  3. Xác định sức mạnh tính toán cho thị trường của bạn. (ví dụ: người đam mê / game thủ bình thường)
  4. Tạo một phong cách trực quan mà bạn muốn đạt được. Bạn có muốn nó trông giống như, ví dụ, Crysis 2, Borderlands, Bloodforge hay Gears of War không?
  5. Xác định các đối tượng quan trọng cho người chơi. Là đạo cụ của bạn sẽ là một trung tâm tập trung hay chỉ đơn thuần là bối cảnh?
  6. Là lưới thị giác cũng là lưới va chạm?

Sử dụng các loại trò chơi và chế độ xem, quyết định độ sâu của chế độ xem. Bạn sẽ thấy các vật ở xa, và với sự rõ ràng? Bạn đang làm một cái gì đó với tầm nhìn hạn chế, chẳng hạn như một game bắn súng hành lang? (ví dụ: Gears of War) Bạn có đang thực hiện chuyển vùng miễn phí với cảnh quan mở không? (ví dụ: Skyrim)

Một khi bạn biết nó sẽ trông như thế nào, bạn có thể nghiên cứu các trò chơi tương tự nhau.

Hoạt hình sau đó sẽ hạn chế khả năng của bạn để tăng số lượng đa giác. Các lưới tĩnh, bất cứ thứ gì còn lại ở cùng một vị trí đều rẻ nhất trên GPU và CPU. Đặc biệt nếu chúng không phải là đối tượng vật lý. Đối với các đối tượng vật lý, bạn thường có thể tạo các vỏ va chạm đơn giản và các mắt lưới phức tạp. Không có đủ sự tương tác trong hầu hết các trò chơi để nhận thấy sự khác biệt. Hoạt hình di chuyển mô hình của bạn 3 chiều, với một số xương trên mỗi đỉnh, pha trộn giữa trọng số từ mỗi trọng số. Điều này có thể tốn kém về thời gian CPU, có thể đụng độ với AI và vật lý dựa trên phần mềm. Càng nhiều đỉnh bị ảnh hưởng bởi số lượng xương trong toàn bộ mô hình sẽ làm giảm hiệu suất CPU. Đây là lý do khác khiến các nhân vật trong game được coi là "nghệ thuật". Rất khó xác định giới hạn đa giác.

Ví dụ của tôi

Tôi sử dụng UDK, tạo ra một game bắn súng góc nhìn thứ ba có nhịp độ chậm, với số lượng người chơi và NPC hạn chế trên màn hình bất cứ lúc nào. Đối với điều này, tôi đang nhắm tới khoảng 10.000 hình tam giác cho mỗi người chơi, 5.000 hình tam giác cho những kẻ thù thông thường, chung chung và nếu tôi đang tạo ra một nhân vật theo phong cách "trùm", khoảng 15.000. Ngoài ra, vũ khí cho người thứ ba khoảng 4.000 hình tam giác sẽ xuất hiện rất chi tiết. Xe khoảng 10.000 hình tam giác. Mọi thứ sẽ yêu cầu Mức độ chi tiết, bởi vì tôi yêu cầu khoảng cách xem dài.

Nếu làm người đầu tiên, tôi sẽ dựa vào khoảng 2.000 hình tam giác, vũ khí khoảng 5.000 hình tam giác, với bản đồ bình thường cho mỗi người.

Phần kết luận

Đây là những gì "Nó phụ thuộc" có thể có nghĩa, nhưng tôi nghĩ nó có thể làm rõ một số điều mà mọi người thường thắc mắc.

  1. Sử dụng số lượng đa giác như một hướng dẫn.
  2. Nhìn vào các khu vực có thể được ánh xạ bình thường thay vì mô hình.
  3. Hãy cẩn thận khi đặt quạt tam giác, nếu có thể, tạo một dải.
  4. Sử dụng ít phân chia trên lưới khi ánh xạ UV, lưu ý các dải.

2

Một phương pháp tôi có thể nghĩ đến là sử dụng các cảnh được xây dựng tự động để tạo dữ liệu thống kê từ đó bạn có thể giải mã thông tin bạn đang tìm kiếm.

  1. Nhận một khối lượng lớn tài sản (có khả năng có thể được tạo tự động).

  2. Tạo một công cụ để tạo các cảnh có thể được tải bởi công cụ của bạn bằng cách sử dụng nhóm nội dung.

  3. Chạy một bot sẽ di chuyển máy ảnh của bạn xung quanh hiện trường. Bạn cũng có thể muốn chạy một số bot khác để làm cho cảnh động hơn, bao gồm cả ánh sáng.

  4. Thu thập càng nhiều thông tin càng tốt và ném vào cơ sở dữ liệu; fps, số poly, thay đổi shader, số lượng đèn, vẽ cuộc gọi, v.v.

  5. Tạo / nhận một số công cụ để hiển thị dữ liệu trong cơ sở dữ liệu của bạn theo nhiều cách nhất có thể.

Liên kết này có thể cung cấp thêm một số ý tưởng: Dead Rising Tools


Tôi thích câu trả lời này, vì nó giải quyết phần đắt nhất trong chiến lược của chúng ta: ai đó phải nỗ lực để xây dựng các cảnh đại diện. Tạo thuật toán hoặc tập lệnh để đặt một số lượng lớn tài sản có kích thước hợp lý một cách nhanh chóng sẽ giúp tăng tốc đáng kể việc tạo ra một cảnh có thể kiểm tra được. Tôi sẽ chấp nhận câu trả lời phổ biến hơn, nhưng tôi nghĩ rằng câu trả lời này đáng để nhận tiền thưởng.
MrCranky
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.