- 2009/12/18 09:27
- kafka83.egloos.com/1597933
- 덧글수 : 0
- 2009/11/10 09:09
- kafka83.egloos.com/1567475
- 덧글수 : 0
OpenGL 를 쓸려고 하니 평면에 대한 제공이 없어서 직접 구현하려고 합니다.
그런데 이게 제대로 된 건지 의문이라서 확인을 받고 싶습니다.
1. 3개의 벡터를 가지고 평면을 정의하려면 ? ( D3DXPlaneFromPoints )
a. 3개의 벡터로부터 법선 벡터를 구한다.
vU = v2 - v1
vT = v3 - v1
vNormal = Cross( vU, vT )
Normalize( vNormal )
b. 그리고 v1과 vNormal의 내적을 통해 거리 d를 구한다.
fDist = Dot( v1, vNormal )
c. 평면의 식을 구축한다.
plane.a = vNormal.x;
plane.b = vNormal.y;
plane.c = vNormal.z;
plane.d = - fDist;
2. 평면과 벡터의 내적 ? ( D3DXPlaneDot )
a. 평면의 법선 벡터를 구한다.
vNormal.x = plane.a;
vNormal.y = plane.b;
vNormal.z = plane.c;
b. 법선벡터와 벡터와 내적을 한다.
Dot( vPoint, vNormal )
프러스텀 컬링 때문에 구현하는데
2개의 함수를 구현하는 과정이 맞는지 알려주세요.
틀린 부분은 지적해 주셨으면 합니다.
- 2009/06/12 20:00
- kafka83.egloos.com/1434440
- 덧글수 : 0
static void SetStringTOwstring(wstring &dest,const string &src)
{
dest.resize(src.size());
for ( unsigned int i=0; i<src.size(); i++)
dest[i] = static_cast<unsigned char>(src[i]);
}
static void wstring2string(string &dest,const wstring &src)
{
dest.resize(src.size());
for (unsigned int i=0; i<src.size(); i++)
dest[i] = src[i] < 256 ? src[i] : ' ';
}
{
dest.resize(src.size());
for ( unsigned int i=0; i<src.size(); i++)
dest[i] = static_cast<unsigned char>(src[i]);
}
static void wstring2string(string &dest,const wstring &src)
{
dest.resize(src.size());
for (unsigned int i=0; i<src.size(); i++)
dest[i] = src[i] < 256 ? src[i] : ' ';
}




최근 덧글