티스토리 툴바


jobGuid 꽃미남 프로그래머 "Pope Kim"님의 이론이나 수학에 치우치지 않고 실무에 곧바로 쓸 수 있는 실용적인 셰이더 프로그래밍 입문서 #겁나친절 jobGuid 캐나다로 날아가서 실력만으로 수석 그래픽 프로그래머가 된 꽃미남 프로그래머 "Pope Kim" 님의 북미취업 가이드북이 전자책으로 출간되었습니다. 블랙썬  for Kakao 클래식한 던젼 RPG와 간편한 모바일 게임이 만났다! 당신을 검과 마법의 장대한 서사시로 초대하는 [블랙썬 for Kakao]!! 3ds Max를 사용해서 게임용 3D 캐릭터를 셋업하는 방법
이를 위해 오랜 실무를 경험해 온 저자의 고급 노하우들이 공개
위 내용은 GameDevForever의 저자분들의 홍보를 위하여 운영진 자체적으로 올린 광고이며 일체의 수익이 없습니다.(밥좀사줘요~)
Posted by Dish
리처드 파인만이란 유명한 물리학자가 있죠.
이 사람이 "파인만 씨, 농담도 잘하시네!"라는 책을 쓴 게 있는데
(실제로 농담도 잘 했답니다) 거기에 보면 이런 구절이 나온답니다.

고등학교 시절에, 나는 수도꼭지에서 나오는 물줄기가 점점 가늘어지는 것을 보았는데, 무엇이 물줄기에 곡선을 결정하는지 생각해 보았다. 나는 이것이 생각보다 쉽다는 것을 알았다. 사실 이런 일은 할 필요가 없었다. 이것은 과학의 장래에 중요한 것도 아니고, 누군가가 벌써 해놓았을지도 모른다. 하지만 그런 것은 내게 상관이 없다. 나는 순전히 재미로 뭔가를 발명하고 가지고 논다.



음... 그러고보니 수도꼭지 물줄기가 아래로 갈수록 홀쭉해지다가 나중엔 방울방울로
뚝뚝 떨어지죠. 근데 언뜻 생각해도 고딩 레벨에서 쉽게 풀리는 건 아닌 것 같은데-_-

노벨상 받은 분이니 그러려니...라지만 왠지 빡치더군요-_-!

나는 비록 과학자는 아니지만 그래도 고등 수학, 물리 다 한 엔지니어인데!
게다가 사실 이런 일은 할 필요가 없다라니 왠지 엄청 해보고 싶지 않습니까.
자고로 일이란 무익할 수록 하고 싶은 법 (?)

그래서 해봤습니다!

게임 개발과의 연관성은... 호...혹시 게임 개발하다가 수도꼭지에서 떨어지는 물을
시뮬레이션할 일이 있을 수도 있지 않을까요 하하하하 (...)



일단 물줄기가 얇아지는 이유는 중력 때문인 것으로 보입니다.
수도꼭지에서 나온 물이 중력에 자유낙하하면서 속도가 점점 빨라질 테니까요.
시간당 나오는 물의 양은 일정한데 점점 물이 빨리 떨어지니 물줄기가 얇아질 수밖에 없겠죠.

직관적으론 그렇고... 좀 더 제대로 하려면 물의 점성이나 공기 저항 같은 것들을
고려해야겠지만 물의 양이 많은 경우 그닥 영향이 없을 테니 다 무시하고
중력만 생각했을 때 물줄기의 모양이 어떻게 되는지 알아보겠습니다.



물줄기의 단면도입니다. r이 수평, h가 수직 축이고 H가 현재 물줄기의 가장 밑단입니다.
일단 생각나는 것들부터 주르륵 써보죠. 중력가속도는 g로 하고...
H에 있는 물들은 중력에 의해 가속이동하므로 시간 t일 때 1/2 gt^2에 있게 되죠.



그리고 펌프가 멀쩡하다면 단위시간당 나오는 물의 부피가 일정할 겁니다.
총 물의 부피를 V, 초당 공급되는 물의 양을 P라고 했을 때 V를 시간 t에 대한 식으로
나타내면 다음과 같습니다.



총 물의 부피를 물줄기 식에서 도출할 수도 있을 건데요.
지금 그래프는 단면도로 그렸으나 실제로 물줄기는 원기둥 형태일 테니
총 부피는 그걸 고려해서 다음처럼 되어야겠죠.



우리가 구하고 싶은 건 결국 높이에 따라 변하는 물줄기의 반지름이므로
목표는 r(h)입니다. ③을 H로 미분해서 정리해봅시다.





dV / dH가 거슬리는데... ①, ②번 식이 t로 이어져 있어서 얘네를 이용하면 dV / dH 꼴을
만들 수 있을 것 같습니다.

우선 ①번을 다음과 같이 정리할 수 있습니다.



원래 루트 풀면서 플러스 마이너스 부호가 다 나오는데 시간이 음수인 세계(...)는 무서우므로 뺍니다.

이걸 ②에 넣어주면 가 됩니다.
이제 양변을 H로 미분하면 가 나옵니다.

네 드디어-_- 이걸 아까 나온 r(H), ④번에 넣으면 나왔네요.
h = H인 경우에 반지름 r은



...로 나옵니다. h 빼면 다 상수니깐 C로 빼고 r(h) = Ch^(-1/4) 그래프를 그려보면



처음에 예상했던 것과는 달리 h가 0에 가까운 곳에서 r이 무한대가 되네요.
h가 0인 곳은 물 속도도 0이라 물이 어디 도망 못 가고 쌓이기만 하니 당연할라나...

실제로 써 먹을 거라 생각하면 수도꼭지에서 튀어나올 때의 물 초기속도가
v인 경우 h = 1 / 2 gt^2이고 v = gt니깐... h를 v에 대한 식으로 정리하면
h = v^2 / 2g로 나옵니다. 저 식에 v 넣고 h를 구해서 그 h부터 아랫부분 쪽을 쓰면 되겠죠.
물 나오는 양 P랑 중력 가속도 g까지 넣고.

아... 아까 이거 쉽다던 건방진 고딩 누구야 대체-_- 힘들어 죽겠는데.
고딩이 이거 풀 수 있으면 걔는 노벨상도 받을 거다!!

네, 여튼 물 분자의 장력에 의해 방울방울 떨어지는 것까지 나타내는 식은
못 구했지만 수도꼭지 물줄기가 얇아지면서 떨어지는 것까지 설명하는 데에는 성공했네요.
물줄기가 얇아져서 중력보다 표면장력이 지배적인 힘이 되면 또 다른 모델로 식을
도출해볼 수 있을 것 같습니다.

자, 고딩 파인만 이건 어떻게 설명할텐가! 물줄기가 안 가늘어지고 그대로 떨어지는데!



틀린 거 있으면 지적해주시고 궁금한 거 있으면 질문해주세요~!

댓글을 달아 주세요

  1. Favicon of http://chulin28ho.tistory.com 대마왕J 2011/12/18 10:28  댓글주소  수정/삭제  댓글쓰기

    아놔 ㅋㅋㅋ 공식은 뭔지 모르겠는데 그 외의 것이 ㅋㅋㅋ

  2. Favicon of http://www.gamedevforever.com 김포프 2011/12/19 04:25  댓글주소  수정/삭제  댓글쓰기

    태그로 필명 (Dish)를 달았습니다. 필자별 검색을 돕기위해~

  3. Favicon of http://www.gamedevforever.com 김포프 2011/12/19 04:25  댓글주소  수정/삭제  댓글쓰기

    이거 매우 즐거운 글이네요? ㅋㅋ 자주 올려주세요~

  4. Favicon of http://esty.tistory.com 월하 2011/12/19 13:27  댓글주소  수정/삭제  댓글쓰기

    첨엔 뭔 말인지 하나도 모르겠었는데
    2~3번 반복해서 읽으니 어렴풋이 기억이 나네요.
    역시 주입식 암기교육의 힘은 대단 하네요.

  5. Favicon of http://thelevelcat.tistory.com Silverchime 2011/12/19 13:35  댓글주소  수정/삭제  댓글쓰기

    와... 유체시뮬레이션 한다던지 할때 유용하지 않을까요.
    요즘 Where is my water를 하고 있습니다 . . ) 재미있게봤습니다!

  6. Favicon of http://kindtis.tistory.com 친절한티스 2011/12/19 15:40  댓글주소  수정/삭제  댓글쓰기

    ..... 참 건방진 고딩이네욤.
    좋은 글 잘 읽었습니다. 언젠가 써먹을 날이 오겠지...

  7. Favicon of http://ozlael.tistory.com ozlael 2011/12/19 15:46  댓글주소  수정/삭제  댓글쓰기

    뭐라는거야!!
    싸우잣!!

    잘봤습니다 꾸벅
    물론 이해는 하지 않았습니다(못했습니다)

  8. Favicon of http://thelevelcat.tistory.com Silverchime 2011/12/22 16:16  댓글주소  수정/삭제  댓글쓰기

    아 수학자가 보는 세상이라는 그림이 새삼 떠오르는 글이네요. 잘 보았습니다... 그건 검색으로도 못 찾았네요 그대신 수학자의 아름다운 춤 ..입니다. http://www.caption-of-the-day.com/wp-content/uploads/2011/12/dancing-mathematicians.jpg

  9. Favicon of http://zinzza.tistory.com zinzza 2011/12/22 19:26  댓글주소  수정/삭제  댓글쓰기

    ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 마지막 반전사진 짱이십니다 ㅋㅋㅋㅋ

  10. Favicon of http://runningmemory.tistory.com 원숭이사냥꾼 2011/12/23 09:38  댓글주소  수정/삭제  댓글쓰기

    언젠가는 써먹을 수 있는 기획을 하도록 하겠습니다 +_+ㅎㅎ

  11. Favicon of http://kgun86.tistory.com 끼로 2011/12/23 11:51  댓글주소  수정/삭제  댓글쓰기

    덜덜...... 무서워요..

  12. 죠쉬 2011/12/23 12:58  댓글주소  수정/삭제  댓글쓰기

    에, 마지막 사진은 순수한 물줄기가 아니라 물이 투명한 파이프의 표면을 타고 흐르는 것 이니 의미가 약간 달라집니다만, 실상 정밀한 광학장비를 이용해서 측정한다면 위에서 풀어낸 수식과 유사한 형태로 아래로 내려갈 수록 투명한 파이프의 표면을 감싸고 있는 수막의 두께가 점점 얇아진다는 사실을 관찰할 수 있을 것으로 유추되는바, 중심을 이루고 있는 투명한 파이프의 마찰계수를 감안한다면 결국 같은 값을 얻을수 있을 것 입니다.

    뭔소리냐구요? 저도 몰라요, 그냥 되는대로 중얼거려 본거니까 무시해 주세요
    ㅋㅋㅋ
    잘 봤습니다.

    • Favicon of http://dishdev.me/ Dish 2011/12/24 14:31  댓글주소  수정/삭제

      수막 두께 맞는 말씀이시네요 ㅋㅋㅋ

    • Knark 2013/07/23 11:06  댓글주소  수정/삭제

      질떨어지는 태클이긴 한데 저거 투명한 파이프를 타고 흐르는 물이 아니고 그냥 모형 같습니다 ㅋ
      일단 수도꼭지가 공중에 떠있는것부터 하며.. 투명한 파이프를 타고 흐른다고 보기에는 표면이 거칠어 보이네요 ㅋ

  13. Hybrid 2011/12/23 14:12  댓글주소  수정/삭제  댓글쓰기

    공식 2번부터 시작하는 가정들...
    t 이후의 총 부피를 구하고 모양을 변형하는 것보다는
    (flux 개념과 비슷한) 순간인 부피를 구해서 높이에 따라 순간 flux 모양(?)이 변하는 쪽으로 생각하는게 낫지 않나 생각해봤습니다.
    (일단 무한대가 나온다면 틀릴 가능성이 크지요.)

    그래서 잠깐 시간내서 풀어봤는데, 대략 이렇습니다.
    물분자의 개수를 #이라고 합니다.
    # = p * A(h) * dh 입니다.
    (A는 면적, h는 높이, d는 미분 기호가 아닌 delta)

    지면상 간략하게 요약하겠습니다.
    # = p * A(h) * v * dt
    여기서 왼쪽은 상수. 따라서 오른쪽도 상수가 되야 하고, 밀도를 상수라 하면, A(h) * v 역시 상수. A0라 하겠음.
    A(h) = A0/v
    v를 시간텀이 없는 h에 관한 함수로 바꾸려고보니,
    v^2 - v*v0 = ah 이됩니다.
    이거 때문에 고민했는데, 그냥 근의 공식으로 풀면 되더군요. -ㅅ-;
    일단 근의 공식 +- 에서 -는 무한대가 되어 사라집니다.
    그러면 v=2A0/(v0+sqrt(v0^2+4ah))
    라는 공식이 나오구요. t와 v를 없애고 h에 관한 함수로 만들 수 있습니다.

    임의로 상수를 넣어보니 맘에 드는 그래프가 나왔습니다.

    http://www.wolframalpha.com/input/?i=y+%3D+sqrt%28+2%2F%282%2Bsqrt%282*2%2B4*9.8*x%29%29+%29

    1사분면만 90도 회전시켜서 보시면 될 것 같네요.
    이 그래프에서 x축이 높이 h, y축은 넓이 A.
    넓이를 반지름으로 바꾸느라 sqrt를 한번 더 해줬구요, 상수는 그냥 적절히 -ㅅ-;

    이렇게 그래프를 만들면 일단 h=0 에서 무한대가 되는 문제는 사라집니다.

    뭔가 틀린게 있거나 개선의 여지가 있으면 리플은 힘드니 만나서 풀어보죠ㅎㅎ

  14. Hybrid 2011/12/23 15:44  댓글주소  수정/삭제  댓글쓰기

    아, 약간 추가로. 일단 제 공식에서는 처음 반지름(A0을 이용해서 구함)과 초기 속도(v0)를 상수로 두고 시작하는데요.

    방금 초기 속도를 크게 잡고 해보니 물줄기가 거의 가늘어지지 않았습니다.
    따라서 파인만은 아무 잘못 없습니다. (응?)

  15. ㅁㅇㄴㄹ 2011/12/24 20:46  댓글주소  수정/삭제  댓글쓰기

    원래 그 공식 쓰려면 폐쇠된 호스라고 생각하고 풀잖아요. 조그만 수도꼭지는 물의 점성때문에 어느정도 공식이 맞는데, 커다란 수도꼭지는 이야기가 달라지겠죠. ㅎㅎ

  16. Junios 2011/12/25 10:24  댓글주소  수정/삭제  댓글쓰기

    흠. 보자 마자 좌절 Orz

  17. Favicon of http://www.ahappydeal.com Android tablet pc 2012/07/28 11:19  댓글주소  수정/삭제  댓글쓰기

    그것은 충분히 흥미있는 주제에 대한 유용한 정보와 양질의 기사를 읽는 기회를 가지고 훌륭합니다

  18. ㅁㄴㅇㄹ 2012/11/02 09:46  댓글주소  수정/삭제  댓글쓰기

    일반물리학 책에서 본 기억이 나네요 ㅋㅋㅋ 마지막 짤은 유체역학 공식이 적용되기 힘든 상황이라서 그런 거에요. 유체역학 공식을 쓰려면 4가지 조건을 만족해야 되거든요. 수도꼭지 정도는 어느정도 맞는데 콸콸흐르는 폭포수는 ㄷㄷ