Làm giả một đối tượng 3D để giảm số lượng đa giác


20

Tôi đang tạo ra một trò chơi trong sự thống nhất và tôi đang xây dựng một hàng rào bằng máy xay sinh tố nhưng tôi muốn nó ở mức thấp nhất có thể. Thiết kế ban đầu của tôi quá cao poly nên tôi nghĩ, nếu tôi có thể đơn giản sử dụng một khối lập phương với một số họa tiết được sắp xếp khéo léo. Thích như vậy:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Bạn có thể thấy các cạnh đều trông đẹp nhưng các phần bên trong thì không, tức là không có gì ở đó cả ... vì vậy có ai biết nếu có thể giả mạo những khuôn mặt đó sẽ khiến nó trông như một lưới hoàn chỉnh. Đây là những gì tôi đang cố gắng đạt được:

nhập mô tả hình ảnh ở đây


7
Tôi đếm 52 đỉnh trên hàng rào đó. Đó không phải là nhiều.
Pharap

1
@Pharap Nhưng hãy nhớ những gì xảy ra khi bạn đặt hàng ngàn bản sao của lưới này ở biên giới cấp của bạn.
Philipp

5
@Philipp Nếu Unity đang sử dụng Đối tượng bộ đệm của Vertex và các kỹ thuật tối ưu hóa tương tự một cách chính xác thì đó không phải là vấn đề. Bạn luôn có thể sử dụng một bảng quảng cáo với alpha nếu bạn lo lắng. Hoặc tốt hơn nữa, kết xuất một bảng quảng cáo ở khoảng cách xa và hiển thị lưới thích hợp khi người chơi đủ gần. Và tôi thực sự nghi ngờ rằng bạn sẽ có hàng ngàn hàng rào được vẽ lên màn hình cùng một lúc. Ngay cả khi có hơn 9000 hàng rào được đặt trên thế giới, tôi nghi ngờ một lượng lớn trong số đó sẽ bị loại bỏ. Bạn đã thực sự điểm chuẩn hay bạn chỉ đang đưa ra các giả định về hiệu suất?
Pharap

6
Bạn đang phát triển cho thiết bị di động hay PC / console? Ít nhất là trên các GPU hiện đại (5 tuổi hoặc trẻ hơn), mô hình 52 đỉnh có lẽ rẻ hơn so với thực hiện một số mặt nạ trộn / alpha. Nó phụ thuộc vào nhiều yếu tố (độ bao phủ màn hình, GPU, pixel shader hoặc nút thắt rasterization, v.v.), nhưng sử dụng mặt nạ alpha luôn dẫn đến tình trạng quá tải. Bạn có lẽ nên điểm chuẩn mà trước khi tối ưu hóa.
Tobias B

2
Tuy nhiên, một trường hợp mà bạn có thể không muốn làm điều này, có thể là nếu bạn cần bỏ qua phát hiện va chạm trong các khoảng trống đó, chẳng hạn như nếu bạn đã thử bắn qua các khoảng trống trong một số vật thể (trong một số game bắn súng góc nhìn người thứ nhất) và một "viên đạn -hole "( decal ) xuất hiện trên" khoảng trống "( kiểu máy ).
DoubleDouble

Câu trả lời:


26

Nếu tôi hiểu chính xác những gì bạn muốn đạt được, bạn đang tìm kiếm khái niệm "kẻ mạo danh". Đây là các biểu diễn 2D chính xác của các đối tượng 3D, được sử dụng để giảm độ phức tạp hình học của kết xuất môi trường 3D.

Bạn có thể nghĩ về chúng khá nhiều như hình ảnh của các đối tượng 3D được sử dụng làm kết cấu của các đối tượng 2D. Tài liệu tham khảo kinh điển cho những người này có lẽ là chương 21 của cuốn sách GPU Gems 3, được gọi là "True Impostors". Nó có sẵn công khai ở đây . Một tài liệu tham khảo quan trọng khác là chương 5.7 của cuốn sách Lập trình trò chơi Đá quý v.2, được gọi là "Kẻ mạo danh: Thêm Clutter, trong Lập trình trò chơi Đá quý 2, Tom Forsyth".

Và chúng có thể được tạo ra một cách đồng đều khi đang di chuyển, để đối phó với những thay đổi nhỏ trong góc nhìn hoặc với nội dung được tạo trong thời gian chạy. Hãy xem bài viết tuyệt vời về Gamasutra về chủ đề này, được gọi là "Kẻ giả mạo 2D động: Cách triển khai DirectX 9 đơn giản, hiệu quả" . Một sự phát triển hơn nữa của khái niệm này đã xuất hiện tại "Đám mây Billboard để đơn giản hóa mô hình cực độ" .

Để có một lời giải thích tuyệt vời về khái niệm này, hãy xem mục blog này: http://blog.wolfire.com/2010/10/Imposters

Cuối cùng, khi bạn đang sử dụng Unity, tôi đã nghe nói về một plugin tự động hóa quá trình đó. Nó được gọi là Hệ thống LOD Real Imposters LOD .

CẬP NHẬT: để hoàn thành, tôi nghĩ đến việc thêm hai điều mà tôi nhớ gần đây. Đầu tiên là: có một video GDC tuyệt vời, nơi giám đốc nghệ thuật của SimCity giải thích cách họ đã sử dụng (nặng) những kẻ mạo danh để đạt được thành tựu đồ họa hàng đầu của trò chơi đó: "GDC - Xây dựng SimCity: Nghệ thuật trong Dịch vụ mô phỏng". . Thứ hai, đối với những người quan tâm đến Unreal Engine, nó có một tính năng tích hợp để triển khai những kẻ mạo danh, như có thể thấy trong các tài liệu


Vì vậy, nếu tôi tạo ra mô hình hàng rào, toàn bộ và sử dụng Hệ thống LOD của Real Imposters, bạn nghĩ sao?
mr-matt

5
@MatthewInglis Tôi không thể nói cho bạn biết chính xác về plugin: đã được một thời gian kể từ khi tôi không sử dụng Unity vì vậy tôi không thể kiểm tra. Nhưng về nguyên tắc, vâng, nó sẽ tạo ra một phiên bản 2D sprite của đối tượng 3D chi tiết đầy đủ của bạn. Bạn sẽ phải chơi xung quanh với các cấu hình, mặc dù. Nếu bạn dự định mua plugin, trước tiên hãy xem xét việc đọc tài liệu ( drive.google.com/file/d/0B3GMQtflbloSeHhvUGJmcjluX3M/view ) và liên hệ với tác giả trước những câu hỏi cụ thể mà bạn có thể có về sản phẩm của họ.
MA

0

Nếu bạn không cần bất kỳ sự tương tác nào nghĩ đến hàng rào, ý tôi là, bởi các khoảng trống, tôi sẽ sử dụng một hình chữ nhật trong suốt đơn giản với một kết cấu được in.

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.