2013-07-24 3 views
0

그래서 OBJ 파일을 구문 분석하는 블로그를 보았습니다.하지만 실제로 내 눈을 사로 잡은 것은 OBJ 파일을 구문 분석하는 것이 아닙니다.어떻게 이런 윤곽선 메쉬를 그릴 수 있습니까?

enter image description here

나는 3D 노이즈 알고리즘을 사용하여 생성 된 메쉬는, 아마 소음 심플 렉스 알고 있지만 내가 알고 싶은 것은 내가 LWJGL에서와 유사한 라인 효과를 만들 수있는 방법이다.

나는 이미 3D 심플 렉스 노이즈 알고리즘을 가지고 있으며, 작동 할 것이라고 생각하는 코드는 실제로는 똑같지 않습니다.

메쉬에 대한 패턴은 노이즈 밀도가 가장 높은 외부에서 시작하는 줄의 행이 있음을 나타냅니다. 그런 다음 특정 지점의 노이즈 밀도를 기반으로 이러한 선이 전개되므로 이러한 선을 생성하고 진화시키는 알고리즘을 만들었지 만 그다지 효과가 없습니다.

SimplexNoise noise = new SimplexNoise(23453) //Variable is the seed 
worldList = glGenLists(1); 
glNewList(worldList, GL_COMPILE); //Inefficient but gets the job done 
    float prevx = 0.0f; 
    float prevy = 0.0f; 
    float prevz = 0.0f; 
    for(int x=0;x<256;x++){ 
     for(int y=0;y<256;y++){ 
      for(int z=0;z<256;z++){ 
       float xf = x/100; 
       float yf = y/100; 
       float zf = z/100; 
       density = noise.simplex(3,xf,yf,zf); //octaves,x,y,z 
       if(density>3){ //filter out some results 
        drawLine(prevx,prevy,prevz,x+1,y*density,z*density); 
        drawLine(prevx,prevy,prevz,x*density,y+1,z*density); 
        drawLine(prevx,prevy,prevz,x*density,y*density,z+1); 
       } 
      } 
     } 
    } 
glEndList(); 

동일한 결과가 거의 나오지 않는다는 사실을 깨닫지 않아야합니다. 나는 어떻게 접근하거나 똑같은 메쉬 모양이나 비슷한 것을 만들어 내는지 모르겠다. 그래서 누구도 나를 도와 줄 수 있니?

답변

0

저는 LWJGL에 익숙하지 않지만 알고리즘 자체가 올바른 방향으로 향하게 할 수 있다고 생각합니다. Perlin/Simplex 노이즈를 행진 큐브 알고리즘에 연결하고 삼각형 메쉬를 생성 할 수 있습니다.

Perlin Noise and Marching Cubes

난 당신이 출력 된 메쉬의 와이어 프레임을 그려 원하는 결과를 얻을 수 있습니다 생각 :이 메쉬를 만들려면이 기술을 사용했다. 결국, 당신이 자세히 보면, 모든 라인 삼각형을 만듭니다. 행진 큐브 here에 대한 자세한 정보를 찾을 수 있습니다.

관련 문제