블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
2D Software Rendering

 

2D Software Rendering.zip
다운로드

프로그램 소개

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)

  ¡  Scale

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
Posted by blueasa
, |