2012-12-02 2 views
0

몇 명의 친구들과 저는 작은 애니메이션 세그먼트를 코딩하려고합니다. 그래서 우리는 훌륭하고 여전히 다소 간단한 proyect가 "플레이어"가 버려진 광산을 가로 질러 카트를 타고 여행하는 일종의 호러 하우스 투어를 만드는 것이라고 결정했습니다.미리 정의 된 경로를 따라 객체 이동

원과 직선을 만들기가 지루하기 때문에 우리는 "약간"더 복잡한 동작을 만들기로 결정했습니다. 우리는 이동하기위한 경로로 작용할 간단한 버텍스 스트립으로 .obj를 가져올 수 있다고 생각했습니다. 물론이 객체는 화면에 그려지지 않습니다. 그래서이 경로의 가져 오기를 처리 할 Trayectory 클래스를 만들었습니다. 나는 정점 스트립을 사용하고 있기 때문에

  1. , 나는 그들에게 법선을 할당 할 수 없습니다 : 나는 그러나 두 개의 작은 문제를 가지고

    Trayectory::Trayectory(String^ obj) 
    { 
    this->vert = gcnew List<Point3D^>(); 
    this->norm = gcnew List<Point3D^>(); 
    
    StreamReader^ archivo=gcnew StreamReader(obj); 
    
    array<String^>^ file = archivo->ReadToEnd()->Split('\n'); 
    archivo->Close(); 
    
    for each(String^ s in file) { 
        array<String^>^ str = s->Split(' '); 
    
        if(str[0]=="v") { 
         Point3D^ tmp = gcnew Point3D(Convert::ToSingle(str[1]),Convert::ToSingle(str[2]),Convert::ToSingle(str[3])); 
         this->vert->Add(tmp); 
        } 
    
        if(str[0]=="vn") { 
         Point3D^ tmp = gcnew Point3D(Convert::ToSingle(str[1]),Convert::ToSingle(str[2])+1.0,Convert::ToSingle(str[3])); 
         this->norm->Add(tmp); 
        } 
    } 
    } 
    

    : 여기 경로를 가져 오는 데 사용하는 코드입니다. gluLookAt()와 함께 사용하는 법선을 계산하는 방법이 있습니까?

  2. 개체를 렌더링 할 때 개체를 내 vert 목록의 꼭지점으로 변환하고 선의 다음 정점에 lookat을 할당합니다. 그러나 이것은 내 .obj의 꼭지점이 꼭 필요한 것은 아니라는 문제를 야기합니다. 주문할 방법이 있습니까? 나는 각각에 가장 가까운 버텍스를 계산할 수 있고 버블 정렬과 같은 정렬을 수행 할 수 있다고 생각했다. 그러나 더 쉬울 수 있습니까? side=forward X up 다음 gluLookAtup 벡터의 side 벡터를 산출하여,

답변

0
  1. VN 상단 => VN은 (0,0,1) 만 표시 될 수있다.
  2. 이것은 적절한 방법 일 수 있습니다. 런타임에 순서를 설정하지 마십시오.
+0

내 생각을 확인해 주셔서 감사합니다. – rubbyrubber

관련 문제