Loading...

D3DXMatrixLookAtLH

왜 항상 가장 간단한걸 까먹을까.. 기초가 부족해서 겠지? ㅎㅎ D3DXMatrixLookAtLH 함수 왼손 좌표계 뷰 행렬을 생성 한다. 구문 D3DXMATRIX *D3DXMatrixLookAtLH( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt, CONST D3DXVECTOR3 *pUp ); 파라미터 pOut [in, out] 연산 결과인 D3DXMATRIX 구조체의 포인터. pEye [in] 시점을 정의하는 D3DXVECTOR3 구조체의 포인터. 이 값은, 평행이동에 사용된다. pAt [in] 카메라의 주시 대상을 정의하는 D3DXVECTOR3 구조체의 포인터. pUp [in] 현재 월드의 윗쪽, 일반적으로는 [0, 1, 0] ..

max plugin과 max script의 차이점

max plugin과 max script의 차이점 max plugin의 장점 - C++로 개발하기 때문에 속도가 빠르다. - Max의 디테일한 기능까지 사용이 가능하다. max plugin의 단점 - C++ 프로그램 언어를 알아야만 개발이 가능하다. - 3ds max 버전별로 대응해야만 한다. 맥스 버전이 바뀌면 다시 컴파일 해주어야 한다. max script의 장점 - 기본적인 문법의 스크립트를 사용하기 때문에 쉽게 익힐 수 있다. - 3ds max 버전별로 대응할 필요가 없다. ( 모든 버전에서 동일한 스크립트가 사용 가능하다.( 예외도 있다. ) ) max script의 단점 - 속도가 느린 편이다. - 스크립트 엔진에서 제공하지 않는 기능은 사용하기가 힘들다. max plugin 개발 준비 NEW..

2009. 9. 13. 21:43

Surface Texture Mapping

Surface 의 특질을 제대로 표현하기 위해서는 Texture mapping 기술에 대하여 제대로알아 둘 필요가 있습니다.. Surface 의 특질을 표현하기 위하여 각각의 surface 는 blue, red, green 등의 컬러의 집합체에 의하여 정의 되어진다고 생각해도 크게 틀리지 않을 것 입니다.. 실제 세계에서는 많은 surface 들이 여러가지 색깔을 가지고 있습니다.. 나무는 나뭇결의 변화 있는 모습을 보여 주고 있고.. 옷감의 경우는 또 다른 예를 보여 주게 되는데.. 이것은 종종 다색 이라기 보다는 단색의 반복적인 patterns 으로 나타나게 되어지는 경우도 있습니다.. 대부분의 기본적인 Texture mapping 의 종류는 Three - dimensional model 의 surf..

shader version 맞춰주기.

vs2.0과 ps3.0은 안된다.. 이렇게 해도 컴파일러가 에러를 뱉어주지 않으니까 되는줄 알고 초낸 삽질했는데.. 이녀석들은 맞춰주는게 좋다.

알파블렌드와 알파테스트

http://www.gpgstudy.com/forum/viewtopic.php?p=79452 알파블렌드는 블랜딩 설정에 따라 색상이 혼합되는 것이고, 알파테스트는 설정값을 기준으로 해당되는 범위의 값을 제거 하는 겁니다. D3DRS_ALPHATESTENABLE 픽셀마다 알파 테스트를 유효하게 하려면 , TRUE 를 설정한다. 테스트가 성공하면 픽셀이 frame buffer에 의해 처리된다. 실패 하면, 그 픽셀의 모든 frame buffer 처리는 스킵 된다. D3DRS_ALPHAFUNC 렌더링 스테이트에 의해 제공되는 비교 함수를 사용해, 들어 오는 알파값을 기준 알파값과 비교해 테스트를 실시한다. 기준 알파값은,D3DRS_ALPHAREF 의 설정값으로 정해진다. 더 자세한 정보는, 「알파 실험 스테이..

알파 메쉬 랜더링 - 참고자료

Drawing alpha-tested foliage nicely GpgStudy - 깨지지 않는 알파 블랜딩 noerror님의 알파 메쉬 랜더링 z write D3DRS_ZWRITEENABLE 을 사용하는 이유가 무엇인가요? *알파 블랜딩? - 폴리곤을 랜더링할 때, 폴리곤 색을 그냥 출력하는 것이 아니라 이미 랜더링된 화면에 여러 가지 합성을 해서 출력하는 방법. *어떤 합섯을 할지를 결정( D3DRS_BLENDOP) 최종 색 = 합성법( A * 랜더링할 폴리곤 색, B * 이미 랜더링된 색) Ex) D3DBLENDOP_ADD : 최종 색 = A * 랜더링할 폴리곤 색 + B * 이미 랜더링된 색 나머지는 SDK 참고.. *합성 강도 SRCBLEND : 랜더링할 폴리곤 색 DESTBLEND : 이미 랜..

3d좌표 2d좌표로 변환

POINT CAppForm::CONVERT_3DTO2D_POINT ( const D3DVIEWPORT9& vp, const D3DXMATRIX& matView, const D3DXMATRIX& matProj, D3DXVECTOR3 v ) { D3DXMATRIXA16 matCombine = matView * matProj; D3DXVec3TransformCoord ( &v, &v, &matCombine ); v.x += 1.0f; v.y += 1.0f; v.x = ( vp.Width * (v.x ) ) / 2.0f + vp.X; v.y = ( vp.Height * (2.0f-v.y) ) / 2.0f + vp.Y; POINT pt; pt.x = (long)v.x; pt.y = (long)v.y; return..

EC++ 4. const의 사용 - 수정중

프로그래머로서 중요한 습관중 하나가 변수의 초기화라고 생각한다. 옜날부터 변수초기화 때문에 많은 삽질을 했었다. 그래서 언제부턴가 생성자나 Begin()함수나 Initialize()함수등을 둬서 모든 변수를 초기화 하는 습관을 가지게 되었다. MgSceneManager::MgSceneManager(void) { m_pCamera = NULL; m_pDxInput = NULL; m_pFps = NULL; D3DXMatrixIdentity(&m_matWorld); D3DXMatrixIdentity(&m_matView); D3DXMatrixIdentity(&m_matProj); D3DXMatrixIdentity(&m_matOrth); // test m_TeshEntity = NULL; m_pFontInstan..