출처 : http://developerscode.blogspot.com/2007/12/d3drscullmode.html D3DRS_CULLMODE IDirect3DDevice9::SetRenderState() 안에는 무수히 많은 설정값들이 존재하는데 폴리곤의 뒷면을 제거하는 D3DRS_CULLMODE 옵션에 대해서 설명하려 한다. 사용 형태는 대강 이런 모양이다. pd3dDevice ->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); DirectX SDK에 D3DRS_CULLMODE 옵션에 대한 설명이 굉장히 모호하게 되어있다. typedef enum D3DCULL { D3DCULL_NONE = 1, D3DCULL_CW = 2, D3DCULL_CCW = 3, D3DCULL..
연구실/파편화된 기록들 검색 결과
출처 : http://navylela.tistory.com/210 컴파일 시 발생하는 C4996 경고는 아래 프리프로세서로 없앨 수 있다. #define _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_WARNINGS 하지만 이건 경고문만 없애주는 것이지 근본적인 해결책은 아니다. 근본적으로 문제를 해결하려면 경고문에서 나타나듯이 사용한 함수명_s 와 같은 형식으로 바꾸어서 필요한 파라미터를 더 추가해주고 사용하면 된다. MS에서 기존 함수의 보안문제(?)로 인해 함수를 새로 정의해버렸다고 하며 사용을 권하고 있다. 만일 unix 에서도 돌아가야 할 프로그램이라면 ifdef - endif 문을 사용하여 각각 플랫폼에서 작동할 함수에 대해 모두 구현해주어야 한다. #i..
ASE의 전반적인 구조 1. File Head : ase 버전이나 comment 등의 정보를 담고 있다. 2. Scene : 프래임의 전반적인 정보를 담고 있따. 3. Material List : 사용된 머터리얼이며, 텍스쳐도 포함되어 있다. 4. Object List : 각종 Object 들을 담고 있다. 보기 *3DSMAX_ASCIIEXPORT200 *COMMENT "workAsciiExport Version 2.00 - Sun Sep 07 01:12:47 2008" *SCENE { *SCENE_FILENAME "aaa.max" *SCENE_FIRSTFRAME 0 *SCENE_LASTFRAME 100 *SCENE_FRAMESPEED 30 *SCENE_TICKSPERFRAME 160 *SCENE_BAC..
이 내용은 수업시간에 공부한 내용과 책을 통해 공부한 내용을 정리한 것이다. ASE 파일을 어떻게 읽어 들일 수 있는가? tinyXML 을 했던 사람이라면, 쉽게 이해 할 테지만, 아닌 사람들을 위해서 설명하자면... 1. ASE 파일을 로드 하고 2. ASE 파일의 문장을 단어(TOKEN) 단위로 끊고 3. 단어의 의미를 분석한다. 이 단어 단위로 끊는 것을 Lexer 라고 하며, 의미 분석을 Parser 라고 한다. 이제 어떻게 읽는지 알게 되었으니, Lexer 기능과 Parser 기능을 만들어야 한다. Lexer 와 Parser가 어떻게 동작해야 하나?(이 질문은 어떻게 동작하는지 알아야지만 만들수 있기 때문이다) Lexer는 문장을 단어를 자르고 Parser가 자른 단어가 쓸만한지 판단하여, 데이..
이 내용은 수업시간에 공부한 내용과 책을 통해 공부한 내용을 정리한 것이다. ASE란 무엇인가? 3D MAX 에서 작업한 것을 TEXT 정보로 Export 한 파일의 한 종류인다. 왜 배워야 하는가? MAX에서 작업한 것을 프로그램에서 사용하기 위해서다. 왜 ASE 이여야 하는가? 다른 Export 파일에 비해 이해하기가 쉬우며, 손쉽게 조작할수 있기 때문이다. ASE의 단점은 없는가? TEXT 파일이다보니, 너무 많은 용량을 사용하고, 추가적인 에디터와 파서를 만들어야 하며, Normal 값 생성도 같이 해줘야 한다.
컴퓨터 내부 연산과 외부 출력 부하 비교이다. 테스트한 이유는 서로의 성능이 다른 컴퓨터에서 동일한 프레임으로 프로그램을 돌릴 경우, 상대적으로 성능이 낮은 컴퓨터에서 성능이 좋은 컴퓨터를 커버 할수 있을지에 대한 생각 때문이였다. 당연히 내부 연산만 하는게 더 빠르겠지만, 얼마나 차이를 보일지에 대한 테스트를 해보았다. 실험 코드 #include #include #pragma comment(lib, "winmm.lib") const int ccc = 200000; int main( void ) { DWORD Check_time = timeGetTime(); DWORD a[ccc]; // 내부 연산 for(int i = 0; i < ccc; i++ ) a[i] = timeGetTime(); // 모니터 ..
최근댓글