프로그래밍/공부관련 썸네일형 리스트형 오일러 각 ** Euler Angles ** copyrightⓒ 김성완(찐빵귀신) [1999년 6월 23일] Euler Angles는 3차원 공간에서 물체가 취할 수 있는 방향을 나타내는데 사용되는 세개의 각도 값의 조합을 말합니다. 18세기 수학자 오일러가 착안한 것으로 3차원 공간에서는 3차원 직교 좌표계의 좌표축인 x, y, z 축에 대한 회전을 적당히 조합하면 임의의 방향을 나타낼 수 있다는 사실입니다. 2차원 평면에서 물체의 방향을 지정해주려면 단지 하나의 각도 값이면 충분하지만 3차원 공간에서는 최소한 세개의 각도값이 있어야 하죠. 유의할 점은 오일러 앵글은 특정 회전축의 조합 하나를 말하는게 아니라 3차원 공간에서 임의의 방향을 나타낼 수 있는 조합이라면 어떤 조합도 다 오일러 앵글입니다. 회전을 물체.. 더보기 CFileDialog를 사용하여 경로만 가져오는 방법 CFileDialog 자체에서 폴더명만 가져올 수 있는 방법은 없습니다. 다만 해당 Dialog를 OFN_EXPLORER 를 사용해서 Folder를 선택하는 File Dialog로 생성하게 되면 폴더를 선택할 수 있습니다. 하지만 이 예에서 파일의 경로를 읽어 와서 그 경로를 얻으려고 하는 것 같으니 이 같은 경우에는 다음과 같은 방법을 사용하면 됩니다. CString strPathName; CString strFileName; char szFilter[] = "*.*||"; CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter); if ( IDOK == dlg.DoModal() ) { strPathName = dlg.GetPathName(); st.. 더보기 [D3D] CreateTexture Device->CreateTexture(Width, Height, 0, 0, Format, D3DPOOL_MANAGED, pTexture, NULL); D3DPOOL_DEFAULT 비디오 메모리에 생성되지만 메모리가 부족하면 시스템 메모리에 올라온다. 그리고, 디바이스 로스트가 발생하면 일일이 처리해줘야한다. Lock과 UnLock 사용을 할 수가 없어 Locked Rect를 써서 각 픽셀값을 바꿔줄 수 없다. 단 Device->StrechRect() 함수를 통해 원본 이미지의 확대 축소를 새로운 서피스에 복사할 수 있다. (Device->ColorFill()은 색상 지정) 그리고, Device->UpdateSurface()를 통해 시스템 메모리에 있는 서피스를 생성된 서피스에 올릴수 있다. D3DPOO.. 더보기 [D3D] Texture Splatting 텍스쳐 스플래팅 마우스 픽킹에 의해 실시간으로 알파텍스쳐가 변화해서 그 알파텍스쳐와 혼합되는 텍스쳐를 적용하는 예제이다. 이 예제는 내가 하고자하는 그러한 것을 구현해놓아 어서 분석하고 적용하고 싶을뿐이다. 압축파일은 그 예제를... pdf는 그 예제의 설명을 덧붙여준다. 작성자님이 김보성님이 시고, 이 자료는 출처를 명확히 적은 어느 카페에서 긁어왔다. 책에서 디테일한 설명이 없지만, 이렇게 좋은자료를 주신 형님께도 너무 감사할따름이다. 더보기 CString -> char * CString -> char * CString str; str = "Hello"; char* ss = LPSTR(LPCTSTR(str)); char * --> CString char ss[] = "Hello"; CString str; str.Format("%s", ss); (Format대신에 GetBuffer()를 써도 됩니다.) 더보기 [mfc] 휠........ MFC Library Reference CWnd::OnMouseWheel The framework calls this member function as a user rotates the mouse wheel and encounters the wheel's next notch.afx_msg BOOL OnMouseWheel( UINT nFlags, short zDelta, CPoint pt ); Parameters nFlags Indicates whether various virtual keys are down. This parameter can be any combination of the following values: MK_CONTROL Set if the CTRL key is down. MK_LBUT.. 더보기 지형픽킹 게임 프로젝트실습이라는 네이버카페에서 우연히 얻은자료 카페주인장 빈잉님에게 감사할따름이다. *Picking 설명 : 마우스 클릭에 의한 화면 좌표를 3D 지형과의 충돌체크를 통하여 3D공간상의 좌표를 얻어냄 1.마우스 클릭을 통한 스크린 좌표 얻기 FAR PASCAL XApp::MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { static int iXPos,iYPos; switch(uMsg) { case WM_KEYDOWN: if(wParam == VK_ESCAPE) ::DestroyWindow(hWnd); break; case WM_LBUTTONDOWN: iXPos = LOWORD(lParam); iYPos = HIWORD(lParam); P.. 더보기 D3D reSet 과 lostDevice을 고려하고 시작을 했어야 했는데........ 이것을 참고해서 밑바탕을 깔고 시작했어야 했는데........ 창 사이즈가 변경되서 픽킹이 제대로 안되는것, 전체화면에서 알트탭(?)으로 인하여 디바이스소실이 발생되는것 진짜 이런건 쉽게 넘어가서는 안되는 거같다. 더보기 d3d 라이트 조명의 수학적 계산 Microsoft® Direct3D® 의 조명 모델은, 앰비언트 라이트, 디퓨즈 라이트, 스펙큐러 라이트, 에미션(emission) 라이트를 대상으로 하는 것이다. 광범위한 조명 상황에 대응할 수 있는 충분한 유연성을 갖추고 있다. 장면(scene)내의 빛의 총량은,글로벌 일루미네이션으로 불려 다음의 방정식을 사용해 계산한다. 글로벌 일루미네이션 = 앰비언트 라이트 + 디퓨즈 라이트 + 스펙큐러 라이트 + 에미션(emission) 라이트 앰비언트 라이트는 균일한 조명이다. 모든 방향으로 균일해, 개체의 모든 픽셀에 같은 첨가한다. 단시간에 계산할 수 있지만, 개체는 평탄하고 리얼하게 안보인다. Direct3D 에 의한 앰비언트 라이트의 계산방법에 대해서는, 「앰비언트 라이트」를 참조할.. 더보기 Directx9.0c 버퍼관련.. 기하정보 저장 버퍼 버퍼사용 이유 배열이 아닌 버퍼에 저장하는 이유는 버퍼를 비디오 메모리에 저장할 수 있기 때문으로, 시스템 메모리의 데이터를 렌더링하는 것보다는 비디오 메모리의 데이터를 렌더링하는 것이 훨씬 빠르기 때문이다. 버텍스 버퍼 버텍스 데이터를 보관하는 연속적인 메모리 덩어리 HRESULT IDirect3DDevice9::CreateVertexBuffer( UNIT Length, //버퍼에 할당할 바이트 수 DWORD Usage, //버퍼가 이용되는 몇 가지 부가적인 특성 DWORD FVF, //버텍스 보관될 버텍스 포멧 D3DPOOL Pool, //버퍼가 위치할 메모리 풀 IDirect3DVertexBuffer9** ppVerTexBuffer, //만들어질 버텍스 버퍼를 받을 포인터 HAN.. 더보기 이전 1 2 3 4 5 6 7 다음