분류 전체보기
-
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..
-
MSVCRTD.dll 충돌Window Programming/MFC 2008. 10. 30. 00:22
[출처] _CrtIsValidHeapPointer 에러|작성자 형기 Visual C++과 STL을 이용한 dll을 만들 경우 std::string 사용시 _CrtIsValidHeapPointer 에러가 발생하는 경우가 있습니다. 원인은 MS에서 제공하는 C Runtime Library (msvcrt.dll, msvcr70.dll, msvcr71.dll 등)의 버전을 다르게 쓰고있기 때문입니다. C Runtime Library의 버전에 따라서 CRT State와 Heap, file등의 정보를 같이쓰고 있어서 충돌이 생긴경우입니다. 이 경우는 프로젝트 전체에서 CRT dll을 사용하게 하든지, 아니면 각각의 crt상태를 가질 수 있도록 수정하여야 합니다. 간단히는 빌드옵션에서 /MD, /MDd를 사용해서 해..
-
알려진 평면에서의 폴리곤과 정점의 교차판정.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..