Loading...
2011. 5. 5. 17:43

조명효과 - 램버트 확산 조명

사실적인 화면(렌더링 장면이나 회화)을 볼 때 이것을 3차원 이라고 인식할 수 있도록 하는 중요한 두가지 요소는 바로 원근과 음영이다. 원근 : 멀리 떨어져 있는 것을 입체적 으로 그리는 방법. 투시변환을 통해 재현되고 있다. 음영 : 물체에 조명을 비추었을 때 조명이 정면으로 비치는 부분은 밝고, 비치지 않는 부분은 어둡게 하는 방법. 이 기법을 통해 물체의 요철(오목함과 볼록함)이나 질감을 느낄 수 있다. 램버트 확산 조명. 1. 확산 반사광 : 빛은 입사각이 직각에 가까울수록 밝으며 직각에서 멀어질수록 어두워진다. 즉, 구에 빛을 비추면 정면으로 빛을 받는 부분은 초낸 밝지만 뒷부분은 어두워 진다. 이러한 현상은 당연하다고 생각될 만큼 늘상 보아오던 것이다. 또 하나 생각해 볼 것이 있다. 손정등을..

2011. 5. 3. 23:38

max export 7. 어떻게 애니메이션 시킬까?

Control access, Key Export Controller 요소(item)의 애니메이션을 지정하거나 제어하는 플러그인 유형. 여러가지 컨트롤러 유형이 존재. ex) 변환 컨트롤로(PRS Controller)는 씬 내의 노드 위치를 결정. Matrix3를 제어하는 컨트롤러. 표현식 컨트롤러는 요소의 매개변수가 수학적 표현식에 의해 제어될 수 있도록 허용. Exporting Animation Keys - 모든 애니메이션들은 Controll class의 instance들에 의해 포함되고 계산된다. - 컨트롤들은 그들의 SuperClassID 타입에 기반하여 적용된다. ( CTRL_MATRIX3_CLASSID, CTRL_ROTATION_CLASS_ID) - 컨트롤 클래스들은 종종 다른 클래스들을 참조한..

하루를 잡아먹은 export unit error.

이번에 사용하고 있는 max는 2011 버전. max 기능이랑 이것저것좀 같이 export하고싶어서 기존 소스를 들고와서 작업을 좀 하고 있었다. 이번에 붙이는 core쪽은 unicode only라서 maxexport도 문자집합에서 "설정안함"에서 "유니코드 문자 집합 사용"으로 바꾸어 주었다. 그랬더니 바로 뜨는 두개의 에러문구..... 1>MgExport.obj : error LNK2001: "public: virtual wchar_t * __thiscall ClassDesc::GetRsrcString(int)" (?GetRsrcString@ClassDesc@@UAEPA_WH@Z) 외부 기호를 확인할 수 없습니다. 1>MgExport.obj : error LNK2001: "public: virtual..

2011. 4. 23. 13:25

max export 6. 드디어 Animation !!!!

요즘 새로운 준비 때문에 고민도 많고, 그래서 마음이 급해져서 이리저리 준비하려하다보니 제풀에 지쳐서 힘들어하게 된다.. 이럴 때 일수록 하고있던 것들을 완벽하게 마무리 해야지... ㅇㅇ 좀 짱인듯 Graph Editors를 보면 Entities을 선택해서 볼 수 있다. 1. Base Objects를 선택하면 Cylinder, Box, Pyramid와 같은 Object 정보가 나온다. 2. Modifier Stack를 선택하면 Modified Object가 있을 경우 표시를 해주고 UVW Mapping 표시를 해준다. 위의 그림에서는 Wheel이 이 경우에 속한다. 3. Controllers를 선택하면 Position, Rotation, Scale을 표시해 준다. 이 Graph Editors 정보를 보면..

2011. 4. 23. 10:15

max export 5. transform 정보는?

이전 글에서는 vertex정보와 face정보를 얻어오는 부분까지 만들어 보았다. 이제 transform정보를 사용해서 실제 vertex 정보를 구해보자. 맥스에서는 Affine Transformation을 사용한다. 이는 기하학적 변환(이동, 회전, 스케일링)이라고 말한다. 점 사이의 거리나 라인 사이의 각도를 수정할 수 있지만 직선(straight line) 및 평행선(parallel line) 사이의 평행관계는 유지한다. Affine matrices는 3x4 matrix를 사용한다. ( non affine은 4x4를 사용.) 1. 순서는 PRS이다. (Position, Rotation, Scale) 2. 왼손 좌표계, z up system이다. (dx는 y up system) 3. P x R x S ..

Hash 함수 모음

// RS Hash Function unsigned int RSHash(const std::string& str) { unsigned int b = 378551; unsigned int a = 63689; unsigned int hash = 0; for(std::size_t i = 0; i < str.length(); i++) { hash = hash * a + str[i]; a = a * b; } return (hash & 0x7FFFFFFF); } // JS Hash Function unsigned int JSHash(const std::string& str) { unsigned int hash = 1315423911; for(std::size_t i = 0; i < str.length(); i++)..

PartialPrecision

// D3DXSHADER_PARTIALPRECISION // Force all computations in resulting shader to occur at partial precision. // This may result in faster evaluation of shaders on some hardware. 이 옵션을 사용하면 shader의 float의 정밀도를 반으로 줄인다. 그럼으로 인해서 shader들의 연산 속도를 높인다. // 그 외 기타 shader 옵션 //---------------------------------------------------------------------------- // D3DXSHADER flags: // ----------------- // D3DXSHA..