본문 바로가기

예전/3D

(50)
[OPENGL] quaterinion http://content.gpwiki.org/index.php/OpenGL:Tutorials:Using_Quaternions_to_represent_rotation
플레이어 따라다니는 카메라 D3DXVECTOR3 vLookAt = m_pCube->vPos;m_pMainCam->SetLookAtVec(vLookAt); D3DXVECTOR3 vDist = D3DXVECTOR3(0.0f,3.0f,-10.0f);float fDist = D3DXVec3Length(&vDist); D3DXMATRIXA16 matRotCam;D3DXVECTOR3vRotCam(0,0,-1); D3DXVECTOR3 vDir; // 회전 변환을 먹이고,D3DXMatrixRotationY(&matRotCam,m_pCube->vRot.y);// 변환 먹인 것에 방향을 입힌다.// Coord를 사용해 점을 이동시켜 벡터를 회전한다.D3DXVec3TransformCoord(&vDir,&vRotCam,&matRotY);// 정규화 한..
SetSamplerState // 텍스쳐 퀄리티 상승g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR ); //D3DTEXF_NONE = 0, // filtering disabled (valid for mip filter only)//D3DTEXF_POINT = 1, // nearest//D3DTEXF_LINEAR = 2, // linear interpolation//D3DTEXF_ANISOTROPIC = 3, // anisotropic//D3DTEXF_PYRAMIDALQUAD = 6, // 4-sample tent//D3DTEXF_GAU..
[3D] AABB(Axis Aligned Bounding Box) AABB(Axis Aligned Bounding Box) 물체의 경계를 나타내기 위해 물체를 둘러싼 직육면체로 월드 좌표계의 축 방향으로 정렬되어 있다.물체의 x, y, z 로 8개의 점을 구하고, Min, Max 값으로 충돌체크를 한다. 경계 설정이 편하고, 교차 판정도 간단해 연산이 빠른 편이다. 하지만 물체가 회전하거나 이동할 때는 경계를 재설정해줘야 하므로 주로 정적인 물체에 사용된다.
OptimizeInplace 최적화좀더 효과적으로 메쉬를 렌더링하기 위해서는 버텍스와 인덱스를 재구성 하는 작업이 필요하다. (메쉬최적화)HRESULT ID3DXMesh::OptimizeInplace( DWORD Flags, CONST DWORD *pAdjacencyIn, // 최적화되지 않은 메쉬의 인접 배열로의 포인터 DWORD* pAdjacencyOut, // 이 배열은 반드시 ID3DXMesh::GetNumFaces()*3수의 요수를 가지고 있어야 한다. 필요없다면 0을 넣는다. DWORD* pFaceRemap, // 최적화 되면서 원래의 i번째면이 어디로 이동했는지 알려주는 면 인덱스를 포함한다. 이 배열은 ID3DXMesh::GetNumFaces()의 크기를 가져야한다. LPD3DXBUFFER* ppVertexRemap ..
[3D] 수면 파동 수면 효과 구현을 위해 인덱스 버퍼의 y값에 sin 함수를 줘서 평면파동과 구면파동을 구현했다. 평면파는 대각선으로 하나 더 sin을 줘서 진짜 파도처럼 할 계획이고,구면파는 점차 강도를 느리게 줘서 퍼지는 느낌을 줄 계획이다. 파동을 수학적으로 조금 더 공부해서 포스팅 하기!!
[3D] 수면을 해보자 http://www.gpgstudy.com/forum/viewtopic.php?p=70221 Q) 해변의 파도 치는 효과를 어떻게 구현할 것인가? A) 파 크라이의 그것은 맵 에디터를 들어가서 살펴보시면 바로 알 수 있습니다. 맵 에디터 실행해 보면 바로 답이 나오는 것을 여기에 질문 해봤자 추측들만 난무 할 뿐이지요. 의외로 간단한 트릭입니다. 바로 앞 뭍까지 파도가 치는 부분은 알파값을 준 애니메이트 된 텍스쳐입니다. 실제로 움직이는 것 같지만 폴리곤은 고정이고 다른 것도 전부 고정입니다. 매우 간단하죠. 알파 값을 준 애니메이트 된 텍스쳐가 바로 파도를 그리고 있는 텍스쳐고 그게 뭍에서부터 수면일부까지 있고 수면과 바닥의 사이를 덮어 버림으로서 최종적으로 저렇게 보이게 만든겁니다. 아무것도 아닌 것..
[3D] Fog (안개) 안개는 그리려는 픽셀을 깊이 값에 따라 미리 설정해 둔 안개 컬러를 혼합하여 변조하는 작업이다. 멀어질 수록 흰색이 되도록 설정하면, 공기 원근을 표현할 수 있다. 또한 리얼한 정경을 표현하거나 먼 경치를 희미하게 표현할 수 있다. 포그는 장면 내에 개체의 깊이 또는 시점으로부터의 거리에 근거해 장면 내의 개체의 색과 선택한 포그 색을 블랜딩해 실현된다.개체가 멀어짐에 따라 원래 색에 대한 포그색의 블렌드가 늘어난다. 장면에 안개를 추가하는 방법에는 정점 포그와 픽셀 포그가 있다. 1. 정점 포그 // For brevity, error values in this example are not checked // after each call. A real-world application should chec..