나의 큰 O는 log x야

고정 헤더 영역

글 제목

메뉴 레이어

나의 큰 O는 log x야

메뉴 리스트

  • 홈
  • Tag
  • Guestbook
  • Admin
  • 분류 전체보기
    • 적분史
    • 프로그래밍
      • PG어
      • 테크닉
      • 3D
      • Multi precision
      • 포니게임개발
      • 스페샬
      • NLP
    • 소리
    • 언어
      • 어원 이야기
      • 라틴어
    • 수업노트
      • 한국고대경제와사회
      • 영어구조론
      • 정보검색론
      • 인간의삶과역사속의미생물
      • 기타
    • 잉여
      • 미래
      • 수학
      • 종교개혁
    • 그냥 공부
    • 가짜 정보 정정합니다.

검색 레이어

나의 큰 O는 log x야

검색 영역

컨텐츠 검색

프로그래밍/3D

  • FreeType으로 Direct3D에 글자 출력하기

    2013.06.01 by ∫2tdt=t²+c

  • [D3D SetVertexDeclaration] 멀티렌더타겟에서 이상하게 버그가 터지길래

    2013.05.24 by ∫2tdt=t²+c

  • Direct3D에 FreeType로 폰트 출력하기

    2013.04.06 by ∫2tdt=t²+c

  • 개념 3D 이해 6.월드 변환

    2008.12.30 by ∫2tdt=t²+c

  • 개념 3D 이해 5.프로젝션 변환

    2008.11.17 by ∫2tdt=t²+c

  • 개념 3D 이해 4.뷰 변환

    2008.11.13 by ∫2tdt=t²+c

  • 개념 3D 이해 3.변환

    2008.11.13 by ∫2tdt=t²+c

  • 개념 3D 이해 2.위치

    2008.11.13 by ∫2tdt=t²+c

FreeType으로 Direct3D에 글자 출력하기

FreeType을 이용해서 Direct3D에 폰트를 출력하는 방법에 대해서 자세한 문의가 자주 들어오더라구요. (2013/04/06 - [프로그래밍] - Direct3D에 FreeType로 폰트 출력하기) 그래서 혹시나마 도움이 되고자 그나마 얕은 코드 지식 드러내 가며 글을 씁니다. 요 코드는 이전에 개발하던 리듬게임과 현재 개발하는 포니게임에 사용하고 있는 자체제작 엔진인 Interstella의 일부분을 발췌한 것입니다. c 11코드와 ISI 클래스의 메소드들이 사용되어서 난해할수 있지만, 최대한 주석을 달고 넘어갈테니 알아서 보시길ㅠㅠ (저걸 일일히 D3D용으로 바꿔서 올릴만큼 잉여력이 있지는 않아서) 코드를 보기에 앞서 어떤 방식으로 구현을 했는지 간단하게 설명을 하자면, 1. 1024x1024 ..

프로그래밍/3D 2013. 6. 1. 04:13

[D3D SetVertexDeclaration] 멀티렌더타겟에서 이상하게 버그가 터지길래

Deferred Rendering을 적용하기 위해서 멀티 렌더 타겟을 설정하고 셰이더를 열심히 돌렸는데, 아무리해도 이상하게 깨진 장면만 뜨더라구요. 어디를 잘못했는지 도저히 알 수 없어서 헤매하다, 버텍스가 이상하게 깨지는 걸 보고, 셰이더에서 전역변수를 잘못 설정해서 잘못된 연산결과가 나오는거라고 생각하게되었죠.그렇게해서 셰이더도 수십번 손보고, 셰이더 관리하는 클래스도 수십번 손 봤는데도 전혀 버그가 잡힐 기미를 보이지 않았죠. 이상하게 첫 프레임은 정상적으로 렌더링되는데 두번째 프레임부터 다 깨져서 나오는!... PIX툴로 D3D디바이스 상태를 프레임별로 일일히 체크하던 도중에 겨우 원인을 발견했습니다. 원인은 어이없게도 VertexDeclaration 이 제대로 설정되어있지 않던것. 실은 한 번..

프로그래밍/3D 2013. 5. 24. 04:55

Direct3D에 FreeType로 폰트 출력하기

별로 대단한 건 아니고Direct3D로 작성한 게임에 FreeType 라이브러리를 이용해 폰트를 출력하려고 이틀 자료를 모았어여. http://www.soenlab.com/lecture/library/freetype/freetype.htm소앤랩(구 WinAPI 사이트)에 라이브러리 사용법은 충분히 나와있는듯합니다. FreeType은 폰트타입 파일을 열어서, 각종 정보를 읽어와주는 저수준 라이브러리인데, Direct3D에서 제공하는 ID3DXFont 따위의 인터페이스가 마음에 들지 않을때, 폰트를 깔쌈하게 출력하기 위해서 많이 쓰인다고 합니다. FreeType은 개략적으로 다음과 같이 동작합니다.1. 라이브러리 초기화2. 폰트페이스를 읽어온다.3. 크기, 트랜스폼 등을 설정한다.4. Glyph(글리프)를 ..

프로그래밍/3D 2013. 4. 6. 22:47

개념 3D 이해 6.월드 변환

지금까지 3차원 물체를 원하는 위치에서 바라봤을때 2차원 모습으로 투사하는 방법에 대해 설명했다. 뷰 변환, 프로젝션 변환을 통해서 기본 모델에서 프로젝션 공간까지 변환했다. 그러나 제일 앞에 생략하고 넘어간게 있다. 기존의 모델을 확대하거나 축소하거나 회전하는 등의 변형을 해서 출력하고 싶다면? 각각의 모델별로 변환행렬이 필요하다. 이 변환을 월드 변환이라고 한다. 즉 모델은 다음과 같은 변환을 거친다. 기본 모델 ↓ 월드 변환(World Transformation): 모델을 변형한다. ↓ 월드 공간 ↓ 뷰 변환(View Transformation): 모델을 카메라의 관점에서 본 형태로 변형한다. ↓ 뷰 공간 ↓ 프로젝션 변환(Projection Transformation): 평면에 투사한다. ↓ 프로..

프로그래밍/3D 2008. 12. 30. 00:27

개념 3D 이해 5.프로젝션 변환

전편에 뷰 변환을 통해서 모델 공간에 있는 물체를 뷰 공간으로 변환할수 있었다. 카메라의 입장에서 물체를 볼 수 있게 된것이다. 그러나 모니터에 물체를 띄우려면 아직도 멀고 험한 길이 기다리고 있다. 모니터는 2차원 평면이다. 하지만 3차원 물체는 말 그대로 3차원인데 어떻게 2차원 평면에 나타내나? 정답은 축을 하나 버리는 것이다. 3차원에서 축 하나를 버리면 2차원이 되므로 평면에 그릴수 있다. ┌ │ │ │ │ │ └ 1 0 0 0 ┐ │ │ │ │ │ ┘ 0 1 0 0 0 0 0 0 0 0 0 1 뷰 변환이 끝난 점들에 이 행렬을 곱해보자. [x,y,z,1]에 이 행렬을 곱하면 [x,y,0,1]이 된다. 이제 이 x,y값을 가지고 모니터에 그려주면 땡이다. 라고 말하면 회이크다. 이렇게 하면 원근..

프로그래밍/3D 2008. 11. 17. 23:55

개념 3D 이해 4.뷰 변환

원래는 전 글에서 변환 설명을 다 끝내려고 했는데 길어져서 나누어버렸다. 우리의 현재 목표는 3차원상의 물체를 카메라에서 보이는 대로 화면에 표현하는 것이다. 이것을 저번 편에서 배웠던 행렬 변환을 이용해서 만들어보자. 가장 먼저 할일! 입장바꿔 생각해보기(易地思之). 먼저 Direct3D상에서는 x축이 모니터에서 오른쪽으로 뻗어나가는 방향이고, y축이 모니터에서 위쪽으로 뻗어나가는 방향이고 z축이 모니터 안쪽으로 들어가는 방향이다. (Direct3D를 예로 들어 설명한 이유는 가장 많이쓰이기 때문이다. OpenGL이나 또 다른 3D API에서는 축을 다르게 잡는다.) 그리고 모니터의 정 중앙이 원점(0,0,0)이 된다. 그럼 카메라가 볼때 원점은 어디가 될까? 바로 자기 자신의 위치가 원점이 될 것이다..

프로그래밍/3D 2008. 11. 13. 14:21

개념 3D 이해 3.변환

3차원 그래픽을 위해서인지는 몰라도 선형대수학이라는 학문이 발전되어 있다. 고등학교 때 행렬을 배우면서 이걸 어디에다가 쓰지 어디에다가 쓰지 했지면, 행렬은 3차원 그래픽에 쓰이고 있었다! 위키백과: 선형대수학 선형대수학은 벡터와 행렬에 대해서 연구하는 학문인데, 간단하게 말해서 우리는 3차원 상의 변환을 표현하기 위해서 행렬 변환을 사용할 것이다. 여기서 너무 수학적인것에 대해 설명한다면 머리가 터질지 모르므로 간략히 설명하면서 넘어가겠다. 일단 저번에 표현해봤던 점을 다음과 같이 벡터로 표현해보자. (x y z 1) 마지막에 1이 왜 들어갔냐고 따지지말라. 1의 유용함이 곧 드러날것이다. 우리는 이 4차원 벡터에다가 4차 정사각행렬을 곱할것이다. 이 식 그림들은 DirectX Documentation..

프로그래밍/3D 2008. 11. 13. 13:20

개념 3D 이해 2.위치

3차원 상에서 물체를 표현하는 방법을 전에 설명했다. 그럼 이것을 실제로 나타내보자. (여기 나오는 코드들은 그냥 이해를 쉽게 하기 위한 코드이며 실제로 써먹을 일은 없다!) 먼저 점을 나타낼수 있는 구조체를 만들어본다. typedef struct _Dot { float x,y,z; }Dot; 3차원 상의 점이므로 점의 위치를 표현하는데에는 3개의 좌표가 필요하다. 그리고 위치를 표현하기에는 정수형 보다는 실수형 자료가 낫다. 정수형을 쓰면 나타내기가 불가능한 좌표가 너무 많기 때문. 그럼 이제 삼각형을 나타내는 구조체 typedef struct _Triangle { Dot dot[3]; }Triangle; 이제 삼각형의 배열로 3차원 물체를 나타낼수 있겠다. 그런데 3차원 물체를 화면에 어떻게 그려야할..

프로그래밍/3D 2008. 11. 13. 12:37

추가 정보

인기글

최신글

글쓴이 ∫2tdt=t²+c

블로그 이미지

제가 안 것의 대부분은 인터넷으로부터 왔으니, 다시 인터넷에게 돌려주어야 합니다. bab2min@gmail.com

댓글

태그

pg어 악보 정보조직론 텍스트 마이닝 php python c++ 토픽 모델링 NLP 한국고대경제와사회 포니게임 자연언어처리 리듬게임 라틴어 BigFloat kiwi 우리역사바로알기대회 문헌정보통계 Direct3D 영어구조론

방문자

오늘
어제
전체

페이징

이전
1 2
다음
나의 큰 O는 log x야
메일 bab2min@gmail.com
Skin Images are from Stinkehund.

티스토리툴바