본문 바로가기

예전/3D

(50)
뷰포트 http://ryumin13.tistory.com/entry/DirectX-DirectX-%EB%B7%B0%ED%8F%AC%ED%8A%B8-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
[3D UI] 캐럿 (Caret) 캐럿이란 글씨를 칠 때 깜빡깜빡 거리는 세로 바를 말한다. CreateCaret(HWND hWnd,HBITMAP hbmp,int nWidth,int nHeight);// 캐럿 생성 SetCaretPos(__in int X, __in int Y);// 캐럿 좌표 설정 ShowCaret(__in_opt HWND hWnd);// 캐럿 보여주기 HideCaret(__in_opt HWND hWnd);// 캐럿 숨기기 DestroyCaret();// 캐럿 삭제 캐럿을 사용하기 위해서는 WM_SETFOCUS, WM_KILLFOCUS를 같이 사용한다.WM_SETFOCUS는 현재 프로그램을 선택했을 경우 실행되고, WM_KILLFOCUS는 다른 프로그램을 선택했을 경우 실행된다. CreateCaret 의 hbmp는 비트..
[3D UI] Dx로 EditBox 만들기 IME 란 입력기 또는 입력 방식 편집기 (Input method Editor, IME)로 한글, 한자 처럼 컴퓨터 자판에 있는 글쇠보다 더 많은 수의 문자(즉, 조합해서 사용해야 하는 문자)를 계산하거나 입력해주는 시스템 소프트웨어이다. MS의 IME는 IME함수 및 메시지 인터페이스를 통해 입력과정을 수행하는 DLL이다. IME를 이용한 한글 입력기풀 모드상에서 한글 입력을 어떻게 받는지? IME를 어떻게 제어하는지? 기본적으로 WM_CHAR에서 받고, 조합 중인 글자만 IME함수를 사용해서 얻어오면 된다. 그리고 한자키를 누르면 특수 문자 및 한자를 얻어와 화면에 9개를 찍어주면 된다. 윈도우 메시지 조작이 아니기 때문에 메시지 루틴 내의 가공이 필요하다. 메시지 루틴 내에서 메시지 루틴에 들어가기..
[3D] SkyBox 스카이박스는 일반 큐브 렌더와 특별히 다른 점은 없습니다.다만, 큐브 내부에서 텍스쳐가 보여야하므로 렌더링 순서만 바꿔주면 됩니다. Dx의 디폴트 Culling Mode는 D3DCULL_CCW입니다. // 렌더 voidMS_SkyBox::Render(void) { // if(m_pVer != NULL && m_pTex != NULL) { g_pd3dDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_CW); // 여기에 // 버텍스 버퍼 렌더 m_pTex->Render(); m_pVer->Render(D3DPT_TRIANGLELIST); g_pd3dDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_CCW); } } 스카이 박스를 렌더할 때만 ..
[3D UI] ShellExecute http://blog.naver.com/younggaa/60014160187 http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=779 http://msdn.microsoft.com/en-us/library/windows/desktop/bb776886(v=vs.85).aspx
[3D] 문자 집합 문자에는 여러가지가 있다. - ANSI American National Standards Institute 에서 지정한 규격으로 기존의 아스키 코드 이다.영어권이 아닌 곳에서 1byte로 문자를 표현하는 것이 불가능할 수 있다.아스키 코드는 영어 문자가 0 ~ 127 까지 있고, 이 문자를 제외한 128 ~ 255 를 매핑하며 문제가 발생했다.나라별로 이 비트가 다르므로 이 문제를 통합해 표준화 한 것이 ANSI이다. 가장 널리 사용되는 문자 표준으로 각 문자를 1byte로 표현한다. - 멀티 바이트 아스키 코드는 문자 하나가 1byte를 차지하지만 아스키 코드 만으론 한글이나 한자 등의 문자를 표시할 수 없다. 그래서 아스키 문자 코드에다가 다른 문자들을 2byte로 포함한 문자집합이 멀티바이트 문자집..
[3D] Font 관련 D3D 에선 텍스트를 만들고, 출력하는 세 가지 방법이 있다. 1. ID3DXFont 이 인터페이스는 텍스트를 그리는데 이용되며, 내부적으로 GDI를 이용하기 때문에약간의 성능 저하가 있지만, 복잡한 글꼴이나 포멧팅을 이용할 수 있다. D3DXCreateFont() 함수를 사용해 ID3DXFont로의 포인터를 얻는다. HRESULT D3DXCreateFont( _In_ LPDIRECT3DDEVICE9 pDevice, _In_ INT Height, _In_ UINT Width, _In_ UINT Weight,// FW_THIN,NORMAL,BOLD,HEAVY _In_ UINT MipLevels,// 만들어야하는 밉맵의 수. 0은 full chain.// 다른 크기의 폰트를 좀 더 효과적으로 보여주기 위해 ..
[3D] Texture 함수 D3DXCreateTextureFromFileEx 그림 파일에서 텍스쳐를 읽어오는 함수이다. HRESULT D3DXCreateTextureFromFileEx( LPDIRECT3DDEVICE9 pDevice, LPCTSTR pSrcFile, // 파일명 UINT Width, UINT Height, UINT MipLevels, DWORD Usage, // 렌더링 타겟으로 사용 (D3DUSAGE_RENDERTARGET, D3DUSAGE_DYNAMIC , D3DUSAGE_RENDERTARGET) D3DFORMAT Format, D3DPOOL Pool, // 텍스처의 배치처가 되는 메모리 클래스를 기술 DWORD Filter, DWORD MipFilter, // 필터 D3DCOLOR ColorKey, // 투명이..