2010-05-03 4 views
0

공간에서 여러 개의 점을로드하고 렌더링하며 간단한 3D 작업 (해당 지점 선택, & 뷰포트 이동)을 할 수있는 응용 프로그램을 찾고 있습니다.간단한 3D 편집기/뷰어

내 응용 프로그램의 기초로 사용하려면 소스를 사용할 수 있어야합니다.

답변

0

이 문제를 해결하려면 directX를 사용할 수 있습니다. 나는 델파이와 directX를 사용하여 이것을했다. C#을 사용하여 구현할 수도 있습니다. 당신이 좋아하는 같은 TEXTFILE 또는 이진 파일을 읽어
당신은이 작업을 수행 할 수있는 공간에서 점의 무리를로드하고 버퍼에 저장 할 수

.

TD3DXVector3 temppt = D3DXVector3(X,Y,Z); 

여기서 TD3DXVector3은 directX 형식입니다.

것은 그들에게 렌더링을위한
렌더링, 당신은 점, 선 또는 삼각형을 렌더링 할 수있는 사용하는 방법 에 IDirect3DDevice9의의 DrawPrimitive,있다.

g_pd3dDevice.DrawPrimitive(D3DPT_TRIANGLELIST,0,count); 

여기에서 Count는 그릴 삼각형의 수입니다.

같은 점을 선택

는 회전 & 이동 뷰포트
를 회전 및 이동 뷰포트 당신은 프로젝션 변환, 뷰 변환과 세계 변환을위한 변환 행렬을 사용할 수 있습니다.

0

Allegro 라이브러리는 단지 2d를 제외하고는 사용하기가 더 쉽지만 DirectX에 대한 3D 인터페이스가있을 수 있습니다. 당신은 C++을 알아야합니다. 임의의 픽셀에 대한 초기화 파일을 작성합니다.

allegro.cc에서 라이브러리를 가져 와서 Visual Studio를 사용하여 컴파일 할 수 있습니다.

편집 : 예를 들어 allegroGL 예. OpenGL과 결합 된 알레그로. http://www.allegro.cc/forums/thread/589211

#include <conio.h> 
#include <stdlib.h> 
#include "allegro.h" 
int main() 
{ 
    int x,y,x1,y1,x2,y2; 
    int red, green, blue, color; 

    allegro_init(); 

    install_keyboard(); 

    srand(time(NULL)); 

    int ret = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640,480,0,0); 
    if (ret != 0) 
    { 
     allegro_message(allegro_error); 
     return 0; 
    } 

//textprintf(screen, font, 0,0,15,"Pixels program - %dx%d - press esc to quit", SCREEN_W, SCREEN_H); 

    while(!key[KEY_ESC]) 
    { 
     x = 10+rand()%(SCREEN_W - 20); 
     y = 10+rand()%(SCREEN_H - 20); 

     red = rand() % 255; 
     green = rand() % 255; 
     blue = rand() % 255; 
     color = makecol(red,green,blue); 
     putpixel(screen,x,y,color); 
     } 
     allegro_exit(); 
} 
END_OF_MAIN(); 
0

는 여러 오픈 소스 3D 에디터가 있습니다,하지만 당신은 그들 대부분이 특정 3D 엔진과 연관되어 있음을 확인할 수 있습니다 (즉 irrEdit =>으로 Irrlicht).

블렌더가 있지만, 원하는 코드를 찾기에는 너무 복잡하다고 생각됩니다. 인터넷 검색의 몇 분에서

, 내가 포함 된 소스 코드와 3D 편집기의 간단한 예를 찾을 수 없어,하지만 난 도움이 될 수있는이를 발견했다 :

Programming a 3D Editor

0

http://Clara.io이 있지만 소스를 사용할 수는 없지만 무료이며 사용자 지정 형식으로 가져 오기/내보내기 할 수있는 플러그 인을 쉽게 작성할 수 있으며 장면에 고유 한 개체를 추가 할 수도 있습니다.