MoniWiki포트폴리오
Login:
Password:
대문|찾기|바뀐글|목록|메모장|책갈피|연꽃|링크
Edit Diff Reload Search Print Info Mail Help RSS


  관
▷C++도 모르고 시작한 저한테 진짜 많이 가르쳐준, 반_친구들에게 고마움을 전합니다.
( 시작은 늦었어도 끝까지 가볼랍니다.)
▷집주인; 전태진 (1970.4.16)
E-Mail; biscon@empal.com
메신져; jeontaejin@hotmail.com

1 팀프로젝트
1.1 게임 '모리노리'(MoriNori)
1.2 양 인공지능(FSM) 프로토 타입
1.3 양 모델링
2 Viewer
2.1 AquaMarineTerrain
2.2 AquaMarineMD2Viewer
3 물리효과
3.1 Hook의 법칙을 이용한 스프링의 탄성효과
3.2 Verlet Intergrator 응용한 스프링
3.3 천 효과
3.4 TokamakTest
4 소프트웨어 3D
4.1 큐브 렌더링
4.2 베지어 곡선 그리기
4.3 삼각형 채우기
5 C++


1 팀프로젝트 #

1.1 게임 '모리노리'(MoriNori) #

* 게임 '모리노리'는동명정보기술원에서 교육과정(프로그램5기)을 마치면 만들었던 프로젝트로
( 2004년 1월 2일부터 4월 16일까지 졸업하는 당일까지 작업 ㅋㅋㅋ )
▷제 5회 성균관대학교 게임개발경진대회에서 장려상 수상
  • 팀장으로써 기획, 작업진행 관리 및 각 파트별 역할 조정을
  • 팀원으로써 인공지능과 클래스 수정을
    (그래픽부분) 양 모델링과 3ds Max를 이용한 키프레임 애니메이션을 만들었다.
  • * 이이숍 우화의 양치기를 모티브로, 내가 주인공이 되어서 초원에 흩어져 있는 양을 일정시간(3분)동안 중앙에 위치한 울타리 안에, 최대한 많이 모으는 게임으로, 초등학생(3~6학년)을 주대상으로 한다.
    • 단순히 NPC를 잡는(MMORPG 스타일) 것에서 벗어나, 미션 수행을 통한 성취감과 그 과정에서 오는 인터렉티브한 재미를 추구하며
    • Quadtree 기반으로 구현된 지형에서, 자연을 보다 사실적으로 표현하기 위해 물 반사와 풀의 움직임 등은 shader(버전1.1)을 사용해서 표현했다.
    • 스크린샷
      ◈ 팀_홈페이지;   http://morinori.net/
      모리노리_개정1.03 - 기존의 소스를 바탕으로, horn 아이템을 추가 및 FSM 등의 수정

    1.2 양 인공지능(FSM) 프로토 타입 #

    * FSM을 이용한 인공지능으로 테스트로
    처음에 2:2나 3:3의 간단한 네트워크가 구현 될 거라 예상했는데,
    경험부족과 시간상의 제한으로 싱글모드만 완성 됨으로써, 인공지능의 비중이 높아졌네요.
    마무리 짓는 입장에서 if 덩어리 진짜 만만잖네요 ㅠ.ㅠ
    -. 프로트 타입이라 간단한 박스로 구현
    -. 모드변경은 '1'키로 하고, 확인 모드에서는
    마우스로 object 방향을 바꿀 수 없다.

    *. 여러가지 도움을 준 현진에게 감사...

    압축파일;   jtj_AquaFSM_041006.zip


    1.3 양 모델링 #

    * 먼저 배운게 그래픽이지만
    프로그램 배우면서 그래픽 작업은 안한다고 했는데...여건상 하고야 말았네요.
    (물론, 키프레임 애니메이션까지 잡았고요)
    -.LOD를 적용하기 위해
        Middle-type(vertices 312/ faces 314)
        Low-type(vertices 165/ faces 158)으로 제작



    2 Viewer #


    MFC관련 dll파일;   mfcdll.zip (mfc로 짠 프로그램이 실행이 안될 때 받아서 같은 폴더안에 푼다.)

    2.1 AquaMarineTerrain #

    * 높이맵을 이용해서 지형을 생성하며
    0) DirectX 9, MFC를 사용
    1) 주화면( QuadTree 이용한 절두체범위에서만 렌더링)
    2) 옆에 옵션창 ; 현재로는 배경색, 문자색(크기조정)
    3) 지형맵 load 다이알로그 박스(모달형식)로 구성
    -.맵사이즈 = 2의 n승 + 1( 최소 33 )
    높이맵텍스쳐 크기 = 2의 n승 + 1 크기의 텍스쳐 사용
    텍스쳐/ 디테일맵 = 2의 n승 크기의 텍스쳐 사용
    높이스케일 = 0.1 부터
    맵스케일 = 1 부터

    -.맵사이즈, 텍스쳐 등의 정보는
    ../data/TERRAINDATA.ini 파일에 저장

    압축파일;   jtj_AquaMarineTerrain0605.zip

    2.2 AquaMarineMD2Viewer #

    * 높이맵을 이용해서 지형을 생성하며
    0) DirectX 9, MFC를 사용하고, GeForce3 Ti500에서 작업
    1) 주화면
    2) 옆에 기본 옵션창 + MD2 세부옵션창
    3) 데이타 load를 위한 다이알로그 박스(모달형식)로 구성
    -.기본맵에 멀티텍스쳐로 카툰효과 적용
    (라이트를 off 했을 때 구분이 명확)
    -.ProjectionShadow를 이용한 그림자 처리
    (그림자도 라이트의 영향을 받을 수 있네요 ^^)
    -.MD2 파일, 텍스쳐, 카툰맵의 정보는
    ../data/MD2DATA.ini 파일에 저장

    압축파일;   jtj_AquaMarineMD2Viewer0712.zip



    3 물리효과 #

    3.1 Hook의 법칙을 이용한 스프링의 탄성효과 #

    * 일정한 높이에서 탄성계수(스프링상수)와 감쇠상수가 일정하다는 조건에서
    삼각뿔을 놓았을 때 각정점 사이의 탄성효과를 시험한 것입니다.
    추가적인 내용은... {_r} 메모장/5.게임에서의 물리학 참고
    -.실행 파일에서 F1을 누르면 높이를 렌덤하게 리셋한다.

    실행파일;   jtj_Hook_spring.exe

    3.2 Verlet Intergrator 응용한 스프링 #

    * 개별적인 개체의 움직임을 강체 운동으로 표현할 수 있고,
    에너지가 보존 됨으로써 오일러 해법에 비해 안정적이다.
    -. 40 개체
    -. 가변조건; 무게m = 5~10, 초기힘F = (10.0, -30~ -35.0, 0.0)
         동일조건; 스프링상수 ks=30.0, 감쇠상수 kd=5.0
    -. 실행 시, 마우스 왼쪽 버튼을 클릭하면 리셋된다.

    압축파일;   D3D_VerletSpring0830.zip

    3.3 천 효과 #

    * 천을 구성하는 각 정점들은 다른 정점들과 연결되어 있고,
    정점의 간격이 변화 됨으로써, 연결에 따른 서로간에 힘이 발생하는데,(스프링효과)
    여기에 외부요인(중력, 바람 등)에 따른 정점에 가해진 힘을 합성한다.
    -. 우선 천을 구성해서 정점의 상태를 확인
    -. 중력과 바람을 적용해서 변화가 적정하게 보이는지 확인
    -. 정점의 Picking과 Moving...(DirectX9 3D Game 책 활용)
    -. 바람의 x성분(좌우)은 rand(), y성분(상하)발생값 없음
         z성분(앞뒤)은 카오스식(y=4x(1-x)) 활용

    압축파일;   jtj_AquaMarineSilk1124.zip

    3.4 TokamakTest #

    * Tokamak (공개)물리엔진, 남꺼도 보면서 가자...
    {_o} 정리 Tokamak... {_-} 딱지_Tokamak
    * 참고 사이트; http://www.adamdawes.com/programming/tokamak/index.html
    실행파일;   TokamakTest_jtj02.exe 실행파일;   TokamakTest_jtj04.exe 실행파일;   TokamakTest_jtj052.exe


    4 소프트웨어 3D #

    4.1 큐브 렌더링 #

    * 삼각형 채우기의 확장판으로
    API를 전혀 사용하지 않고 렌더링 파이프라인 따라가면서 Software로 3D 렌더링을 구현
    추가적인 내용은... {_r} 메모장/4.소프트웨어 3D 참고
    -.김성완_샘 홈에 가서( http://g-matrix.pe.kr/ )
    Download 게시판에 가시면 여기에 대한 더 많은 정보와
    더욱더 세련된 방식이 있습니다.

    실행파일;   jtj_Software_Rendering.exe

    4.2 베지어 곡선 그리기 #

    * 수학공식이 쉽다고 설명은 하는데, 코드로 구현하는 건 좀 다르네요^^;;
    정리 깔끔한 참고 사이트 http://3map.snu.ac.kr/course/2001/graphics/project/99419-070/3/3.html
    -.선 그리기는
    Bresemham's Line_Drawint Algorithm 을 양쪽에서 찍기를
    -.point 지점의 원 그리기는
    2차 편차 이용한 원 그리기 사용

    실행파일;   jtj_Bezier.exe

    4.3 삼각형 채우기 #

    * 소트웨어 렌더링 배울 때,
    일일이 계산해서 선 그리고, 삼각형 채우기한 겁니다.
    그림에 모이는 빨간선 외각선이 그림을 그릴 영역으로 점하나 찍을 때마다 clipping 검사해서 찍는다.
    -.선 그리기는
    Bresemham's Line_Drawint Algorithm 을 양쪽에서 찍기를
    -.영역체크는
    Cohen_Sutherland Line Clipping 을 사용

    실행파일;   jtj_Software_Triangle.exe



    5 C++ #

    * C++ 상속까지 배우고 나서, 제일 처음 만든 게임으로
    아직 그래픽을 배우지 않았기 때문에 Win32 Console Application 모드로 만들었습니다.
    -.기본 멤버 상속 받아서, 간단한 게임규칙을 가지고
    결과에 대한 보상관계까지 처리
    -.그림하나 없어도,   C++ 처음 배우고 밤새워서 만들어서
    그런지...귀엽게 보이네요... ㅋㅋㅋ

    게임규칙;   jtj_Monster-game.txt


    April, 2025
     12345
    6789101112
    13141516171819
    20212223242526
    27282930 

    정보는 공짜이길 원한다.

    책갈피_3D캐릭터애니메이션프로그래밍
    책갈피_Focus
    HelpTemplate
    딱지_G-Blender
    last modified 2005-04-26 23:14:24
    고치기|찾기|쪽 지우기|비슷한 쪽 Valid XHTML 1.0! Valid CSS! powerd by MoniWiki
    0.2102 sec