Học cách tạo các kẻ mạo danh theo cách thủ công trong Unity - làm thế nào để hiển thị một đối tượng thành một kết cấu không phải là những gì máy ảnh nhìn thấy?


8

Tôi đang cố gắng học cách hiệu quả nhất để tạo một kẻ mạo danh trong Unity một cách thủ công - không sử dụng các giải pháp được chế tạo sẵn.

Tôi đoán đầu tiên là nó phải đạt được bằng cách sử dụng RenderTexture và máy ảnh thứ hai và sau đó chụp các "ảnh chụp" khác nhau về các góc khác nhau của objec. Nếu có những lựa chọn thay thế tốt hơn về mặt hiệu suất (ngay cả khi khó thực hiện hơn), tôi rất thích nghe về nó.

Trong trường hợp đó là con đường duy nhất, thì tôi đã học cách kết xuất từ ​​máy ảnh thành kết cấu thông qua kịch bản, nhưng tôi vẫn không thể tìm ra cách thực hiện như sau, đây là điều tôi cần làm trước tiên: làm thế nào để kết xuất -để kết cấu một đối tượng cụ thể mà không có nền của máy ảnh (nghĩa là phần còn lại của kết cấu trong suốt) theo cách thức biểu diễn?

Con trỏ, đề xuất hoặc ít nhất là đề xuất liên kết sẽ là tuyệt vời.

Cảm ơn trước.


Vui lòng thu hẹp bài viết của bạn vào một câu hỏi duy nhất. Bạn có thể tạo 2 bài đăng câu hỏi khác nhau cho hai câu hỏi của bạn.
Vaillancourt

@AlexandreVaillancourt Không có vấn đề! Tôi đã làm như vậy. Hãy cho tôi biết nếu nó vẫn cần cải thiện hơn nữa
AndraSol

Bạn cũng không thể yêu cầu 'liên kết' vì câu trả lời chỉ cung cấp liên kết không được coi là câu trả lời tốt cho trang web này, nếu không, câu hỏi của bạn vẫn ổn :)
Vaillancourt

@AlexandreVaillancourt Cảm ơn! Nhưng tôi đoán sau đó các khuyến nghị liên kết tốt có thể đến thông qua nhận xét, tôi có đúng không?
AndraSol

Một cái gì đó như thế, vâng. Một câu trả lời có thể được viết tốt có liên kết đến nhiều chi tiết hơn. Một câu trả lời chỉ chứa các liên kết sẽ bị xóa. Bình luận không phải tuân theo các quy tắc này.
Vaillancourt

Câu trả lời:


3

Có một loạt các kỹ thuật mạo danh khác nhau.

Mức độ chi tiết có lẽ là dễ nhất để đạt được, nhưng có hai nhược điểm chính. Hiệu ứng 'pop' đáng chú ý khi bạn trao đổi giữa các mô hình độ phân giải thấp và cao, được giải quyết bằng cách chuyển đổi dần dần giữa các LOD. Vấn đề thứ hai là nghệ sĩ sẽ phải làm việc nhiều hơn để tạo ra LOD cho mỗi mô hình. Có một cuộc nói chuyện về GDC về cách tự động tạo LODS - "Mức độ tạo chi tiết tự động cho HALO: REACH"

Một kỹ thuật đơn giản hơn sẽ là bảng quảng cáo, trong đó bạn chỉ sử dụng một đa giác phẳng, thay vì lưới có độ phân giải thấp. Đa giác này đối diện với máy ảnh và được kết cấu từ kết xuất mô hình của bạn. Phương pháp này đòi hỏi phải có nhiều góc nhìn khác nhau về đối tượng của bạn, giống như cách kẻ thù diệt vong. Bạn có thể trình bày tất cả các quan điểm của bạn vào một tập bản đồ kết cấu. Các trò chơi hiện đại sử dụng phương pháp này, như Far Cry 3 https://www.youtube.com/watch?v=9P3EI17kHaI

Bạn cũng có thể có một số bảng quảng cáo tĩnh khác nhau và kết hợp chúng như trong gói thống nhất này https://forum.unity3d.com/threads/abi-automatic-3d-billboard-imposters-release.204579/

Nhưng cách tốt nhất (mà tôi nghĩ bạn muốn) là tự động hiển thị các bảng quảng cáo của bạn, như trong bài viết về gamasutra này. http://www.gamasutra.com/view/feature/130911/dynamic_2d_impostftimea_simple_.php Đây là lần đầu tiên được thực hiện bởi Jurrassic Park: Trespasser vào năm 1998, vì vậy đây không phải là một kỹ thuật mới. Kiểm tra đánh giá mã ở đây http://fabiensanglard.net/trespasser/index.php Cuộn xuống phần trên wavelet để xem những kẻ mạo danh của họ.

Ngoại trừ cách tiếp cận LOD tiêu chuẩn, bước đầu tiên của bạn có thể sẽ tìm thấy một hướng dẫn kết cấu kết xuất. Hướng của camera renderTexture phải giống với camera chính của bạn, nhưng được cắt xung quanh gameObject để đạt hiệu quả. Bạn sẽ cần phải cách ly (các) trò chơi bạn muốn kết xuất với mặt nạ loại bỏ. Và đặt cờ rõ ràng của máy ảnh để bạn có được hậu cảnh trong suốt. Sau đó kết xuất một bảng quảng cáo mạo danh thay cho đối tượng ban đầu.

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.