'Portfolio'에 해당되는 글 19건
- 2017.11.15 [Open] TAPSONIC World Champion (Global)
- 2010.03.08 BST(Binary Serch Tree)
- 2010.03.08 Typing of API
- 2010.03.08 그림판 / ScreenPen
- 2010.03.08 3D Software Rendering
- 2010.03.08 2D Software Rendering
- 2010.03.08 Ray Casting
- 2010.03.08 Software Physics
- 2010.03.07 ASE/MD2 Viewer(DirectX)
- 2010.03.07 ASE/MD2 Viewer(OpenGL) 2
BST(Binary Serch Tree)
프로그램 소개 |
l 입력받은 개수만큼의 임의의 데이터로 BST를 생성하고, 자료를 정렬/검색하는 프로그램 입니다.
개발 내역 |
l 개발 환경 : Windows XP / VS2003
l 개발 언어 : C/C++, Win32 API
구현 내용 |
l 입력된 데이터 중 중간값을 찾아 균형 트리로 BST 생성(BST 최적화를 위해)
l BST 정렬 기능 구현
l Root부터 검색하는 값까지의 중간 노드 값도 출력
'Portfolio > Personal Project' 카테고리의 다른 글
Typing of API (0) | 2010.03.08 |
---|---|
그림판 / ScreenPen (0) | 2010.03.08 |
3D Software Rendering (0) | 2010.03.08 |
2D Software Rendering (0) | 2010.03.08 |
Ray Casting (0) | 2010.03.08 |
Typing of API
프로그램 소개 |
l Win32 API의 함수들에 익숙해지는 좋은 방법으로 API 함수명을 타자 게임과 접목시켜 봤습니다.
개발 내역 |
l 개발 환경 : Windows XP / VS2003
l 개발 언어 : C/C++, Win32 API
구현 내용 |
l 핫키/엑셀러레이터를 등록하여 단축키 적용
l Caret 관련 함수 사용(항상 치고 있는 글자 뒤에 정확히 캐럿이 위치)
l ‘현재 화면글자 모두 삭제’ 등 아이템 추가
l 사운드 추가
'Portfolio > Personal Project' 카테고리의 다른 글
BST(Binary Serch Tree) (0) | 2010.03.08 |
---|---|
그림판 / ScreenPen (0) | 2010.03.08 |
3D Software Rendering (0) | 2010.03.08 |
2D Software Rendering (0) | 2010.03.08 |
Ray Casting (0) | 2010.03.08 |
그림판 / ScreenPen
프로그램 소개 |
l Win32APi를 이용하여 간단한 그림판 제작
l 바탕화면에 그림을 그릴 수 있는 ScreenPen 제작
개발 내역 |
l 개발 환경 : Windows XP / VS2003
l 개발 언어 : C/C++, Win32 API
구현 내용 |
l 그림판 : Win32 API GDIObject를 이용해 구현
¡ 사각형/직선/원/연필/지우개/스프레이 기능
¡ 외곽선색/배경색 Custom 수정 기능
¡ 외곽선 두께 변경 기능
¡ 도구상자가 메인창에 붙어다니게 구현
l ScreenPen : 바탕화면에 낙서 등 그림을 그릴 수 있게 구현
¡ DC핸들을 얻을 때 바탕화면의 DC핸들을 얻어오면 그릴 수 있음.
¡ 바탕화면의 DC핸들 얻기 à hdc = GetWindowDC( GetDesktopWindow() );
¡ 그리기/지우기/칼라변경/두께조정 기능 구현
'Portfolio > Personal Project' 카테고리의 다른 글
BST(Binary Serch Tree) (0) | 2010.03.08 |
---|---|
Typing of API (0) | 2010.03.08 |
3D Software Rendering (0) | 2010.03.08 |
2D Software Rendering (0) | 2010.03.08 |
Ray Casting (0) | 2010.03.08 |
3D Software Rendering
프로그램 소개 |
l 3D PipeLine을 소프트웨어적으로 구현하여 DIB Section을 이용해 도트그래픽으로 출력한 프로그램 입니다.
개발 내역 |
l 개발 환경 : Windows XP / VS2003
l 개발 언어 : C/C++, Win32 API
구현 내용 |
l 기본모델 생성 : 육면체, 오목다각형, 구(위/경도, 4면체, 20면체)
l 출력 모드 : Wire Frame/Gouraud Shading/Texture Mapping
l 조명 제어 : Ambient/Diffuse/Specular 조정
l 재질 제어 : Ambient/Diffuse/Specular 조정
l 카메라 제어 : EulerAngle/LookAt
l 컬링 모드 : Backface Culling/Flustum Culling/Z-Buffering
l 매핑 모드 : Linear Mapping/Persperctive Corrected Mapping
l 투영 모드 : 단순원근 투영/원근 투영
l WorldTM 제어 : Scale/Rotate/Translate 조정
'Portfolio > Personal Project' 카테고리의 다른 글
Typing of API (0) | 2010.03.08 |
---|---|
그림판 / ScreenPen (0) | 2010.03.08 |
2D Software Rendering (0) | 2010.03.08 |
Ray Casting (0) | 2010.03.08 |
Software Physics (0) | 2010.03.08 |
2D Software Rendering
프로그램 소개 |
l 점/선/원/사각형/삼각형/클리핑/곡선/텍스쳐매핑을 DIBSection을 이용해 도트그래픽으로 구현한 프로그램 입니다.
개발 내역 |
l 개발 환경 : Windows XP / VS2003
l 개발 언어 : C/C++, Win32 API
구현 내용 |
l Pixel(점)
¡ BMP텍스쳐를 DIBSection으로 메모리에 연결시켜 점을 출력할 메모리 비트에 원하는 색상값을 BGR순으로 입력하여 점을 출력
l Line(선)
¡ 직선 방정식
¡ DDA(Dightal Differential Analyzer) 알고리즘
¡ MidPoint 알고리즘
l 원(Circle)¡ Sin(y), Cos(x) 함수를 이용한 방법
¡ 원의 방정식을 이용한 방법
¡ MidPoint 알고리즘(조금 더 깔끔함)
¡ MidPoint With 2nd-Order Difference(float 연산을 줄여 속도를 높이기 위해 사용)
l 사각형(Rectangle)
¡ 라인으로 사각형 그리기
¡ 사각형 영역을 단색으로 채우기
¡ 사각형 영역을 그라데이션으로 채우기(선형 보간)
l 삼각형(Triangle)
¡ 라인으로 삼각형 그리기
¡ 삼각형 영역을 단색으로 채우기
¡ 삼각형 영역을 그라데이션으로 채우기(선형 보간)
¡ 삼각형 영역을 텍스쳐로 매핑하기
l 클리핑(Clipping)
¡ Cohen-Surtherland 알고리즘(클리핑 영역을 # 모양으로 나누고 영역별 비트값을 두어 처리)
¡ Parameter 알고리즘(교차점에 대한 비율로 경계를 잘라냄)
l 곡선(Curve)
¡ Hermite 알고리즘(끝점 2개와 접선벡터 2개를 이용)
¡ Bezier 알고리즘(끝점 2개와 접선벡터를 조절하는 2개의 제어점을 이용)
l 변환(Transformation) : Scale / Translate / Rotate
¡ Point = Vertex * Scale * Rotate * Translate
¡ V : Local상 점의 위치(x, y)
Sx | 0 | 0 |
0 | Sy | 0 |
0 | 0 | 1 |
¡ Rotate
Cosθ | -Sinθ | 0 |
Sinθ | Cosθ | 0 |
0 | 0 | 1 |
¡ Translate
1 | 0 | 0 |
0 | 1 | 0 |
dx | dy | 1 |
'Portfolio > Personal Project' 카테고리의 다른 글
그림판 / ScreenPen (0) | 2010.03.08 |
---|---|
3D Software Rendering (0) | 2010.03.08 |
Ray Casting (0) | 2010.03.08 |
Software Physics (0) | 2010.03.08 |
ASE/MD2 Viewer(DirectX) (0) | 2010.03.07 |
Ray Casting
프로그램 소개 |
l 픽셀마다 광선을 쏘아 평면과 구를 출력 할 수 있도록 DIBSection을 이용해 도트 그래픽으로 출력한 프로그램 입니다.
개발 내역 |
l 개발 환경 : Windows XP / VS2003
l 개발 언어 : C/C++, Win32 API
구현 내용 |
l 광선(반직선) 생성 : 시작점(화면 중심)과 방향(픽셀)으로 생성
l 광선과 평면의 충돌 : 평면방정식(P • N = D)을 사용
l 광선과 구의 충돌 : 구방정식(C^2 + P^2 = R^2)을 사용
l 기존 폴리곤방식의 파이프라인(3D->2D)과 반대로 2D에서 3D로 좌표계를 이동
l PixelShader를 사용한 것처럼 조명이 자연스럽게 반사 되는 장점이 있음
'Portfolio > Personal Project' 카테고리의 다른 글
3D Software Rendering (0) | 2010.03.08 |
---|---|
2D Software Rendering (0) | 2010.03.08 |
Software Physics (0) | 2010.03.08 |
ASE/MD2 Viewer(DirectX) (0) | 2010.03.07 |
ASE/MD2 Viewer(OpenGL) (2) | 2010.03.07 |
Software Physics
프로그램 소개 |
l 뉴턴의 운동방정식(F=ma)을 이용한 질점운동, 스프링, 직물(Cloth) 시뮬레이터 입니다.
개발 내역 |
l 개발 환경 : Windows XP / VS2003
l 개발 언어 : C/C++, Win32 API
l 참고 자료 : http://www.myphysicslab.com
구현 내용 |
l 질점운동(Particle) : 오일러 해법과 대수적 해법으로 질점운동 구현
l 스프링(Spring) : Runge-Kutta 방식으로 스프링 상수를 구하고, 후크의 법칙(F = -kx)로 힘을 구한 후 오일러 해법으로 질점운동 구현
'Portfolio > Personal Project' 카테고리의 다른 글
2D Software Rendering (0) | 2010.03.08 |
---|---|
Ray Casting (0) | 2010.03.08 |
ASE/MD2 Viewer(DirectX) (0) | 2010.03.07 |
ASE/MD2 Viewer(OpenGL) (2) | 2010.03.07 |
평면 그림자(Planar Shadow) Viewer(DirectX) (0) | 2010.03.07 |
ASE/MD2 Viewer(DirectX)
프로그램 소개 |
l ASE / MD2 파일을 파싱해서 DirectX로 출력한 프로그램 입니다.
개발 내역 |
l 개발 환경 : Windows XP / VS2003
l 개발 언어 : C/C++, Win32 API, DirectX
구현 내용 |
l OpenGL로 구현한 뷰어를 DirectX로 컨버팅
l ASE : 애니메이션을 제외한 모델의 정보(재질/정점/인덱스/텍스쳐UV)를 파일에서 읽어서 출력
l MD2 : 프레임별 정점과 인덱스를 파일에서 읽어와 프레임 사이를 선형보간해서 출력
(Vertex Animation의 대표적인 파일 포멧)
'Portfolio > Personal Project' 카테고리의 다른 글
Ray Casting (0) | 2010.03.08 |
---|---|
Software Physics (0) | 2010.03.08 |
ASE/MD2 Viewer(OpenGL) (2) | 2010.03.07 |
평면 그림자(Planar Shadow) Viewer(DirectX) (0) | 2010.03.07 |
HLSL(Hight Level Shader Language) (0) | 2010.03.07 |
ASE/MD2 Viewer(OpenGL)
프로그램 소개 |
l ASE / MD2 파일을 파싱해서 OpenGL로 출력한 프로그램 입니다.
개발 내역 |
l 개발 환경 : Windows XP / VS2003
l 개발 언어 : C/C++, Win32 API, OpenGL
구현 내용 |
l ASE : 애니메이션을 제외한 모델의 정보(재질/정점/인덱스/텍스쳐UV)를 파일에서 읽어서 출력
l MD2 : - 프레임별 정점과 인덱스를 파일에서 읽어와 프레임 사이를 선형보간해서 출력
(Vertex Animation의 대표적인 파일 포멧)
- Silhouette 구현
- Edge 구현
'Portfolio > Personal Project' 카테고리의 다른 글
Software Physics (0) | 2010.03.08 |
---|---|
ASE/MD2 Viewer(DirectX) (0) | 2010.03.07 |
평면 그림자(Planar Shadow) Viewer(DirectX) (0) | 2010.03.07 |
HLSL(Hight Level Shader Language) (0) | 2010.03.07 |
ASM Shader(Multi Texture/UV Animation/Phong/Texture Mapping) (0) | 2010.03.07 |