Làm thế nào tôi có thể tạo ra một sương mù thể tích dựa trên chiều cao?


10

Gần đây, tôi đã tìm kiếm các kỹ thuật để tạo ra sương mù thể tích ở một số vị trí Y của thế giới trò chơi. Nhưng tất cả những gì tôi đã tìm thấy là một số sương mù được tạo ra bằng cách sử dụng hệ thống hạt hoặc sương mù động cơ tích hợp không thực sự phù hợp với những gì tôi đang tìm kiếm.

Trong trường hợp của tôi, tôi cần một màn sương vừa hiệu quả vừa dày đặc. Nó nên có mặt trên khắp thế giới game, nhưng rõ ràng, vì lý do hiệu suất, nó chỉ có thể được hiển thị như một phần của máy ảnh hoặc shader và trông giống như nó đang di chuyển mặc dù nó chỉ là ảo ảnh. Tôi có thể thiết lập một hệ thống hạt nếu đó là sự lựa chọn tốt nhất, gắn nó vào máy ảnh và làm cho nó di chuyển.

Vì vậy, câu hỏi chính vẫn còn - làm thế nào tôi có thể thực hiện sương mù thể tích vừa dày đặc vừa thực hiện hiệu quả?

Là một công cụ cụ thể tôi đang sử dụng, đó là Unity.

Ví dụ như ý tôi muốn nói, đây là liên kết đến một trò chơi với hiệu ứng tôi đang tìm kiếm: Astromike

Ví dụ ảnh chụp màn hình từ một trò chơi sử dụng sương mù dựa trên chiều cao dày đặc.


Bit của một GLSL noob ở đây, nhưng còn việc tô màu các pixel trong trình đổ bóng mảnh, dựa trên tọa độ Y của chúng mà bạn lấy từ trình tạo bóng đỉnh?
Quentin

2
Bạn đã xem bài nói chuyện của Unity về "Hiệu ứng đặc biệt với độ sâu" chưa? Mặc dù đã được vài năm tuổi, các nguyên tắc vẫn được áp dụng. Chúng bao phủ cả sương mù dựa trên chiều cao và "sương mù mịn" bơi trong không gian trống rỗng và xung quanh chướng ngại vật, và vì tất cả các ví dụ là Unity nên dễ áp ​​dụng.
DMGregory

@Quentin yeah, ý kiến ​​hay đấy, mặc dù nó sẽ là shader cho mỗi đối tượng phải không? Sau đó, nó sẽ yêu cầu thay đổi rất nhiều shader. Tôi cũng là một người mới trong lập trình shader, vì vậy tôi có thể đã viết một số điều vô nghĩa. Nhưng theo như tôi biết, các shader đỉnh áp dụng cho các đối tượng. Và tô màu có thể không cho hiệu ứng chuyển động. Tôi hiểu rằng nếu tôi muốn chuyển động thì mọi vật nhỏ di chuyển bên trong phải là một vật thể, vì vậy hệ thống hạt có thể là cách tốt nhất để đi.
Mặt trăng thí sinh _Max_

@wondra yep, đây có thể không phải là cách tiếp cận tốt nhất nếu nó đúng, tính minh bạch nặng về hiệu suất.
Mặt trăng thí sinh _Max_

1
Danh sách không phù hợp với định dạng Hỏi & Đáp của chúng tôi, vì khi nào danh sách hoàn thành? Có bao nhiêu "tình huống khác nhau" là đủ? Theo số liệu nào chúng ta đánh giá "tốt nhất"? Nói chung định dạng này làm tốt nhất với các câu hỏi tập trung rõ ràng với câu trả lời bạn có thể xác nhận. Vì vậy, nếu bạn cảm thấy bạn có một câu trả lời phù hợp với nhu cầu của bạn, tốt hơn hết là bạn nên chỉnh sửa câu hỏi của mình để thu hẹp câu hỏi thành điều bạn thực sự cần ngay từ đầu, thay vì để nó quá rộng và trả lời không đầy đủ. Những người dùng khác luôn có thể hỏi các câu hỏi khác cụ thể cho các khía cạnh khác, nhận được các câu trả lời tập trung hơn có liên quan đến trường hợp của họ
DMGregory

Câu trả lời:


24

Tôi là người tạo ra Astromike. :)

Trên thực tế, tôi đang sử dụng một mẹo khá đơn giản để làm cho nó trông giống như sương mù. Tôi đang phát triển Astromike bằng Unity, vì vậy nếu bạn sử dụng Unity, bạn cũng có thể làm như vậy. Nhưng tôi giả sử bạn cũng có thể tạo lại shader tương tự cho các động cơ khác.

Những gì tôi làm là, tôi thiết lập một mặt phẳng cho sương mù và thêm một vật liệu có Hạt / Alpha được pha trộn với Nhân tố Hạt mềm (0,32 trong trường hợp của tôi). Đó là nó.

Máy bay sương mù: http://imgur.com/a/MAEFW

Cài đặt: http://imgur.com/NJVAaIQ

Nó hoạt động với tôi do góc máy ảnh và có thể không hoạt động cho người khác.

Phần còn lại chỉ là ngăn xếp hậu quả (Bloom, Vignette, v.v.) Hy vọng điều này sẽ giúp. Chúc mừng.


1
Ồ Thật tuyệt, cảm ơn bạn đã chia sẻ! Trò chơi thật tuyệt vời :)
Candid Moon _Max_

Trông thật tuyệt vời và đơn giản, đã thử làm điều đó trong dự án của tôi. Có vẻ như chỉ hoạt động bằng cách sử dụng máy ảnh phối cảnh (trò chơi của chúng tôi là hình chính tả).
Jeff

điều này là quá tốt để trở thành sự thật haha ​​tốt đẹp
Lestat

Xin chào @ Mikea15, trò chơi rất đẹp! Thật không may, tôi không thể tạo lại hiệu ứng mà bạn đã đề cập - Tôi đã thêm Bloom vào ngăn xử lý bài, tuy nhiên nó lan truyền trên các vật thể ngay cả khi mặt phẳng sương mù ở phía sau chúng (không đáng ngạc nhiên), trong khi trong bản demo của bạn có vẻ như các cạnh dọc của cột sạch của hiệu ứng nở hoa. Ngoài ra, trong Yếu tố hạt mềm của tôi không thay đổi bất cứ điều gì, bất kể giá trị. Sẽ thật tuyệt nếu bạn có thể cung cấp một cảnh demo nhỏ cho thấy điều này. Cảm ơn!
Dawid

@Dawid tôi biết điều này là muộn nhưng bạn cần đặt đường dẫn kết xuất máy ảnh của mình thành hoãn lại và đảm bảo các hạt mềm được kiểm tra về chất lượng trong cài đặt dự án
Rito Ramos
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.