게임에서 "수중 시야"를 방지하는 방법


19

플레이어가 수중으로 갈 수있는 많은 게임에서 화면의 절반이 공중에 있고 화면의 절반이 물에있는 곳을 보면 물이 존재하지 않는 것처럼 보입니다. 물 소리와 함께 천천히 날고 있습니까?

여기에 이미지 설명을 입력하십시오

이것을 해결할 수있는 논리적 인 방법이 있습니까? 알고리즘? 많은 게임이 여전히 이것을 가지고 있기 때문에 아직 해결책이 나오지 않은 것 같습니다. 나는 같은 실수를하고 싶지 않다.


4
현대 게임에는 물 위와 아래에 다른 쉐이더가 있습니다. 요즘에는 분명히 보이지 않습니다. 크라이시스는 수중 렌더링이 상당히 발전했다고 생각합니다. youtube.com/watch?v=yXxEZJdFjeM
MartinTeeVarga

9
@ sm4 :이 게임 에도이 기능이 있다고 생각합니다. 그러나 문제는 카메라에 물이 나오지 않고 위와 같고 클리핑이 가까워서 아래에서 볼 수 있다는 것입니다.
Kikaimaru

@Kikaimaru 나는, 질문을 완전히 이해하지 못했습니다. 그러나 크라이시스에는이 문제가없는 것 같습니다.
MartinTeeVarga 5

2
Aww, 그러나 강 바닥에 진주가 있는지 어떻게 알 수 있습니까? (Elder Scrolls Oblivion) ​​: D
Singular1ty

1
문자 "머리"가 카메라 대신 수중인지 확인하고 문자도 수중에 있지 않으면 카메라가 수중으로 이동하지 못하게 할 수 있습니다.
Luke B.

답변:


16

이 상황을 단순히 허용하지 않는 것은 어떻습니까?

게임을하는 방법을 모르겠지만 뷰가 부분적으로 수중임을 감지하면 카메라가 물 위에 오도록 할 수 있으며 전체 뷰가 물 아래에있을 때만 수중보기.

어떻게하는지에 따라 다이빙을 시작한 순간부터 실제로 수면 아래에서 장면을 볼 때 추가 지연이 발생할 수 있습니다. 이것은 실제로 UX 관점에서 좋은 것일 수 있으므로 자유롭게 실험하십시오.

별도의 그러나 관련 메모에서, 대부분의 수중 장면이 왜 선명하게 보이는지 궁금합니다 ... 머리를 수중에두면 눈이 수중 시야를 위해 설계되지 않았으므로 모든 것이 흐릿하게 보입니다. 실제로 수중을 실제로 보려면 고글을 착용해야합니다.

또한, 물 위의 물과는 매우 다른 수중 모습을 보입니다. 물은 공기보다 빛을 훨씬 빨리 흡수하므로 빛이 멀수록 눈에 도달하는 빛이 줄어 듭니다. 이것은 당신이 더 깊게 갈수록 더 푸른 것들이 보인다는 것을 의미합니다 (적색광은 에너지가 적기 때문에 청색광보다 더 쉽게 흡수됩니다). 실제로, 수중 12 미터에 불과한 혈액은 붉은 색이 아닌 검은 색으로 보입니다.

나는 수중 환경을 올바르게 시도하는 비 특수 게임을 아직 보지 못했습니다 ...


5
많은 게임이 수 중에서 빛과 소리를 바꿉니다. 위 의견에 링크 된 크라이시스 비디오를 참조하십시오. 완전히 현실적이지는 않지만 (a) 대부분의 사람들은 깊은 수중 환경에 대한 직접적인 경험이 없으며 (b) 수중으로가는 게임에서 볼 수 있고, 게임을 할 수 있어야합니다. .
Nathan 리드

나는 아무것도 볼 수 없다면 아무도 수중에 가고 싶지 않기 때문에 대부분의 게임은 단순히 이것을하지 않는다고 생각합니다. 아니면 모든 게임 주인공은 Moken 사람들에 의해 훈련되었습니다! news.nationalgeographic.com/news/2004/05/…
MartinTeeVarga

1
게임 개발에서 이런 종류의 "의사, 내가 할 때 아프다"솔루션은 일반적으로 최적의 솔루션입니다.
Trevor Powell

1
@ TrevorPowell : 나는 당신의 의견을 수십 번 읽었지만 여전히 당신의 요점을 이해하지 못합니다. 좀 더 자세히 설명하고 싶습니까?
Panda Pajama 2016 년

2
사과! 그것은 오래된 vaudeville 농담에 대한 참조 입니다. 농담은 다음과 같습니다 : 환자 : "의사, 내가 이렇게하면 아파요!". 의사 : " 그렇게 하지마 !" 게임에서 문제를 해결하는 가장 간단한 방법은 게임을 문제를 해결해야하는 상태로 만드는 것을 막는 것입니다. (예 : "근접 클립 평면이 수면과 교차 할 때 그래픽이 잘못 표시됨"을 수정하는 가장 쉬운 방법은 "근접 클립 평면이 수면과 교차하지 않도록하십시오")
Trevor Powell

7

당신이 말하는 문제는 카메라의 뷰 볼륨 클리핑을 수면을 통한 것과 관련이 있습니다. 일반적인 "수중 효과"는 전체 화면 후 처리 효과를 통해 수행되며 뷰가 이와 같이 잘 리면 제대로 표시되지 않습니다 (반대 문제 일 수 있음).

클리핑 케이스 (잠재적으로 어려운)를 감지하고 그렇지 않으면 전체 화면 수중 효과를 가위로 자르거나 자르더라도 수중 장면 (탐색 할 수있는 잠재적 인 솔루션)에만 적용됩니다. 실제 수상 비행기 자체의 문제. 전환은 여전히 ​​무서운 시각적 인 인공물이있을 것입니다. 그 비행기를 감지하고 크게 흐리게 할 수 있습니다. 이것은 아마도 부분적으로 잠긴 카메라 렌즈를 통해 보는 것과 실제 세계에 가장 가까운 것입니다.

또는 플레이어가 수면 아래에 있거나 수면 아래에있을 때 카메라가 수면 아래로 가게하지 마십시오. 이것은 물 위 / 아래의 개별 플레이어 작동 모드가있는 경우에만 작동하며, 물리적 인 버튼이나 플레이어가 "표면에서 수영"과 "아래에서 수영"사이를 전환하기 위해 취할 수있는 명확하고 명백한 조치가있는 경우에 가장 효과적입니다. 표면."

명시적인 키 스트로크 대신에, 카메라가 "다이빙"을 의미 할만큼 충분히 튀겨 진 상태에서 전방 움직임을 해석 할 수 있습니다. 그런 다음 그래픽 효과 (스플래시 또는 기타)를 사용하여 일반적으로 교차 할 수없는 수면을 통한 카메라 전환을 숨길 수 있습니다.

우리는 Guild Wars 2에서 이와 같은 기술을 사용했습니다.


3

게임은 일반적으로 카메라가 수중에있을 때 주로 푸른 안개와 같은 효과를냅니다. 가까운 평면이 수면을 통과하는 상황을 처리하기 위해 카메라가 수면에 가까워지면 안개 쉐이더를 켤 수 있지만 픽셀 쉐이더에 코드를 추가하여 해당하는 평면의 점을 계산합니다. 해당 지점이 수면 아래에있는 경우에만 안개를 활성화합니다.

안개가 후 처리로 수행되는 경우 전체 화면 패스를 렌더링하여 특히 쉽습니다. 가까운 평면에서 전체 화면 쿼드 또는 삼각형의 각 정점의 월드 공간 위치를 계산하면됩니다 view / projection matrix), 픽셀 쉐이더까지이 값을 보간합니다. 수직 구성 요소를 확인하여 수면 위 또는 아래에 있는지 확인할 수 있습니다.

보너스 포인트의 경우 같은 기술을 사용하여 수면 두께 의 수막 두께의 텍스처를 추가 하여 수면 의 메 니스 커스 를 나타낼 수 있으므로 예리한 선처럼 보이지 않습니다.


(물 표면이 좋은 일반적인 대답은 여전히 메쉬이지만, 경우에 문제가있다)

0

두 가지 방법이 있습니다. 하나는 쉐이더를 사용하고 다른 하나는 GUI를 사용할 수 있습니다. 둘 다 동일하게 시작됩니다.

"간체"- If, Object(Camera) is in 3d Space(Water bounding box/whatever you choose) trigger a shader/GUI.

쉐이더 더 현실감을 줄 것이다, 당신은 왜곡을 적용 할 수 있습니다 이와 같은

Com 같은 안개. 소년은 GUI를 통해 적용 할 수 있다고 말했습니다. 부분적으로 투명한 사진을 만들고 전체 카메라보기에서 GUI로 사용하십시오. 당신이 제공 한 사진을 위해 나는 갈색을 시도 할 것입니다.

이것은 Drea D Out이라는 공포 게임에서 사용되었습니다. 플레이어가 유령에 접근하면 화면이 안개로 바뀝니다. 수 중에서 사용되지는 않았지만 비슷한 효과를 나타 냈습니다 :)

항상 두 가지 방법을 모두 선택하거나 색상을 변경하는 셰이더를 만들 수 있습니다.

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

Taken from : http://sahdan-share.blogspot.com/2013/04/dreadout.html
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.