Làm thế nào để ngăn chặn tầm nhìn dưới nước của người Viking trong trò chơi


19

Trong nhiều trò chơi mà người chơi có thể ở dưới nước, có vẻ như khi bạn nhìn vào nơi nửa trên của màn hình ở trên không, và nửa dưới màn hình ở dưới nước, nó gần giống như nước không tồn tại và Người chơi đang ... bay chậm với tiếng nước?

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

Có một cách hợp lý để giải quyết điều này? Một thuật toán? Dường như không có giải pháp nào được đưa ra vì nhiều trò chơi vẫn có điều này. Tôi không muốn phạm sai lầm tương tự.


4
Các trò chơi hiện đại có các shader khác nhau cho trên và dưới nước. Nó chắc chắn không giống như ngày nay. Tôi tin rằng Crysis có kết xuất dưới nước khá tiên tiến: youtube.com/watch?v=yXxEZJdFjeM
MartinTeeVarga

9
@ sm4: Tôi đoán trò chơi này cũng có tính năng này. Nhưng vấn đề là máy ảnh không dưới nước, nó ở trên và bạn có thể nhìn thấy bên dưới vì gần bị cắt.
Kikaimaru

@Kikaimaru Tôi thấy, tôi không hoàn toàn hiểu câu hỏi. Tuy nhiên, Crysis dường như không có vấn đề này.
MartinTeeVarga

2
À, nhưng làm thế nào khác tôi phải xem nếu có ngọc trai dưới đáy sông? (Elder Scrolls Oblivion): D
Singular1ty

1
Có lẽ bạn có thể kiểm tra xem "đầu" của nhân vật có ở dưới nước thay vì máy ảnh không và không cho phép máy ảnh chìm dưới nước trừ khi nhân vật cũng ở dưới nước
Luke B.

Câu trả lời:


16

Làm thế nào về đơn giản là không cho phép tình huống này?

Tôi không biết bạn đang tạo trò chơi như thế nào, nhưng nếu bạn phát hiện ra rằng chế độ xem sẽ ở dưới nước một phần, bạn có thể buộc máy ảnh ở trên mặt nước và chỉ khi toàn bộ chế độ xem ở dưới nước, bạn mới có thể chuyển sang xem dưới nước.

Tùy thuộc vào cách bạn thực hiện, điều này có thể có nghĩa là có thêm độ trễ từ thời điểm bạn bắt đầu lặn và khi bạn thực sự xem cảnh từ bên dưới bề mặt. Đây thực sự có thể là một điều tốt từ góc độ UX, vì vậy hãy thử nghiệm.

Trên một ghi chú riêng biệt nhưng có liên quan, tôi tự hỏi tại sao hầu hết các cảnh dưới nước được thể hiện rõ nét ... Nếu bạn đặt đầu dưới nước, bạn sẽ nhận thấy rằng mắt bạn không được thiết kế để nhìn dưới nước, và do đó mọi thứ dường như mờ. Bạn phải đeo kính để thực sự nhìn rõ dưới nước.

Ngoài ra, mọi thứ trông (và nghe) dưới nước rất khác so với trên mặt nước. Nước hấp thụ ánh sáng nhanh hơn nhiều so với không khí, vì vậy ánh sáng đi càng xa, ánh sáng sẽ đến mắt bạn càng ít. Điều này có nghĩa là bạn càng đi sâu, mọi thứ càng xanh hơn (ánh sáng đỏ có ít năng lượng hơn và do đó được hấp thụ dễ dàng hơn ánh sáng xanh). Trên thực tế, chỉ ở độ sâu 12 mét dưới nước, máu trông có màu đen chứ không phải màu đỏ.

Tôi vẫn chưa thấy một trò chơi không chuyên mà thậm chí còn cố gắng để có được môi trường dưới nước ngay ...


5
Rất nhiều trò chơi thay đổi ánh sáng và âm thanh dưới nước. Xem video Crysis được liên kết trong các ý kiến ​​trên. Tôi chắc chắn rằng nó không hoàn toàn thực tế, nhưng (a) hầu hết mọi người không có kinh nghiệm trực tiếp với môi trường dưới nước sâu và (b) trong các trò chơi mà bạn đi dưới nước, có lẽ bạn cần phải có thể nhìn thấy, để chơi trò chơi .
Nathan Reed

Tôi tin rằng hầu hết các trò chơi không làm điều này đơn giản vì không ai muốn xuống nước nếu họ không nhìn thấy bất cứ điều gì ở đó. Hoặc có thể tất cả các nhân vật chính của trò chơi đã được đào tạo bởi người Moken! news.nationalgeographic.com/news/2004/05/...
MartinTeeVarga

1
Trong phát triển trò chơi, loại "bác sĩ này, thật đau khi tôi làm điều này" thường là giải pháp tối ưu.
Trevor Powell

1
@TrevorPowell: Tôi đã đọc bình luận của bạn hàng tá lần và tôi vẫn không hiểu quan điểm của bạn. Có lẽ bạn muốn giải thích?
Panda Pyjama

2
Xin lỗi! Nó liên quan đến một trò đùa vaudeville cũ . Trò đùa giống như thế này: Bệnh nhân: "Bác sĩ, thật đau khi tôi làm điều này!". Bác sĩ: "Đừng làm thế!" Tôi chỉ có ý nói rằng trong các trò chơi, thường thì cách đơn giản nhất để giải quyết vấn đề là ngăn trò chơi đi vào trạng thái mà vấn đề phải được giải quyết. (ví dụ: cách dễ nhất để sửa chữa "đồ họa nhìn sai khi chiếc máy bay gần-clip cắt mặt nước" là "đừng để máy bay gần-clip giao nhau mặt nước")
Trevor Powell

7

Vấn đề bạn đang đề cập phải giải quyết với khối lượng chế độ xem của máy ảnh bị cắt qua mặt phẳng nước; "hiệu ứng dưới nước" điển hình được thực hiện thông qua các hiệu ứng hậu xử lý toàn màn hình và sẽ không chính xác nếu chế độ xem bị cắt như thế này (nó sẽ chỉ là vấn đề ngược lại).

Ngay cả khi bạn bận tâm phát hiện trường hợp cắt (có khả năng khó khăn) và cắt kéo hoặc cắt hiệu ứng dưới nước toàn màn hình để nó chỉ áp dụng cho cảnh dưới nước (đây là một giải pháp tiềm năng bạn có thể khám phá), bạn vẫn có vấn đề của máy bay nước thực tế. Quá trình chuyển đổi vẫn sẽ có một tạo tác hình ảnh chói tai. Bạn có thể phát hiện chiếc máy bay đó và làm mờ nó đi rất nhiều; đây có lẽ là điểm gần nhất mà bạn có thể có được với sự tương tự trong thế giới thực về tầm nhìn có thể thông qua một ống kính máy ảnh chìm một phần.

Ngoài ra, ngăn điều này xảy ra hoàn toàn: không để máy ảnh xuống dưới mặt phẳng nước nếu người chơi "ở trên" mặt nước hoặc phía trên mặt phẳng nước khi người chơi "ở dưới" nước. Điều này sẽ chỉ thực sự hoạt động nếu bạn có các chế độ hoạt động riêng biệt của người chơi cho trên / dưới nước và hoạt động tốt nhất nếu có nút vật lý hoặc hành động rõ ràng và rõ ràng khác mà người chơi có thể thực hiện để chuyển đổi giữa "bơi trên mặt nước" và "bơi bên dưới bề mặt."

Thay vì nhấn phím rõ ràng để lặn, bạn có thể diễn giải chuyển động về phía trước trong khi máy ảnh được hạ xuống đủ để có nghĩa là "lặn". Sau đó, bạn có thể sử dụng hiệu ứng đồ họa (bắn tung tóe hoặc bất cứ thứ gì) để ẩn quá trình chuyển đổi của máy ảnh qua mặt phẳng nước mà thông thường nó không thể vượt qua.

Chúng tôi đã sử dụng một kỹ thuật như thế này trong Guild Wars 2.


3

Các trò chơi thường bật một số loại hiệu ứng, chủ yếu là sương mù màu xanh, khi máy ảnh ở dưới nước. Để xử lý tình huống các mặt phẳng gần cắt qua mặt nước, bạn có thể bật trình tạo bóng sương mù khi máy ảnh ở gần mặt nước, nhưng sau đó thêm một số mã vào trình đổ bóng pixel để tính điểm trên mặt phẳng gần tương ứng với pixel đó và chỉ kích hoạt sương mù nếu điểm đó ở dưới mặt nước.

Nếu sương mù được thực hiện dưới dạng hậu xử lý, bằng cách hiển thị đường chuyền toàn màn hình, điều này đặc biệt dễ dàng - bạn chỉ cần tính toán vị trí không gian thế giới của mỗi đỉnh của hình tứ giác hoặc tam giác toàn màn hình trên mặt phẳng gần (với nghịch đảo ma trận xem / chiếu) và nội suy giá trị này xuống trình đổ bóng pixel; sau đó bạn có thể kiểm tra thành phần thẳng đứng của nó và xem nó ở trên hay dưới mặt phẳng nước.

Đối với các điểm thưởng, bạn có thể sử dụng cùng một kỹ thuật để thêm một họa tiết dày vài pixel để thể hiện hình sụn ở mặt nước, vì vậy nó trông không giống một đường kẻ sắc nét.


(có vấn đề nếu mặt nước là lưới, nhưng vẫn là câu trả lời chung tuyệt vời)
Will

0

Tôi có hai phương pháp; Một cái sử dụng shader, cái còn lại có thể sử dụng GUI. Cả hai sẽ bắt đầu như nhau:

"Giản thể" - If, Object(Camera) is in 3d Space(Water bounding box/whatever you choose) trigger a shader/GUI.

Shader sẽ cho nhiều hiện thực hơn, bạn có thể áp dụng một biến dạng như thế này

Sương mù như Com. Boy tuyên bố, có thể được áp dụng thông qua GUI. Tạo một bức ảnh, với độ trong suốt một phần và sử dụng nó làm GUI trên toàn bộ chế độ xem camera. Đối với ảnh bạn cung cấp, tôi sẽ thử một màu nâu.

Điều này đã được sử dụng trong một trò chơi kinh dị có tên Drea D Out. Nếu người chơi tiếp cận một con ma, màn hình sẽ chuyển sang màu sương mù. Mặc dù nó không được sử dụng dưới nước nhưng nó cũng cho hiệu quả tương tự :)

Bạn luôn có thể chọn cả hai phương thức hoặc tạo một shader có thể thay đổi màu sắc.

http://media.indiedb.com/images/games/1/21/20833/Demo_update_SS01.png

Taken from : http://sahdan-share.blogspot.com/2013/04/dreadout.html
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.