3D Graphics
-
osg::Switch 클래스3D Graphics/OSG 2009. 1. 5. 12:50
이 클래스는 자식노드의 Visible상태를 변경할 수 있는 노드이다 osg::Group을 상속받았음. addChild( osg::Node*, bool) 이렇게 인자가 하나더 들어가게 되는데 이는 현재 추가되는 자식노드를 보일지 여부를 결정하는 것이다. setAllChildeOn()함수는 모든 자식노드를 보이게... setAllChildeOff()함수는 모든 자식노드를 안보이게 한다. setChildValue(osg::Node* , bool) 이 함수는 자식노드중에서 인자와 동일한 노드의 상태를 변경하는것이다,( 없으면 처리안함) getChildValue함수는 해당 노드의 Visible상태를 얻어옴. 그외에도 여러가지 함수가 있으니 documents를 참고~
-
특정 벡터를 기준으로 각도 계산하기3D Graphics/Open GL 2008. 12. 6. 16:10
float GetPointAngle(double *base, double *point) { double v[3], yv[3]; float angle; double len; v[0] = point[0] - base[0]; v[1] = point[1] - base[1]; v[2] = point[2] - base[2]; //길이 계산. len = sqrt( (v[0]*v[0] + v[1]*v[1] + v[2]* v[2] ) ); //normalize v[0] /= len; v[1] /= len; v[2] /= len; if (v[0] >= 0) { yv[0] = 0, yv[1] = 1, yv[0] = 0; angle = acos( (v[0]*yv[0] + v[1]*yv[1] + v[2]*yv[2]) ); an..
-
OpenSceneGraph 2.4 Window Dependency labrary3D Graphics/OSG 2008. 11. 28. 03:16
원본링크 http://www.openscenegraph.org/projects/osg/wiki/Downloads/Dependencies Windows prebuilt dependency package The most up to date windows dependency package, that is required for OpenSceneGraph-2.3 and later, is maintained by Mike Weiblen, and can be download/browsed via svn at: https://osgtoy.svn.sourceforge.net/svnroot/osgtoy/3rdParty/branches/ There is also an older dependency package than ..
-
OSG사용시 주의점!!3D Graphics/OSG 2008. 11. 23. 18:26
osgDB에서 readImage()와 readFile()사용을 하려고 했습니다. OSG 공식사이트에서 소스를 받아서 컴파일한 후에 dll과 library를 링크해서 사용하는데 계속 NULL을 리턴하더군요;; 그래서 빌드버전을 받아서 설치 후 해당 폴더를 살펴보니 기존에 없던 liblua51.dll, libpng13.dll, zlib1.dll과 해당 소스들이 보였습니다!! 그렇습니다. 요점은 이녀석들도 내부에서 사용하기 때문에 사용시 프로젝트에 포함시켜야 되는것이죠;; 그리고 plugin폴더의 dll도 자신이 사용하는 포멧은 같이 넣어줘야합니다~ 혹시 OSG소스를 빌드해서 정상적인 결과가 안나올시 빌드버전으로 테스트해 보세요~^^ [최초 컴파일한 소스파일] http://www.openscenegraph.o..
-
알려진 평면에서의 폴리곤과 정점의 교차판정.3D Graphics/공통 2008. 10. 23. 19:54
Real time Randering 2nd에서 참고했습니다. 이론을 간단히 설명하자만 점이 폴리곤 내부에 있다면 점과 각 점점을 이루는 내각의 합이 360이라는겁니다. 예를들면 세 정점 p1, p2, p3로 이루어진 폴리곤이 있을때 정점p와의 각도를 계산합니다. 1. p1-p와 p2-p의 벡터가 이루는 각 2. p2-p와 p3-p의 벡터가 이루는 각 3. p3-p와 p1-p의 벡터가 이루는 각 자 그런데 각도는 어떻게 계산하느냐?? 그건 벡터의 성질을 이용하면 간답합니다. 1번 상황에서 p1-p간의 벡터를 A라하고 p2-p간의 벡터를 B라 할 때... 두 벡터의 크기를 곱합니다. 그리고 그 크기가 0이 아니라면..(이때 진짜 0을 비교하시면 안됩니다. 부동소수점 정밀도 문제때문에 0.000001같이 정당..
-
두 정점을 이용한 박스 그리기(OBB)3D Graphics/Open GL 2008. 10. 23. 19:30
두 정점 start와 end가 있을때 이 길이만큼의 사각형을 구성한다. CVector : 벡터 클래스. opengl 자체에 없으니 만들어쓰든 받아서 쓰든.. 아무튼 필요하다. 아니면 일일히 계산해야함. CVector v, v1, m_vertex[4]; //벡터를 구한다. v1 = end - start; //방향벡터로 정규화한다. v1 = v1.Normalize(); //상방벡터. opengl은 오른손 좌표계라 z값이 1이다. v = CVector(0.0, 0.0, 1.0); //직선의 방향벡터와 상방벡터를 외적해 v1에 수직인 벡터를 구한다. cross.Cross(v1, v); //정점에 가로벡터를 +, -해줌으로써 사각형의 네 정점을 구한다. m_vertex[0] = start-cross; m_vert..