Ambient Aperture Lighting
Posted by Go crazy for anything that will make you smile.
http://blog.naver.com/lifeisforu/80106850119 http://blog.naver.com/PostView.nhn?blogId=lifeisforu&logNo=80106848865
http://blog.naver.com/lifeisforu/80106850119 http://blog.naver.com/PostView.nhn?blogId=lifeisforu&logNo=80106848865
빛의 감쇠를 계산하는 방법1. 기본적인 방법.점광원으로부터 방출되어서 하나의 표면을 떄리는 에너지는 표면과의 거리가 멀어짐에 따라 감소한다.간단하게 func(Attenuation) = 1/d(L) 을 사용하기도 하는데 이보다는 제곱을 사용하는것이 결과물이 더 좋다.func(Attenuation) = 1 / (d(L) * d(L))그런데 테스트 해 보면 알 수 있지만 이 공식의 문제는 가까울 때에는 너무 선명하고 멀어질 수록 너무 극명하게 약해진다는 것이다.그래서 Direct3D에서 점광의 감쇠는 아래의 공식을 사용한다.func(Attenuation) = 1 / ( A(0) + A(1) * d(L) + A(2) * d(L) * d(L) )여기서 A0,1,2는 감쇠 상수이다.A1 = 0, A2>0이면 방사성..
시작은 exporter 만들때와 같다. 3dsMax위자드를 통해서 생성할때 "File Importer"로 타입을 지정해서 만들면 된다. 첫 시작은 exporter가 DoExport였듯이 importer에서는 DoImport이다. 1. Import를 한다는건 이미 자체포맷으로 또는 기본 포맷으로 만들어진 데이터가 있다는 말. 우선 파일을 로드해서 해당 파일에 있는 데이터를 읽어 둔다. GetDataFromFile(파일이름) 요 내부에선 열심히 파일을 읽어서 데이터 구조를 만들고 할것이다. 2. 그리고 현재 화면을 깨끗이 정리할 필요가 있다. 흡사 dx의 Clear()와 같은 함수가 필요하다. 이것이 바로 max에서 제공하는 ImpInterface::NewScene() 함수이다. 이 함수는 scene상의 모..
중국 사이트인가?... 암튼 갠춘.. https://xray.svn.codeplex.com/svn/branches/refactoring/sources/plugins/xray_fsl/ObjectPlugin/Code/ObjectImport.cpp http://zho.pe.kr/doc/ConvertMaxCamToD3DCam.htm 1. TriObject 생성. INode* parentNode = NULL; TriObject* tri = CreateNewTriObject(); 2. Node 생성 ImpNode* node = impip->CreateNode(); 3. Node의 접근권한을 Tri에 설정 node->Reference(tri); 4. Node를 화면에 추가. impip->AddNodeToScene(n..
사실적인 화면(렌더링 장면이나 회화)을 볼 때 이것을 3차원 이라고 인식할 수 있도록 하는 중요한 두가지 요소는 바로 원근과 음영이다. 원근 : 멀리 떨어져 있는 것을 입체적 으로 그리는 방법. 투시변환을 통해 재현되고 있다. 음영 : 물체에 조명을 비추었을 때 조명이 정면으로 비치는 부분은 밝고, 비치지 않는 부분은 어둡게 하는 방법. 이 기법을 통해 물체의 요철(오목함과 볼록함)이나 질감을 느낄 수 있다. 램버트 확산 조명. 1. 확산 반사광 : 빛은 입사각이 직각에 가까울수록 밝으며 직각에서 멀어질수록 어두워진다. 즉, 구에 빛을 비추면 정면으로 빛을 받는 부분은 초낸 밝지만 뒷부분은 어두워 진다. 이러한 현상은 당연하다고 생각될 만큼 늘상 보아오던 것이다. 또 하나 생각해 볼 것이 있다. 손정등을..
Control access, Key Export Controller 요소(item)의 애니메이션을 지정하거나 제어하는 플러그인 유형. 여러가지 컨트롤러 유형이 존재. ex) 변환 컨트롤로(PRS Controller)는 씬 내의 노드 위치를 결정. Matrix3를 제어하는 컨트롤러. 표현식 컨트롤러는 요소의 매개변수가 수학적 표현식에 의해 제어될 수 있도록 허용. Exporting Animation Keys - 모든 애니메이션들은 Controll class의 instance들에 의해 포함되고 계산된다. - 컨트롤들은 그들의 SuperClassID 타입에 기반하여 적용된다. ( CTRL_MATRIX3_CLASSID, CTRL_ROTATION_CLASS_ID) - 컨트롤 클래스들은 종종 다른 클래스들을 참조한..
요즘 새로운 준비 때문에 고민도 많고, 그래서 마음이 급해져서 이리저리 준비하려하다보니 제풀에 지쳐서 힘들어하게 된다.. 이럴 때 일수록 하고있던 것들을 완벽하게 마무리 해야지... ㅇㅇ 좀 짱인듯 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 정보를 보면..
이전 글에서는 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 ..