프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 6. 12. 23:37
D3DXVECTOR3 연산 함수 // 크기를 리턴한다 FLOAT D3DXVec3Length( CONST D3DXVECTOR3* pv ); ex) D3DXVECTOR3 v(1.0f, 2.0f, 3.0f); float magnitude = D3DXVec3Length( &v ); // = sqrt(14) //벡터의 정규화 D3DXVECTOR3* D3DXVec3Normalize( D3DXVECTOR3* pOut, //결과 CONST D3DXVECTOR3* pV //정규화 하려는 벡터 ); //내적 FLOAT D3DXVec3Dot( CONST D3DXVECTOR3* pV1, //왼쪽 피연산자 CONST D3DXVECTOR3* pV2 //오른쪽 피연산자 ); //외적 D3DXVECTOR3* D3DXVec3Cros..
프로그래밍/게임만들기 스피비 2011. 6. 12. 17:05
게임상에 어떤 문제가 생길경우 그 문제가 서로 분리될 필요가 있습니다. 가령, 화면보호기가 작동되어서 리소스를 손실하였을경우 게임씬의 유니트들이 그것을 알필요가 없습니다. 그 밖의 레벨에서 처리될필요가 있죠. 게임에서 각 유니트들의 문제, 윈도의 문제, DX의 문제등은 서로가 분리되어 동작하는것이 좋습니다. 그래서, 그 클래스의 목적별로 나누어서 처리를 하게 되어있습니다. 클래스의 내용이 몇개 없을지라도요. 제가 게임을 만들면서, 중요하게 생각된부분이 게임씬안에서 각개체들이 서로를 어느정도 알아야 하는 문제입니다. 결론은 서로가 서로를 절대로 몰라야 합니다. 조금이라도 알게되면, 클래스간의 종속성이 생기게 되고, 그렇게 될경우 작업의 우선순위가 생겨서, 프로그래머가 2명을 넘어가면, 서로가 먼저구현하라고..
프로그래밍/프로그래밍일반 스피비 2011. 6. 12. 16:41
비디오나 필름의 프레임(화면)이 바뀌는 속도를 초 단위로 나타내는 단위. 영화는 초기에 초당 16프레임이었으나 현재 24프레임이며 NTSC 방식 텔레비전은 격행 주사 방식을 채택하기 때문에 2개의 필드가 1프레임이 되어 초당 30프레임이다. 그래픽스 시간에 배운 것을 상기해보면, 사람눈에 1초당 15프레임정도가 들어오면 깜빡임현상을 거의 못느낀다고 한다. 그렇지만 Nyquist 정리에 의해 2배인 30프레임을 사용한다고 함.호홓홓 0. timeGetTime(), GetTickCount()이해하기 [프로그래밍/WindowsAPI] - timeGetTime() GettickCount() 함수 총정리 1. timeGetTime() 으로 FPS구하기 void UpdateFPS() ..
프로그래밍/프로그래밍일반 스피비 2011. 6. 10. 10:30
Visual C++ 위자드로 자동 생성되는 코드들 중에서 stdafx.h 와 stdafx.cpp 이 있다. 여기에서 stdafx 란 Standard Application Freamworks 의 약자로 개발자들의 생산성 향상을 위해 MS 에서 제공하는 소프트웨어 라이브러리 체계를 뜻하며, MFC 로 구성되어 있다. 참고로 많이 사용되는 application framework 로는 .NET Framework( Windows 계열 ), Cocoa ( Objective C / Mac OS X), Swing (Java) 등이 있다. 그럼 Precompiled header (미리 컴파일된 헤더. 여기에서는 precompiled header 로 통일) 란 무엇인가... C / C++ 언어에서 헤더 파일은 C 전처리기..
프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 6. 9. 17:56
LPD3DXSPRITE LPD3DXSprite(이하 스프라이트) Interface는 다이렉트 엑스에서 2D이미지를 그리기 편하게 해주는 인터페이스 입니다. 주로 UI를 그리거나 하는 평면 이미지를 그릴때 사용하는데, 3D상의 카메라에 2D이미지가 붙어 있다고 생각하시면 편합니다. 카메라를 움직이면 3D공간의 물체는 이동하지만 카메라에 붙은 2D이미지는 변함이 없는 것이지요. 여기서는 이 유용한 스프라이트 객체의 사용법에 대하여 알아보겠습니다. 1. 스프라이트 객체 생성과 해제 // 생성하기 LPD3DXSPRITE pSprite; D3DXCreateSprite(pd3dDevice, &pSprite); 스프라이트를 생성할때는 D3DXCreateSprite함수를 사용합니다. 함수를 간단히 살펴보면 HRESUL..