예전 (133) 썸네일형 리스트형 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 .. [API] _splitpath (디렉토리 분리 함수) _splitpath 함수는 한 개의 경로를 받아들여 경로를 요소 별로 분리해 4개의 문자열 버퍼에 저장한다. 이 함수를 호출하려면 분리된 요소를 저장할 4개의 버퍼를 미리 준비해야 하는데, 관심없는 요소에 대해서는 NULL 값을 전달해도 된다. 아래 코드를 보자. #include int main(void) { char szPath[_MAX_FNAME];// 전체 경로 char szDrive[_MAX_FNAME];// 드라이브 char szDir[_MAX_FNAME];// 디렉토리 char szFileName[_MAX_FNAME];// 파일명 char szExt[_MAX_FNAME];// 확장자 strcpy(szPath,"c:\\My Document\\Test\\Report 2.5.bak"); _split.. [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.. 노멀매핑하려다가 ... 노멀 매핑은 범프 매핑의 일종으로 초기 범프 매핑보다 발전한 형태의 범프 매핑이다. http://telnet.or.kr/sec_directx/index.html?init_mode=api_read&api_no=146(면 법선 벡터와 정점 법선 벡터) http://www.galexandria.com/main/gdnet/nop-ipildeu-jomyeong-yong-beobseongyesan(높이 필드 조명용 법선 벡터 계산) 어쩌다 여기까지 왔지? 나는 그저 ... 노멀 맵으로 부터 y 성분만 사용하는 단순화된 노멀 맵을 사용했다 ... 라고 하려고 했는데 ㅇㅅㅇ.......... y 성분만 사용하는 단순화된 노멀 맵은 지형이 완전한 평면이고, 광원이 수직으로 비친다는 것과 같은 의미이다.정확한 것은 아니지.. 이전 1 2 3 4 5 6 7 8 ··· 17 다음